+public:
+ void AddEntity(Entity *e) { entities.push_back(e); }
+ void ControlEntity(Entity *e) { controlled = e; camera.SetTarget(&e->Position()); }
+
+ 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();
+ void OnMove(bool);
+
+ void UpdateFollower(Entity &);
+ void StopFollowers(Entity &);
+
+ void LockEntities();
+ void CheckMonster();
+ void CheckTrigger();
+