1 /*
2    Copyright (C) 2004 by James Gregory
3    Part of the GalaxyHack project
4 
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License.
7    This program is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY.
9 
10    See the COPYING file for more details.
11 */
12 
13 #ifndef GUARD_Enums
14 #define GUARD_Enums
15 
16 enum GameStateType {GST_MainMenu, GST_SetupBattle, GST_PreBattle, GST_Battle, GST_Score, GST_Reload,
17                     GST_ForceSelect, GST_TheOS};
18 
19 enum PBState {PBS_Position, PBS_PreBattle};
20 
21 enum MenuChoiceType {MCT_None, MCT_LeftCursor, MCT_RightCursor, MCT_Highlight};
22 
23 enum SideInfoType {SIT_Number, SIT_Type, SIT_Script, SIT_Points};
24 
25 enum CompassDirection {CD_N, CD_NE, CD_E, CD_SE, CD_S, CD_SW, CD_W, CD_NW};
26 
27 enum WindowChoice {
28     WC_Nothing,
29     WC_Close,
30     WC_Quit,
31     WC_ExpensiveUpdate,
32     WC_Yes,
33     WC_No,
34     WC_InfoString,
35     WC_CopyBox,
36     WC_DeleteBox,
37     WC_SidePU,
38     WC_ImActive,
39     WC_ImClosing,
40     WC_ImMoving,
41     WC_YouClose,
42     WC_CloseSidePU,
43     WC_LargeBlankDW,
44     WC_SliderWithUnits,
45 
46     MM_MainSM,
47     MM_SetupBattle,
48     MM_ForceSelect,
49     MM_Options,
50 
51     Opt_StandardOptions,
52 	Opt_FullscreenToggle,
53 	Opt_SetResolution,
54     Opt_SetWindowColor,
55 	Opt_800,
56 	Opt_1024,
57 	Opt_1280,
58     Opt_MusicOn,
59     Opt_MusicOff,
60 
61     FS_LoadSideDW,
62     FS_LoadSideMenu,
63     FS_NewSide,
64     FS_LoadSide,
65     FS_LoadSidePU,
66     FS_DeleteFleet,
67     FS_CopyFleet,
68     FS_DeleteSide,
69     FS_CopySide,
70     FS_NewSideName,
71 
72     FS_BasePU,
73     FS_AddGroups,
74     FS_DeleteGroup,
75     FS_StartingPositions,
76     FS_SideOptions,
77     FS_SideOptionsPU,
78 	FS_ExitNoSave,
79 	FS_ExitNoSaveQ,
80 
81     FS_AddGroupMenu,
82     FS_AddGroupPU,
83     FS_NewUnit,
84     FS_NewCaSh,
85     FS_NewFr,
86     FS_NewSmSh,
87     FS_NewGroupChoicesOK,
88     FS_CapShipTypeSlider,
89     FS_NewGroupParentPU,
90     FS_DeleteUnit,
91     FS_CopyUnit,
92     FS_NewUnitName,
93 
94     FS_Commander,
95     FS_WhichSaveGroup,
96     FS_ChooseGSaveGroup,
97 
98     FS_EditGroup,
99     FS_EditGroupPU,
100     FS_ChangeParentCap,
101     FS_ChangeAIScript,
102     FS_ChooseSaveGroup,
103     FS_EditUnit,
104     FS_EditUnitPU,
105 
106     FS_AIScriptMenu,
107     FS_ChangeAIScriptPU,
108 
109     FS_Picture,
110     FS_SmallWeapons,
111     FS_BigWeapons,
112     FS_Engine,
113     FS_Armour,
114     FS_Shield,
115     FS_CSType,
116 
117     FS_HCS,
118     FS_MCS,
119     FS_LCS,
120 
121     FS_PictureMenu,
122     FS_WeaponsDW,
123     FS_SmallWeaponsMenu,
124     FS_BigWeaponsMenu,
125 
126     FS_EquipmentDW,
127     FS_EngineMenu,
128     FS_ArmourMenu,
129     FS_ShieldMenu,
130 
131 	FS_ForceExitQ,
132 
133     FS_GroupNumChange,
134 
135     FS_WT_None,
136     FS_WT_Twin1,
137     FS_WT_Twin2,
138     FS_WT_Twin3,
139 
140     FS_WT_BSSmall1,
141     FS_WT_BSSmall2,
142     FS_WT_BSSmall3,
143     FS_WT_BSLarge1,
144     FS_WT_BSLarge2,
145     FS_WT_BSLarge3,
146 
147     FS_WT_Missile1,
148     FS_WT_Missile2,
149     FS_WT_Missile3,
150     FS_WT_Torpedo1,
151     FS_WT_Torpedo2,
152     FS_WT_Torpedo3,
153 
154     FS_ET_None,
155     FS_ET_SSEngine1,
156     FS_ET_SSEngine2,
157     FS_ET_SSEngine3,
158     FS_ET_FrEngine1,
159     FS_ET_FrEngine2,
160     FS_ET_FrEngine3,
161 	FS_ET_CSEngine1,
162 
163     FS_ET_SSArmour1,
164     FS_ET_SSArmour2,
165     FS_ET_SSArmour3,
166     FS_ET_FrArmour1,
167     FS_ET_FrArmour2,
168     FS_ET_FrArmour3,
169     FS_ET_CSArmour1,
170     FS_ET_CSArmour2,
171     FS_ET_CSArmour3,
172 
173     FS_ET_SSShield1,
174     FS_ET_SSShield2,
175     FS_ET_SSShield3,
176     FS_ET_FrShield1,
177     FS_ET_FrShield2,
178     FS_ET_FrShield3,
179 
180 
181     SB_BasePU,
182     SB_LoadSideMenu,
183     SB_SelectForce,
184 
185     SB_PlayerList,
186     SB_RandomSeed,
187     SB_Kick,
188 
189     SB_ToBattle,
190 
191     PB_BasePU,
192     PB_IntoBattle,
193     PB_SaveAndExit,
194 
195     RTS_BasePU,
196     RTS_InfoChoicePU,
197     RTS_GameInfo,
198     RTS_SideStats,
199     RTS_SideVars,
200     RTS_SideSaveGroups,
201     RTS_SideAIDebug,
202 
203     RTS_GroupStats,
204     RTS_GroupShieldsInfo,
205     RTS_GroupStatusReport,
206     RTS_GroupAIReport,
207     RTS_GroupVars,
208     RTS_GroupSaveGroups,
209     RTS_GroupTimers,
210     RTS_OptPU,
211     RTS_RestartQ,
212     RTS_SetGameSpeed,
213     RTS_SetScrollSpeed,
214     RTS_GroupNums,
215     RTS_GroupRects,
216 	RTS_CycleGroupInfo,
217 
218     Score_BasePU,
219     Score_Restart
220 };
221 
222 enum GenPicture{
223     GENPIC_CURSOR,
224     GENPIC_CLOSEBOX,
225 
226     GENPIC_TITLE,
227 
228     GENPIC_SMSHEXPLODE1,
229     GENPIC_SMSHEXPLODE2,
230     GENPIC_SMSHEXPLODE3,
231     GENPIC_SMSHEXPLODE4,
232     GENPIC_SMSHEXPLODE5,
233     GENPIC_SMSHEXPLODE6,
234 
235     GENPIC_FREXPLODE1,
236     GENPIC_FREXPLODE2,
237     GENPIC_FREXPLODE3,
238     GENPIC_FREXPLODE4,
239     GENPIC_FREXPLODE5,
240     GENPIC_FREXPLODE6,
241     GENPIC_FREXPLODE7,
242 
243     GENPIC_HCSEXPLODE1,
244     GENPIC_HCSEXPLODE2,
245     GENPIC_HCSEXPLODE3,
246     GENPIC_HCSEXPLODE4,
247     GENPIC_HCSEXPLODE5,
248     GENPIC_HCSEXPLODE6,
249     GENPIC_HCSEXPLODE7,
250     GENPIC_HCSEXPLODE8,
251     GENPIC_HCSEXPLODE9,
252 
253     GENPIC_MCSEXPLODE1,
254     GENPIC_MCSEXPLODE2,
255     GENPIC_MCSEXPLODE3,
256     GENPIC_MCSEXPLODE4,
257     GENPIC_MCSEXPLODE5,
258     GENPIC_MCSEXPLODE6,
259     GENPIC_MCSEXPLODE7,
260     GENPIC_MCSEXPLODE8,
261     GENPIC_MCSEXPLODE9,
262 
263     GENPIC_LCSEXPLODE1,
264     GENPIC_LCSEXPLODE2,
265     GENPIC_LCSEXPLODE3,
266     GENPIC_LCSEXPLODE4,
267     GENPIC_LCSEXPLODE5,
268     GENPIC_LCSEXPLODE6,
269     GENPIC_LCSEXPLODE7,
270     GENPIC_LCSEXPLODE8,
271     GENPIC_LCSEXPLODE9
272 };
273 
274 enum WeaponType{
275     WT_None,
276     WT_Twin1,
277     WT_Twin2,
278     WT_Twin3,
279 
280     WT_BSSmall1,
281     WT_BSSmall2,
282     WT_BSSmall3,
283 
284     WT_BSLarge1,
285     WT_BSLarge2,
286     WT_BSLarge3,
287 
288     WT_Missile1,
289     WT_Missile2,
290     WT_Missile3,
291 
292     WT_Torpedo1,
293     WT_Torpedo2,
294     WT_Torpedo3
295 };
296 
297 enum WeaponCat{
298     WCAT_None,
299     WCAT_Twin,
300     WCAT_Small,
301     WCAT_Large,
302     WCAT_Missile,
303     WCAT_Torpedo,
304     WCAT_Explosion
305 };
306 
307 enum EquipCat{
308     EQCAT_None,
309     EQCAT_SSEngine,
310     EQCAT_FrEngine,
311     EQCAT_CSEngine,
312     EQCAT_SSArmour,
313     EQCAT_FrArmour,
314     EQCAT_CSArmour,
315     EQCAT_SSShield,
316     EQCAT_FrShield
317 };
318 
319 enum UnitType {UT_CaShUnit, UT_FrUnit, UT_SmShUnit};
320 
321 enum CapShipType {CST_None, CST_Light, CST_Medium, CST_Heavy};
322 
323 enum WeaponStage {w_Reloading, w_Ready, w_Aiming, w_Firing};
324 
325 enum MoveCommand {MC_NoMove, MC_MoveCompass, MC_MoveGroup, MC_Patrol};
326 
327 //these share the decimal number of the ascii codes, so we don't have to manipulate things quite so much when turning into bytecode
328 const unsigned char TT_Tab = 9;
329 //space is 20
330 const unsigned char TT_Comment = 35; //i.e. #
331 //
332 const unsigned char TT_Modulo = 37; //%
333 //
334 //40 no TT_OpenB
335 //41 no TT_CloseB
336 const unsigned char TT_Multiply = 42;
337 const unsigned char TT_Add = 43;
338 //comma 44
339 const unsigned char TT_Minus = 45;
340 //46 dot
341 const unsigned char TT_Divide = 47;
342 //
343 //48 -> 5something are numbers
344 
345 const unsigned char TT_Colon = 58;
346 const unsigned char TT_Jump = 64;
347 
348 ////
349 
350 //starting from A:
351 const unsigned char TT_If = 65;
352 const unsigned char TT_Else = 66;
353 const unsigned char TT_ElIf = 67;
354 const unsigned char TT_Return = 68;
355 const unsigned char TT_StartTimer = 69;
356 
357 const unsigned char TT_Move = 70;
358 const unsigned char TT_MoveAway = 71;
359 const unsigned char TT_Fire = 72;
360 const unsigned char TT_Patrol = 73;
361 
362 const unsigned char TT_Our = 74;
363 const unsigned char TT_AnyEnemy = 75;
364 const unsigned char TT_AnyFriend = 76;
365 const unsigned char TT_AnyAlly = 77;
366 const unsigned char TT_NearestEnemy = 78;
367 const unsigned char TT_NearestFriend = 79;
368 const unsigned char TT_NearestAlly = 80;
369 const unsigned char TT_NearestWorldEdge = 81;
370 
371 const unsigned char TT_NumEnemy = 82;
372 const unsigned char TT_NumFriend = 83;
373 const unsigned char TT_NumAlly = 84;
374 
375 const unsigned char TT_Number = 85;
376 const unsigned char TT_Health = 86;
377 const unsigned char TT_Shield = 87;
378 const unsigned char TT_Armour = 88;
379 const unsigned char TT_MaxHealth = 89;
380 const unsigned char TT_MaxShield = 90;
381 const unsigned char TT_MaxArmour = 91;
382 const unsigned char TT_UnitMaxShield = 92;
383 const unsigned char TT_UnitMaxArmour = 93;
384 const unsigned char TT_Speed = 94;
385 const unsigned char TT_Distance = 95;
386 
387 const unsigned char TT_SmallRange = 96;
388 const unsigned char TT_SmallPower = 97;
389 const unsigned char TT_BigRange = 98;
390 const unsigned char TT_BigPower = 99;
391 const unsigned char TT_BigType = 100;
392 const unsigned char TT_BigAmmo = 101;
393 const unsigned char TT_InSmallRange = 102;
394 const unsigned char TT_InBigRange = 103;
395 const unsigned char TT_OurInSmallRange = 104;
396 const unsigned char TT_OurInBigRange = 105;
397 
398 const unsigned char TT_Left = 106;
399 const unsigned char TT_MissTarget = 107;
400 const unsigned char TT_TorpTarget = 108;
401 const unsigned char TT_GroupType = 109;
402 
403 const unsigned char TT_None = 110;
404 const unsigned char TT_Laser = 111;
405 const unsigned char TT_Missile = 112;
406 const unsigned char TT_Torpedo = 113;
407 
408 const unsigned char TT_CapitalShip = 114;
409 const unsigned char TT_Frigate = 115;
410 const unsigned char TT_SmallShip = 116;
411 
412 const unsigned char TT_Equal = 117;
413 const unsigned char TT_NotEqual = 118;
414 const unsigned char TT_GreaterThan = 119;
415 const unsigned char TT_LessThan = 120;
416 const unsigned char TT_GreaterThanEqual = 121;
417 const unsigned char TT_LessThanEqual = 122;
418 const unsigned char TT_Not = 123;
419 
420 const unsigned char TT_And = 124;
421 const unsigned char TT_Or = 125;
422 
423 const unsigned char TT_Integer = 126;
424 const unsigned char TT_ScriptVar = 127;
425 const unsigned char TT_SaveGroup = 128;
426 const unsigned char TT_ScriptTimer = 129;
427 
428 const unsigned char TT_GScriptVar = 130;
429 const unsigned char TT_GSaveGroup = 131;
430 
431 const unsigned char TT_Assign = 132;
432 const unsigned char TT_Increment = 133;
433 const unsigned char TT_Decrement = 134;
434 
435 const unsigned char TT_N = 135;
436 const unsigned char TT_NE = 136;
437 const unsigned char TT_E = 137;
438 const unsigned char TT_SE = 138;
439 const unsigned char TT_S = 139;
440 const unsigned char TT_SW = 140;
441 const unsigned char TT_W = 141;
442 const unsigned char TT_NW = 142;
443 
444 const unsigned char TT_NorthEdge = 143;
445 const unsigned char TT_EastEdge = 144;
446 const unsigned char TT_SouthEdge = 145;
447 const unsigned char TT_WestEdge = 146;
448 
449 const unsigned char TT_Random = 147;
450 
451 #endif
452