/* This is the heart of the application - the main game state where we are actually playing. This contains the basic game logic. */ #ifndef _GAME_H_ #define _GAME_H_ #include "gamedata.h" #include "gamestate.h" #include "menubutton.h" #include #include using std::stack; class Game : public GameState { public: Game(stack* state_stack, SDL_Surface* display); ~Game(); bool init(); protected: void render(); void iterate() {} // event handlers void on_lbutton_down(int x, int y); void on_rbutton_down(int mX, int mY); void on_key_down(SDLKey sym, SDLMod mod, Uint16 unicode); void on_mouse_move(int mX, int mY, int relX, int relY, bool left, bool right, bool middle); private: void draw_stats(Vertex* v); void draw_button(MenuButton* button); // data GameData data; // the x,y position of the mouse cursor int cursor_x; int cursor_y; // surfaces containing textures to draw SDL_Surface* background; TTF_Font* font; // menu buttons MenuButton move_button; MenuButton build_button; MenuButton attack_button; static int NODE_RADIUS; #ifdef DEBUG void print_debug_info(); #endif }; #endif