void UnloadMap();
void LoadMap(Map *);
- bool CheckBlocking() const;
+ bool CheckBlocking();
+ bool CheckBlocking(const geometry::Vector<int> &position, Entity::Orientation direction) const;
void OnTileLock();
bool OnGridLock();
void LockEntities();
bool CheckMonster();
- bool CheckTrigger();
+
+ bool CheckLockTrigger();
+ bool CheckMoveTrigger();
+ void RunTrigger(Trigger &);
private:
common::GameConfig *game;
app::Application *ctrl;
Map *map;
Entity *controlled;
+ Entity *pushed;
app::Timer<float> moveTimer;
- geometry::Vector<float> tempTarget;
geometry::Vector<int> lastLock;
graphics::Camera camera;
std::vector<Entity *> entities;
int nextDirection;
bool afterLock;
bool skipLock;
+ bool pushing;
bool debug;
};