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