aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/walk.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/walk.h')
-rw-r--r--engines/parallaction/walk.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/engines/parallaction/walk.h b/engines/parallaction/walk.h
index e6ad8e5c16..f1afa078fd 100644
--- a/engines/parallaction/walk.h
+++ b/engines/parallaction/walk.h
@@ -73,6 +73,43 @@ public:
void buildPath(uint16 x, uint16 y);
};
+class PathWalker {
+protected:
+ Character *_ch;
+public:
+ PathWalker(Character *ch) : _ch(ch) { }
+ virtual ~PathWalker() { }
+ virtual void walk() = 0;
+};
+
+class PathWalker_NS : public PathWalker {
+
+
+ void finalizeWalk();
+ void clipMove(Common::Point& pos, const Common::Point& to);
+ void checkDoor(const Common::Point &foot);
+
+public:
+ PathWalker_NS(Character *ch) : PathWalker(ch) { }
+ void walk();
+};
+
+
+class PathWalker_BR : public PathWalker {
+
+
+ int _walkDelay;
+ int _fieldC;
+ Common::Point _startFoot;
+ bool _first;
+ int _step;
+
+ void finalizeWalk();
+
+public:
+ PathWalker_BR(Character *ch);
+ void walk();
+};
}