aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLittleboy2012-07-15 22:48:00 -0400
committerLittleboy2012-07-16 23:51:30 -0400
commit04a181a787befb9ef5bc2a3d524f622a5fcfaeeb (patch)
tree9bc24f3c86ce0780cc4fbdccc9e678e42563b68e
parent2b116592cb5654656d2b8118e1a3674e195bb00e (diff)
downloadscummvm-rg350-04a181a787befb9ef5bc2a3d524f622a5fcfaeeb.tar.gz
scummvm-rg350-04a181a787befb9ef5bc2a3d524f622a5fcfaeeb.tar.bz2
scummvm-rg350-04a181a787befb9ef5bc2a3d524f622a5fcfaeeb.zip
LASTEXPRESS: Replace 2 macros in Sophie entity implementation
-rw-r--r--engines/lastexpress/entities/sophie.cpp68
-rw-r--r--engines/lastexpress/entities/sophie.h4
2 files changed, 42 insertions, 30 deletions
diff --git a/engines/lastexpress/entities/sophie.cpp b/engines/lastexpress/entities/sophie.cpp
index c2f25b7eb1..10c414763c 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 c2ca348027..47cfa8065c 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