diff options
Diffstat (limited to 'engines/pink/objects/walk/walk_mgr.h')
-rw-r--r-- | engines/pink/objects/walk/walk_mgr.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/engines/pink/objects/walk/walk_mgr.h b/engines/pink/objects/walk/walk_mgr.h index 0ae7ef6194..403cc7ee2e 100644 --- a/engines/pink/objects/walk/walk_mgr.h +++ b/engines/pink/objects/walk/walk_mgr.h @@ -25,20 +25,49 @@ #include <common/array.h> #include "engines/pink/objects/object.h" +#include "walk_shortest_path.h" namespace Pink { class WalkLocation; class LeadActor; +class WalkAction; class WalkMgr : public Object { public: + WalkMgr(); virtual void deserialize(Archive &archive); - WalkLocation *findLocation(Common::String &name); + void toConsole() override; + + WalkLocation *findLocation(const Common::String &name); + void start(WalkLocation *destination); + void update(); + + double getLengthBetweenLocations(WalkLocation *first, WalkLocation *second); + void setCurrentWayPoint(WalkLocation *location); private: + struct Coordinates { + int x; + int y; + int z; + }; + struct WayPoint { + Common::String name; + Coordinates coord; + }; + + Coordinates getLocationCoordinates(const Common::String &locationName); + void end(); + void initNextWayPoint(WalkLocation *location); + WalkAction *getWalkAction(); + LeadActor *_leadActor; + WalkLocation *_destination; Common::Array<WalkLocation*> _locations; + WayPoint _current; + WayPoint _next; + bool _isWalking; }; } // End of namespace Pink |