X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmap%2FMapState.h;h=bf19f4d5d315b0e8750d0e544588a336083f59cd;hb=6e88a625710c7936f87b38ecf6094472f3a49f4f;hp=0e49100e3b305b6e458123af8060986fd4b76958;hpb=7fb774ec1df3d550cd8a6805bdc69c11ad36e498;p=l2e.git diff --git a/src/map/MapState.h b/src/map/MapState.h index 0e49100..bf19f4d 100644 --- a/src/map/MapState.h +++ b/src/map/MapState.h @@ -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: @@ -50,24 +51,30 @@ private: void UnloadMap(); void LoadMap(Map *); - bool CheckBlocking() const; + bool CheckBlocking(); + bool CheckBlocking(const geometry::Vector &position, Entity::Orientation direction) const; void OnTileLock(); - void OnGridLock(); + bool OnGridLock(); void OnMove(bool); void UpdateFollower(Entity &); void StopFollowers(Entity &); void LockEntities(); - void CheckMonster(); - void CheckTrigger(); + bool CheckMonster(); + + bool CheckLockTrigger(); + bool CheckMoveTrigger(); + void RunTrigger(Trigger &); private: + common::GameConfig *game; + app::Application *ctrl; Map *map; Entity *controlled; + Entity *pushed; app::Timer moveTimer; - geometry::Vector tempTarget; geometry::Vector lastLock; graphics::Camera camera; std::vector entities; @@ -75,6 +82,7 @@ private: int nextDirection; bool afterLock; bool skipLock; + bool pushing; bool debug; };