[Scummvm-cvs-logs] scummvm master -> d830c0edc9e53b5a3274535139179c2ef029a5d5
Littleboy
littleboy22 at gmail.com
Tue Jul 17 05:52:17 CEST 2012
This automated email contains information about 14 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
43d3b2f378 LASTEXPRESS: Remove strange casts
9e64e62c08 LASTEXPRESS: Comment unused variable
876a8f9377 LASTEXPRESS: Replace COMPARTMENT_TO and COMPARTMENT_FROM_TO macros
96d0aedba9 LASTEXPRESS: Replace SAVEGAME_BLOOD_JACKET macro by function
d4f7c02323 LASTEXPRESS: Replace PLAY_STEAM macro by function
132dd5b4bc LASTEXPRESS: Replace SYNC_STRING macro by function
e517c1199a LASTEXPRESS: Move LOW_BYTE macro to helpers.h
3d1b7b2d96 LASTEXPRESS: Merge the two savegameBloodJacket functions into the base Entity class
2b116592cb LASTEXPRESS: Remove LOADSCENE_FROM_POSITION macro
04a181a787 LASTEXPRESS: Replace 2 macros in Sophie entity implementation
3cf7e8ccf3 LASTEXPRESS: Replace INCREMENT_DIRECTION_COUNTER macro
be94a24fd2 LASTEXPRESS: Replace INVERT_Y macro
0181a464eb LASTEXPRESS: Use filter 16 as default filter for NIS animations
d830c0edc9 LASTEXPRESS: Replace TIME_CHECK_SAVEPOINT and TIME_CHECK_OBJECT macros
Commit: 43d3b2f378220278f508bfcea89d1aea6decaf6e
https://github.com/scummvm/scummvm/commit/43d3b2f378220278f508bfcea89d1aea6decaf6e
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:23-07:00
Commit Message:
LASTEXPRESS: Remove strange casts
Changed paths:
engines/lastexpress/data/font.cpp
engines/lastexpress/game/inventory.cpp
diff --git a/engines/lastexpress/data/font.cpp b/engines/lastexpress/data/font.cpp
index 79cf64e..8ac1afc 100644
--- a/engines/lastexpress/data/font.cpp
+++ b/engines/lastexpress/data/font.cpp
@@ -149,7 +149,7 @@ uint8 Font::getCharWidth(uint16 c) const{
uint16 Font::getStringWidth(Common::String str) const {
uint16 width = 0;
for (uint i = 0; i < str.size(); i++)
- width += getCharWidth((unsigned) (int)str[i]);
+ width += getCharWidth((unsigned char)str[i]);
return width;
}
@@ -185,8 +185,8 @@ void Font::drawChar(Graphics::Surface *surface, int16 x, int16 y, uint16 c) {
Common::Rect Font::drawString(Graphics::Surface *surface, int16 x, int16 y, Common::String str) {
int16 currentX = x;
for (uint i = 0; i < str.size(); i++) {
- drawChar(surface, currentX, y, (unsigned) (int)str[i]);
- currentX += getCharWidth((unsigned) (int)str[i]);
+ drawChar(surface, currentX, y, (unsigned char)str[i]);
+ currentX += getCharWidth((unsigned char)str[i]);
}
return Common::Rect(x, y, x + currentX, y + (int16)_charHeight);
diff --git a/engines/lastexpress/game/inventory.cpp b/engines/lastexpress/game/inventory.cpp
index bb382ea..70536b7 100644
--- a/engines/lastexpress/game/inventory.cpp
+++ b/engines/lastexpress/game/inventory.cpp
@@ -259,7 +259,7 @@ void Inventory::handleMouseEvent(const Common::Event &ev) {
// Change item highlight on list
if (getFlags()->mouseLeftPressed) {
- uint32 index = (unsigned) (int) ev.mouse.y / 40;
+ uint32 index = (uint16)ev.mouse.y / 40;
if (_highlightedItemIndex && _highlightedItemIndex != index)
drawHighlight(_highlightedItemIndex, true);
Commit: 9e64e62c08a9a170382bdeb394ad8ef39e0bb700
https://github.com/scummvm/scummvm/commit/9e64e62c08a9a170382bdeb394ad8ef39e0bb700
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:24-07:00
Commit Message:
LASTEXPRESS: Comment unused variable
Changed paths:
engines/lastexpress/sound/queue.cpp
engines/lastexpress/sound/queue.h
diff --git a/engines/lastexpress/sound/queue.cpp b/engines/lastexpress/sound/queue.cpp
index 5f3ab96..1fbb413 100644
--- a/engines/lastexpress/sound/queue.cpp
+++ b/engines/lastexpress/sound/queue.cpp
@@ -38,7 +38,7 @@ SoundQueue::SoundQueue(LastExpressEngine *engine) : _engine(engine) {
_subtitlesFlag = 0;
_currentSubtitle = NULL;
- _soundCacheData = NULL;
+ //_soundCacheData = NULL;
}
SoundQueue::~SoundQueue() {
@@ -51,7 +51,7 @@ SoundQueue::~SoundQueue() {
_subtitles.clear();
_currentSubtitle = NULL;
- SAFE_DELETE(_soundCacheData);
+ //SAFE_DELETE(_soundCacheData);
// Zero passed pointers
_engine = NULL;
diff --git a/engines/lastexpress/sound/queue.h b/engines/lastexpress/sound/queue.h
index 75fe068..e1f9be1 100644
--- a/engines/lastexpress/sound/queue.h
+++ b/engines/lastexpress/sound/queue.h
@@ -106,7 +106,7 @@ private:
// Entries
Common::List<SoundEntry *> _soundList; ///< List of all sound entries
- void *_soundCacheData;
+ //void *_soundCacheData;
// Subtitles
int _subtitlesFlag;
Commit: 876a8f9377b6c5533ca81c3c358e8b74014dc93f
https://github.com/scummvm/scummvm/commit/876a8f9377b6c5533ca81c3c358e8b74014dc93f
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:25-07:00
Commit Message:
LASTEXPRESS: Replace COMPARTMENT_TO and COMPARTMENT_FROM_TO macros
Changed paths:
engines/lastexpress/entities/alouan.cpp
engines/lastexpress/entities/entity.cpp
engines/lastexpress/entities/entity.h
engines/lastexpress/entities/entity_intern.h
engines/lastexpress/entities/hadija.cpp
diff --git a/engines/lastexpress/entities/alouan.cpp b/engines/lastexpress/entities/alouan.cpp
index 3ae38dc..8e56ae4 100644
--- a/engines/lastexpress/entities/alouan.cpp
+++ b/engines/lastexpress/entities/alouan.cpp
@@ -86,22 +86,22 @@ IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(6, Alouan, compartment6)
- COMPARTMENT_TO(Alouan, kObjectCompartment6, kPosition_4070, "621Cf", "621Df");
+ Entity::goToCompartment(savepoint, kObjectCompartment6, kPosition_4070, "621Cf", "621Df", WRAP_ENTER_FUNCTION(Alouan, setup_enterExitCompartment));
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(7, Alouan, compartment8)
- COMPARTMENT_TO(Alouan, kObjectCompartment8, kPosition_2740, "621Ch", "621Dh");
+ Entity::goToCompartment(savepoint, kObjectCompartment8, kPosition_2740, "621Ch", "621Dh", WRAP_ENTER_FUNCTION(Alouan, setup_enterExitCompartment));
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(8, Alouan, compartment6to8)
- COMPARTMENT_FROM_TO(Alouan, kObjectCompartment6, kPosition_4070, "621Bf", kObjectCompartment8, kPosition_2740, "621Ah");
+ Entity::goToCompartmentFromCompartment(savepoint, kObjectCompartment6, kPosition_4070, "621Bf", kObjectCompartment8, kPosition_2740, "621Ah", WRAP_ENTER_FUNCTION(Alouan, setup_enterExitCompartment), WRAP_UPDATE_FUNCTION(Alouan, setup_updateEntity));
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(9, Alouan, compartment8to6)
- COMPARTMENT_FROM_TO(Alouan, kObjectCompartment8, kPosition_2740, "621Bh", kObjectCompartment6, kPosition_4070, "621Af");
+ Entity::goToCompartmentFromCompartment(savepoint, kObjectCompartment8, kPosition_2740, "621Bh", kObjectCompartment6, kPosition_4070, "621Af", WRAP_ENTER_FUNCTION(Alouan, setup_enterExitCompartment), WRAP_UPDATE_FUNCTION(Alouan, setup_updateEntity));
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
diff --git a/engines/lastexpress/entities/entity.cpp b/engines/lastexpress/entities/entity.cpp
index 7fdfd53..776b9f6 100644
--- a/engines/lastexpress/entities/entity.cpp
+++ b/engines/lastexpress/entities/entity.cpp
@@ -464,6 +464,74 @@ void Entity::enterExitCompartment(const SavePoint &savepoint, EntityPosition pos
}
}
+void Entity::goToCompartment(const SavePoint &savepoint, ObjectIndex compartmentFrom, EntityPosition positionFrom, Common::String sequenceFrom, Common::String sequenceTo, Entity::EnterFunction *enterFunction) {
+ switch (savepoint.action) {
+ default:
+ break;
+
+ case kActionDefault:
+ getData()->entityPosition = positionFrom;
+ setCallback(1);
+ (*enterFunction)(sequenceFrom.c_str(), compartmentFrom);
+ break;
+
+ case kActionCallback:
+ switch (getCallback()) {
+ default:
+ break;
+
+ case 1:
+ setCallback(2);
+ (*enterFunction)(sequenceTo.c_str(), compartmentFrom);
+ break;
+
+ case 2:
+ getData()->entityPosition = positionFrom;
+ getEntities()->clearSequences(_entityIndex);
+ callbackAction();
+ break;
+ }
+ break;
+ }
+}
+
+void Entity::goToCompartmentFromCompartment(const SavePoint &savepoint, ObjectIndex compartmentFrom, EntityPosition positionFrom, Common::String sequenceFrom, ObjectIndex compartmentTo, EntityPosition positionTo, Common::String sequenceTo, Entity::EnterFunction *enterFunction, Entity::UpdateFunction *updateFunction) {
+ switch (savepoint.action) {
+ default:
+ break;
+
+ case kActionDefault:
+ getData()->entityPosition = positionFrom;
+ getData()->location = kLocationOutsideCompartment;
+ setCallback(1);
+ (*enterFunction)(sequenceFrom.c_str(), compartmentFrom);
+ break;
+
+ case kActionCallback:
+ switch (getCallback()) {
+ default:
+ break;
+
+ case 1:
+ setCallback(2);
+ (*updateFunction)(kCarGreenSleeping, positionTo);
+ break;
+
+ case 2:
+ setCallback(3);
+ (*enterFunction)(sequenceTo.c_str(), compartmentTo);
+ break;
+
+ case 3:
+ getData()->location = kLocationInsideCompartment;
+ getEntities()->clearSequences(_entityIndex);
+ callbackAction();
+ break;
+ }
+ break;
+ }
+}
+
void Entity::updatePosition(const SavePoint &savepoint, bool handleExcuseMe) {
EXPOSE_PARAMS(EntityData::EntityParametersSIII)
diff --git a/engines/lastexpress/entities/entity.h b/engines/lastexpress/entities/entity.h
index 3fd2009..bb2b966 100644
--- a/engines/lastexpress/entities/entity.h
+++ b/engines/lastexpress/entities/entity.h
@@ -616,19 +616,19 @@ public:
EntityParameters *getParameters(uint callback, byte index) const;
EntityParameters *getCurrentParameters(byte index = 0) { return getParameters(_data.currentCall, index); }
- int getCallback(uint callback) const;
- int getCurrentCallback() { return getCallback(_data.currentCall); }
- void setCallback(uint callback, byte index);
- void setCurrentCallback(uint index) { setCallback(_data.currentCall, index); }
+ int getCallback(uint callback) const;
+ int getCurrentCallback() { return getCallback(_data.currentCall); }
+ void setCallback(uint callback, byte index);
+ void setCurrentCallback(uint index) { setCallback(_data.currentCall, index); }
void updateParameters(uint32 index) const;
// Serializable
- void saveLoadWithSerializer(Common::Serializer &ser);
+ void saveLoadWithSerializer(Common::Serializer &ser);
private:
- EntityCallData _data;
+ EntityCallData _data;
EntityCallParameters _parameters[9];
};
@@ -665,9 +665,15 @@ public:
protected:
LastExpressEngine *_engine;
- EntityIndex _entityIndex;
- EntityData *_data;
- Common::Array<Callback *> _callbacks;
+ EntityIndex _entityIndex;
+ EntityData *_data;
+ Common::Array<Callback *> _callbacks;
+
+ typedef Common::Functor2<const char *, ObjectIndex, void> EnterFunction;
+ typedef Common::Functor2<CarIndex, EntityPosition, void> UpdateFunction;
+
+ #define WRAP_ENTER_FUNCTION(className, method) new Common::Functor2Mem<const char *, ObjectIndex, void, className>(this, &className::method)
+ #define WRAP_UPDATE_FUNCTION(className, method) new Common::Functor2Mem<CarIndex, EntityPosition, void, className>(this, &className::method)
/**
* Saves the game
@@ -782,6 +788,33 @@ protected:
void enterExitCompartment(const SavePoint &savepoint, EntityPosition position1 = kPositionNone, EntityPosition position2 = kPositionNone, CarIndex car = kCarNone, ObjectIndex compartment = kObjectNone, bool alternate = false, bool updateLocation = false);
/**
+ * Go to compartment.
+ *
+ * @param savepoint The savepoint.
+ * @param compartmentFrom The compartment from.
+ * @param positionFrom The position from.
+ * @param sequenceFrom The sequence from.
+ * @param sequenceTo The sequence to.
+ * @param enterFunction The enter/exit compartment function.
+ */
+ void goToCompartment(const SavePoint &savepoint, ObjectIndex compartmentFrom, EntityPosition positionFrom, Common::String sequenceFrom, Common::String sequenceTo, EnterFunction *enterFunction);
+
+ /**
+ * Go to compartment from compartment.
+ *
+ * @param savepoint The savepoint.
+ * @param compartmentFrom The compartment from.
+ * @param positionFrom The position from.
+ * @param sequenceFrom The sequence from.
+ * @param compartmentTo The compartment to.
+ * @param positionTo The position to.
+ * @param sequenceTo The sequence to.
+ * @param enterFunction The enter/exit compartment function.
+ * @param enterFunction The update entity function.
+ */
+ void goToCompartmentFromCompartment(const SavePoint &savepoint, ObjectIndex compartmentFrom, EntityPosition positionFrom, Common::String sequenceFrom, ObjectIndex compartmentTo, EntityPosition positionTo, Common::String sequenceTo, Entity::EnterFunction *enterFunction, Entity::UpdateFunction *updateFunction);
+
+ /**
* Updates the position
*
* @param savepoint The savepoint
diff --git a/engines/lastexpress/entities/entity_intern.h b/engines/lastexpress/entities/entity_intern.h
index c21f2c1..0613b7b 100644
--- a/engines/lastexpress/entities/entity_intern.h
+++ b/engines/lastexpress/entities/entity_intern.h
@@ -451,66 +451,6 @@ void class::setup_##name() { \
if (!parameter) \
parameter = (uint)(type + value);
-//////////////////////////////////////////////////////////////////////////
-// Compartments
-//////////////////////////////////////////////////////////////////////////
-// Go from one compartment to another (or the same one if no optional args are passed
-#define COMPARTMENT_TO(class, compartmentFrom, positionFrom, sequenceFrom, sequenceTo) \
- switch (savepoint.action) { \
- default: \
- break; \
- case kActionDefault: \
- getData()->entityPosition = positionFrom; \
- setCallback(1); \
- setup_enterExitCompartment(sequenceFrom, compartmentFrom); \
- break; \
- case kActionCallback: \
- switch (getCallback()) { \
- default: \
- break; \
- case 1: \
- setCallback(2); \
- setup_enterExitCompartment(sequenceTo, compartmentFrom); \
- break; \
- case 2: \
- getData()->entityPosition = positionFrom; \
- getEntities()->clearSequences(_entityIndex); \
- callbackAction(); \
- } \
- break; \
- }
-
-#define COMPARTMENT_FROM_TO(class, compartmentFrom, positionFrom, sequenceFrom, compartmentTo, positionTo, sequenceTo) \
- switch (savepoint.action) { \
- default: \
- break; \
- case kActionDefault: \
- getData()->entityPosition = positionFrom; \
- getData()->location = kLocationOutsideCompartment; \
- setCallback(1); \
- setup_enterExitCompartment(sequenceFrom, compartmentFrom); \
- break; \
- case kActionCallback: \
- switch (getCallback()) { \
- default: \
- break; \
- case 1: \
- setCallback(2); \
- setup_updateEntity(kCarGreenSleeping, positionTo); \
- break; \
- case 2: \
- setCallback(3); \
- setup_enterExitCompartment(sequenceTo, compartmentTo); \
- break; \
- case 3: \
- getData()->location = kLocationInsideCompartment; \
- getEntities()->clearSequences(_entityIndex); \
- callbackAction(); \
- break; \
- } \
- break; \
- }
-
} // End of namespace LastExpress
#endif // LASTEXPRESS_ENTITY_INTERN_H
diff --git a/engines/lastexpress/entities/hadija.cpp b/engines/lastexpress/entities/hadija.cpp
index 09c8024..2dd239d 100644
--- a/engines/lastexpress/entities/hadija.cpp
+++ b/engines/lastexpress/entities/hadija.cpp
@@ -86,22 +86,22 @@ IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(6, Hadija, compartment6)
- COMPARTMENT_TO(Hadija, kObjectCompartment6, kPosition_4070, "619Cf", "619Df");
+ Entity::goToCompartment(savepoint, kObjectCompartment6, kPosition_4070, "619Cf", "619Df", WRAP_ENTER_FUNCTION(Hadija, setup_enterExitCompartment));
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(7, Hadija, compartment8)
- COMPARTMENT_TO(Hadija, kObjectCompartment8, kPosition_2740, "619Ch", "619Dh");
+ Entity::goToCompartment(savepoint, kObjectCompartment8, kPosition_2740, "619Ch", "619Dh", WRAP_ENTER_FUNCTION(Hadija, setup_enterExitCompartment));
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(8, Hadija, compartment6to8)
- COMPARTMENT_FROM_TO(Hadija, kObjectCompartment6, kPosition_4070, "619Bf", kObjectCompartment8, kPosition_2740, "619Ah");
+ Entity::goToCompartmentFromCompartment(savepoint, kObjectCompartment6, kPosition_4070, "619Bf", kObjectCompartment8, kPosition_2740, "619Ah", WRAP_ENTER_FUNCTION(Hadija, setup_enterExitCompartment), WRAP_UPDATE_FUNCTION(Hadija, setup_updateEntity));
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(9, Hadija, compartment8to6)
- COMPARTMENT_FROM_TO(Hadija, kObjectCompartment8, kPosition_2740, "619Bh", kObjectCompartment6, kPosition_4070, "619Af");
+ Entity::goToCompartmentFromCompartment(savepoint, kObjectCompartment8, kPosition_2740, "619Bh", kObjectCompartment6, kPosition_4070, "619Af", WRAP_ENTER_FUNCTION(Hadija, setup_enterExitCompartment), WRAP_UPDATE_FUNCTION(Hadija, setup_updateEntity));
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
Commit: 96d0aedba93e4ba2691a5ee1eba24a1f07539c96
https://github.com/scummvm/scummvm/commit/96d0aedba93e4ba2691a5ee1eba24a1f07539c96
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:25-07:00
Commit Message:
LASTEXPRESS: Replace SAVEGAME_BLOOD_JACKET macro by function
Changed paths:
engines/lastexpress/entities/coudert.cpp
engines/lastexpress/entities/coudert.h
diff --git a/engines/lastexpress/entities/coudert.cpp b/engines/lastexpress/entities/coudert.cpp
index dc7beb3..66733ac 100644
--- a/engines/lastexpress/entities/coudert.cpp
+++ b/engines/lastexpress/entities/coudert.cpp
@@ -37,15 +37,6 @@
namespace LastExpress {
-#define SAVEGAME_BLOOD_JACKET() \
- if (getProgress().jacket == kJacketBlood \
- && getEntities()->isDistanceBetweenEntities(kEntityCoudert, kEntityPlayer, 1000) \
- && !getEntities()->isInsideCompartments(kEntityPlayer) \
- && !getEntities()->checkFields10(kEntityPlayer)) { \
- setCallback(1); \
- setup_savegame(kSavegameTypeEvent, kEventMertensBloodJacket); \
- }
-
Coudert::Coudert(LastExpressEngine *engine) : Entity(engine, kEntityCoudert) {
ADD_CALLBACK_FUNCTION(Coudert, reset);
ADD_CALLBACK_FUNCTION(Coudert, bloodJacket);
@@ -124,7 +115,7 @@ IMPLEMENT_FUNCTION_S(2, Coudert, bloodJacket)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
break;
case kActionExitCompartment:
@@ -151,7 +142,7 @@ IMPLEMENT_FUNCTION_SI(3, Coudert, enterExitCompartment, ObjectIndex)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
return;
case kActionCallback:
@@ -177,7 +168,7 @@ IMPLEMENT_FUNCTION(4, Coudert, callbackActionOnDirection)
break;
}
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
break;
case kActionExitCompartment:
@@ -200,7 +191,7 @@ IMPLEMENT_FUNCTION_SIII(5, Coudert, enterExitCompartment2, ObjectIndex, EntityPo
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
return;
case kActionCallback:
@@ -221,7 +212,7 @@ IMPLEMENT_FUNCTION_S(6, Coudert, playSound)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
break;
case kActionEndSound:
@@ -250,7 +241,7 @@ IMPLEMENT_FUNCTION_NOSETUP(7, Coudert, playSound16)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
break;
case kActionEndSound:
@@ -363,7 +354,7 @@ IMPLEMENT_FUNCTION_I(10, Coudert, updateFromTime, uint32)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
UPDATE_PARAM(params->param2, getState()->time, params->param1);
@@ -386,7 +377,7 @@ IMPLEMENT_FUNCTION_I(11, Coudert, updateFromTicks, uint32)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
UPDATE_PARAM(params->param2, getState()->timeTicks, params->param1);
@@ -460,7 +451,7 @@ IMPLEMENT_FUNCTION_II(13, Coudert, function13, bool, EntityIndex)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
if (!params->param2 && !params->param3) {
@@ -582,7 +573,7 @@ IMPLEMENT_FUNCTION_I(14, Coudert, function14, EntityIndex)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ savegameBloodJacket();
break;
case kActionDefault:
@@ -4173,4 +4164,14 @@ void Coudert::visitCompartment(const SavePoint &savepoint, EntityPosition positi
}
}
+void Coudert::savegameBloodJacket() {
+ if (getProgress().jacket == kJacketBlood
+ && getEntities()->isDistanceBetweenEntities(kEntityCoudert, kEntityPlayer, 1000)
+ && !getEntities()->isInsideCompartments(kEntityPlayer)
+ && !getEntities()->checkFields10(kEntityPlayer)) {
+ setCallback(1);
+ setup_savegame(kSavegameTypeEvent, kEventMertensBloodJacket);
+ }
+}
+
} // End of namespace LastExpress
diff --git a/engines/lastexpress/entities/coudert.h b/engines/lastexpress/entities/coudert.h
index 45d13ce..d06bb95 100644
--- a/engines/lastexpress/entities/coudert.h
+++ b/engines/lastexpress/entities/coudert.h
@@ -219,6 +219,7 @@ public:
private:
void visitCompartment(const SavePoint &savepoint, EntityPosition position, const char *seq1, ObjectIndex compartment, const char *seq2, const char *seq3, EntityPosition sittingPosition, ObjectIndex object, const char *seq4);
+ void savegameBloodJacket();
};
} // End of namespace LastExpress
Commit: d4f7c0232380b94b42d280c3680e473cd0c2d9b5
https://github.com/scummvm/scummvm/commit/d4f7c0232380b94b42d280c3680e473cd0c2d9b5
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:26-07:00
Commit Message:
LASTEXPRESS: Replace PLAY_STEAM macro by function
Changed paths:
engines/lastexpress/entities/chapters.cpp
engines/lastexpress/entities/chapters.h
diff --git a/engines/lastexpress/entities/chapters.cpp b/engines/lastexpress/entities/chapters.cpp
index eab4dfe..b497816 100644
--- a/engines/lastexpress/entities/chapters.cpp
+++ b/engines/lastexpress/entities/chapters.cpp
@@ -384,12 +384,6 @@ IMPLEMENT_FUNCTION(7, Chapters, chapter1Init)
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
-#define PLAY_STEAM() { \
- getSoundQueue()->resetState(); \
- getSound()->playSteam((CityIndex)ENTITY_PARAM(0, 4)); \
- ENTITY_PARAM(0, 2) = 0; \
- }
-
IMPLEMENT_FUNCTION(8, Chapters, chapter1Handler)
switch (savepoint.action) {
default:
@@ -522,43 +516,43 @@ label_chapter1_next:
getSavePoints()->push(kEntityChapters, kEntityTrain, kActionTrainStopRunning);
if (getEntityData(kEntityPlayer)->location != kLocationOutsideTrain) {
- PLAY_STEAM();
+ playSteam();
break;
}
if (getEntities()->isOutsideAlexeiWindow()) {
getScenes()->loadSceneFromPosition(kCarGreenSleeping, 49);
- PLAY_STEAM();
+ playSteam();
break;
}
if (getEntities()->isOutsideAnnaWindow()) {
getScenes()->loadSceneFromPosition(kCarRedSleeping, 49);
- PLAY_STEAM();
+ playSteam();
break;
}
CarIndex car = getEntityData(kEntityPlayer)->car;
if (car < kCarRedSleeping || car > kCarCoalTender) {
if (car < kCarBaggageRear || car > kCarGreenSleeping) {
- PLAY_STEAM();
+ playSteam();
break;
}
if (getEntities()->isPlayerPosition(kCarGreenSleeping, 98)) {
getSound()->playSound(kEntityPlayer, "LIB015");
getScenes()->loadSceneFromPosition(kCarGreenSleeping, 71);
- PLAY_STEAM();
+ playSteam();
break;
}
getScenes()->loadSceneFromPosition(kCarGreenSleeping, 82);
- PLAY_STEAM();
+ playSteam();
break;
}
getScenes()->loadSceneFromPosition(kCarRestaurant, 82);
- PLAY_STEAM();
+ playSteam();
break;
}
@@ -1278,43 +1272,43 @@ label_callback_4:
getSavePoints()->push(kEntityChapters, kEntityTrain, kActionTrainStopRunning);
if (getEntityData(kEntityPlayer)->location != kLocationOutsideTrain) {
- PLAY_STEAM();
+ playSteam();
break;
}
if (getEntities()->isOutsideAlexeiWindow()) {
getScenes()->loadSceneFromPosition(kCarGreenSleeping, 49);
- PLAY_STEAM();
+ playSteam();
break;
}
if (getEntities()->isOutsideAnnaWindow()) {
getScenes()->loadSceneFromPosition(kCarRedSleeping, 49);
- PLAY_STEAM();
+ playSteam();
break;
}
CarIndex car = getEntityData(kEntityPlayer)->car;
if (car < kCarRedSleeping || car > kCarCoalTender) {
if (car < kCarBaggageRear || car > kCarGreenSleeping) {
- PLAY_STEAM();
+ playSteam();
break;
}
if (getEntities()->isPlayerPosition(kCarGreenSleeping, 98)) {
getSound()->playSound(kEntityPlayer, "LIB015");
getScenes()->loadSceneFromPosition(kCarGreenSleeping, 71);
- PLAY_STEAM();
+ playSteam();
break;
}
getScenes()->loadSceneFromPosition(kCarGreenSleeping, 82);
- PLAY_STEAM();
+ playSteam();
break;
}
getScenes()->loadSceneFromPosition(kCarRestaurant, 82);
- PLAY_STEAM();
+ playSteam();
break;
}
@@ -1816,4 +1810,10 @@ void Chapters::enterExitHelper(bool isEnteringStation) {
callbackAction();
}
+void Chapters::playSteam() {
+ getSoundQueue()->resetState();
+ getSound()->playSteam((CityIndex)ENTITY_PARAM(0, 4));
+ ENTITY_PARAM(0, 2) = 0;
+}
+
} // End of namespace LastExpress
diff --git a/engines/lastexpress/entities/chapters.h b/engines/lastexpress/entities/chapters.h
index 353d3a6..62b8af9 100644
--- a/engines/lastexpress/entities/chapters.h
+++ b/engines/lastexpress/entities/chapters.h
@@ -156,6 +156,7 @@ public:
private:
void enterExitStation(const SavePoint &savepoint, bool isEnteringStation);
void enterExitHelper(bool isEnteringStation);
+ void playSteam();
};
} // End of namespace LastExpress
Commit: 132dd5b4bc236f805babe0187797ef03bbb16310
https://github.com/scummvm/scummvm/commit/132dd5b4bc236f805babe0187797ef03bbb16310
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:27-07:00
Commit Message:
LASTEXPRESS: Replace SYNC_STRING macro by function
Changed paths:
engines/lastexpress/entities/entity.cpp
engines/lastexpress/entities/entity.h
diff --git a/engines/lastexpress/entities/entity.cpp b/engines/lastexpress/entities/entity.cpp
index 776b9f6..120c1f2 100644
--- a/engines/lastexpress/entities/entity.cpp
+++ b/engines/lastexpress/entities/entity.cpp
@@ -51,6 +51,17 @@ EntityData::EntityCallData::~EntityCallData() {
SAFE_DELETE(sequence3);
}
+void EntityData::EntityCallData::syncString(Common::Serializer &s, Common::String &string, int length) {
+ char seqName[13];
+ memset(&seqName, 0, length);
+
+ if (s.isSaving()) strcpy((char *)&seqName, string.c_str());
+ s.syncBytes((byte *)&seqName, length);
+
+ if (s.isLoading())
+ string = seqName;
+}
+
void EntityData::EntityCallData::saveLoadWithSerializer(Common::Serializer &s) {
for (uint i = 0; i < ARRAYSIZE(callbacks); i++)
s.syncAsByte(callbacks[i]);
@@ -77,20 +88,10 @@ void EntityData::EntityCallData::saveLoadWithSerializer(Common::Serializer &s) {
s.syncAsByte(directionSwitch);
// Sync strings
-#define SYNC_STRING(varName, count) { \
- char seqName[13]; \
- memset(&seqName, 0, count); \
- if (s.isSaving()) strcpy((char *)&seqName, varName.c_str()); \
- s.syncBytes((byte *)&seqName, count); \
- if (s.isLoading()) varName = seqName; \
-}
-
- SYNC_STRING(sequenceName, 13);
- SYNC_STRING(sequenceName2, 13);
- SYNC_STRING(sequenceNamePrefix, 7);
- SYNC_STRING(sequenceNameCopy, 13);
-
-#undef SYNC_STRING
+ syncString(s, sequenceName, 13);
+ syncString(s, sequenceName2, 13);
+ syncString(s, sequenceNamePrefix, 7);
+ syncString(s, sequenceNameCopy, 13);
// Skip pointers to frame & sequences
s.skip(5 * 4);
diff --git a/engines/lastexpress/entities/entity.h b/engines/lastexpress/entities/entity.h
index bb2b966..4dca542 100644
--- a/engines/lastexpress/entities/entity.h
+++ b/engines/lastexpress/entities/entity.h
@@ -596,6 +596,15 @@ public:
return str;
}
+ /**
+ * Synchronizes a string.
+ *
+ * @param s The Common::Serializer to use.
+ * @param string The string.
+ * @param length Length of the string.
+ */
+ void syncString(Common::Serializer &s, Common::String &string, int length);
+
// Serializable
void saveLoadWithSerializer(Common::Serializer &s);
};
Commit: e517c1199a0a187d865fbf22ce964a7dad069eb9
https://github.com/scummvm/scummvm/commit/e517c1199a0a187d865fbf22ce964a7dad069eb9
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:27-07:00
Commit Message:
LASTEXPRESS: Move LOW_BYTE macro to helpers.h
Changed paths:
engines/lastexpress/entities/entity_intern.h
engines/lastexpress/helpers.h
diff --git a/engines/lastexpress/entities/entity_intern.h b/engines/lastexpress/entities/entity_intern.h
index 0613b7b..c622ff9 100644
--- a/engines/lastexpress/entities/entity_intern.h
+++ b/engines/lastexpress/entities/entity_intern.h
@@ -25,8 +25,6 @@
namespace LastExpress {
-#define LOW_BYTE(w) ((unsigned char)(((unsigned long)(w)) & 0xff))
-
//////////////////////////////////////////////////////////////////////////
// Callbacks
#define ENTITY_CALLBACK(class, name, pointer) \
diff --git a/engines/lastexpress/helpers.h b/engines/lastexpress/helpers.h
index 7f3f1e2..02454be 100644
--- a/engines/lastexpress/helpers.h
+++ b/engines/lastexpress/helpers.h
@@ -27,6 +27,8 @@
// Misc helpers
//////////////////////////////////////////////////////////////////////////
+#define LOW_BYTE(w) ((unsigned char)(((unsigned long)(w)) & 0xff))
+
// Misc
#define getArchive(name) _engine->getResourceManager()->getFileStream(name)
#define rnd(value) _engine->getRandom().getRandomNumber(value - 1)
Commit: 3d1b7b2d962ac37d8fb706ac8b884d3e560f97b5
https://github.com/scummvm/scummvm/commit/3d1b7b2d962ac37d8fb706ac8b884d3e560f97b5
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:28-07:00
Commit Message:
LASTEXPRESS: Merge the two savegameBloodJacket functions into the base Entity class
Changed paths:
engines/lastexpress/entities/coudert.cpp
engines/lastexpress/entities/coudert.h
engines/lastexpress/entities/entity.cpp
engines/lastexpress/entities/entity.h
engines/lastexpress/entities/entity39.h
engines/lastexpress/entities/mertens.cpp
engines/lastexpress/entities/mertens.h
diff --git a/engines/lastexpress/entities/coudert.cpp b/engines/lastexpress/entities/coudert.cpp
index 66733ac..eea9dda 100644
--- a/engines/lastexpress/entities/coudert.cpp
+++ b/engines/lastexpress/entities/coudert.cpp
@@ -115,7 +115,7 @@ IMPLEMENT_FUNCTION_S(2, Coudert, bloodJacket)
break;
case kActionNone:
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
break;
case kActionExitCompartment:
@@ -142,7 +142,7 @@ IMPLEMENT_FUNCTION_SI(3, Coudert, enterExitCompartment, ObjectIndex)
break;
case kActionNone:
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
return;
case kActionCallback:
@@ -168,7 +168,7 @@ IMPLEMENT_FUNCTION(4, Coudert, callbackActionOnDirection)
break;
}
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
break;
case kActionExitCompartment:
@@ -191,7 +191,7 @@ IMPLEMENT_FUNCTION_SIII(5, Coudert, enterExitCompartment2, ObjectIndex, EntityPo
break;
case kActionNone:
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
return;
case kActionCallback:
@@ -212,7 +212,7 @@ IMPLEMENT_FUNCTION_S(6, Coudert, playSound)
break;
case kActionNone:
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
break;
case kActionEndSound:
@@ -241,7 +241,7 @@ IMPLEMENT_FUNCTION_NOSETUP(7, Coudert, playSound16)
break;
case kActionNone:
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
break;
case kActionEndSound:
@@ -354,7 +354,7 @@ IMPLEMENT_FUNCTION_I(10, Coudert, updateFromTime, uint32)
break;
case kActionNone:
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
UPDATE_PARAM(params->param2, getState()->time, params->param1);
@@ -377,7 +377,7 @@ IMPLEMENT_FUNCTION_I(11, Coudert, updateFromTicks, uint32)
break;
case kActionNone:
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
UPDATE_PARAM(params->param2, getState()->timeTicks, params->param1);
@@ -451,7 +451,7 @@ IMPLEMENT_FUNCTION_II(13, Coudert, function13, bool, EntityIndex)
break;
case kActionNone:
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
if (!params->param2 && !params->param3) {
@@ -573,7 +573,7 @@ IMPLEMENT_FUNCTION_I(14, Coudert, function14, EntityIndex)
break;
case kActionNone:
- savegameBloodJacket();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Coudert, setup_savegame));
break;
case kActionDefault:
@@ -4164,14 +4164,4 @@ void Coudert::visitCompartment(const SavePoint &savepoint, EntityPosition positi
}
}
-void Coudert::savegameBloodJacket() {
- if (getProgress().jacket == kJacketBlood
- && getEntities()->isDistanceBetweenEntities(kEntityCoudert, kEntityPlayer, 1000)
- && !getEntities()->isInsideCompartments(kEntityPlayer)
- && !getEntities()->checkFields10(kEntityPlayer)) {
- setCallback(1);
- setup_savegame(kSavegameTypeEvent, kEventMertensBloodJacket);
- }
-}
-
} // End of namespace LastExpress
diff --git a/engines/lastexpress/entities/coudert.h b/engines/lastexpress/entities/coudert.h
index d06bb95..45d13ce 100644
--- a/engines/lastexpress/entities/coudert.h
+++ b/engines/lastexpress/entities/coudert.h
@@ -219,7 +219,6 @@ public:
private:
void visitCompartment(const SavePoint &savepoint, EntityPosition position, const char *seq1, ObjectIndex compartment, const char *seq2, const char *seq3, EntityPosition sittingPosition, ObjectIndex object, const char *seq4);
- void savegameBloodJacket();
};
} // End of namespace LastExpress
diff --git a/engines/lastexpress/entities/entity.cpp b/engines/lastexpress/entities/entity.cpp
index 120c1f2..a412dc9 100644
--- a/engines/lastexpress/entities/entity.cpp
+++ b/engines/lastexpress/entities/entity.cpp
@@ -253,6 +253,28 @@ void Entity::savegame(const SavePoint &savepoint) {
}
}
+void Entity::savegameBloodJacket(SaveFunction *savegame) {
+ if (getProgress().jacket == kJacketBlood
+ && getEntities()->isDistanceBetweenEntities(_entityIndex, kEntityPlayer, 1000)
+ && !getEntities()->isInsideCompartments(kEntityPlayer)
+ && !getEntities()->checkFields10(kEntityPlayer)) {
+ setCallback(1);
+
+ switch (_entityIndex) {
+ default:
+ break;
+
+ case kEntityCoudert:
+ (*savegame)(kSavegameTypeEvent, kEventCoudertBloodJacket);
+ break;
+
+ case kEntityMertens:
+ (*savegame)(kSavegameTypeEvent, kEventCoudertBloodJacket);
+ break;
+ }
+ }
+}
+
void Entity::playSound(const SavePoint &savepoint, bool resetItem, SoundFlag flag) {
EXPOSE_PARAMS(EntityData::EntityParametersSIIS)
diff --git a/engines/lastexpress/entities/entity.h b/engines/lastexpress/entities/entity.h
index 4dca542..01a1955 100644
--- a/engines/lastexpress/entities/entity.h
+++ b/engines/lastexpress/entities/entity.h
@@ -680,9 +680,11 @@ protected:
typedef Common::Functor2<const char *, ObjectIndex, void> EnterFunction;
typedef Common::Functor2<CarIndex, EntityPosition, void> UpdateFunction;
+ typedef Common::Functor2<SavegameType, uint32, void> SaveFunction;
#define WRAP_ENTER_FUNCTION(className, method) new Common::Functor2Mem<const char *, ObjectIndex, void, className>(this, &className::method)
#define WRAP_UPDATE_FUNCTION(className, method) new Common::Functor2Mem<CarIndex, EntityPosition, void, className>(this, &className::method)
+ #define WRAP_SAVE_FUNCTION(className, method) new Common::Functor2Mem<SavegameType, uint32, void, className>(this, &className::method)
/**
* Saves the game
@@ -694,6 +696,11 @@ protected:
void savegame(const SavePoint &savepoint);
/**
+ * Saves the game before being found out with a blood covered jacket
+ */
+ void savegameBloodJacket(SaveFunction *savegame);
+
+ /**
* Play sound
*
* @param savepoint The savepoint
diff --git a/engines/lastexpress/entities/entity39.h b/engines/lastexpress/entities/entity39.h
index 4335a95..148bca5 100644
--- a/engines/lastexpress/entities/entity39.h
+++ b/engines/lastexpress/entities/entity39.h
@@ -72,4 +72,4 @@ private:
} // End of namespace LastExpress
-#endif // LASTEXPRESS_##define##_H
+#endif // LASTEXPRESS_ENTITY39_H
diff --git a/engines/lastexpress/entities/mertens.cpp b/engines/lastexpress/entities/mertens.cpp
index 5672fe4..dd69aea 100644
--- a/engines/lastexpress/entities/mertens.cpp
+++ b/engines/lastexpress/entities/mertens.cpp
@@ -37,14 +37,6 @@
namespace LastExpress {
-#define SAVEGAME_BLOOD_JACKET() \
- if (getProgress().jacket == kJacketBlood \
- && getEntities()->isDistanceBetweenEntities(kEntityMertens, kEntityPlayer, 1000) \
- && !getEntities()->isInsideCompartments(kEntityPlayer) \
- && !getEntities()->checkFields10(kEntityPlayer)) { \
- setCallback(1); \
- setup_savegame(kSavegameTypeEvent, kEventMertensBloodJacket); \
- }
Mertens::Mertens(LastExpressEngine *engine) : Entity(engine, kEntityMertens) {
ADD_CALLBACK_FUNCTION(Mertens, reset);
@@ -115,7 +107,7 @@ IMPLEMENT_FUNCTION_S(2, Mertens, bloodJacket)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
break;
case kActionExitCompartment:
@@ -142,7 +134,7 @@ IMPLEMENT_FUNCTION_SI(3, Mertens, enterExitCompartment, ObjectIndex)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
return;
case kActionCallback:
@@ -163,7 +155,7 @@ IMPLEMENT_FUNCTION_SI(4, Mertens, enterExitCompartment2, ObjectIndex)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
return;
case kAction4:
@@ -189,7 +181,7 @@ IMPLEMENT_FUNCTION_SIII(5, Mertens, enterExitCompartment3, ObjectIndex, EntityPo
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
break;
case kActionExitCompartment:
@@ -231,7 +223,7 @@ IMPLEMENT_FUNCTION(6, Mertens, callbackActionOnDirection)
break;
}
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
break;
case kActionExitCompartment:
@@ -254,7 +246,7 @@ IMPLEMENT_FUNCTION_S(7, Mertens, playSound)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
break;
case kActionEndSound:
@@ -281,7 +273,7 @@ IMPLEMENT_FUNCTION_S(8, Mertens, playSound16)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
break;
case kActionEndSound:
@@ -480,7 +472,7 @@ IMPLEMENT_FUNCTION_I(11, Mertens, function11, uint32)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
UPDATE_PARAM(params->param2, getState()->time, params->param1)
@@ -548,7 +540,7 @@ IMPLEMENT_FUNCTION_II(13, Mertens, function13, bool, bool)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
if (!params->param2 && !params->param3) {
UPDATE_PARAM_PROC(params->param4, getState()->timeTicks, 75)
@@ -670,7 +662,7 @@ IMPLEMENT_FUNCTION_I(14, Mertens, function14, EntityIndex)
break;
case kActionNone:
- SAVEGAME_BLOOD_JACKET();
+ Entity::savegameBloodJacket(WRAP_SAVE_FUNCTION(Mertens, setup_savegame));
break;
case kActionDefault:
diff --git a/engines/lastexpress/entities/mertens.h b/engines/lastexpress/entities/mertens.h
index 31b7a97..55c2a76 100644
--- a/engines/lastexpress/entities/mertens.h
+++ b/engines/lastexpress/entities/mertens.h
@@ -210,6 +210,9 @@ public:
DECLARE_FUNCTION(function53)
DECLARE_NULL_FUNCTION()
+
+private:
+ void loadSceneFromPosition();
};
} // End of namespace LastExpress
Commit: 2b116592cb5654656d2b8118e1a3674e195bb00e
https://github.com/scummvm/scummvm/commit/2b116592cb5654656d2b8118e1a3674e195bb00e
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:29-07:00
Commit Message:
LASTEXPRESS: Remove LOADSCENE_FROM_POSITION macro
Changed paths:
engines/lastexpress/entities/mertens.cpp
diff --git a/engines/lastexpress/entities/mertens.cpp b/engines/lastexpress/entities/mertens.cpp
index dd69aea..517ff76 100644
--- a/engines/lastexpress/entities/mertens.cpp
+++ b/engines/lastexpress/entities/mertens.cpp
@@ -300,14 +300,6 @@ IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION_II(10, Mertens, updateEntity, CarIndex, EntityPosition)
-
-#define LOADSCENE_FROM_POSITION() \
- if (getData()->direction != kDirectionUp) { \
- getEntities()->loadSceneFromEntityPosition(getData()->car, (EntityPosition)(getData()->entityPosition + 750)); \
- } else { \
- getEntities()->loadSceneFromEntityPosition(getData()->car, (EntityPosition)(getData()->entityPosition - 750), true); \
- }
-
switch (savepoint.action) {
default:
break;
@@ -406,7 +398,7 @@ IMPLEMENT_FUNCTION_II(10, Mertens, updateEntity, CarIndex, EntityPosition)
ENTITY_PARAM(0, 7) = 0;
if (params->param1 != 3 || (params->param2 != kPosition_8200 && params->param2 != kPosition_9510)) {
- LOADSCENE_FROM_POSITION();
+ loadSceneFromPosition();
break;
}
@@ -438,31 +430,29 @@ IMPLEMENT_FUNCTION_II(10, Mertens, updateEntity, CarIndex, EntityPosition)
break;
}
- LOADSCENE_FROM_POSITION();
+ loadSceneFromPosition();
break;
case 4:
getAction()->playAnimation(kEventMertensKronosConcertInvitation);
ENTITY_PARAM(2, 4) = 0;
- LOADSCENE_FROM_POSITION();
+ loadSceneFromPosition();
break;
case 5:
getAction()->playAnimation(getData()->entityPosition < getEntityData(kEntityPlayer)->entityPosition ? kEventMertensAskTylerCompartmentD : kEventMertensAskTylerCompartment);
- LOADSCENE_FROM_POSITION();
+ loadSceneFromPosition();
break;
case 6:
getAction()->playAnimation(kEventMertensDontMakeBed);
- LOADSCENE_FROM_POSITION();
+ loadSceneFromPosition();
ENTITY_PARAM(0, 4) = 0;
break;
}
break;
}
-
-#undef LOADSCENE_FROM_POSITION
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
@@ -4098,4 +4088,15 @@ IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_NULL_FUNCTION(54, Mertens)
+//////////////////////////////////////////////////////////////////////////
+// Helper functions
+//////////////////////////////////////////////////////////////////////////
+
+void Mertens::loadSceneFromPosition() {
+ if (getData()->direction != kDirectionUp)
+ getEntities()->loadSceneFromEntityPosition(getData()->car, (EntityPosition)(getData()->entityPosition + 750));
+ else
+ getEntities()->loadSceneFromEntityPosition(getData()->car, (EntityPosition)(getData()->entityPosition - 750), true);
+}
+
} // End of namespace LastExpress
Commit: 04a181a787befb9ef5bc2a3d524f622a5fcfaeeb
https://github.com/scummvm/scummvm/commit/04a181a787befb9ef5bc2a3d524f622a5fcfaeeb
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:30-07:00
Commit Message:
LASTEXPRESS: Replace 2 macros in Sophie entity implementation
Changed paths:
engines/lastexpress/entities/sophie.cpp
engines/lastexpress/entities/sophie.h
diff --git a/engines/lastexpress/entities/sophie.cpp b/engines/lastexpress/entities/sophie.cpp
index c2f25b7..10c4147 100644
--- a/engines/lastexpress/entities/sophie.cpp
+++ b/engines/lastexpress/entities/sophie.cpp
@@ -31,31 +31,6 @@
namespace LastExpress {
-#define CHAPTER_IMPLEMENTATION() \
- switch (savepoint.action) { \
- default: \
- break; \
- case kActionNone: \
- setup_chaptersHandler(); \
- break; \
- case kActionDefault: \
- getEntities()->clearSequences(kEntitySophie); \
- getData()->entityPosition = kPosition_4840; \
- getData()->location = kLocationInsideCompartment; \
- getData()->car = kCarRedSleeping; \
- getData()->clothes = kClothesDefault; \
- getData()->inventoryItem = kItemNone; \
- break; \
- }
-
-#define DEFAULT_ACTION_IMPLEMENTATION() \
- if (savepoint.action == kActionDefault) { \
- getData()->entityPosition = kPosition_4840; \
- getData()->location = kLocationInsideCompartment; \
- getData()->car = kCarRedSleeping; \
- getEntities()->clearSequences(kEntitySophie); \
- }
-
Sophie::Sophie(LastExpressEngine *engine) : Entity(engine, kEntitySophie) {
ADD_CALLBACK_FUNCTION(Sophie, reset);
ADD_CALLBACK_FUNCTION(Sophie, updateEntity);
@@ -217,27 +192,27 @@ IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(5, Sophie, function5)
- DEFAULT_ACTION_IMPLEMENTATION()
+ handleAction(savepoint);
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(6, Sophie, chapter2)
- CHAPTER_IMPLEMENTATION()
+ handleChapter(savepoint);
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(7, Sophie, chapter3)
- CHAPTER_IMPLEMENTATION()
+ handleChapter(savepoint);
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(8, Sophie, chapter4)
- CHAPTER_IMPLEMENTATION()
+ handleChapter(savepoint);
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_FUNCTION(9, Sophie, function9)
- DEFAULT_ACTION_IMPLEMENTATION()
+ handleAction(savepoint);
IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
@@ -271,4 +246,37 @@ IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_NULL_FUNCTION(12, Sophie)
+//////////////////////////////////////////////////////////////////////////
+// Helpers functions
+//////////////////////////////////////////////////////////////////////////
+
+void Sophie::handleAction(const SavePoint &savepoint) {
+ if (savepoint.action == kActionDefault) {
+ getData()->entityPosition = kPosition_4840;
+ getData()->location = kLocationInsideCompartment;
+ getData()->car = kCarRedSleeping;
+ getEntities()->clearSequences(kEntitySophie);
+ }
+}
+
+void Sophie::handleChapter(const SavePoint &savepoint) {
+ switch (savepoint.action) {
+ default:
+ break;
+
+ case kActionNone:
+ setup_chaptersHandler();
+ break;
+
+ case kActionDefault:
+ getEntities()->clearSequences(kEntitySophie);
+ getData()->entityPosition = kPosition_4840;
+ getData()->location = kLocationInsideCompartment;
+ getData()->car = kCarRedSleeping;
+ getData()->clothes = kClothesDefault;
+ getData()->inventoryItem = kItemNone;
+ break;
+ }
+}
+
} // End of namespace LastExpress
diff --git a/engines/lastexpress/entities/sophie.h b/engines/lastexpress/entities/sophie.h
index c2ca348..47cfa80 100644
--- a/engines/lastexpress/entities/sophie.h
+++ b/engines/lastexpress/entities/sophie.h
@@ -88,6 +88,10 @@ public:
DECLARE_FUNCTION(chapter5Handler)
DECLARE_NULL_FUNCTION()
+
+private:
+ void handleAction(const SavePoint &savepoint);
+ void handleChapter(const SavePoint &savepoint);
};
} // End of namespace LastExpress
Commit: 3cf7e8ccf347fd57a82eb5df39ac4941a4f6c2b1
https://github.com/scummvm/scummvm/commit/3cf7e8ccf347fd57a82eb5df39ac4941a4f6c2b1
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:30-07:00
Commit Message:
LASTEXPRESS: Replace INCREMENT_DIRECTION_COUNTER macro
Changed paths:
engines/lastexpress/game/entities.cpp
engines/lastexpress/game/entities.h
diff --git a/engines/lastexpress/game/entities.cpp b/engines/lastexpress/game/entities.cpp
index f2201ac..4cdefcd 100644
--- a/engines/lastexpress/game/entities.cpp
+++ b/engines/lastexpress/game/entities.cpp
@@ -669,11 +669,12 @@ void Entities::executeCallbacks() {
//////////////////////////////////////////////////////////////////////////
// Processing
//////////////////////////////////////////////////////////////////////////
-#define INCREMENT_DIRECTION_COUNTER() { \
- data->doProcessEntity = false; \
- if (data->direction == kDirectionRight || (data->direction == kDirectionSwitch && data->directionSwitch == kDirectionRight)) \
- ++data->field_4A1; \
- }
+void Entities::incrementDirectionCounter(EntityData::EntityCallData *data) {
+ data->doProcessEntity = false;
+
+ if (data->direction == kDirectionRight || (data->direction == kDirectionSwitch && data->directionSwitch == kDirectionRight))
+ ++data->field_4A1;
+}
void Entities::processEntity(EntityIndex entityIndex) {
EntityData::EntityCallData *data = getData(entityIndex);
@@ -692,7 +693,7 @@ void Entities::processEntity(EntityIndex entityIndex) {
getScenes()->removeAndRedraw(&data->frame, false);
getScenes()->removeAndRedraw(&data->frame1, false);
- INCREMENT_DIRECTION_COUNTER();
+ incrementDirectionCounter(data);
return;
}
@@ -722,7 +723,7 @@ label_nosequence:
processFrame(entityIndex, false, true);
if (!getFlags()->flag_entities_0 && !data->doProcessEntity) {
- INCREMENT_DIRECTION_COUNTER();
+ incrementDirectionCounter(data);
return;
}
} else {
@@ -740,7 +741,7 @@ label_nosequence:
data->position = 0;
}
- INCREMENT_DIRECTION_COUNTER();
+ incrementDirectionCounter(data);
}
return;
}
@@ -789,7 +790,7 @@ label_nosequence:
}
}
- INCREMENT_DIRECTION_COUNTER();
+ incrementDirectionCounter(data);
}
void Entities::computeCurrentFrame(EntityIndex entityIndex) const {
diff --git a/engines/lastexpress/game/entities.h b/engines/lastexpress/game/entities.h
index eb5eae4..a9de793 100644
--- a/engines/lastexpress/game/entities.h
+++ b/engines/lastexpress/game/entities.h
@@ -344,6 +344,7 @@ private:
uint _positions[_positionsCount];
void executeCallbacks();
+ void incrementDirectionCounter(EntityData::EntityCallData *data);
void processEntity(EntityIndex entity);
void drawSequence(EntityIndex entity, const char *sequence, EntityDirection direction) const;
Commit: be94a24fd2cf3e89e3976eb52581c5a8a65d81a1
https://github.com/scummvm/scummvm/commit/be94a24fd2cf3e89e3976eb52581c5a8a65d81a1
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:31-07:00
Commit Message:
LASTEXPRESS: Replace INVERT_Y macro
Changed paths:
engines/lastexpress/game/beetle.cpp
engines/lastexpress/game/beetle.h
diff --git a/engines/lastexpress/game/beetle.cpp b/engines/lastexpress/game/beetle.cpp
index f959476..2a72459 100644
--- a/engines/lastexpress/game/beetle.cpp
+++ b/engines/lastexpress/game/beetle.cpp
@@ -336,26 +336,13 @@ void Beetle::drawUpdate() {
}
}
-#define INVERT_Y() \
- switch (_data->indexes[_data->offset]) { \
- default: \
- break; \
- case 24: \
- case 25: \
- case 26: \
- case 27: \
- case 28: \
- _data->coordY = -_data->coordY; \
- break; \
- }
-
// Invert direction
- INVERT_Y();
+ invertDirection();
SequenceFrame *frame = new SequenceFrame(_data->currentSequence, (uint16)_data->currentFrame);
updateFrame(frame);
- INVERT_Y();
+ invertDirection();
getScenes()->addToQueue(frame);
@@ -363,6 +350,21 @@ void Beetle::drawUpdate() {
_data->frame = frame;
}
+void Beetle::invertDirection() {
+ switch (_data->indexes[_data->offset]) {
+ default:
+ break;
+
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ case 28:
+ _data->coordY = -_data->coordY;
+ break;
+ }
+}
+
void Beetle::move() {
if (!_data)
error("[Beetle::move] Sequences have not been loaded");
diff --git a/engines/lastexpress/game/beetle.h b/engines/lastexpress/game/beetle.h
index d3c47f3..034ebbd 100644
--- a/engines/lastexpress/game/beetle.h
+++ b/engines/lastexpress/game/beetle.h
@@ -111,6 +111,7 @@ private:
void updateFrame(SequenceFrame *frame) const;
void updateData(uint32 index);
void drawUpdate();
+ void invertDirection();
};
} // End of namespace LastExpress
Commit: 0181a464eb864e15a02acd3ab7fb700a7cac0007
https://github.com/scummvm/scummvm/commit/0181a464eb864e15a02acd3ab7fb700a7cac0007
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:32-07:00
Commit Message:
LASTEXPRESS: Use filter 16 as default filter for NIS animations
This makes sure the sound is at the correct volume
Changed paths:
engines/lastexpress/data/snd.cpp
engines/lastexpress/shared.h
diff --git a/engines/lastexpress/data/snd.cpp b/engines/lastexpress/data/snd.cpp
index 3deb2d6..51d0815 100644
--- a/engines/lastexpress/data/snd.cpp
+++ b/engines/lastexpress/data/snd.cpp
@@ -526,7 +526,7 @@ void AppendableSound::queueBuffer(Common::SeekableReadStream *bufferIn) {
// Setup the ADPCM decoder
uint32 sizeIn = (uint32)bufferIn->size();
Audio::AudioStream *adpcm = makeDecoder(bufferIn, sizeIn);
- ((LastExpress_ADPCMStream *)adpcm)->setFilterId(1);
+ ((LastExpress_ADPCMStream *)adpcm)->setFilterId(16);
// Queue the stream
_as->queueAudioStream(adpcm);
diff --git a/engines/lastexpress/shared.h b/engines/lastexpress/shared.h
index d60a498..bebd149 100644
--- a/engines/lastexpress/shared.h
+++ b/engines/lastexpress/shared.h
@@ -80,7 +80,8 @@ enum SoundFlag {
kFlagMusic = 0x5000010,
kFlagType3 = 0x6000000,
kFlagLoop = 0x6001008,
- kFlagType9 = 0x7000000
+ kFlagType9 = 0x7000000,
+ kFlagNIS = 0x7002010
};
enum SoundState {
Commit: d830c0edc9e53b5a3274535139179c2ef029a5d5
https://github.com/scummvm/scummvm/commit/d830c0edc9e53b5a3274535139179c2ef029a5d5
Author: Littleboy (littleboy at scummvm.org)
Date: 2012-07-16T20:51:32-07:00
Commit Message:
LASTEXPRESS: Replace TIME_CHECK_SAVEPOINT and TIME_CHECK_OBJECT macros
Changed paths:
engines/lastexpress/entities/abbot.cpp
engines/lastexpress/entities/august.cpp
engines/lastexpress/entities/coudert.cpp
engines/lastexpress/entities/entity.cpp
engines/lastexpress/entities/entity.h
engines/lastexpress/entities/entity_intern.h
engines/lastexpress/entities/kahina.cpp
engines/lastexpress/entities/mertens.cpp
engines/lastexpress/entities/milos.cpp
engines/lastexpress/entities/rebecca.cpp
engines/lastexpress/entities/tatiana.cpp
diff --git a/engines/lastexpress/entities/abbot.cpp b/engines/lastexpress/entities/abbot.cpp
index eef64bd..9280068 100644
--- a/engines/lastexpress/entities/abbot.cpp
+++ b/engines/lastexpress/entities/abbot.cpp
@@ -415,7 +415,7 @@ IMPLEMENT_FUNCTION(22, Abbot, function22)
break;
case kActionNone:
- TIME_CHECK_SAVEPOINT(kTime1971000, params->param1, kEntityAbbot, kEntityServers0, kAction218586752);
+ Entity::timeCheckSavepoint(kTime1971000, params->param1, kEntityAbbot, kEntityServers0, kAction218586752);
if (getState()->time > kTime1989000 && getEntities()->isSomebodyInsideRestaurantOrSalon()) {
getData()->inventoryItem = kItemNone;
@@ -1319,7 +1319,7 @@ IMPLEMENT_FUNCTION(41, Abbot, chapter4Handler)
break;
case kActionNone:
- TIME_CHECK_SAVEPOINT(kTime2358000, params->param1, kEntityAbbot, kEntityServers0, kAction218128129);
+ Entity::timeCheckSavepoint(kTime2358000, params->param1, kEntityAbbot, kEntityServers0, kAction218128129);
if (getState()->time > kTime2389500 && getEntities()->isSomebodyInsideRestaurantOrSalon())
setup_function42();
diff --git a/engines/lastexpress/entities/august.cpp b/engines/lastexpress/entities/august.cpp
index 86c02e4..f255d04 100644
--- a/engines/lastexpress/entities/august.cpp
+++ b/engines/lastexpress/entities/august.cpp
@@ -1811,7 +1811,7 @@ IMPLEMENT_FUNCTION(36, August, chapter2Handler)
break;
case kActionNone:
- TIME_CHECK_SAVEPOINT(kTime1755000, params->param2, kEntityAugust, kEntityServers0, kAction252568704);
+ Entity::timeCheckSavepoint(kTime1755000, params->param2, kEntityAugust, kEntityServers0, kAction252568704);
if (getState()->time > kTime1773000 && params->param1 && getEntities()->isSomebodyInsideRestaurantOrSalon()) {
getData()->inventoryItem = kItemNone;
@@ -1960,7 +1960,7 @@ IMPLEMENT_FUNCTION(38, August, function38)
break;
case kActionNone:
- TIME_CHECK_SAVEPOINT(kTime1801800, params->param1, kEntityAugust, kEntityRebecca, kAction155980128);
+ Entity::timeCheckSavepoint(kTime1801800, params->param1, kEntityAugust, kEntityRebecca, kAction155980128);
TIME_CHECK_CALLBACK(kTime1820700, params->param2, 3, setup_callbackActionRestaurantOrSalon);
break;
@@ -2210,7 +2210,7 @@ IMPLEMENT_FUNCTION(43, August, chapter3Handler)
break;
case kActionNone:
- TIME_CHECK_SAVEPOINT(kTime1953000, params->param2, kEntityAugust, kEntityAnna, kAction291662081);
+ Entity::timeCheckSavepoint(kTime1953000, params->param2, kEntityAugust, kEntityAnna, kAction291662081);
// Set as same position as Anna
if (params->param1) {
diff --git a/engines/lastexpress/entities/coudert.cpp b/engines/lastexpress/entities/coudert.cpp
index eea9dda..77cdddd 100644
--- a/engines/lastexpress/entities/coudert.cpp
+++ b/engines/lastexpress/entities/coudert.cpp
@@ -2285,9 +2285,9 @@ label_callback_10:
if (!ENTITY_PARAM(0, 2))
break;
- TIME_CHECK_OBJECT(kTime1107000, params->param4, kObject111, kObjectLocation2);
- TIME_CHECK_OBJECT(kTime1161000, params->param5, kObject111, kObjectLocation3);
- TIME_CHECK_OBJECT(kTime1206000, params->param6, kObject111, kObjectLocation4);
+ timeCheckObject(kTime1107000, params->param4, kObject111, kObjectLocation2);
+ timeCheckObject(kTime1161000, params->param5, kObject111, kObjectLocation3);
+ timeCheckObject(kTime1206000, params->param6, kObject111, kObjectLocation4);
break;
case kAction1:
@@ -2835,9 +2835,9 @@ label_callback_18:
label_callback_19:
if (ENTITY_PARAM(0, 2)) {
- TIME_CHECK_OBJECT(kTime2025000, params->param7, kObject111, kObjectLocation7);
- TIME_CHECK_OBJECT(kTime2133000, params->param8, kObject111, kObjectLocation8);
- TIME_CHECK_OBJECT(kTime2173500, CURRENT_PARAM(1, 1), kObject111, kObjectLocation9);
+ timeCheckObject(kTime2025000, params->param7, kObject111, kObjectLocation7);
+ timeCheckObject(kTime2133000, params->param8, kObject111, kObjectLocation8);
+ timeCheckObject(kTime2173500, CURRENT_PARAM(1, 1), kObject111, kObjectLocation9);
}
break;
diff --git a/engines/lastexpress/entities/entity.cpp b/engines/lastexpress/entities/entity.cpp
index a412dc9..743adc3 100644
--- a/engines/lastexpress/entities/entity.cpp
+++ b/engines/lastexpress/entities/entity.cpp
@@ -29,6 +29,7 @@
#include "lastexpress/game/action.h"
#include "lastexpress/game/entities.h"
#include "lastexpress/game/logic.h"
+#include "lastexpress/game/object.h"
#include "lastexpress/game/scenes.h"
#include "lastexpress/game/state.h"
#include "lastexpress/game/savegame.h"
@@ -592,4 +593,22 @@ void Entity::callbackAction() {
getSavePoints()->call(_entityIndex, _entityIndex, kActionCallback);
}
+//////////////////////////////////////////////////////////////////////////
+// Helper functions
+//////////////////////////////////////////////////////////////////////////
+
+void Entity::timeCheckSavepoint(TimeValue timeValue, uint ¶meter, EntityIndex entity1, EntityIndex entity2, ActionIndex action) {
+ if (getState()->time > timeValue && !parameter) {
+ parameter = 1;
+ getSavePoints()->push(entity1, entity2, action);
+ }
+}
+
+void Entity::timeCheckObject(TimeValue timeValue, uint ¶meter, ObjectIndex object, ObjectLocation location) {
+ if (getState()->time > timeValue && !parameter) {
+ parameter = 1;
+ getObjects()->updateLocation2(object, location);
+ }
+}
+
} // End of namespace LastExpress
diff --git a/engines/lastexpress/entities/entity.h b/engines/lastexpress/entities/entity.h
index 01a1955..f29d78e 100644
--- a/engines/lastexpress/entities/entity.h
+++ b/engines/lastexpress/entities/entity.h
@@ -845,6 +845,13 @@ protected:
* Store the current callback information and perform the callback action
*/
void callbackAction();
+
+ //////////////////////////////////////////////////////////////////////////
+ // Helper functions
+ //////////////////////////////////////////////////////////////////////////
+
+ void timeCheckSavepoint(TimeValue timeValue, uint ¶meter, EntityIndex entity1, EntityIndex entity2, ActionIndex action);
+ void timeCheckObject(TimeValue timeValue, uint ¶meter, ObjectIndex index, ObjectLocation location);
};
diff --git a/engines/lastexpress/entities/entity_intern.h b/engines/lastexpress/entities/entity_intern.h
index c622ff9..64814a1 100644
--- a/engines/lastexpress/entities/entity_intern.h
+++ b/engines/lastexpress/entities/entity_intern.h
@@ -326,12 +326,6 @@ void class::setup_##name() { \
break; \
}
-#define TIME_CHECK_SAVEPOINT(timeValue, parameter, entity1, entity2, action) \
- if (getState()->time > timeValue && !parameter) { \
- parameter = 1; \
- getSavePoints()->push(entity1, entity2, action); \
- }
-
#define TIME_CHECK_CALLBACK(timeValue, parameter, callback, function) \
if (getState()->time > timeValue && !parameter) { \
parameter = 1; \
@@ -366,11 +360,11 @@ void class::setup_##name() { \
#define TIME_CHECK_CALLBACK_INVENTORY(timeValue, parameter, callback, function) \
if (getState()->time > timeValue && !parameter) { \
- parameter = 1; \
- getData()->inventoryItem = kItemNone; \
- setCallback(callback); \
- function(); \
- break; \
+ parameter = 1; \
+ getData()->inventoryItem = kItemNone; \
+ setCallback(callback); \
+ function(); \
+ break; \
}
#define TIME_CHECK_CALLBACK_ACTION(timeValue, parameter) \
@@ -389,12 +383,6 @@ void class::setup_##name() { \
break; \
}
-#define TIME_CHECK_OBJECT(timeValue, parameter, object, location) \
- if (getState()->time > timeValue && !parameter) { \
- parameter = 1; \
- getObjects()->updateLocation2(object, location); \
- }
-
#define TIME_CHECK_CAR(timeValue, parameter, callback, function) {\
if ((getState()->time <= timeValue && !getEntities()->isPlayerInCar(kCarGreenSleeping)) || !parameter) \
parameter = (uint)getState()->time + 75; \
diff --git a/engines/lastexpress/entities/kahina.cpp b/engines/lastexpress/entities/kahina.cpp
index 0c40450..6bb2e6b 100644
--- a/engines/lastexpress/entities/kahina.cpp
+++ b/engines/lastexpress/entities/kahina.cpp
@@ -267,7 +267,7 @@ IMPLEMENT_FUNCTION(11, Kahina, chapter1Handler)
return;
if (getProgress().jacket != kJacketOriginal)
- TIME_CHECK_SAVEPOINT(kTime1107000, params->param1, kEntityKahina, kEntityMertens, kAction238732837);
+ Entity::timeCheckSavepoint(kTime1107000, params->param1, kEntityKahina, kEntityMertens, kAction238732837);
if (getProgress().eventMertensKronosInvitation)
setup_function12();
diff --git a/engines/lastexpress/entities/mertens.cpp b/engines/lastexpress/entities/mertens.cpp
index 517ff76..328c8e8 100644
--- a/engines/lastexpress/entities/mertens.cpp
+++ b/engines/lastexpress/entities/mertens.cpp
@@ -2993,7 +2993,7 @@ IMPLEMENT_FUNCTION(42, Mertens, function42)
getData()->inventoryItem = kItemInvalid;
if (!params->param2) {
- TIME_CHECK_SAVEPOINT(kTime1125000, params->param3, kEntityMertens, kEntityMahmud, kAction170483072);
+ Entity::timeCheckSavepoint(kTime1125000, params->param3, kEntityMertens, kEntityMahmud, kAction170483072);
if (params->param4 != kTimeInvalid && getState()->time > kTimeCityChalons) {
diff --git a/engines/lastexpress/entities/milos.cpp b/engines/lastexpress/entities/milos.cpp
index 21f3b06..c33a8b8 100644
--- a/engines/lastexpress/entities/milos.cpp
+++ b/engines/lastexpress/entities/milos.cpp
@@ -720,7 +720,7 @@ IMPLEMENT_FUNCTION(15, Milos, chapter1Handler)
break;
case kActionNone:
- TIME_CHECK_SAVEPOINT(kTime1071000, params->param3, kEntityMilos, kEntityServers1, kAction223002560);
+ Entity::timeCheckSavepoint(kTime1071000, params->param3, kEntityMilos, kEntityServers1, kAction223002560);
if (getState()->time > kTime1089000 && getEntities()->isSomebodyInsideRestaurantOrSalon()) {
setup_function16();
@@ -1534,7 +1534,7 @@ IMPLEMENT_FUNCTION(29, Milos, chapter4Handler)
TIME_CHECK_PLAYSOUND_MILOS(kTime2370600, params->param5, "Mil4015");
- TIME_CHECK_SAVEPOINT(kTime2407500, params->param6, kEntityMilos, kEntityVesna, kAction55996766);
+ Entity::timeCheckSavepoint(kTime2407500, params->param6, kEntityMilos, kEntityVesna, kAction55996766);
break;
case kActionCallback:
diff --git a/engines/lastexpress/entities/rebecca.cpp b/engines/lastexpress/entities/rebecca.cpp
index 4f7be38..3ef2669 100644
--- a/engines/lastexpress/entities/rebecca.cpp
+++ b/engines/lastexpress/entities/rebecca.cpp
@@ -841,7 +841,7 @@ IMPLEMENT_FUNCTION(24, Rebecca, function24)
break;
case kActionNone:
- TIME_CHECK_SAVEPOINT(kTime1134000, params->param2, kEntityRebecca, kEntityServers0, kAction223712416);
+ Entity::timeCheckSavepoint(kTime1134000, params->param2, kEntityRebecca, kEntityServers0, kAction223712416);
if (!params->param1)
break;
diff --git a/engines/lastexpress/entities/tatiana.cpp b/engines/lastexpress/entities/tatiana.cpp
index 3b9cc6d..b15a0a1 100644
--- a/engines/lastexpress/entities/tatiana.cpp
+++ b/engines/lastexpress/entities/tatiana.cpp
@@ -440,7 +440,7 @@ IMPLEMENT_FUNCTION(19, Tatiana, chapter1Handler)
}
label_tatiana_chapter1_2:
- TIME_CHECK_SAVEPOINT(kTime1084500, params->param7, kEntityTatiana, kEntityPascale, kAction257489762);
+ Entity::timeCheckSavepoint(kTime1084500, params->param7, kEntityTatiana, kEntityPascale, kAction257489762);
if (params->param1) {
UPDATE_PARAM(params->param8, getState()->timeTicks, 90);
More information about the Scummvm-git-logs
mailing list