Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

game_manager.h

Go to the documentation of this file.
00001 /***************************************************************************************************/ 00002 /***************************************************************************************************/ 00009 /***************************************************************************************************/ 00010 /***************************************************************************************************/ 00011 #ifndef GAME_MANAGER_H 00012 #define GAME_MANAGER_H 00013 00014 /*------------------------------------ Prototypes ---------------------------------------------*/ 00015 class cGame_Manager; 00016 00018 extern cGame_Manager Game_Manager; 00019 00020 /*------------------------------------ Includes ---------------------------------------------*/ 00021 #include <list> 00022 00023 00024 #include "player.h" 00025 #include "ennemies.h" 00026 #include "bonus.h" 00027 #include "game_bsp.h" 00028 #include "gen_rnd.h" 00029 #include "bsp_debug_X.h" 00030 00031 00032 /*------------------------------------ Define ---------------------------------------------*/ 00033 #define N_LEVELS 3 00034 #define INITIAL_NB_LIVES 3 00035 00036 #define NB_MAX_BOMBS 8 00037 #define NB_MAX_TELEPORTEURS 8 00038 #define NB_MAX_HOLOGRAMMES 5 00039 00041 00048 typedef enum { INITIALIZING , RUNNING, GAME_OVER , READY_TO_START , LEVEL_FINISHED , VICTORY } Game_State_Type; 00049 00050 00051 00052 /*------------------------------------- Classes ---------------------------------------------*/ 00053 00054 /*************************************************************************************************/ 00056 00058 00059 class cGame_Manager 00060 { 00061 friend class cPlayer; 00062 friend class cLevel_Loader; 00063 friend class cEnnemy; 00064 friend class cRed_Ball; 00065 friend class cBlue_Ball; 00066 friend class cGreen_Ball; 00067 friend class cUnit; 00068 00069 public : 00071 cGame_Manager(); 00072 00074 ~cGame_Manager(); 00075 00077 void Try_Start(); 00078 00080 void Main_Loop(); 00081 00082 /*-----------------------------------------------------------------------------*/ 00084 cGame_World * Game_World; 00085 00086 Game_State_Type Game_State; 00087 00088 bool bDisplay_Square_Areas ; 00089 bool bDisplay_Ennemies_Path ; 00090 bool bDisplay_Path_Graph ; 00091 bool bGame_Paused ; 00092 bool bInvincible ; 00093 00094 00096 cSprite_Display_Def * pDisplay_White_Ball ; 00097 cSprite_Display_Def * pDisplay_Red_Ball ; 00098 cSprite_Display_Def * pDisplay_Blue_Ball ; 00099 cSprite_Display_Def * pDisplay_Green_Ball ; 00100 cSprite_Display_Def * pDisplay_Bomb ; 00101 cSprite_Display_Def * pDisplay_Teleporteur ; 00102 cSprite_Display_Def * pDisplay_Hologramme ; 00103 cSprite_Display_Def * pDisplay_Cadeau ; 00104 cSprite_Display_Def * pDisplay_Red_Trap ; 00105 cSprite_Display_Def * pDisplay_Blue_Trap ; 00106 cSprite_Display_Def * pDisplay_Green_Trap ; 00107 cSprite_Display_Def * pDisplay_Coeur ; 00108 00109 cBitmap_Display_Def * pDisplay_Game_Over; 00110 cBitmap_Display_Def * pDisplay_Victory ; 00111 cBitmap_Display_Def * pDisplay_Press_Space ; 00112 00113 00114 00115 private: 00116 std::list<cEnnemy*> Ennemies_List; 00117 std::list<cInteractive_Item*> Bonus_List; 00118 std::vector <cEnnemy*> Ennemies_Garbage_Collector; 00119 std::vector <cInteractive_Item*> Bonus_Garbage_Collector; 00120 00121 int Id_Level; 00122 float Time_Of_Last_Bonus; 00123 int Nb_Seconds_For_Level; 00124 float Time_Last_Generated_Cadeau; 00125 unsigned int Score; 00126 bool bTeleporteur_In_Game; 00127 00128 cRnd_Number_Generator Rnd_Gen ; 00129 cGame_World_Debug_Displayer * World_Debug_Displayer; 00130 cPlayer * Player; 00131 cLevel_Loader * Level_Loader; 00132 00134 float Time_Since_Level_Start; 00135 00137 00143 void Update_Game(); 00144 void Update_Ennemies(); 00145 void Test_Collisions(); 00146 00148 void Erase_Ennemies_Garbage_Collector( ); 00149 00151 void Erase_Bonus_Garbage_Collector( ); 00152 00154 void Generate_Cadeaux(); 00155 00157 void Display(); 00158 void Display_Score(); 00159 void Display_Time(); 00160 void Display_Debug_X(); 00161 void Display_Inventaire_Player(); 00162 00164 HRESULT Read_Keyboard_And_React(); 00165 00167 void Clear(); 00168 00170 void Reset(); 00171 00173 bool Load_Level( int i); 00174 00176 00178 void Start(); 00179 00181 00185 bool Add_Ennemy( Ennemy_Type bonus, int x, int y ); 00186 00188 void Kill_Ennemy( cEnnemy * ennemy ); 00189 00191 00195 bool Add_Bonus( Interactive_Item_Type bonus, int x, int y); 00196 00198 void Remove_Bonus( cInteractive_Item * bonus); 00199 00201 bool Is_Free_Place( int x, int y , int rayon); 00202 00204 void Try_Kill_Player(); 00205 00207 void Initiate_Unit_Defs(); 00208 }; 00209 00210 00211 00212 #endif

Generated on Fri May 21 19:22:37 2004 for LIBELL by doxygen 1.3.7