]> git.localhorst.tv Git - l2e.git/blobdiff - src/app/State.h
reworked gauges to better reflect the original ones
[l2e.git] / src / app / State.h
index d9936ddfcc3665f90a1a6900aac876ebbca4bf3f..678f2b986d88d69d68366bb829aaebbef47c0124 100644 (file)
@@ -13,6 +13,7 @@
 namespace app {
 
 class Application;
+class Input;
 
 class State {
 
@@ -21,11 +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;
-
-       virtual void HandleEvent(const SDL_Event &) = 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 HandleInput(const Input &) = 0;
        virtual void UpdateWorld(float deltaT) = 0;
        virtual void Render(SDL_Surface *) = 0;