00001
00007 #ifndef _GAME_H_
00008 #define _GAME_H_
00009
00010 #include "KeyboardController.h"
00011
00012 class Entity;
00013 class Controller;
00014 class GameLogic;
00015 class Map;
00016 class Character;
00017 class Effect;
00018
00023 class Game {
00024
00025 public:
00026
00030 Game();
00031
00035 ~Game();
00036
00043 void update( float dt );
00044
00048 void draw();
00049
00056 bool control( float dt );
00057
00063 Map* getMap() const;
00064
00071 void addEntity( Entity* e );
00072
00079 void addController( Controller* c );
00080
00087 void addLogic( GameLogic* g );
00088
00095 void addEffect( Effect* e );
00096
00104 bool startNewGame( int mapNum );
00105
00110 void resetMap();
00111
00112 private:
00113
00118 void clear();
00119
00120 private:
00121
00125 std::list<Entity *> entities;
00126
00130 std::list<Controller *> ctrls;
00131
00135 std::list<Entity *>::iterator entityIt;
00136
00140 std::list<Controller *>::iterator ctrlIt;
00141
00145 std::list<GameLogic *> logics;
00146
00150 std::list<GameLogic *>::iterator logicIt;
00151
00155 std::list<Effect *> effects;
00156
00160 std::list<Effect *>::iterator effectIt;
00161
00165 Map* map;
00166
00170 KeyboardSettings keys1;
00171
00175 KeyboardSettings keys2;
00176
00181 int keyPressed;
00182
00186 Character* player1;
00187
00191 Character* player2;
00192
00196 int currMap;
00197
00201 bool resetMapFlag;
00202
00206 int numWins1;
00207
00211 int numWins2;
00212
00213 };
00214
00215 #endif