aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/player.h
diff options
context:
space:
mode:
authorPaul Gilbert2016-01-07 18:11:24 +1100
committerPaul Gilbert2016-01-07 18:11:24 +1100
commitcf5856492c6ce1820339dd76f9d3175f9f457215 (patch)
tree01fa705a0eaca65dd9f4e1bc9f0582c5c1afc365 /engines/mads/player.h
parenta330d993ae6b216b223d1acada2652ed23286490 (diff)
downloadscummvm-rg350-cf5856492c6ce1820339dd76f9d3175f9f457215.tar.gz
scummvm-rg350-cf5856492c6ce1820339dd76f9d3175f9f457215.tar.bz2
scummvm-rg350-cf5856492c6ce1820339dd76f9d3175f9f457215.zip
MADS: Phantom: Flesh out walk triggers
Diffstat (limited to 'engines/mads/player.h')
-rw-r--r--engines/mads/player.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/engines/mads/player.h b/engines/mads/player.h
index 55000047fb..04b86b76b4 100644
--- a/engines/mads/player.h
+++ b/engines/mads/player.h
@@ -45,6 +45,23 @@ enum Facing {
FACING_NONE = 5, FACING_DUMMY = 0
};
+struct StopWalkerEntry {
+ int _stack;
+ int _trigger;
+
+ StopWalkerEntry() : _stack(0), _trigger(0) {}
+ StopWalkerEntry(int stack, int trigger) : _stack(stack), _trigger(trigger) {}
+
+ void synchronize(Common::Serializer &s);
+};
+
+class StopWalkers : public Common::FixedStack<StopWalkerEntry, 12> {
+public:
+ StopWalkers() : Common::FixedStack<StopWalkerEntry, 12>() {}
+
+ void synchronize(Common::Serializer &s);
+};
+
class Player {
private:
static const int _directionListIndexes[32];
@@ -58,8 +75,6 @@ private:
int _distAccum;
int _pixelAccum;
int _deltaDistance;
- int _stopWalkerList[12];
- int _stopWalkerTrigger[12];
int _totalDistance;
void clearStopList();
@@ -138,12 +153,15 @@ public:
bool _readyToWalk;
bool _commandsAllowed;
bool _enableAtTarget;
- int _stopWalkerIndex;
int _centerOfGravity;
int _currentDepth;
int _currentScale;
Common::String _spritesPrefix;
+
int _walkTrigger;
+ TriggerMode _walkTriggerDest;
+ ActionDetails _walkTriggerAction;
+ StopWalkers _stopWalkers;
public:
Player(MADSEngine *vm);