36 lines
670 B
C++
36 lines
670 B
C++
#ifndef WC3RE_GAME_GAMESTATE_HH__
|
|
#define WC3RE_GAME_GAMESTATE_HH__
|
|
|
|
#include <SDL2/SDL.h>
|
|
|
|
namespace render {
|
|
class Renderer;
|
|
}
|
|
|
|
namespace game {
|
|
class GameState {
|
|
public:
|
|
GameState(render::Renderer& renderer)
|
|
: renderer_(renderer) {
|
|
}
|
|
|
|
virtual ~GameState() {
|
|
}
|
|
|
|
/* Update and draw
|
|
* delta_ms is number of milliseconds since last call to draw
|
|
*/
|
|
virtual void draw(unsigned delta_ms) = 0;
|
|
|
|
/* Handle the event. Return true if the handler changes the current
|
|
* gamestate, false otherwise.
|
|
*/
|
|
virtual bool handleEvent(SDL_Event& event) = 0;
|
|
|
|
protected:
|
|
render::Renderer& renderer_;
|
|
};
|
|
}
|
|
|
|
#endif
|