30 lines
564 B
C
30 lines
564 B
C
|
/* Abstract instance of a game state.
|
||
|
This contains the basic functions for game looping code,
|
||
|
and has a fully-functional event handler we can overload later
|
||
|
*/
|
||
|
|
||
|
#ifndef _GAME_STATE_H_
|
||
|
#define _GAME_STATE_H_
|
||
|
|
||
|
#include "mainevent.h"
|
||
|
#include <exception>
|
||
|
#include <stack>
|
||
|
|
||
|
using std::exception;
|
||
|
using std::stack;
|
||
|
|
||
|
class StateExit : public exception {};
|
||
|
|
||
|
class GameState : public MainEvent
|
||
|
{
|
||
|
public:
|
||
|
GameState() {}
|
||
|
~GameState() {}
|
||
|
|
||
|
virtual bool init() = 0;
|
||
|
virtual void execute(stack<GameState*> &game_state) throw(StateExit) = 0;
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif
|