40 |
40 |
41 // Game types that help determining what the engine is actually supposed to do |
41 // Game types that help determining what the engine is actually supposed to do |
42 TGameType = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview, gmtSyntax, gmtRecord); |
42 TGameType = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview, gmtSyntax, gmtRecord); |
43 |
43 |
44 // Different files are stored in different folders, this enumeration is used to tell which folder to use |
44 // Different files are stored in different folders, this enumeration is used to tell which folder to use |
45 TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptTeams, ptMaps, |
45 TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptConfig, ptTeams, ptMaps, |
46 ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts, ptLocale, |
46 ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts, ptLocale, |
47 ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps, |
47 ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps, |
48 ptSuddenDeath, ptButtons, ptShaders, ptConfig); |
48 ptSuddenDeath, ptButtons, ptShaders); |
49 |
49 |
50 // Available sprites for displaying stuff |
50 // Available sprites for displaying stuff |
51 TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprFrame, |
51 TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprBigDigitGray, sprBigDigitGreen, |
52 sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee, |
52 sprBigDigitRed, sprFrame, sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee, |
53 sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff, |
53 sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff, |
54 sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower, |
54 sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower, |
55 sprClusterBomb, sprClusterParticle, sprFlame, |
55 sprClusterBomb, sprClusterParticle, sprFlame, |
56 sprHorizont, sprHorizontL, sprHorizontR, sprSky, sprSkyL, sprSkyR, |
56 sprHorizont, sprHorizontL, sprHorizontR, sprSky, sprSkyL, sprSkyR, |
57 sprAMSlot, sprAMAmmos, sprAMAmmosBW, sprAMSlotKeys, sprAMCorners, |
57 sprAMSlot, sprAMAmmos, sprAMAmmosBW, sprAMSlotKeys, sprAMCorners, |
87 sprSMineOff, sprSMineOn, sprHandSMine, sprHammer, |
87 sprSMineOff, sprSMineOn, sprHandSMine, sprHammer, |
88 sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb, |
88 sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb, |
89 sprBulletHit, sprSnowball, sprHandSnowball, sprSnow, |
89 sprBulletHit, sprSnowball, sprHandSnowball, sprSnow, |
90 sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis, |
90 sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis, |
91 sprSlider, sprBotlevels, sprHandKnife, sprKnife, sprStar, sprIceTexture, sprIceGun, |
91 sprSlider, sprBotlevels, sprHandKnife, sprKnife, sprStar, sprIceTexture, sprIceGun, |
92 sprFrozenHog, sprAmRubber, sprBoing, sprCustom1, sprCustom2, sprAirMine, sprHandAirMine |
92 sprFrozenHog, sprAmRubber, sprBoing, sprCustom1, sprCustom2, sprCustom3, sprCustom4, |
|
93 sprCustom5, sprCustom6, sprCustom7, sprCustom8, sprAirMine, sprHandAirMine, |
|
94 sprFlakeL, sprSDFlakeL, sprCloudL, sprSDCloudL, sprDuck, sprHandDuck |
93 ); |
95 ); |
94 |
96 |
95 // Gears that interact with other Gears and/or Land |
97 // Gears that interact with other Gears and/or Land |
96 // first row of gears (<gtExplosives) should be avoided when searching a spawn place |
98 // first row of gears (<gtExplosives) should be avoided when searching a spawn place |
97 TGearType = (gtFlame, gtHedgehog, gtMine, gtCase, gtAirMine, gtExplosives, |
99 TGearType = (gtFlame, gtHedgehog, gtMine, gtCase, gtAirMine, gtExplosives, |
105 gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 41 |
107 gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 41 |
106 gtSniperRifleShot, gtJetpack, gtMolotov, gtBirdy, // 45 |
108 gtSniperRifleShot, gtJetpack, gtMolotov, gtBirdy, // 45 |
107 gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51 |
109 gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51 |
108 gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 56 |
110 gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 56 |
109 gtNapalmBomb, gtSnowball, gtFlake, {gtStructure,} gtLandGun, gtTardis, // 61 |
111 gtNapalmBomb, gtSnowball, gtFlake, {gtStructure,} gtLandGun, gtTardis, // 61 |
110 gtIceGun, gtAddAmmo, gtGenericFaller, gtKnife); // 65 |
112 gtIceGun, gtAddAmmo, gtGenericFaller, gtKnife, gtDuck); // 66 |
111 |
113 |
112 // Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.) |
114 // Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.) |
113 TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire, |
115 TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire, |
114 vgtSmallDamageTag, vgtTeamHealthSorter, vgtSpeechBubble, vgtBubble, |
116 vgtSmallDamageTag, vgtTeamHealthSorter, vgtSpeechBubble, vgtBubble, |
115 vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtShell, |
117 vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtShell, |
143 sndMelonImpact, sndDroplet1, sndDroplet2, sndDroplet3, sndEggBreak, sndDrillRocket, |
145 sndMelonImpact, sndDroplet1, sndDroplet2, sndDroplet3, sndEggBreak, sndDrillRocket, |
144 sndPoisonCough, sndPoisonMoan, sndBirdyLay, sndWhistle, sndBeeWater, |
146 sndPoisonCough, sndPoisonMoan, sndBirdyLay, sndWhistle, sndBeeWater, |
145 sndPiano0, sndPiano1, sndPiano2, sndPiano3, sndPiano4, sndPiano5, sndPiano6, sndPiano7, |
147 sndPiano0, sndPiano1, sndPiano2, sndPiano3, sndPiano4, sndPiano5, sndPiano6, sndPiano7, |
146 sndPiano8, sndSkip, sndSineGun, sndOoff1, sndOoff2, sndOoff3, sndWhack, |
148 sndPiano8, sndSkip, sndSineGun, sndOoff1, sndOoff2, sndOoff3, sndWhack, |
147 sndComeonthen, sndParachute, sndBump, sndResurrector, sndPlane, sndTardis, sndFrozenHogImpact, |
149 sndComeonthen, sndParachute, sndBump, sndResurrector, sndPlane, sndTardis, sndFrozenHogImpact, |
148 sndIceBeam, sndHogFreeze, sndAirMineImpact, sndKnifeImpact, sndExtraTime |
150 sndIceBeam, sndHogFreeze, sndAirMineImpact, sndKnifeImpact, sndExtraTime, sndLaserSight, |
149 ); |
151 sndInvulnerable, sndJetpackLaunch, sndJetpackBoost, sndPortalShot, sndPortalSwitch, |
|
152 sndPortalOpen, sndBlowTorch, sndCountdown1, sndCountdown2, sndCountdown3, sndCountdown4, |
|
153 sndDuckDrop, sndDuckWater, sndDuckDie, sndCustom1, sndCustom2, sndCustom3, sndCustom4, |
|
154 sndCustom5, sndCustom6, sndCustom7, sndCustom8); |
150 |
155 |
151 // Available ammo types to be used by hedgehogs |
156 // Available ammo types to be used by hedgehogs |
152 TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6 |
157 TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6 |
153 amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip, // 13 |
158 amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip, // 13 |
154 amBaseballBat, amParachute, amAirAttack, amMineStrike, amBlowTorch, // 18 |
159 amBaseballBat, amParachute, amAirAttack, amMineStrike, amBlowTorch, // 18 |
156 amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30 |
161 amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30 |
157 amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35 |
162 amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35 |
158 amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42 |
163 amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42 |
159 amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48 |
164 amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48 |
160 amResurrector, amDrillStrike, amSnowball, amTardis, {amStructure,} amLandGun, // 53 |
165 amResurrector, amDrillStrike, amSnowball, amTardis, {amStructure,} amLandGun, // 53 |
161 amIceGun, amKnife, amRubber, amAirMine); // 57 |
166 amIceGun, amKnife, amRubber, amAirMine, amDuck); // 58 |
162 |
167 |
163 // Different kind of crates that e.g. hedgehogs can pick up |
168 // Different kind of crates that e.g. hedgehogs can pick up |
164 TCrateType = (HealthCrate, AmmoCrate, UtilityCrate); |
169 TCrateType = (HealthCrate, AmmoCrate, UtilityCrate); |
165 |
170 |
166 THWFont = (fnt16, fntBig, fntSmall {$IFNDEF MOBILE}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF}); |
171 THWFont = (fnt16, fntBig, fntSmall {$IFNDEF MOBILE}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF}); |
271 // Don't use these if you want to take damage normally, otherwise health/damage are commonly used for other purposes |
276 // Don't use these if you want to take damage normally, otherwise health/damage are commonly used for other purposes |
272 Health, Damage, Karma: LongInt; |
277 Health, Damage, Karma: LongInt; |
273 // DirAngle is a 'real' - if you do not need it for rotation of sprite in uGearsRender, you can use it for any visual-only value |
278 // DirAngle is a 'real' - if you do not need it for rotation of sprite in uGearsRender, you can use it for any visual-only value |
274 DirAngle: real; |
279 DirAngle: real; |
275 // These are frequently overridden to serve some other purpose |
280 // These are frequently overridden to serve some other purpose |
276 Boom: Longword; // amount of damage caused by the gear |
281 Boom: Longword; // amount of damage caused by the gear |
277 Pos: Longword; // Commonly overridden. Example use is posCase values in uConsts. |
282 Pos: Longword; // Commonly overridden. Example use is posCase values in uConsts. |
278 Angle, Power : Longword; // Used for hog aiming/firing. Angle is rarely used as an Angle otherwise. |
283 Angle, Power : Longword; // Used for hog aiming/firing. Angle is rarely used as an Angle otherwise. |
279 Timer, WDTimer : LongWord; // Typically used for some sort of gear timer. Time to explosion, remaining fuel... |
284 Timer, WDTimer : LongWord; // Typically used for some sort of gear timer. Time to explosion, remaining fuel... |
280 Tag: LongInt; // Quite generic. Variety of uses. |
285 Tag: LongInt; // Quite generic. Variety of uses. |
281 FlightTime: Longword; // Initially added for batting of hogs to determine homerun. Used for some firing delays |
286 FlightTime: Longword; // Initially added for batting of hogs to determine homerun. Used for some firing delays |
449 sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime, |
457 sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime, |
450 sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack, |
458 sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack, |
451 sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb, |
459 sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb, |
452 sidSineGun, sidFlamethrower,sidSMine, sidHammer, sidResurrector, |
460 sidSineGun, sidFlamethrower,sidSMine, sidHammer, sidResurrector, |
453 sidDrillStrike, sidSnowball, sidNothing, sidTardis, |
461 sidDrillStrike, sidSnowball, sidNothing, sidTardis, |
454 {sidStructure,} sidLandGun, sidIceGun, sidKnife, sidRubber, sidAirMine); |
462 {sidStructure,} sidLandGun, sidIceGun, sidKnife, sidRubber, sidAirMine, |
455 |
463 sidDuck); |
456 TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused, |
464 |
|
465 TMsgStrId = (sidLoading, sidDraw, sidWinner, sidVolume, sidPaused, |
457 sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync, |
466 sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync, |
458 sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady, |
467 sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady, |
459 sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce, |
468 sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce, |
460 sidMute, sidAFK, sidAutoCameraOff, sidAutoCameraOn, sidPressTarget); |
469 sidMute, sidAFK, sidAutoCameraOff, sidAutoCameraOn, sidPressTarget, |
|
470 sidNotAvailableInSD, sidHealthGain, sidEmptyCrate); |
461 |
471 |
462 // Events that are important for the course of the game or at least interesting for other reasons |
472 // Events that are important for the course of the game or at least interesting for other reasons |
463 TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw, |
473 TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw, |
464 eidNewHealthPack, eidNewAmmoPack, eidNewUtilityPack, eidTurnSkipped, |
474 eidNewHealthPack, eidNewAmmoPack, eidNewUtilityPack, eidTurnSkipped, |
465 eidHurtSelf, eidHomerun, eidGone); |
475 eidHurtSelf, eidHomerun, eidGone, eidPoisoned, eidResurrected, |
466 |
476 eidKamikaze, eidTimeTravelEnd, eidTimeout, eidKingDied); |
467 TGoalStrId = (gidCaption, gidSubCaption, gidForts, gidLowGravity, gidInvulnerable, |
477 |
|
478 TGoalStrId = (gidCaption, gidSubCaption, gidPlaceKing, gidLowGravity, gidInvulnerable, |
468 gidVampiric, gidKarma, gidKing, gidPlaceHog, gidArtillery, |
479 gidVampiric, gidKarma, gidKing, gidPlaceHog, gidArtillery, |
469 gidSolidLand, gidSharedAmmo, gidMineTimer, gidNoMineTimer, |
480 gidSolidLand, gidSharedAmmo, gidMineTimer, gidNoMineTimer, |
470 gidRandomMineTimer, gidDamageModifier, gidResetHealth, gidAISurvival, |
481 gidRandomMineTimer, gidDamageModifier, gidResetHealth, gidAISurvival, |
471 gidInfAttack, gidResetWeps, gidPerHogAmmo, gidTagTeam); |
482 gidInfAttack, gidResetWeps, gidPerHogAmmo, gidTagTeam, gidMoreWind); |
472 |
483 |
473 |
484 |
474 TLandArray = packed array of array of LongWord; |
485 TLandArray = packed array of array of LongWord; |
475 TCollisionArray = packed array of array of Word; |
486 TCollisionArray = packed array of array of Word; |
476 TDirtyTag = packed array of array of byte; |
487 TDirtyTag = packed array of array of byte; |