]> git.localhorst.tv Git - l2e.git/blobdiff - src/map/MapState.h
closed the gap between battle and map state (yay)
[l2e.git] / src / map / MapState.h
index 371a881e5c54cc1b363ce2269dfa58e71c16b622..a6d292b78d757b4b694e587ca29716f2e79333fd 100644 (file)
@@ -11,6 +11,7 @@
 #include "Entity.h"
 #include "fwd.h"
 #include "../app/State.h"
+#include "../common/fwd.h"
 #include "../geometry/Vector.h"
 #include "../graphics/Camera.h"
 
@@ -22,7 +23,7 @@ class MapState
 : public app::State {
 
 public:
-       explicit MapState(Map *);
+       explicit MapState(common::GameConfig *, Map *);
        virtual ~MapState() { }
 
 public:
@@ -42,21 +43,30 @@ public:
 
        void SetWalkingSpeed(float s) { walkingSpeed = s; }
 
+       void Transition(Map *, const geometry::Vector<int> &coordinates);
+
 private:
        static bool ZCompare(const Entity *lhs, const Entity *rhs);
 
+       void UnloadMap();
+       void LoadMap(Map *);
+
        bool CheckBlocking() const;
 
        void OnTileLock();
-       void OnGridLock();
+       bool OnGridLock();
        void OnMove(bool);
 
        void UpdateFollower(Entity &);
        void StopFollowers(Entity &);
 
        void LockEntities();
+       bool CheckMonster();
+       bool CheckTrigger();
 
 private:
+       common::GameConfig *game;
+       app::Application *ctrl;
        Map *map;
        Entity *controlled;
        app::Timer<float> moveTimer;
@@ -67,6 +77,8 @@ private:
        float walkingSpeed;
        int nextDirection;
        bool afterLock;
+       bool skipLock;
+       bool debug;
 
 };