X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FApplication.cpp;h=f773cfcec71f96252c9da4cad9275e8096016bc9;hb=ede708d4e15a34a4443727fc64fd28946fcbeb41;hp=4de48d4f90541ad55481587c092c772015f88cd2;hpb=1014598c02e9635d9d4a008010d43c3c0b845e06;p=l2e.git diff --git a/src/app/Application.cpp b/src/app/Application.cpp index 4de48d4..f773cfc 100644 --- a/src/app/Application.cpp +++ b/src/app/Application.cpp @@ -13,12 +13,11 @@ namespace app { -Application::Application(sdl::InitScreen *screen, State *initialState) +Application::Application(sdl::InitScreen &screen, State *initialState) : screen(screen) , states() , last(SDL_GetTicks()) , inStateChage(false) { - assert(screen && "cannot create application without screen"); assert(initialState && "cannot create application without initial state"); RealPushState(initialState); } @@ -86,32 +85,32 @@ void Application::PopState() { void Application::RealChangeState(State *s) { if (!states.empty()) { - states.top()->PauseState(*this, screen->Screen()); - states.top()->ExitState(*this, screen->Screen()); + states.top()->PauseState(*this, screen.Screen()); + states.top()->ExitState(*this, screen.Screen()); states.pop(); } states.push(s); - s->EnterState(*this, screen->Screen()); - s->ResumeState(*this, screen->Screen()); + s->EnterState(*this, screen.Screen()); + s->ResumeState(*this, screen.Screen()); } void Application::RealPushState(State *s) { if (!states.empty()) { - states.top()->PauseState(*this, screen->Screen()); + states.top()->PauseState(*this, screen.Screen()); } states.push(s); - s->EnterState(*this, screen->Screen()); - s->ResumeState(*this, screen->Screen()); + s->EnterState(*this, screen.Screen()); + s->ResumeState(*this, screen.Screen()); } void Application::RealPopState() { if (states.empty()) return; - states.top()->PauseState(*this, screen->Screen()); - states.top()->ExitState(*this, screen->Screen()); + states.top()->PauseState(*this, screen.Screen()); + states.top()->ExitState(*this, screen.Screen()); delete states.top(); states.pop(); if (!states.empty()) { - states.top()->ResumeState(*this, screen->Screen()); + states.top()->ResumeState(*this, screen.Screen()); } } @@ -121,8 +120,8 @@ void Application::Quit() { void Application::PopAllStates() { while (!states.empty()) { - states.top()->PauseState(*this, screen->Screen()); - states.top()->ExitState(*this, screen->Screen()); + states.top()->PauseState(*this, screen.Screen()); + states.top()->ExitState(*this, screen.Screen()); delete states.top(); states.pop(); } @@ -165,7 +164,7 @@ void Application::HandleEvents() { PopAllStates(); break; case SDL_VIDEORESIZE: - screen->Resize(event.resize.w, event.resize.h); + screen.Resize(event.resize.w, event.resize.h); CurrentState()->Resize(event.resize.w, event.resize.h); break; case SDL_KEYDOWN: @@ -190,8 +189,8 @@ void Application::UpdateWorld(Uint32 deltaT) { void Application::Render(void) { if (!CurrentState()) return; - CurrentState()->Render(screen->Screen()); - screen->Flip(); + CurrentState()->Render(screen.Screen()); + screen.Flip(); } }