X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FState.h;fp=src%2Fapp%2FState.h;h=a84afde9941a26b0809cdd20c884f9e6ab0920be;hb=7252571fb926a187c4c40e8f4eec718f16d63ffa;hp=6783d76052c41f17a2b1d8ea24e9b9ffccf42b2a;hpb=2ccc2369d32fb680a3047519d79c17de34c4e10a;p=l2e.git diff --git a/src/app/State.h b/src/app/State.h index 6783d76..a84afde 100644 --- a/src/app/State.h +++ b/src/app/State.h @@ -19,9 +19,29 @@ namespace app { class State { public: - virtual ~State() { }; + virtual ~State(); public: + /// Called by Application when pushing this state. + void EnterState(Application &ctrl, SDL_Surface *screen); + /// Called by Application when popping this state. + void ExitState(Application &ctrl, SDL_Surface *screen); + /// Called by Application when this state becomes the top state. + void ResumeState(Application &ctrl, SDL_Surface *screen); + /// Called by Application when this state no longer is the top state. + void PauseState(Application &ctrl, SDL_Surface *screen); + + /// Called by Application on SDL window resize events. + void Resize(int width, int height); + + /// Handle interactive events such as input and timers. + virtual void HandleEvents(const Input &) = 0; + /// Update the time-dependant world representation. + virtual void UpdateWorld(float deltaT) = 0; + /// Draw a picture of the world. + virtual void Render(SDL_Surface *) = 0; + +private: /// Do some setup that needs an application and/or screen handle and thus /// can not be done by the constructor. /// Called when the state first enters the stack. @@ -41,13 +61,6 @@ public: /// Will be fixed soom ;). virtual void OnResize(int width, int height) = 0; - /// Handle interactive events such as input and timers. - virtual void HandleEvents(const Input &) = 0; - /// Update the time-dependant world representation. - virtual void UpdateWorld(float deltaT) = 0; - /// Draw a picture of the world. - virtual void Render(SDL_Surface *) = 0; - public: /// Timers handle intended for graphics, sync'ed with render time. /// These timers are only updated for the stack top and thus appear paused