aboutsummaryrefslogtreecommitdiff
path: root/engines/pink/objects/walk/walk_mgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pink/objects/walk/walk_mgr.h')
-rw-r--r--engines/pink/objects/walk/walk_mgr.h31
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