X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FState.h;h=678f2b986d88d69d68366bb829aaebbef47c0124;hb=2a0eca649009f78028db286a67a532429cab5b88;hp=efee32ba2ab0f3a3001dbbe9944ab9d8f44a58c3;hpb=4a1816af30dcfe53181a25355bd51cc7b24a83f1;p=l2e.git diff --git a/src/app/State.h b/src/app/State.h index efee32b..678f2b9 100644 --- a/src/app/State.h +++ b/src/app/State.h @@ -13,6 +13,7 @@ namespace app { class Application; +class Input; class State { @@ -21,14 +22,21 @@ public: public: /// do some setup + /// called when the state first enters the stack /// @param ctrl the Application running the state virtual void EnterState(Application &ctrl, SDL_Surface *screen) = 0; - virtual void ExitState() = 0; + /// do some cleanup + /// called when the state is popped from the stack + virtual void ExitState(Application &ctrl, SDL_Surface *screen) = 0; + /// called when the state becomes the active one + virtual void ResumeState(Application &ctrl, SDL_Surface *screen) = 0; + /// called when the state becomes inactive + virtual void PauseState(Application &ctrl, SDL_Surface *screen) = 0; /// adapt the state's graphics to given dimensions virtual void Resize(int width, int height) = 0; - virtual void HandleEvent(const SDL_Event &) = 0; + virtual void HandleInput(const Input &) = 0; virtual void UpdateWorld(float deltaT) = 0; virtual void Render(SDL_Surface *) = 0;