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