: public app::State {
public:
- explicit MapState(const Map *);
+ explicit MapState(Map *);
virtual ~MapState() { }
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; }
+
private:
static bool ZCompare(const Entity *lhs, const Entity *rhs);
+ void OnGridLock();
+ void OnMove();
private:
- const Map *map;
+ Map *map;
Entity *controlled;
geometry::Vector<float> tempTarget;
+ geometry::Vector<int> lastLock;
graphics::Camera camera;
std::vector<Entity *> entities;
+ float walkingSpeed;
+ int nextDirection;
+ bool afterLock;
};