X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmap%2FMapState.h;h=8b9532db3bbbf7fb684bc4909a9dc6f77edba1ee;hb=HEAD;hp=1901a67afc4b27f0f18943c4ceab2db4aa8a8eaf;hpb=d97b7038c28058a76e7214e0dce0394fd8b67cff;p=l2e.git diff --git a/src/map/MapState.h b/src/map/MapState.h index 1901a67..8b9532d 100644 --- a/src/map/MapState.h +++ b/src/map/MapState.h @@ -38,14 +38,21 @@ public: public: void AddEntity(Entity *e) { entities.push_back(e); } - void ControlEntity(Entity *e) { controlled = e; camera.SetTarget(&e->Position()); } + void ControlEntity(Entity *e) { controlled = e; TrackControlled(); } + void Track(math::Vector > *t) { camera.SetTarget(t); } + void TrackControlled() { if (controlled) Track(&controlled->Position()); } - void SetWalkingSpeed(math::Fixed<8> s) { walkingSpeed = s; } + math::Vector > TrackPoint() const { return *camera.GetTarget(); } + + void SetWalkingSpeed(int s); void Transition(Map *, const math::Vector &coordinates); virtual void HandleSyscall(common::ScriptRunner &); + const graphics::Camera &GetCamera() const { return camera; } + Map *GetMap() { return map; } + private: virtual void OnEnterState(SDL_Surface *screen); virtual void OnExitState(SDL_Surface *screen);