aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/actor.h
diff options
context:
space:
mode:
authorRobert Crossfield2016-07-16 17:18:11 +1000
committerRobert Crossfield2016-07-19 18:54:14 +1000
commit44000ba8262a470612f1c83e2879b8b6f3d8a0b2 (patch)
tree146ad9fe2d11a9b35b43a5f36fc3faf87d886af3 /engines/scumm/actor.h
parent1a880c748c5cfb5ed64ca220ff332bc353726345 (diff)
downloadscummvm-rg350-44000ba8262a470612f1c83e2879b8b6f3d8a0b2.tar.gz
scummvm-rg350-44000ba8262a470612f1c83e2879b8b6f3d8a0b2.tar.bz2
scummvm-rg350-44000ba8262a470612f1c83e2879b8b6f3d8a0b2.zip
SCUMM: Maniac V0: Implement original walkbox queue, Cleanup actor walk code
Diffstat (limited to 'engines/scumm/actor.h')
-rw-r--r--engines/scumm/actor.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/engines/scumm/actor.h b/engines/scumm/actor.h
index c1a3f23318..3bc301fddb 100644
--- a/engines/scumm/actor.h
+++ b/engines/scumm/actor.h
@@ -350,6 +350,11 @@ class Actor_v0 : public Actor_v2 {
public:
Common::Point _CurrentWalkTo, _NewWalkTo;
+ Common::Array<byte> _walkboxHistory;
+
+ byte _walkboxQueue[0x10];
+ byte _walkboxQueueIndex;
+
byte _costCommandNew;
byte _costCommand;
byte _miscflags;
@@ -380,6 +385,12 @@ public:
bool _limb_flipped[8];
+private:
+
+ bool walkBoxQueueAdd( int box );
+ bool walkBoxQueueFind( int box );
+ void walkboxQueueReverse();
+
public:
Actor_v0(ScummEngine *scumm, int id) : Actor_v2(scumm, id) {}
@@ -401,6 +412,9 @@ public:
byte actorWalkY();
byte updateWalkbox();
+ void walkBoxQueueReset();
+ bool walkBoxQueuePrepare();
+
AdjustBoxResult adjustXYToBeInBox(int dstX, int dstY);
AdjustBoxResult adjustPosInBorderWalkbox(AdjustBoxResult box);