X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmap%2FMapState.h;h=8b9532db3bbbf7fb684bc4909a9dc6f77edba1ee;hb=HEAD;hp=2465ddf3526ea80e72ca7683388d02d49c2a3ed3;hpb=d7d5ff97b2e4136141f5603d0ec9cef1d4467749;p=l2e.git diff --git a/src/map/MapState.h b/src/map/MapState.h index 2465ddf..8b9532d 100644 --- a/src/map/MapState.h +++ b/src/map/MapState.h @@ -11,6 +11,7 @@ namespace map { #include "Entity.h" #include "../app/State.h" +#include "../app/Timer.h" #include "../common/ScriptHost.h" #include "../common/ScriptRunner.h" #include "../math/Fixed.h" @@ -37,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); @@ -93,6 +101,7 @@ private: graphics::Camera camera; std::vector entities; math::Fixed<8> walkingSpeed; + app::Timer tileAnimation; int nextDirection; bool afterLock; bool skipLock;