X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FApplication.cpp;h=4c8c5747ff71dd5620fe2a6d26c96fdf0efc4e03;hb=8add322195bf2f619ba61bfea4335d28627b0b68;hp=fc1d3801d4ab6fe65f0ea8af622904e0eb01b194;hpb=bce16ed519add0d5398d504d2554395c43c74571;p=l2e.git diff --git a/src/app/Application.cpp b/src/app/Application.cpp index fc1d380..4c8c574 100644 --- a/src/app/Application.cpp +++ b/src/app/Application.cpp @@ -28,7 +28,7 @@ Application::~Application() { State *Application::CurrentState() { - return states.top(); + return states.empty() ? 0 : states.top(); } void Application::UpdateState() { @@ -106,7 +106,10 @@ void Application::Quit() { void Application::PopAllStates() { while (!states.empty()) { - RealPopState(); + states.top()->PauseState(*this, screen->Screen()); + states.top()->ExitState(*this, screen->Screen()); + delete states.top(); + states.pop(); } } @@ -121,7 +124,7 @@ void Application::Loop() { Uint32 now(SDL_GetTicks()); Uint32 deltaT(now - last); GlobalTimers().Update(deltaT); - if (deltaT > 34) deltaT = 34; + if (deltaT > 30) deltaT = 30; if (CurrentState()) { CurrentState()->GraphicsTimers().Update(deltaT); @@ -159,7 +162,7 @@ void Application::HandleEvents() { break; } } - CurrentState()->HandleInput(input); + if (CurrentState()) CurrentState()->HandleEvents(input); } void Application::UpdateWorld(Uint32 deltaT) {