diff options
Diffstat (limited to 'engines/lastexpress/entities/ivo.cpp')
-rw-r--r-- | engines/lastexpress/entities/ivo.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/engines/lastexpress/entities/ivo.cpp b/engines/lastexpress/entities/ivo.cpp index 12a23e7d37..bd38d69b8d 100644 --- a/engines/lastexpress/entities/ivo.cpp +++ b/engines/lastexpress/entities/ivo.cpp @@ -38,15 +38,15 @@ namespace LastExpress { Ivo::Ivo(LastExpressEngine *engine) : Entity(engine, kEntityIvo) { ADD_CALLBACK_FUNCTION(Ivo, reset); - ADD_CALLBACK_FUNCTION(Ivo, draw); - ADD_CALLBACK_FUNCTION(Ivo, enterExitCompartment); - ADD_CALLBACK_FUNCTION(Ivo, updateFromTime); - ADD_CALLBACK_FUNCTION(Ivo, updateFromTicks); - ADD_CALLBACK_FUNCTION(Ivo, updateEntity); + ADD_CALLBACK_FUNCTION_S(Ivo, draw); + ADD_CALLBACK_FUNCTION_SI(Ivo, enterExitCompartment); + ADD_CALLBACK_FUNCTION_I(Ivo, updateFromTime); + ADD_CALLBACK_FUNCTION_I(Ivo, updateFromTicks); + ADD_CALLBACK_FUNCTION_II(Ivo, updateEntity); ADD_CALLBACK_FUNCTION(Ivo, callbackActionOnDirection); - ADD_CALLBACK_FUNCTION(Ivo, playSound); + ADD_CALLBACK_FUNCTION_S(Ivo, playSound); ADD_CALLBACK_FUNCTION(Ivo, callbackActionRestaurantOrSalon); - ADD_CALLBACK_FUNCTION(Ivo, savegame); + ADD_CALLBACK_FUNCTION_II(Ivo, savegame); ADD_CALLBACK_FUNCTION(Ivo, goCompartment); ADD_CALLBACK_FUNCTION(Ivo, sitAtTableWithSalko); ADD_CALLBACK_FUNCTION(Ivo, leaveTableWithSalko); @@ -270,6 +270,7 @@ IMPLEMENT_FUNCTION(15, Ivo, chapter1Handler) case kActionNone: getData()->entityPosition = getEntityData(kEntityMilos)->entityPosition; getData()->location = getEntityData(kEntityMilos)->location; + getData()->car = getEntityData(kEntityMilos)->car; break; case kActionCallback: @@ -318,7 +319,7 @@ IMPLEMENT_FUNCTION(16, Ivo, inCompartment) case 1: getEntities()->drawSequenceLeft(kEntityIvo, "613Ch"); - getEntities()->enterCompartment(kEntityIvo, kObjectCompartmentH); + getEntities()->enterCompartment(kEntityIvo, kObjectCompartmentH, true); getSavePoints()->push(kEntityIvo, kEntityCoudert, kAction88652208); break; @@ -384,7 +385,7 @@ IMPLEMENT_FUNCTION(18, Ivo, chapter2) getData()->inventoryItem = kItemNone; getObjects()->update(kObjectCompartmentH, kEntityPlayer, kObjectLocation3, kCursorHandKnock, kCursorHand); - getObjects()->update(kObject47, kEntityPlayer, kObjectLocationNone, kCursorKeepValue, kCursorKeepValue); + getObjects()->update(kObject47, kEntityPlayer, kObjectLocation1, kCursorKeepValue, kCursorKeepValue); break; } @@ -744,7 +745,7 @@ IMPLEMENT_FUNCTION_END ////////////////////////////////////////////////////////////////////////// IMPLEMENT_FUNCTION(31, Ivo, chapter5Handler) - if (savepoint.action == kActionProceedChapter5) + if (savepoint.action == kAction192637492) setup_fightCath(); IMPLEMENT_FUNCTION_END @@ -780,7 +781,7 @@ IMPLEMENT_FUNCTION(32, Ivo, fightCath) case 2: params->param1 = getFight()->setup(kFightIvo); if (params->param1) { - getLogic()->gameOver(kSavegameTypeIndex, 0, kSceneNone, true); + getLogic()->gameOver(kSavegameTypeIndex, 0, kSceneNone, params->param1 == Fight::kFightEndLost); } else { getScenes()->loadSceneFromPosition(kCarBaggageRear, 96); setup_knockedOut(); |