aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJulien2012-07-24 22:47:42 -0400
committerJulien2012-07-27 00:15:02 -0400
commitb6b98483c5117ee3cee0a52607e5f5f4acb7def7 (patch)
tree56a853f631394b86eb6b6c6b6d531429b77be13a /engines
parent37770212c0be36de982e16448fb62aa370a70f6a (diff)
downloadscummvm-rg350-b6b98483c5117ee3cee0a52607e5f5f4acb7def7.tar.gz
scummvm-rg350-b6b98483c5117ee3cee0a52607e5f5f4acb7def7.tar.bz2
scummvm-rg350-b6b98483c5117ee3cee0a52607e5f5f4acb7def7.zip
LASTEXPRESS: Remove TIME_CHECK_CALLBACK_3 macro
Diffstat (limited to 'engines')
-rw-r--r--engines/lastexpress/entities/entity_intern.h8
-rw-r--r--engines/lastexpress/entities/francois.cpp30
-rw-r--r--engines/lastexpress/entities/francois.h3
-rw-r--r--engines/lastexpress/entities/rebecca.cpp7
-rw-r--r--engines/lastexpress/entities/verges.cpp7
5 files changed, 40 insertions, 15 deletions
diff --git a/engines/lastexpress/entities/entity_intern.h b/engines/lastexpress/entities/entity_intern.h
index 9818a20d64..f12f34ac74 100644
--- a/engines/lastexpress/entities/entity_intern.h
+++ b/engines/lastexpress/entities/entity_intern.h
@@ -270,14 +270,6 @@ void class::setup_##name() { \
break; \
}
-#define TIME_CHECK_CALLBACK_3(timeValue, parameter, callback, function, param1, param2, param3) \
- if (getState()->time > timeValue && !parameter) { \
- parameter = 1; \
- setCallback(callback); \
- function(param1, param2, param3); \
- break; \
- }
-
} // End of namespace LastExpress
#endif // LASTEXPRESS_ENTITY_INTERN_H
diff --git a/engines/lastexpress/entities/francois.cpp b/engines/lastexpress/entities/francois.cpp
index 89fdcaf668..c39eb1197c 100644
--- a/engines/lastexpress/entities/francois.cpp
+++ b/engines/lastexpress/entities/francois.cpp
@@ -1007,10 +1007,11 @@ label_callback_5:
}
label_callback_6:
- TIME_CHECK_CALLBACK_3(kTime1782000, params->param6, 7, setup_function14, kObjectCompartmentC, kPosition_6470, "c");
+ if (timeCheckCallbackCompartment(kTime1782000, params->param6, 7, kObjectCompartmentC, kPosition_6470, "c"))
+ break;
label_callback_7:
- TIME_CHECK_CALLBACK_3(kTime1813500, params->param7, 8, setup_function14, kObjectCompartmentF, kPosition_4070, "f");
+ timeCheckCallbackCompartment(kTime1813500, params->param7, 8, kObjectCompartmentF, kPosition_4070, "f");
break;
case kActionCallback:
@@ -1136,13 +1137,15 @@ label_callback_11:
}
label_callback_12:
- TIME_CHECK_CALLBACK_3(kTime2040300, CURRENT_PARAM(1, 5), 13, setup_function14, kObjectCompartmentE, kPosition_4840, "e");
+ if (timeCheckCallbackCompartment(kTime2040300, CURRENT_PARAM(1, 5), 13, kObjectCompartmentE, kPosition_4840, "e"))
+ break;
label_callback_13:
- TIME_CHECK_CALLBACK_3(kTime2040300, CURRENT_PARAM(1, 6), 14, setup_function14, kObjectCompartmentF, kPosition_4070, "f");
+ if (timeCheckCallbackCompartment(kTime2040300, CURRENT_PARAM(1, 6), 14, kObjectCompartmentF, kPosition_4070, "f"))
+ break;
label_callback_14:
- TIME_CHECK_CALLBACK_3(kTime2040300, CURRENT_PARAM(1, 7), 15, setup_function14, kObjectCompartmentB, kPosition_7500, "b");
+ timeCheckCallbackCompartment(kTime2040300, CURRENT_PARAM(1, 7), 15, kObjectCompartmentB, kPosition_7500, "b");
}
}
break;
@@ -1298,4 +1301,21 @@ IMPLEMENT_FUNCTION_END
//////////////////////////////////////////////////////////////////////////
IMPLEMENT_NULL_FUNCTION(31, Francois)
+
+//////////////////////////////////////////////////////////////////////////
+// Helper functions
+//////////////////////////////////////////////////////////////////////////
+bool Francois::timeCheckCallbackCompartment(TimeValue timeValue, uint &parameter, byte callback, ObjectIndex compartment, EntityPosition position, const char* sequenceSuffix) {
+ if (getState()->time > timeValue && !parameter) {
+ parameter = 1;
+ setCallback(callback);
+ setup_function14(compartment, position, sequenceSuffix);
+
+ return true;
+ }
+
+ return false;
+}
+
+
} // End of namespace LastExpress
diff --git a/engines/lastexpress/entities/francois.h b/engines/lastexpress/entities/francois.h
index 19eca6fb50..09715dba67 100644
--- a/engines/lastexpress/entities/francois.h
+++ b/engines/lastexpress/entities/francois.h
@@ -160,6 +160,9 @@ public:
DECLARE_FUNCTION(function30)
DECLARE_NULL_FUNCTION()
+
+private:
+ bool timeCheckCallbackCompartment(TimeValue timeValue, uint &parameter, byte callback, ObjectIndex compartment, EntityPosition position, const char* sequenceSuffix);
};
} // End of namespace LastExpress
diff --git a/engines/lastexpress/entities/rebecca.cpp b/engines/lastexpress/entities/rebecca.cpp
index 0dc201be71..79d13a93f5 100644
--- a/engines/lastexpress/entities/rebecca.cpp
+++ b/engines/lastexpress/entities/rebecca.cpp
@@ -972,7 +972,12 @@ IMPLEMENT_FUNCTION(26, Rebecca, function26)
break;
case kActionNone:
- TIME_CHECK_CALLBACK_3(kTime1224000, params->param2, 1, setup_updatePosition, "118H", kCarRestaurant, 52);
+ if (getState()->time > kTime1224000 && !params->param2) {
+ params->param2 = 1;
+ setCallback(1);
+ setup_updatePosition("118H", kCarRestaurant, 52);
+ break;
+ }
if (params->param1) {
if (!Entity::updateParameter(params->param3, getState()->timeTicks, 90))
diff --git a/engines/lastexpress/entities/verges.cpp b/engines/lastexpress/entities/verges.cpp
index dfeae21338..e6526870d7 100644
--- a/engines/lastexpress/entities/verges.cpp
+++ b/engines/lastexpress/entities/verges.cpp
@@ -1280,7 +1280,12 @@ IMPLEMENT_FUNCTION(32, Verges, function32)
break;
case kActionNone:
- TIME_CHECK_CALLBACK_3(kTime2263500, params->param1, 5, setup_function10, kCarRedSleeping, kPosition_9460, "TRA3006");
+ if (getState()->time > kTime2263500 && !params->param1) {
+ params->param1 = 1;
+ setCallback(5);
+ setup_function10(kCarRedSleeping, kPosition_9460, "TRA3006");
+ break;
+ }
break;
case kActionDefault: