aboutsummaryrefslogtreecommitdiff
path: root/engines/lastexpress/entities/verges.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lastexpress/entities/verges.cpp')
-rw-r--r--engines/lastexpress/entities/verges.cpp67
1 files changed, 33 insertions, 34 deletions
diff --git a/engines/lastexpress/entities/verges.cpp b/engines/lastexpress/entities/verges.cpp
index b16217b5eb..c3e56d98c1 100644
--- a/engines/lastexpress/entities/verges.cpp
+++ b/engines/lastexpress/entities/verges.cpp
@@ -39,21 +39,21 @@ namespace LastExpress {
Verges::Verges(LastExpressEngine *engine) : Entity(engine, kEntityVerges) {
ADD_CALLBACK_FUNCTION(Verges, reset);
- ADD_CALLBACK_FUNCTION(Verges, draw);
+ ADD_CALLBACK_FUNCTION_S(Verges, draw);
ADD_CALLBACK_FUNCTION(Verges, callbackActionOnDirection);
- ADD_CALLBACK_FUNCTION(Verges, playSound);
- ADD_CALLBACK_FUNCTION(Verges, playSound16);
+ ADD_CALLBACK_FUNCTION_S(Verges, playSound);
+ ADD_CALLBACK_FUNCTION_S(Verges, playSound16);
ADD_CALLBACK_FUNCTION(Verges, callbackActionRestaurantOrSalon);
- ADD_CALLBACK_FUNCTION(Verges, savegame);
- ADD_CALLBACK_FUNCTION(Verges, updateEntity);
- ADD_CALLBACK_FUNCTION(Verges, walkBetweenCars);
- ADD_CALLBACK_FUNCTION(Verges, makeAnnouncement);
+ ADD_CALLBACK_FUNCTION_II(Verges, savegame);
+ ADD_CALLBACK_FUNCTION_II(Verges, updateEntity);
+ ADD_CALLBACK_FUNCTION_S(Verges, walkBetweenCars);
+ ADD_CALLBACK_FUNCTION_IIS(Verges, makeAnnouncement);
ADD_CALLBACK_FUNCTION(Verges, function11);
ADD_CALLBACK_FUNCTION(Verges, function12);
- ADD_CALLBACK_FUNCTION(Verges, baggageCar);
- ADD_CALLBACK_FUNCTION(Verges, updateFromTime);
- ADD_CALLBACK_FUNCTION(Verges, dialog);
- ADD_CALLBACK_FUNCTION(Verges, dialog2);
+ ADD_CALLBACK_FUNCTION_I(Verges, baggageCar);
+ ADD_CALLBACK_FUNCTION_I(Verges, updateFromTime);
+ ADD_CALLBACK_FUNCTION_IS(Verges, dialog);
+ ADD_CALLBACK_FUNCTION_ISS(Verges, dialog2);
ADD_CALLBACK_FUNCTION(Verges, talkAboutPassengerList);
ADD_CALLBACK_FUNCTION(Verges, chapter1);
ADD_CALLBACK_FUNCTION(Verges, talkHarem);
@@ -67,7 +67,7 @@ Verges::Verges(LastExpressEngine *engine) : Entity(engine, kEntityVerges) {
ADD_CALLBACK_FUNCTION(Verges, chapter2);
ADD_CALLBACK_FUNCTION(Verges, chapter2Handler);
ADD_CALLBACK_FUNCTION(Verges, chapter3);
- ADD_CALLBACK_FUNCTION(Verges, function30);
+ ADD_CALLBACK_FUNCTION_S(Verges, function30);
ADD_CALLBACK_FUNCTION(Verges, talkAboutMax);
ADD_CALLBACK_FUNCTION(Verges, function32);
ADD_CALLBACK_FUNCTION(Verges, function33);
@@ -492,7 +492,7 @@ IMPLEMENT_FUNCTION_ISS(16, Verges, dialog2, EntityIndex)
break;
case kActionNone:
- if (CURRENT_PARAM(1, 1) && params->param8) {
+ if (CURRENT_PARAM(1, 1) >= 2 && params->param8) {
getSavePoints()->push(kEntityVerges, (EntityIndex)params->param1, kAction125499160);
if (!getEntities()->isPlayerPosition(kCarGreenSleeping, 2) && !getEntities()->isPlayerPosition(kCarRedSleeping, 2))
@@ -742,7 +742,7 @@ IMPLEMENT_FUNCTION(25, Verges, policeSearch)
getData()->car = kCarRedSleeping;
getData()->entityPosition = kPosition_9270;
} else {
- if (getEntityData(kEntityPlayer)->car > kCarGreenSleeping
+ if (getEntityData(kEntityPlayer)->car < kCarGreenSleeping
|| (getEntityData(kEntityPlayer)->car == kCarGreenSleeping && getEntityData(kEntityPlayer)->entityPosition < kPosition_4840)) {
getSound()->playSound(kEntityPlayer, "BUMP");
getScenes()->loadSceneFromObject(kObjectCompartment5, true);
@@ -777,7 +777,7 @@ IMPLEMENT_FUNCTION(25, Verges, policeSearch)
setup_makeAnnouncement(kCarGreenSleeping, kPosition_540, "TRA1005");
} else {
setCallback(7);
- setup_makeAnnouncement(kCarRedSleeping, kPosition_9460, "TRA1006");
+ setup_makeAnnouncement(kCarRedSleeping, kPosition_9460, "TRA1005");
}
break;
}
@@ -911,15 +911,13 @@ label_callback3:
break;
label_callback4:
- if (Entity::timeCheckCallback(kTime1089000, params->param8, 5, WRAP_SETUP_FUNCTION(Verges, setup_function12)))
- break;
-
- params->param8 = 1;
-
- if (!params->param5) {
- setCallback(5);
- setup_function12();
- break;
+ if (getState()->time > kTime1089000 && !params->param8) {
+ params->param8 = 1;
+ if (!params->param5) {
+ setCallback(5);
+ setup_function12();
+ break;
+ }
}
label_callback8:
@@ -970,7 +968,7 @@ label_callback15:
case kActionOpenDoor:
setCallback(17);
- setup_baggageCar(savepoint.param.intValue < 106 ? true : false);
+ setup_baggageCar(savepoint.param.intValue == kObject105 ? true : false);
break;
case kActionDefault:
@@ -1130,7 +1128,7 @@ label_callback_6:
case kActionOpenDoor:
setCallback(8);
- setup_baggageCar(savepoint.param.intValue < 106);
+ setup_baggageCar(savepoint.param.intValue == kObject105);
break;
case kActionDefault:
@@ -1318,7 +1316,7 @@ IMPLEMENT_FUNCTION(32, Verges, function32)
break;
case 1:
- getData()->entityPosition = kPosition_8500;
+ getData()->entityPosition = kPosition_5800;
getData()->location = kLocationOutsideCompartment;
getSound()->playSound(kEntityVerges, "TRA3004");
@@ -1400,12 +1398,12 @@ IMPLEMENT_FUNCTION(33, Verges, function33)
getData()->entityPosition = kPosition_5799;
setCallback(getProgress().field_3C ? 4 : 5);
- setup_playSound(getProgress().field_3C ? "ABB3035A" : "ABB3035");
+ setup_playSound(getProgress().field_3C ? "ABB3035A" : "Abb3035");
break;
case 4:
setCallback(5);
- setup_playSound("ABB3035");
+ setup_playSound("Abb3035");
break;
case 5:
@@ -1480,7 +1478,7 @@ label_callback_9:
case kActionOpenDoor:
setCallback(11);
- setup_baggageCar(savepoint.param.intValue < 106);
+ setup_baggageCar(savepoint.param.intValue == kObject105);
break;
case kActionCallback:
@@ -1542,7 +1540,7 @@ IMPLEMENT_FUNCTION(35, Verges, organizeConcertInvitations)
case 2:
setCallback(3);
- setup_dialog(kEntityMertens, "Tra3011A");
+ setup_dialog(kEntityCoudert, "Tra3011A");
break;
case 3:
@@ -1614,7 +1612,7 @@ IMPLEMENT_FUNCTION(37, Verges, chapter4Handler)
}
label_callback_1:
- if (ENTITY_PARAM(0, 6)) {
+ if (!ENTITY_PARAM(0, 6)) {
if (ENTITY_PARAM(0, 3)) {
setCallback(2);
setup_talkAboutPassengerList();
@@ -1652,7 +1650,7 @@ label_callback_8:
case kActionOpenDoor:
setCallback(10);
- setup_baggageCar(savepoint.param.intValue < 106);
+ setup_baggageCar(savepoint.param.intValue == kObject105);
break;
case kActionDefault:
@@ -1739,7 +1737,7 @@ IMPLEMENT_FUNCTION(38, Verges, resetState)
getData()->entityPosition = kPosition_5790;
setCallback(1);
- setup_updateEntity(kCarGreenSleeping, kPosition_540);
+ setup_updateEntity(kCarRedSleeping, kPosition_540);
break;
}
IMPLEMENT_FUNCTION_END
@@ -1905,6 +1903,7 @@ void Verges::talk(const SavePoint &savepoint, const char *sound1, const char *so
break;
case 5:
+ setCallback(6);
setup_function11();
break;