]> git.localhorst.tv Git - l2e.git/blobdiff - src/map/MapState.cpp
store an application handle in each state
[l2e.git] / src / map / MapState.cpp
index 7e42e13a1779ef5041d64fbf57ecf4ef410fbda8..8e70acd19dbbccf0adf08601790a693162962db9 100644 (file)
@@ -31,7 +31,6 @@ namespace map {
 
 MapState::MapState(GameConfig *g, Map *map)
 : game(g)
-, ctrl(0)
 , map(map)
 , controlled(0)
 , pushed(0)
@@ -48,7 +47,6 @@ MapState::MapState(GameConfig *g, Map *map)
 
 
 void MapState::OnEnterState(Application &c, SDL_Surface *screen) {
-       ctrl = &c;
        camera.Resize(screen->w, screen->h);
        LoadMap(map);
 }
@@ -307,9 +305,9 @@ bool MapState::CheckMonster() {
                                ColorFade *fadeOut(new ColorFade(this, 0, 500));
                                fadeOut->SetLeadOutTime(500);
 
-                               ctrl->PushState(fadeIn);
-                               ctrl->PushState(battleState);
-                               ctrl->PushState(fadeOut);
+                               Ctrl().PushState(fadeIn);
+                               Ctrl().PushState(battleState);
+                               Ctrl().PushState(fadeOut);
                                // TODO: move entity erase to happen after the transition or battle
                                entities.erase(e);
                                return true;
@@ -445,11 +443,11 @@ bool MapState::ZCompare(const Entity *lhs, const Entity *rhs) {
 void MapState::HandleSyscall(common::ScriptRunner &r) {
        switch (r.Integer0()) {
                case TRANSITION: {
-                       ctrl->PushState(new ColorFade(this, 0, 500, true));
-                       ctrl->PushState(new TransitionState(this, reinterpret_cast<Map *>(r.Address0()), r.Vector0()));
+                       Ctrl().PushState(new ColorFade(this, 0, 500, true));
+                       Ctrl().PushState(new TransitionState(this, reinterpret_cast<Map *>(r.Address0()), r.Vector0()));
                        ColorFade *fadeOut(new ColorFade(this, 0, 500, false));
                        fadeOut->SetLeadOutTime(500);
-                       ctrl->PushState(fadeOut);
+                       Ctrl().PushState(fadeOut);
                        break;
                }
        }