author | Edža <s@o-o.lv> |
Tue, 23 Jul 2013 16:18:21 +0300 | |
changeset 9369 | b96988134dc6 |
parent 9317 | a04c30940d2d |
child 9377 | 48ab6dea8d2f |
permissions | -rw-r--r-- |
4976 | 1 |
(* |
2 |
* Hedgewars, a free turn based strategy game |
|
9080 | 3 |
* Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@gmail.com> |
4976 | 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 as published by |
|
7 |
* the Free Software Foundation; version 2 of the License |
|
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU General Public License |
|
15 |
* along with this program; if not, write to the Free Software |
|
16 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
|
17 |
*) |
|
18 |
||
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
19 |
{$INCLUDE "options.inc"} |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
20 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
21 |
unit uTypes; |
5125 | 22 |
(* |
23 |
* This unit defines various types and enumerations for usage in different |
|
24 |
* places in the engine code. |
|
25 |
*) |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
26 |
interface |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
27 |
|
4361 | 28 |
uses SDLh, uFloat, GLunit, uConsts, Math; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
29 |
|
4812
f924be23ffb4
merge with HEAD after 0.9.15 release, move consts and vars in their proper files
koda
parents:
4807
diff
changeset
|
30 |
// NOTE: typed const is a variable despite const qualifier |
f924be23ffb4
merge with HEAD after 0.9.15 release, move consts and vars in their proper files
koda
parents:
4807
diff
changeset
|
31 |
// in freepascal you may actually use var for the same purpose |
f924be23ffb4
merge with HEAD after 0.9.15 release, move consts and vars in their proper files
koda
parents:
4807
diff
changeset
|
32 |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
33 |
type |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
34 |
HwColor4f = record |
6277 | 35 |
r, g, b, a: byte; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
36 |
end; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
37 |
|
5125 | 38 |
// Possible states of the game |
5968
4e8bb227be9a
this reintroduces the gsSuspend state to fix multitasking on ios
koda
parents:
5728
diff
changeset
|
39 |
TGameState = (gsLandGen, gsStart, gsGame, gsChat, gsConfirm, gsExit, gsSuspend); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
40 |
|
5125 | 41 |
// Game types that help determining what the engine is actually supposed to do |
7180 | 42 |
TGameType = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview, gmtSyntax, gmtRecord); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
43 |
|
5125 | 44 |
// Different files are stored in different folders, this enumeration is used to tell which folder to use |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
45 |
TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptTeams, ptMaps, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
46 |
ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts, |
5619
2ec22ebeb6f5
added a visual fire button, isOnFireButton check needs to be fixed though it only works on 800x480 screens
Xeli
parents:
5585
diff
changeset
|
47 |
ptLocale, ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps, ptSuddenDeath, ptButtons); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
48 |
|
5125 | 49 |
// Available sprites for displaying stuff |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
50 |
TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprFrame, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
51 |
sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
52 |
sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
53 |
sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower, |
6609 | 54 |
sprClusterBomb, sprClusterParticle, sprFlame, |
55 |
sprHorizont, sprHorizontL, sprHorizontR, sprSky, sprSkyL, sprSkyR, |
|
6627 | 56 |
sprAMSlot, sprAMAmmos, sprAMAmmosBW, sprAMSlotKeys, sprAMCorners, |
6609 | 57 |
sprFinger, sprAirBomb, sprAirplane, sprAmAirplane, sprAmGirder, |
58 |
sprHHTelepMask, sprSwitch, sprParachute, sprTarget, sprRopeNode, |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
59 |
sprQuestion, sprPowerBar, sprWindBar, sprWindL, sprWindR, |
6676
21cf35a570a7
add keywords for landscape ammomenu and touch interface
koda
parents:
6637
diff
changeset
|
60 |
{$IFDEF USE_TOUCH_INTERFACE} |
6685
ef706fccfb0a
moved other widgets under the USE_TOUCH_INTERFACE, added pause button (at least, graphically...)
koda
parents:
6683
diff
changeset
|
61 |
sprFireButton, sprArrowUp, sprArrowDown, sprArrowLeft, sprArrowRight, |
6957 | 62 |
sprJumpWidget, sprAMWidget, sprPauseButton, sprTimerButton, sprTargetButton, |
6637
b4a3310f2974
show buttons on the screen, similar to the iOS overlay
Xeli
parents:
6627
diff
changeset
|
63 |
{$ENDIF} |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
64 |
sprFlake, sprHandRope, sprHandBazooka, sprHandShotgun, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
65 |
sprHandDEagle, sprHandAirAttack, sprHandBaseball, sprPHammer, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
66 |
sprHandBlowTorch, sprBlowTorch, sprTeleport, sprHHDeath, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
67 |
sprShotgun, sprDEagle, sprHHIdle, sprMortar, sprTurnsLeft, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
68 |
sprKamikaze, sprWhip, sprKowtow, sprSad, sprWave, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
69 |
sprHurrah, sprLemonade, sprShrug, sprJuggle, sprExplPart, sprExplPart2, |
6609 | 70 |
sprCakeWalk, sprCakeDown, sprWatermelon, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
71 |
sprEvilTrace, sprHellishBomb, sprSeduction, sprDress, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
72 |
sprCensored, sprDrill, sprHandDrill, sprHandBallgun, sprBalls, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
73 |
sprPlane, sprHandPlane, sprUtility, sprInvulnerable, sprVampiric, sprGirder, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
74 |
sprSpeechCorner, sprSpeechEdge, sprSpeechTail, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
75 |
sprThoughtCorner, sprThoughtEdge, sprThoughtTail, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
76 |
sprShoutCorner, sprShoutEdge, sprShoutTail, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
77 |
sprSniperRifle, sprBubbles, sprJetpack, sprHealth, sprHandMolotov, sprMolotov, |
5065 | 78 |
sprSmoke, sprSmokeWhite, sprShell, sprDust, sprSnowDust, sprExplosives, sprExplosivesRoll, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
79 |
sprAmTeleport, sprSplash, sprDroplet, sprBirdy, sprHandCake, sprHandConstruction, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
80 |
sprHandGrenade, sprHandMelon, sprHandMortar, sprHandSkip, sprHandCluster, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
81 |
sprHandDynamite, sprHandHellish, sprHandMine, sprHandSeduction, sprHandVamp, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
82 |
sprBigExplosion, sprSmokeRing, sprBeeTrace, sprEgg, sprTargetBee, sprHandBee, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
83 |
sprFeather, sprPiano, sprHandSineGun, sprPortalGun, sprPortal, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
84 |
sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
85 |
sprSMineOff, sprSMineOn, sprHandSMine, sprHammer, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
86 |
sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb, |
4782
603916ddf4b6
added also splash and droplets to sd and refactored theme.cfg, not all themes updated
Henek
parents:
4772
diff
changeset
|
87 |
sprBulletHit, sprSnowball, sprHandSnowball, sprSnow, |
6025
cac1d5601d7c
reviewed the build system and parts of the previous merge, performed some code cleanup
koda
parents:
6023
diff
changeset
|
88 |
sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis, |
8557 | 89 |
sprSlider, sprBotlevels, sprHandKnife, sprKnife, sprStar, sprIceTexture, sprIceGun, sprFrozenHog |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
90 |
); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
91 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
92 |
// Gears that interact with other Gears and/or Land |
6888 | 93 |
TGearType = ({-->}gtFlame, gtHedgehog, gtMine, gtCase, gtExplosives, // <-- these are gears which should be avoided when searching a spawn place |
94 |
gtGrenade, gtShell, gtGrave, gtBee, // 8 |
|
95 |
gtShotgunShot, gtPickHammer, gtRope, // 11 |
|
96 |
gtDEagleShot, gtDynamite, gtClusterBomb, gtCluster, gtShover, // 16 |
|
97 |
gtFirePunch, gtATStartGame, // 18 |
|
98 |
gtATFinishGame, gtParachute, gtAirAttack, gtAirBomb, gtBlowTorch, // 23 |
|
99 |
gtGirder, gtTeleport, gtSwitcher, gtTarget, gtMortar, // 28 |
|
100 |
gtWhip, gtKamikaze, gtCake, gtSeduction, gtWatermelon, gtMelonPiece, // 34 |
|
101 |
gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 40 |
|
102 |
gtSniperRifleShot, gtJetpack, gtMolotov, gtBirdy, // 44 |
|
5357
ec36f3d53f3c
Tiny optimization: convert smooth wind indicator change gear into visual gear
unc0rr
parents:
5319
diff
changeset
|
103 |
gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 50 |
ec36f3d53f3c
Tiny optimization: convert smooth wind indicator change gear into visual gear
unc0rr
parents:
5319
diff
changeset
|
104 |
gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 55 |
8161 | 105 |
gtNapalmBomb, gtSnowball, gtFlake, {gtStructure,} gtLandGun, gtTardis, // 61 |
7730
2013733f9ca9
A bit more on the knife. Also add missing files to CMakeLists
nemo
parents:
7647
diff
changeset
|
106 |
gtIceGun, gtAddAmmo, gtGenericFaller, gtKnife); // 65 |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
107 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
108 |
// Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.) |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
109 |
TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
110 |
vgtSmallDamageTag, vgtTeamHealthSorter, vgtSpeechBubble, vgtBubble, |
5563 | 111 |
vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtShell, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
112 |
vgtDust, vgtSplash, vgtDroplet, vgtSmokeRing, vgtBeeTrace, vgtEgg, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
113 |
vgtFeather, vgtHealthTag, vgtSmokeTrace, vgtEvilTrace, vgtExplosion, |
5357
ec36f3d53f3c
Tiny optimization: convert smooth wind indicator change gear into visual gear
unc0rr
parents:
5319
diff
changeset
|
114 |
vgtBigExplosion, vgtChunk, vgtNote, vgtLineTrail, vgtBulletHit, vgtCircle, |
5562 | 115 |
vgtSmoothWindBar, vgtStraightShot); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
116 |
|
5125 | 117 |
// Damage can be caused by different sources |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
118 |
TDamageSource = (dsUnknown, dsFall, dsBullet, dsExplosion, dsShove, dsPoison); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
119 |
|
5125 | 120 |
// Available sounds |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
121 |
TSound = (sndNone, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
122 |
sndGrenadeImpact, sndExplosion, sndThrowPowerUp, sndThrowRelease, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
123 |
sndSplash, sndShotgunReload, sndShotgunFire, sndGraveImpact, |
5493 | 124 |
sndMineImpact, sndMineTick, sndMudballImpact, |
125 |
sndPickhammer, sndGun, sndBee, sndJump1, sndJump2, |
|
7980
7f8df51553a7
Remove duplicate files from voices (add a fallback check in uSound). Add JustYouWait as an alternate to IllGetYou. Note that IllGetYou being called every turn seems awkward. IMO they probably should be reserved for significant enemy action. Maybe played by team of heavily damaged or killed hog.
nemo
parents:
7754
diff
changeset
|
126 |
sndJump3, sndYesSir, sndLaugh, sndIllGetYou, sndJustYouWait, sndIncoming, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
127 |
sndMissed, sndStupid, sndFirstBlood, sndBoring, sndByeBye, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
128 |
sndSameTeam, sndNutter, sndReinforce, sndTraitor, sndRegret, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
129 |
sndEnemyDown, sndCoward, sndHurry, sndWatchIt, sndKamikaze, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
130 |
sndCake, sndOw1, sndOw2, sndOw3, sndOw4, sndFirePunch1, sndFirePunch2, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
131 |
sndFirePunch3, sndFirePunch4, sndFirePunch5, sndFirePunch6, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
132 |
sndMelon, sndHellish, sndYoohoo, sndRCPlane, sndWhipCrack, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
133 |
sndRideOfTheValkyries, sndDenied, sndPlaced, sndBaseballBat, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
134 |
sndVaporize, sndWarp, sndSuddenDeath, sndMortar, sndShutter, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
135 |
sndHomerun, sndMolotov, sndCover, sndUhOh, sndOops, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
136 |
sndNooo, sndHello, sndRopeShot, sndRopeAttach, sndRopeRelease, |
4978 | 137 |
sndSwitchHog, sndVictory, sndFlawless, sndSniperReload, sndSteps, sndLowGravity, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
138 |
sndHellishImpact1, sndHellishImpact2, sndHellishImpact3, sndHellishImpact4, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
139 |
sndMelonImpact, sndDroplet1, sndDroplet2, sndDroplet3, sndEggBreak, sndDrillRocket, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
140 |
sndPoisonCough, sndPoisonMoan, sndBirdyLay, sndWhistle, sndBeeWater, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
141 |
sndPiano0, sndPiano1, sndPiano2, sndPiano3, sndPiano4, sndPiano5, sndPiano6, sndPiano7, sndPiano8, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
142 |
sndSkip, sndSineGun, sndOoff1, sndOoff2, sndOoff3, sndWhack, |
9073 | 143 |
sndComeonthen, sndParachute, sndBump, sndResurrector, sndPlane, sndTardis, sndFrozenHogImpact, sndIceBeam, sndHogFreeze |
144 |
); |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
145 |
|
5125 | 146 |
// Available ammo types to be used by hedgehogs |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
147 |
TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
148 |
amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip, // 13 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
149 |
amBaseballBat, amParachute, amAirAttack, amMineStrike, amBlowTorch, // 18 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
150 |
amGirder, amTeleport, amSwitch, amMortar, amKamikaze, amCake, // 24 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
151 |
amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
152 |
amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
153 |
amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
154 |
amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48 |
8161 | 155 |
amResurrector, amDrillStrike, amSnowball, amTardis, {amStructure,} amLandGun, amIceGun, amKnife); // 54 |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
156 |
|
5125 | 157 |
// Different kind of crates that e.g. hedgehogs can pick up |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
158 |
TCrateType = (HealthCrate, AmmoCrate, UtilityCrate); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
159 |
|
5639 | 160 |
THWFont = (fnt16, fntBig, fntSmall {$IFNDEF MOBILE}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF}); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
161 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
162 |
TCapGroup = (capgrpGameState, capgrpAmmoinfo, capgrpVolume, |
5118 | 163 |
capgrpMessage, capgrpMessage2, capgrpAmmostate); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
164 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
165 |
TStatInfoType = (siGameResult, siMaxStepDamage, siMaxStepKills, siKilledHHs, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
166 |
siClanHealth, siTeamStats, siPlayerKills, siMaxTeamDamage, |
9178
c0902317c823
created a new sendstat type for changing the kills label
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9175
diff
changeset
|
167 |
siMaxTeamKills, siMaxTurnSkips, siCustomAchievement, siGraphTitle, |
c0902317c823
created a new sendstat type for changing the kills label
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9175
diff
changeset
|
168 |
siPointType); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
169 |
|
5125 | 170 |
// Various "emote" animations a hedgehog can do |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
171 |
TWave = (waveRollup, waveSad, waveWave, waveHurrah, waveLemonade, waveShrug, waveJuggle); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
172 |
|
4812
f924be23ffb4
merge with HEAD after 0.9.15 release, move consts and vars in their proper files
koda
parents:
4807
diff
changeset
|
173 |
TRenderMode = (rmDefault, rmLeftEye, rmRightEye); |
8359
9a7024b2a4d3
Removed wiggle 3D mode, reorder the list of 3D modes.
martin_bede
parents:
8204
diff
changeset
|
174 |
TStereoMode = (smNone, smRedCyan, smCyanRed, smRedBlue, smBlueRed, smRedGreen, smGreenRed, smHorizontal, smVertical); |
4812
f924be23ffb4
merge with HEAD after 0.9.15 release, move consts and vars in their proper files
koda
parents:
4807
diff
changeset
|
175 |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
176 |
THHFont = record |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
177 |
Handle: PTTF_Font; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
178 |
Height: LongInt; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
179 |
style: LongInt; |
6889 | 180 |
Name: string[31]; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
181 |
end; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
182 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
183 |
PAmmo = ^TAmmo; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
184 |
TAmmo = record |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
185 |
Propz: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
186 |
Count: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
187 |
(* Using for place hedgehogs mode, but for any other situation where the initial count would be needed I guess. |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
188 |
For example, say, a mode where the weaponset is reset each turn, or on sudden death *) |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
189 |
NumPerTurn: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
190 |
Timer: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
191 |
Pos: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
192 |
AmmoType: TAmmoType; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
193 |
AttackVoice: TSound; |
5319
51d8e4747876
bounce. tweak of values, remove friction modifier, move to weapon, to match timer behaviour
nemo
parents:
5316
diff
changeset
|
194 |
Bounciness: LongWord; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
195 |
end; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
196 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
197 |
TVertex2f = record |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6426
diff
changeset
|
198 |
X, Y: GLfloat; |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6426
diff
changeset
|
199 |
end; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
200 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
201 |
TVertex2i = record |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6426
diff
changeset
|
202 |
X, Y: GLint; |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6426
diff
changeset
|
203 |
end; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
204 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
205 |
PTexture = ^TTexture; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
206 |
TTexture = record |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
207 |
id: GLuint; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
208 |
w, h, scale: LongInt; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
209 |
rx, ry: GLfloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
210 |
priority: GLfloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
211 |
vb, tb: array [0..3] of TVertex2f; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
212 |
PrevTexture, NextTexture: PTexture; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
213 |
end; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
214 |
|
7010
10a0a31804f3
Switch effects to longint for convenience of tracking ice states. I could add a new Hedgehog value, but since we have this effects list being all useless as booleans anyway...
nemo
parents:
7007
diff
changeset
|
215 |
THogEffect = (heInvulnerable, heResurrectable, hePoisoned, heResurrected, heFrozen); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
216 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
217 |
TScreenFade = (sfNone, sfInit, sfToBlack, sfFromBlack, sfToWhite, sfFromWhite); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
218 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
219 |
PGear = ^TGear; |
4361 | 220 |
PHedgehog = ^THedgehog; |
221 |
PTeam = ^TTeam; |
|
222 |
PClan = ^TClan; |
|
223 |
||
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
224 |
TGearStepProcedure = procedure (Gear: PGear); |
8774
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
225 |
// So, you're here looking for variables you can (ab)use to store some gear state? |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
226 |
// Not all members of this structure are created equal. Comments below are my take on what can be used for what in the gear structure. |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
227 |
TGear = record |
8774
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
228 |
// Don't ever override these. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
229 |
NextGear, PrevGear: PGear; // Linked list |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
230 |
Z: Longword; // Z index. For rendering. Sets order in list |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
231 |
Active: Boolean; // Is gear Active (running step code) |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
232 |
Kind: TGearType; |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
233 |
doStep: TGearStepProcedure; // Code the gear is running |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
234 |
AmmoType : TAmmoType; // Ammo type associated with this kind of gear |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
235 |
RenderTimer: Boolean; // Will visually display Timer if true |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
236 |
Target : TPoint; // Gear target. Will render in uGearsRender unless a special case is added |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
237 |
AIHints: LongWord; // hints for ai. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
238 |
LastDamage: PHedgehog; // Used to track damage source for stats |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
239 |
CollisionIndex: LongInt; // Position in collision array |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
240 |
Message: LongWord; // Game messages are stored here. See gm bitmasks in uConsts |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
241 |
uid: Longword; // Lua use this to reference gears |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
242 |
// Strongly recommended not to override these. Will mess up generic operations like portaling |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
243 |
X : hwFloat; // X/Y/dX/dY are position/velocity. People count on these having semi-normal values |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
244 |
Y : hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
245 |
dX: hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
246 |
dY: hwFloat; |
8774
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
247 |
State : Longword; // See gst bitmask values in uConsts |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
248 |
PortalCounter: LongWord; // Necessary to interrupt portal loops. Not possible to avoid infinite loops without it. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
249 |
// Don't use these if you're using generic movement like doStepFallingGear and explosion shoves. Generally recommended not to use. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
250 |
Radius: LongInt; // Radius. If not using uCollisions, is usually used to indicate area of effect |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
251 |
CollisionMask: Word; // Masking off Land impact FF7F for example ignores current hog and crates |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
252 |
AdvBounce: Longword; // Triggers 45° bounces. Is a counter to avoid edge cases |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
253 |
Elasticity: hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
254 |
Friction : hwFloat; |
8774
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
255 |
Density : hwFloat; // Density is kind of a mix of size and density. Impacts distance thrown, wind. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
256 |
ImpactSound: TSound; // first sound, others have to be after it in the sounds def. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
257 |
nImpactSounds: Word; // count of ImpactSounds. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
258 |
// Don't use these if you want to take damage normally, otherwise health/damage are commonly used for other purposes |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
259 |
Invulnerable: Boolean; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
260 |
Health, Damage, Karma: LongInt; |
8774
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
261 |
// DirAngle is a "real" - if you don't need it for rotation of sprite in uGearsRender, you can use it for any visual-only value |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
262 |
DirAngle: real; |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
263 |
// These are frequently overridden to serve some other purpose |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
264 |
Pos: Longword; // Commonly overridden. Example use is posCase values in uConsts. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
265 |
Angle, Power : Longword; // Used for hog aiming/firing. Angle is rarely used as an Angle otherwise. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
266 |
Timer : LongWord; // Typically used for some sort of gear timer. Time to explosion, remaining fuel... |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
267 |
Tag: LongInt; // Quite generic. Variety of uses. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
268 |
FlightTime: Longword; // Initially added for batting of hogs to determine homerun. Used for some firing delays |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
269 |
MsgParam: LongWord; // Initially stored a set of messages. So usually gm values like Message. Frequently overriden |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
270 |
// These are not used generically, but should probably be used for purpose intended. Definitely shouldn't override pointer type |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
271 |
Tex: PTexture; // A texture created by the gear. Shouldn't use for anything but textures |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
272 |
LinkedGear: PGear; // Used to track a related gear. Portal pairs for example. |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
273 |
Hedgehog: PHedgehog; // set to CurrentHedgehog on gear creation |
39754516eee6
Try to document TGear a bit, so people know what is commonly overridden, and what stuff is used for. Remove gtIceGun-specific values from TGear and abuse a couple of commonly abused members instead.
nemo
parents:
8557
diff
changeset
|
274 |
SoundChannel: LongInt; // Used to track a sound the gear started |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6426
diff
changeset
|
275 |
end; |
6426 | 276 |
TPGearArray = array of PGear; |
7335 | 277 |
PGearArrayS = record |
278 |
size: LongWord; |
|
279 |
ar: ^TPGearArray; |
|
280 |
end; |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
281 |
|
4361 | 282 |
PVisualGear = ^TVisualGear; |
283 |
TVGearStepProcedure = procedure (Gear: PVisualGear; Steps: Longword); |
|
284 |
TVisualGear = record |
|
285 |
NextGear, PrevGear: PVisualGear; |
|
286 |
Frame, |
|
287 |
FrameTicks: Longword; |
|
4379
6cd6b77df8b8
No need for Extended data type just to draw some visual gears. It's a shame we have Math unit dependency
unC0Rr
parents:
4367
diff
changeset
|
288 |
X : real; |
6cd6b77df8b8
No need for Extended data type just to draw some visual gears. It's a shame we have Math unit dependency
unC0Rr
parents:
4367
diff
changeset
|
289 |
Y : real; |
6cd6b77df8b8
No need for Extended data type just to draw some visual gears. It's a shame we have Math unit dependency
unC0Rr
parents:
4367
diff
changeset
|
290 |
dX: real; |
6cd6b77df8b8
No need for Extended data type just to draw some visual gears. It's a shame we have Math unit dependency
unC0Rr
parents:
4367
diff
changeset
|
291 |
dY: real; |
6cd6b77df8b8
No need for Extended data type just to draw some visual gears. It's a shame we have Math unit dependency
unC0Rr
parents:
4367
diff
changeset
|
292 |
tdX: real; |
6cd6b77df8b8
No need for Extended data type just to draw some visual gears. It's a shame we have Math unit dependency
unC0Rr
parents:
4367
diff
changeset
|
293 |
tdY: real; |
4361 | 294 |
State : Longword; |
295 |
Timer: Longword; |
|
296 |
Angle, dAngle: real; |
|
297 |
Kind: TVisualGearType; |
|
298 |
doStep: TVGearStepProcedure; |
|
299 |
Tex: PTexture; |
|
300 |
alpha, scale: GLfloat; |
|
4365 | 301 |
Hedgehog: PHedgehog; |
5357
ec36f3d53f3c
Tiny optimization: convert smooth wind indicator change gear into visual gear
unc0rr
parents:
5319
diff
changeset
|
302 |
Tag: LongInt; |
4361 | 303 |
Text: shortstring; |
304 |
Tint: Longword; |
|
4422 | 305 |
uid: Longword; |
5585
c09f5b41644a
Break visual gears list up into 4, to avoid iterating over entire list to draw a single layer. Also fix error in tag zoom.
nemo
parents:
5563
diff
changeset
|
306 |
Layer: byte; |
4361 | 307 |
end; |
308 |
||
309 |
TStatistics = record |
|
310 |
DamageRecv, |
|
311 |
DamageGiven: Longword; |
|
312 |
StepDamageRecv, |
|
313 |
StepDamageGiven, |
|
314 |
StepKills: Longword; |
|
315 |
MaxStepDamageRecv, |
|
316 |
MaxStepDamageGiven, |
|
317 |
MaxStepKills: Longword; |
|
318 |
FinishedTurns: Longword; |
|
319 |
end; |
|
320 |
||
321 |
TTeamStats = record |
|
322 |
Kills : Longword; |
|
5202 | 323 |
Suicides: Longword; |
4361 | 324 |
AIKills : Longword; |
325 |
TeamKills : Longword; |
|
326 |
TurnSkips : Longword; |
|
327 |
TeamDamage : Longword; |
|
328 |
end; |
|
329 |
||
7191
9419294e5f33
first attempt at implementing support for keys with modifiers
Xeli
parents:
7034
diff
changeset
|
330 |
TBinds = array[0..cKbdMaxIndex] of shortstring; |
4361 | 331 |
TKeyboardState = array[0..cKeyMaxIndex] of Byte; |
332 |
||
333 |
PVoicepack = ^TVoicepack; |
|
334 |
TVoicepack = record |
|
335 |
name: shortstring; |
|
336 |
chunks: array [TSound] of PMixChunk; |
|
337 |
end; |
|
338 |
||
5638
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
339 |
TVoice = record |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
340 |
snd: TSound; |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
341 |
voicepack: PVoicePack; |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
342 |
end; |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
343 |
|
7034
e3639ce1d4f8
(PointerTo (SimpleType _)) could be a pointer to a non-struct type
unc0rr
parents:
7016
diff
changeset
|
344 |
THHAmmo = array[0..cMaxSlotIndex, 0..cMaxSlotAmmoIndex] of TAmmo; |
4361 | 345 |
PHHAmmo = ^THHAmmo; |
346 |
||
347 |
THedgehog = record |
|
7016 | 348 |
Name: shortstring; |
4361 | 349 |
Gear: PGear; |
4881
35e6269227b6
still in developement take on adding structures, working hiding of hogs and ejecting them later.
Henek
parents:
4812
diff
changeset
|
350 |
GearHidden: PGear; |
4361 | 351 |
SpeechGear: PVisualGear; |
352 |
NameTagTex, |
|
353 |
HealthTagTex, |
|
354 |
HatTex: PTexture; |
|
355 |
Ammo: PHHAmmo; |
|
356 |
CurAmmoType: TAmmoType; |
|
7389
15c3fb4882df
Sorry about the slight delay in pickup. You can blame a few lame cheaters. This is to make their cheating a bit harder.
nemo
parents:
7335
diff
changeset
|
357 |
PickUpType: LongWord; |
15c3fb4882df
Sorry about the slight delay in pickup. You can blame a few lame cheaters. This is to make their cheating a bit harder.
nemo
parents:
7335
diff
changeset
|
358 |
PickUpDelay: LongInt; |
4361 | 359 |
AmmoStore: Longword; |
360 |
Team: PTeam; |
|
361 |
MultiShootAttacks: Longword; |
|
362 |
visStepPos: LongWord; |
|
363 |
BotLevel : Byte; // 0 - Human player |
|
364 |
HatVisibility: GLfloat; |
|
365 |
stats: TStatistics; |
|
366 |
Hat: shortstring; |
|
367 |
InitialHealth: LongInt; // used for gfResetHealth |
|
368 |
King: boolean; // Flag for a bunch of hedgehog attributes |
|
369 |
Unplaced: boolean; // Flag for hog placing mode |
|
370 |
Timer: Longword; |
|
7010
10a0a31804f3
Switch effects to longint for convenience of tracking ice states. I could add a new Hedgehog value, but since we have this effects list being all useless as booleans anyway...
nemo
parents:
7007
diff
changeset
|
371 |
Effects: array[THogEffect] of LongInt; |
4361 | 372 |
end; |
373 |
||
374 |
TTeam = record |
|
375 |
Clan: PClan; |
|
7016 | 376 |
TeamName: shortstring; |
4361 | 377 |
ExtDriven: boolean; |
378 |
Binds: TBinds; |
|
379 |
Hedgehogs: array[0..cMaxHHIndex] of THedgehog; |
|
380 |
CurrHedgehog: LongWord; |
|
381 |
NameTagTex: PTexture; |
|
382 |
CrosshairTex, |
|
383 |
GraveTex, |
|
384 |
HealthTex, |
|
385 |
AIKillsTex, |
|
386 |
FlagTex: PTexture; |
|
387 |
Flag: shortstring; |
|
388 |
GraveName: shortstring; |
|
389 |
FortName: shortstring; |
|
390 |
TeamHealth: LongInt; |
|
391 |
TeamHealthBarWidth, |
|
392 |
NewTeamHealthBarWidth: LongInt; |
|
393 |
DrawHealthY: LongInt; |
|
394 |
AttackBar: LongWord; |
|
395 |
HedgehogsNumber: Longword; |
|
396 |
hasGone: boolean; |
|
397 |
voicepack: PVoicepack; |
|
398 |
PlayerHash: shortstring; // md5 hash of player name. For temporary enabling of hats as thank you. Hashed for privacy of players |
|
399 |
stats: TTeamStats; |
|
400 |
end; |
|
401 |
||
402 |
TClan = record |
|
403 |
Color: Longword; |
|
404 |
Teams: array[0..Pred(cMaxTeams)] of PTeam; |
|
405 |
TeamsNumber: Longword; |
|
5016
9347d82a26cc
added game mode Tag Team, mostly untested, please test :)
Henek
parents:
4978
diff
changeset
|
406 |
TagTeamIndex: Longword; |
4361 | 407 |
CurrTeam: LongWord; |
408 |
ClanHealth: LongInt; |
|
409 |
ClanIndex: LongInt; |
|
410 |
TurnNumber: LongWord; |
|
4978 | 411 |
Flawless: boolean; |
4361 | 412 |
end; |
413 |
||
8204 | 414 |
cdeclPtr = procedure; cdecl; |
415 |
cdeclIntPtr = procedure(num: LongInt); cdecl; |
|
416 |
functionDoublePtr = function: Double; |
|
417 |
||
418 |
TMobileRecord = record |
|
419 |
getScreenDPI: functionDoublePtr; |
|
420 |
PerformRumble: cdeclIntPtr; |
|
421 |
GameLoading: cdeclPtr; |
|
422 |
GameLoaded: cdeclPtr; |
|
423 |
SaveLoadingEnded: cdeclPtr; |
|
424 |
end; |
|
425 |
||
4807
180dbfb13903
display caption for ammotype amNothing when switched to so that players know what just happened
sheepluva
parents:
4782
diff
changeset
|
426 |
TAmmoStrId = (sidGrenade, sidClusterBomb, sidBazooka, sidBee, sidShotgun, |
4361 | 427 |
sidPickHammer, sidSkip, sidRope, sidMine, sidDEagle, |
428 |
sidDynamite, sidBaseballBat, sidFirePunch, sidSeconds, |
|
429 |
sidParachute, sidAirAttack, sidMineStrike, sidBlowTorch, |
|
430 |
sidGirder, sidTeleport, sidSwitch, sidMortar, sidWhip, |
|
431 |
sidKamikaze, sidCake, sidSeduction, sidWatermelon, |
|
432 |
sidHellishBomb, sidDrill, sidBallgun, sidNapalm, sidRCPlane, |
|
433 |
sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime, |
|
434 |
sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack, |
|
7404 | 435 |
sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb, |
436 |
sidSineGun, sidFlamethrower,sidSMine, sidHammer, sidResurrector, |
|
437 |
sidDrillStrike, sidSnowball, sidNothing, sidTardis, |
|
8161 | 438 |
{sidStructure,} sidLandGun, sidIceGun, sidKnife); |
4361 | 439 |
|
440 |
TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused, |
|
441 |
sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync, |
|
8795
b5b79a8f9354
merge correction, also what's with all those trailing whitespaces?
koda
parents:
8774
diff
changeset
|
442 |
sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady, |
7403 | 443 |
sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce, |
7404 | 444 |
sidMute); |
4361 | 445 |
|
5125 | 446 |
// Events that are important for the course of the game or at least interesting for other reasons |
4361 | 447 |
TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw, |
7404 | 448 |
eidNewHealthPack, eidNewAmmoPack, eidNewUtilityPack, eidTurnSkipped, |
449 |
eidHurtSelf, eidHomerun, eidGone); |
|
4361 | 450 |
|
451 |
TGoalStrId = (gidCaption, gidSubCaption, gidForts, gidLowGravity, gidInvulnerable, |
|
452 |
gidVampiric, gidKarma, gidKing, gidPlaceHog, gidArtillery, |
|
8795
b5b79a8f9354
merge correction, also what's with all those trailing whitespaces?
koda
parents:
8774
diff
changeset
|
453 |
gidSolidLand, gidSharedAmmo, gidMineTimer, gidNoMineTimer, |
b5b79a8f9354
merge correction, also what's with all those trailing whitespaces?
koda
parents:
8774
diff
changeset
|
454 |
gidRandomMineTimer, gidDamageModifier, gidResetHealth, gidAISurvival, |
7404 | 455 |
gidInfAttack, gidResetWeps, gidPerHogAmmo, gidTagTeam); |
4361 | 456 |
|
4367 | 457 |
TLandArray = packed array of array of LongWord; |
458 |
TCollisionArray = packed array of array of Word; |
|
459 |
TPreview = packed array[0..127, 0..31] of byte; |
|
460 |
TDirtyTag = packed array of array of byte; |
|
461 |
||
6688 | 462 |
PWidgetMovement = ^TWidgetMovement; |
463 |
TWidgetMovement = record |
|
6701
58a43c2064ad
the onScreenwidgets are multitouch now, frequently (alternating) tapping left and right still causes it to bug though, but you have to try hard to duplicate it, works ok for now
Xeli
parents:
6700
diff
changeset
|
464 |
animate : Boolean; |
58a43c2064ad
the onScreenwidgets are multitouch now, frequently (alternating) tapping left and right still causes it to bug though, but you have to try hard to duplicate it, works ok for now
Xeli
parents:
6700
diff
changeset
|
465 |
source : TPoint; |
58a43c2064ad
the onScreenwidgets are multitouch now, frequently (alternating) tapping left and right still causes it to bug though, but you have to try hard to duplicate it, works ok for now
Xeli
parents:
6700
diff
changeset
|
466 |
target : TPoint; |
58a43c2064ad
the onScreenwidgets are multitouch now, frequently (alternating) tapping left and right still causes it to bug though, but you have to try hard to duplicate it, works ok for now
Xeli
parents:
6700
diff
changeset
|
467 |
startTime : Longword; |
6688 | 468 |
end; |
469 |
||
470 |
POnScreenWidget = ^TOnScreenWidget; |
|
471 |
TOnScreenWidget = record |
|
9317
a04c30940d2d
use SDL2 as ifdef symbol because we're not really sdl1.3 compatible, change the compatibility layer, drop unused code, add some documentation
koda
parents:
9178
diff
changeset
|
472 |
show : boolean; // if false widget will not be drawn |
a04c30940d2d
use SDL2 as ifdef symbol because we're not really sdl1.3 compatible, change the compatibility layer, drop unused code, add some documentation
koda
parents:
9178
diff
changeset
|
473 |
sprite : TSprite; // a convenience type |
a04c30940d2d
use SDL2 as ifdef symbol because we're not really sdl1.3 compatible, change the compatibility layer, drop unused code, add some documentation
koda
parents:
9178
diff
changeset
|
474 |
frame : TSDL_Rect; // graphical coordinates |
a04c30940d2d
use SDL2 as ifdef symbol because we're not really sdl1.3 compatible, change the compatibility layer, drop unused code, add some documentation
koda
parents:
9178
diff
changeset
|
475 |
active : TSDL_Rect; // active touch region |
a04c30940d2d
use SDL2 as ifdef symbol because we're not really sdl1.3 compatible, change the compatibility layer, drop unused code, add some documentation
koda
parents:
9178
diff
changeset
|
476 |
fadeAnimStart : Longword; // time the fade started |
a04c30940d2d
use SDL2 as ifdef symbol because we're not really sdl1.3 compatible, change the compatibility layer, drop unused code, add some documentation
koda
parents:
9178
diff
changeset
|
477 |
// (0 means do not fade) |
a04c30940d2d
use SDL2 as ifdef symbol because we're not really sdl1.3 compatible, change the compatibility layer, drop unused code, add some documentation
koda
parents:
9178
diff
changeset
|
478 |
moveAnim : TWidgetMovement; // animation associated to widget |
6685
ef706fccfb0a
moved other widgets under the USE_TOUCH_INTERFACE, added pause button (at least, graphically...)
koda
parents:
6683
diff
changeset
|
479 |
end; |
4367 | 480 |
|
6693 | 481 |
PTouch_Data = ^TTouch_Data; |
482 |
TTouch_Data = record |
|
483 |
id : TSDL_FingerId; |
|
484 |
x,y : LongInt; |
|
485 |
dx,dy : LongInt; |
|
486 |
historicalX, historicalY : LongInt; |
|
487 |
timeSinceDown : Longword; |
|
6701
58a43c2064ad
the onScreenwidgets are multitouch now, frequently (alternating) tapping left and right still causes it to bug though, but you have to try hard to duplicate it, works ok for now
Xeli
parents:
6700
diff
changeset
|
488 |
pressedWidget : POnScreenWidget; |
6693 | 489 |
end; |
490 |
||
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
491 |
implementation |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
492 |
|
4420
6be946bcd17a
Add a visual gear for drawing circles. Intent is to allow specifying areas on map for lua scripts (such as to indicate a location to go to). Could also be used to, say, circle a hog in CTF. Also add a "Critical" flag for visual gears so a gear flagges as such will always be created.
nemo
parents:
4379
diff
changeset
|
493 |
end. |