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;