X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmap%2FMapState.h;h=b243c3b07258cf9529d0bfe6e6309e56826569cf;hb=abfa371d1d2c14052d4cbfc885b8383c6da7d499;hp=1901a67afc4b27f0f18943c4ceab2db4aa8a8eaf;hpb=b20681c1bf555c337b15796b3910d0d48488b102;p=l2e.git diff --git a/src/map/MapState.h b/src/map/MapState.h index 1901a67..b243c3b 100644 --- a/src/map/MapState.h +++ b/src/map/MapState.h @@ -38,7 +38,11 @@ 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()); } + + math::Vector > TrackPoint() const { return *camera.GetTarget(); } void SetWalkingSpeed(math::Fixed<8> s) { walkingSpeed = s; } @@ -46,6 +50,9 @@ public: 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);