X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmap%2FMapState.h;h=b243c3b07258cf9529d0bfe6e6309e56826569cf;hb=abfa371d1d2c14052d4cbfc885b8383c6da7d499;hp=f0f20c1ccf635379a1b0778272232e5be7840556;hpb=092a2dd175a4001a495c84ee85211734fb928c83;p=l2e.git diff --git a/src/map/MapState.h b/src/map/MapState.h index f0f20c1..b243c3b 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,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; } @@ -45,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); @@ -71,6 +79,7 @@ private: void LockEntities(); bool CheckMonster(); + void LoadBattle(Entity &hero, Entity &monster); bool CheckLockTrigger(); bool CheckMoveTrigger(); @@ -92,6 +101,7 @@ private: graphics::Camera camera; std::vector entities; math::Fixed<8> walkingSpeed; + app::Timer tileAnimation; int nextDirection; bool afterLock; bool skipLock; @@ -102,4 +112,4 @@ private: } -#endif /* MAP_MAPSTATE_H_ */ +#endif