1 #ifndef GAMEDEF_INCLUDED 2 3 4 5 /* 6 Contains game specific defininitions of structures 7 */ 8 9 10 #ifdef __cplusplus 11 12 extern "C" { 13 14 #endif 15 16 #include "module.h" 17 18 /*********************************************** 19 20 AVP game description stuff 21 22 ***********************************************/ 23 24 /* game modes*/ 25 26 typedef enum gamemode 27 { 28 I_GM_Playing, 29 I_GM_DataBase, 30 I_GM_Menus, 31 I_GM_Paused, 32 33 } I_GAME_MODE; 34 35 typedef enum gamedrawmode 36 { 37 I_GDM_GameOperations, 38 I_GDM_DrawWorld, 39 I_GDM_DrawHud, 40 I_GDM_Flippin, 41 42 } I_GAMEDRAW_MODE; 43 44 45 /* Languages*/ 46 47 typedef enum languages 48 { 49 I_English, 50 I_French, 51 I_Spanish, 52 I_German, 53 I_Italian, 54 I_Swedish, 55 I_MAX_NO_OF_LANGUAGES 56 57 }I_LANGUAGE; 58 59 extern char* LanguageDirNames[]; 60 61 62 typedef enum playertypes 63 { 64 I_Marine, 65 I_Predator, 66 I_Alien, 67 68 }I_PLAYER_TYPE; 69 70 extern char* PlayerNames[]; 71 72 73 typedef enum networktype 74 { 75 I_No_Network, 76 I_Host, 77 I_Peer, 78 I_DedicatedServer, 79 80 }I_NETWORK; 81 82 83 typedef enum gamedifficulty 84 { 85 I_Easy = 0, 86 I_Medium, 87 I_Hard, 88 I_Impossible, 89 I_MaxDifficulties 90 91 }I_HARDANUFF; 92 93 typedef enum environments 94 { 95 //#ifndef MPLAYER_DEMO 96 I_Gen1 = 0, 97 I_Gen2, 98 I_Gen3, 99 I_Gen4, 100 I_Medlab, // 5 101 I_Cmc1, 102 I_Cmc2, 103 I_Cmc3, 104 I_Cmc4, 105 I_Cmc5, // 10 106 I_Cmc6, 107 I_Sp1, 108 I_Sp2, 109 I_Sp3, 110 I_Rnd1, // 15 111 I_Rnd2, 112 I_Rnd3, 113 I_Rnd4, 114 I_Mps1, 115 I_Mps2, // 20 116 I_Mps3, 117 I_Mps4, 118 I_Surface, 119 I_Entrance, 120 121 I_Dml1, // 25- Vertigo.rif for Al 122 // #ifndef MPLAYER_DEMO 123 I_Dml2, // KJL 16:59:58 05/1/97 - fruitbat.rif for Al 124 I_Dml3, // KJL 16:59:58 05/19/97 - kipper.rif for George 125 I_Dml4, // KJL 16:59:58 05/19/97 - mu.rif for Jake 126 I_Dml5, // KJL 16:59:58 05/19/97 - mu.rif for Jake 127 I_Dml6, // 30- KJL 16:59:58 05/19/97 - mu.rif for Jake 128 I_Dml7, // KJL 16:59:58 05/19/97 - mu.rif for Jake 129 I_Dml8, // KJL 16:59:58 05/19/97 - mu.rif for Jake 130 I_Dml9, // KJL 16:59:58 05/19/97 - mu.rif for Jake 131 I_Dml10, // KJL 16:59:58 05/19/97 - mu.rif for Jake 132 // #endif 133 134 I_Num_Environments // 34 135 136 }I_AVP_ENVIRONMENTS; 137 138 extern char* LevelNames[]; 139 140 141 #define GAME_NAME_LENGTH 30 142 143 typedef struct avpgamedesc{ 144 145 I_LANGUAGE Language; 146 I_GAME_MODE GameMode; 147 I_GAMEDRAW_MODE GameDrawMode; 148 int DatabaseAccessNum; // to make it easier to pass this around 149 I_PLAYER_TYPE PlayerType; 150 I_NETWORK Network; 151 I_HARDANUFF Difficulty; 152 I_AVP_ENVIRONMENTS CurrentEnv; 153 I_AVP_ENVIRONMENTS StartingEnv; 154 char GameName[GAME_NAME_LENGTH]; 155 int GameVideoRequestMode; 156 int MenuVideoRequestMode; 157 int DestructTimer; 158 unsigned int ElapsedMinutes; 159 unsigned int ElapsedSeconds; 160 unsigned int ElapsedHours; 161 /* KJL 15:36:53 03/11/97 - set to zero 162 on death, pressing quit, etc. */ 163 unsigned char MainLoopRunning :1; 164 /* set to 1 when player dies*/ 165 unsigned char RestartLevel :1; 166 167 /* set to 1 if you manage to complete the level */ 168 unsigned char LevelCompleted :1; 169 170 /* If network game, disable generators if unset */ 171 unsigned char NetworkAIServer :1; 172 173 }AVP_GAME_DESC; 174 175 176 177 178 extern AVP_GAME_DESC AvP; /*game.c*/ 179 180 extern DISPLAYBLOCK *Player; 181 182 /***************************************************************/ 183 /************************ AVP high level control **************/ 184 185 /* KJL 15:42:23 10/02/96 - These two are mine. */ 186 extern void MaintainPlayer(void); 187 extern void MaintainHUD(void); 188 189 190 /*********************************************************/ 191 /*********************** PLAYER CONTROL STUFF ************/ 192 extern int AnyUserInput(); 193 extern int IDemandGoBackward(); 194 extern int IDemandGoForward(); 195 extern int IDemandTurnRight(); 196 extern int IDemandTurnLeft(); 197 198 //extern int IDemandLookUp(void); 199 //extern int IDemandLookDown(void); 200 //extern int IDemandTurnLeft(void); 201 //extern int IDemandTurnRight(void); 202 //extern int IDemandGoForward(void); 203 //extern int IDemandGoBackward(void); 204 //extern int IDemandFaster(void); 205 //extern int IDemandSideStep(void); 206 //extern int IDemandStop(void); 207 208 //extern int IDemandNextWeapon(void); /* KJL 11:45:40 10/07/96 */ 209 //extern int IDemandPreviousWeapon(void); /* KJL 11:45:44 10/07/96 */ 210 211 212 //extern int IDemandPickupItem(void); 213 //extern int IDemandDropItem(void); 214 //extern int IDemandOperate(void); 215 //extern int IDemandMenu(void); 216 //extern int IDemandChangeEnvironment(void); 217 218 219 220 221 /************************************************* 222 ************* ENVIRONMENT STUFF 223 **************************************************/ 224 225 /* some old funnier stuff*/ 226 // kept as this struct so we can compile in environmnet 227 // changes 228 229 230 typedef struct environment_list_object{ 231 char* main; 232 }ELO; 233 234 235 extern ELO* Env_List[]; 236 extern int EnvToLoad; 237 238 extern void ChnageEnvironment(); 239 extern void ChangeEnvironmentToEnv(I_AVP_ENVIRONMENTS); 240 extern int Destroy_CurrentEnvironment(); 241 extern void LoadGameFromFile(); 242 extern void SaveGameToFile(); 243 extern void InitCharacter(); 244 245 246 /********************************************************/ 247 /************************ Menu Code ***************/ 248 249 extern void ChooseLanguage(void); 250 extern void CharacterChoice(void); 251 252 extern void InitDataBaseMenus(void); 253 extern void DoMainMenu(void); 254 255 extern int UsingDataBase; 256 257 /* How many info screens will there be? */ 258 #define MAXINFOSCREENS 10 259 /* How many different info screen backgrounds there may be*/ 260 #define MAXBACKGROUNDS 10 261 /* How many overlay items can be in existence at a time */ 262 #define MAXSCREENITEMS 10 263 264 #define NUM_CREDIT_SCREENS 2 265 266 typedef enum 267 { 268 UNLIT, 269 LITUP, 270 271 } LIGHTSTATE; 272 273 /****************** MISC Game Externs ****/ 274 275 extern MODULEMAPBLOCK TempModuleMap; 276 extern SHAPEHEADER** mainshapelist; 277 278 extern int memoryInitialisationFailure; 279 280 /*******************MISC extern functions ***/ 281 282 extern void DealWithElapsedTime(); 283 extern void FadeScreen(int colour, int screen, int rate); 284 extern volatile char StillFading; 285 286 287 #ifdef __cplusplus 288 289 }; 290 291 #endif 292 293 #define GAMEDEF_INCLUDED 294 295 #endif 296