author | Grigory Ustinov <grenka@altlinux.org> |
Thu, 26 Sep 2019 16:35:46 +0300 | |
changeset 15442 | 85ed38cc5f8f |
parent 15346 | 11b3d4869f6d |
child 15488 | a7d54832fad6 |
permissions | -rw-r--r-- |
4976 | 1 |
(* |
2 |
* Hedgewars, a free turn based strategy game |
|
11046 | 3 |
* Copyright (c) 2004-2015 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 |
|
10108
c68cf030eded
update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents:
10040
diff
changeset
|
16 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
4976 | 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 |
13077 | 39 |
TGameState = (gsLandGen, gsStart, gsGame, 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 |
13488
d23731fe84d4
Fix hwengine --help returning with exit code 51
Wuzzy <Wuzzy2@mail.ru>
parents:
13464
diff
changeset
|
42 |
TGameType = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview, gmtBadSyntax, gmtRecord, gmtSyntaxHelp); |
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 |
12106
9bc19f722169
Bug #108 - Phyfs/Pathz: Fix binds not being loaded
sheepluva
parents:
12072
diff
changeset
|
45 |
TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptConfig, ptTeams, ptMaps, |
9244 | 46 |
ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts, ptLocale, |
47 |
ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps, |
|
14865
9e8c201eae9d
Move Hedgewars key IDs to CSV file
Wuzzy <Wuzzy2@mail.ru>
parents:
14841
diff
changeset
|
48 |
ptSuddenDeath, ptButtons, ptShaders, ptDefaultVoice, ptMisc); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
49 |
|
5125 | 50 |
// Available sprites for displaying stuff |
11912
d3a852554aa7
Turn timer digits green when it's still the ready timer
Wuzzy <almikes@aol.com>
parents:
11911
diff
changeset
|
51 |
TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprBigDigitGray, sprBigDigitGreen, |
d3a852554aa7
Turn timer digits green when it's still the ready timer
Wuzzy <almikes@aol.com>
parents:
11911
diff
changeset
|
52 |
sprBigDigitRed, sprFrame, sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
53 |
sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
54 |
sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower, |
6609 | 55 |
sprClusterBomb, sprClusterParticle, sprFlame, |
56 |
sprHorizont, sprHorizontL, sprHorizontR, sprSky, sprSkyL, sprSkyR, |
|
6627 | 57 |
sprAMSlot, sprAMAmmos, sprAMAmmosBW, sprAMSlotKeys, sprAMCorners, |
6609 | 58 |
sprFinger, sprAirBomb, sprAirplane, sprAmAirplane, sprAmGirder, |
15346 | 59 |
sprHHTelepMask, sprSwitch, sprParachute, sprTarget, sprRopeNode, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
60 |
sprQuestion, sprPowerBar, sprWindBar, sprWindL, sprWindR, |
6676
21cf35a570a7
add keywords for landscape ammomenu and touch interface
koda
parents:
6637
diff
changeset
|
61 |
{$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
|
62 |
sprFireButton, sprArrowUp, sprArrowDown, sprArrowLeft, sprArrowRight, |
6957 | 63 |
sprJumpWidget, sprAMWidget, sprPauseButton, sprTimerButton, sprTargetButton, |
14559
1dab5d92aca7
Add button to set bounciness in touch interface
Wuzzy <Wuzzy2@mail.ru>
parents:
14551
diff
changeset
|
64 |
sprSwitchButton, sprBounceButton, |
6637
b4a3310f2974
show buttons on the screen, similar to the iOS overlay
Xeli
parents:
6627
diff
changeset
|
65 |
{$ENDIF} |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
66 |
sprFlake, sprHandRope, sprHandBazooka, sprHandShotgun, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
67 |
sprHandDEagle, sprHandAirAttack, sprHandBaseball, sprPHammer, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
68 |
sprHandBlowTorch, sprBlowTorch, sprTeleport, sprHHDeath, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
69 |
sprShotgun, sprDEagle, sprHHIdle, sprMortar, sprTurnsLeft, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
70 |
sprKamikaze, sprWhip, sprKowtow, sprSad, sprWave, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
71 |
sprHurrah, sprLemonade, sprShrug, sprJuggle, sprExplPart, sprExplPart2, |
6609 | 72 |
sprCakeWalk, sprCakeDown, sprWatermelon, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
73 |
sprEvilTrace, sprHellishBomb, sprSeduction, sprDress, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
74 |
sprCensored, sprDrill, sprHandDrill, sprHandBallgun, sprBalls, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
75 |
sprPlane, sprHandPlane, sprUtility, sprInvulnerable, sprVampiric, sprGirder, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
76 |
sprSpeechCorner, sprSpeechEdge, sprSpeechTail, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
77 |
sprThoughtCorner, sprThoughtEdge, sprThoughtTail, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
78 |
sprShoutCorner, sprShoutEdge, sprShoutTail, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
79 |
sprSniperRifle, sprBubbles, sprJetpack, sprHealth, sprHandMolotov, sprMolotov, |
5065 | 80 |
sprSmoke, sprSmokeWhite, sprShell, sprDust, sprSnowDust, sprExplosives, sprExplosivesRoll, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
81 |
sprAmTeleport, sprSplash, sprDroplet, sprBirdy, sprHandCake, sprHandConstruction, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
82 |
sprHandGrenade, sprHandMelon, sprHandMortar, sprHandSkip, sprHandCluster, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
83 |
sprHandDynamite, sprHandHellish, sprHandMine, sprHandSeduction, sprHandVamp, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
84 |
sprBigExplosion, sprSmokeRing, sprBeeTrace, sprEgg, sprTargetBee, sprHandBee, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
85 |
sprFeather, sprPiano, sprHandSineGun, sprPortalGun, sprPortal, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
86 |
sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
87 |
sprSMineOff, sprSMineOn, sprHandSMine, sprHammer, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
88 |
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
|
89 |
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
|
90 |
sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis, |
10792
f6df7d6e18e5
Toss in scaled down underwater SD mine as "air mine" pending, er, cybernetic butterflies or whatever
nemo
parents:
10789
diff
changeset
|
91 |
sprSlider, sprBotlevels, sprHandKnife, sprKnife, sprStar, sprIceTexture, sprIceGun, |
12668
308846e05154
extend overridable graphics/sounds to 8 of each, for lua scripters who really like having their own sprites/sounds. these should not be used in the engine.
nemo
parents:
12464
diff
changeset
|
92 |
sprFrozenHog, sprAmRubber, sprBoing, sprCustom1, sprCustom2, sprCustom3, sprCustom4, |
13404
8ce83caec236
Make mine active/hunting glow a bit more obvious. Add frozen sprite, increase ice beam mine "hit" radius a bit
nemo
parents:
13161
diff
changeset
|
93 |
sprCustom5, sprCustom6, sprCustom7, sprCustom8, sprFrozenAirMine, sprAirMine, sprHandAirMine, |
14757
8563cc40fc1e
Invert colors if clan color is very dark
Wuzzy <Wuzzy2@mail.ru>
parents:
14632
diff
changeset
|
94 |
sprFlakeL, sprSDFlakeL, sprCloudL, sprSDCloudL, sprCreeper, sprHandCreeper, sprMinigun, |
14985
bcecb3349948
Display current health in top right corner
Wuzzy <Wuzzy2@mail.ru>
parents:
14961
diff
changeset
|
95 |
sprSliderInverted, sprFingerBack, sprFingerBackInv, sprTargetPBack, sprTargetPBackInv, |
14988
9939134b566d
Show more health-related icons in top right corner
Wuzzy <Wuzzy2@mail.ru>
parents:
14987
diff
changeset
|
96 |
sprHealthHud, sprHealthPoisonHud, sprVampHud, sprKarmaHud, sprMedicHud, sprMedicPoisonHud, |
15226
8705ee93f8b3
Display special icon when moving bee cursor over gray wrap area
Wuzzy <Wuzzy2@mail.ru>
parents:
15082
diff
changeset
|
97 |
sprHaloHud, sprInvulnHUD, sprAmPiano, sprHandLandGun, sprFirePunch, sprThroughWrap |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
98 |
); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
99 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
100 |
// Gears that interact with other Gears and/or Land |
10829 | 101 |
// first row of gears (<gtExplosives) should be avoided when searching a spawn place |
102 |
TGearType = (gtFlame, gtHedgehog, gtMine, gtCase, gtAirMine, gtExplosives, |
|
103 |
gtGrenade, gtShell, gtGrave, gtBee, // 9 |
|
104 |
gtShotgunShot, gtPickHammer, gtRope, // 12 |
|
105 |
gtDEagleShot, gtDynamite, gtClusterBomb, gtCluster, gtShover, // 17 |
|
106 |
gtFirePunch, gtATStartGame, // 19 |
|
107 |
gtATFinishGame, gtParachute, gtAirAttack, gtAirBomb, gtBlowTorch, // 24 |
|
108 |
gtGirder, gtTeleport, gtSwitcher, gtTarget, gtMortar, // 29 |
|
109 |
gtWhip, gtKamikaze, gtCake, gtSeduction, gtWatermelon, gtMelonPiece, // 35 |
|
110 |
gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 41 |
|
111 |
gtSniperRifleShot, gtJetpack, gtMolotov, gtBirdy, // 45 |
|
112 |
gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51 |
|
113 |
gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 56 |
|
14217
ab5e710d353d
Remove all traces of dead code related to amStructure/gtStructure
Wuzzy <Wuzzy2@mail.ru>
parents:
14063
diff
changeset
|
114 |
gtNapalmBomb, gtSnowball, gtFlake, gtLandGun, gtTardis, // 61 |
13872
f01798038c2e
Rename amDuck and related symbols to amCreeper, gtCreeper, etc.
Wuzzy <Wuzzy2@mail.ru>
parents:
13847
diff
changeset
|
115 |
gtIceGun, gtAddAmmo, gtGenericFaller, gtKnife, gtCreeper, gtMinigun, gtMinigunBullet); // 68 |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
116 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
117 |
// 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
|
118 |
TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
119 |
vgtSmallDamageTag, vgtTeamHealthSorter, vgtSpeechBubble, vgtBubble, |
5563 | 120 |
vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtShell, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
121 |
vgtDust, vgtSplash, vgtDroplet, vgtSmokeRing, vgtBeeTrace, vgtEgg, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
122 |
vgtFeather, vgtHealthTag, vgtSmokeTrace, vgtEvilTrace, vgtExplosion, |
5357
ec36f3d53f3c
Tiny optimization: convert smooth wind indicator change gear into visual gear
unc0rr
parents:
5319
diff
changeset
|
123 |
vgtBigExplosion, vgtChunk, vgtNote, vgtLineTrail, vgtBulletHit, vgtCircle, |
10251
a3b42e81803c
collision indicator on failed girder placement (especially useful with rubberband I guess). still needs some tweaks but I am going to bed now :P
sheepluva
parents:
10162
diff
changeset
|
124 |
vgtSmoothWindBar, vgtStraightShot, vgtNoPlaceWarn); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
125 |
|
5125 | 126 |
// Damage can be caused by different sources |
14061
128fbd36eee4
Stop using dsUnknown, replace with concrete damage sources
Wuzzy <Wuzzy2@mail.ru>
parents:
14058
diff
changeset
|
127 |
TDamageSource = (dsUnknown, dsFall, dsBullet, dsExplosion, dsShove, dsPoison, dsHammer); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
128 |
|
5125 | 129 |
// Available sounds |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
130 |
TSound = (sndNone, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
131 |
sndGrenadeImpact, sndExplosion, sndThrowPowerUp, sndThrowRelease, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
132 |
sndSplash, sndShotgunReload, sndShotgunFire, sndGraveImpact, |
5493 | 133 |
sndMineImpact, sndMineTick, sndMudballImpact, |
134 |
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
|
135 |
sndJump3, sndYesSir, sndLaugh, sndIllGetYou, sndJustYouWait, sndIncoming, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
136 |
sndMissed, sndStupid, sndFirstBlood, sndBoring, sndByeBye, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
137 |
sndSameTeam, sndNutter, sndReinforce, sndTraitor, sndRegret, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
138 |
sndEnemyDown, sndCoward, sndHurry, sndWatchIt, sndKamikaze, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
139 |
sndCake, sndOw1, sndOw2, sndOw3, sndOw4, sndFirePunch1, sndFirePunch2, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
140 |
sndFirePunch3, sndFirePunch4, sndFirePunch5, sndFirePunch6, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
141 |
sndMelon, sndHellish, sndYoohoo, sndRCPlane, sndWhipCrack, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
142 |
sndRideOfTheValkyries, sndDenied, sndPlaced, sndBaseballBat, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
143 |
sndVaporize, sndWarp, sndSuddenDeath, sndMortar, sndShutter, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
144 |
sndHomerun, sndMolotov, sndCover, sndUhOh, sndOops, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
145 |
sndNooo, sndHello, sndRopeShot, sndRopeAttach, sndRopeRelease, |
4978 | 146 |
sndSwitchHog, sndVictory, sndFlawless, sndSniperReload, sndSteps, sndLowGravity, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
147 |
sndHellishImpact1, sndHellishImpact2, sndHellishImpact3, sndHellishImpact4, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
148 |
sndMelonImpact, sndDroplet1, sndDroplet2, sndDroplet3, sndEggBreak, sndDrillRocket, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
149 |
sndPoisonCough, sndPoisonMoan, sndBirdyLay, sndWhistle, sndBeeWater, |
9244 | 150 |
sndPiano0, sndPiano1, sndPiano2, sndPiano3, sndPiano4, sndPiano5, sndPiano6, sndPiano7, |
151 |
sndPiano8, sndSkip, sndSineGun, sndOoff1, sndOoff2, sndOoff3, sndWhack, |
|
152 |
sndComeonthen, sndParachute, sndBump, sndResurrector, sndPlane, sndTardis, sndFrozenHogImpact, |
|
11911
6145efcff302
Add sounds for blowtorch, invuln., f. saucer, lasersight, portal gun
Wuzzy <almikes@aol.com>
parents:
11878
diff
changeset
|
153 |
sndIceBeam, sndHogFreeze, sndAirMineImpact, sndKnifeImpact, sndExtraTime, sndLaserSight, |
6145efcff302
Add sounds for blowtorch, invuln., f. saucer, lasersight, portal gun
Wuzzy <almikes@aol.com>
parents:
11878
diff
changeset
|
154 |
sndInvulnerable, sndJetpackLaunch, sndJetpackBoost, sndPortalShot, sndPortalSwitch, |
12194
ac9cf0cf40ee
Add sounds for rubberduck drop, destruction and water collision
Wuzzy <almikes@aol.com>
parents:
12193
diff
changeset
|
155 |
sndPortalOpen, sndBlowTorch, sndCountdown1, sndCountdown2, sndCountdown3, sndCountdown4, |
13872
f01798038c2e
Rename amDuck and related symbols to amCreeper, gtCreeper, etc.
Wuzzy <Wuzzy2@mail.ru>
parents:
13847
diff
changeset
|
156 |
sndCreeperDrop, sndCreeperWater, sndCreeperDie, sndCustom1, sndCustom2, sndCustom3, sndCustom4, |
14006 | 157 |
sndCustom5, sndCustom6, sndCustom7, sndCustom8, sndMinigun, sndFlamethrower, sndIceBeamIdle, |
14035 | 158 |
sndLandGun, sndCaseImpact, sndExtraDamage, sndFirePunchHit, sndGrenade, sndThisOneIsMine, |
14036
544b32038664
Add 3 taunts: Amazing, Brilliant, Excellent
Wuzzy <Wuzzy2@mail.ru>
parents:
14035
diff
changeset
|
159 |
sndWhatThe, sndSoLong, sndOhDear, sndGonnaGetYou, sndDrat, sndBugger, sndAmazing, |
14056
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
160 |
sndBrilliant, sndExcellent, sndFire, sndWatchThis, sndRunAway, sndRevenge, sndCutItOut, |
15251
4576e41c0692
Add air plane underwater sound and add water splashes
Wuzzy <Wuzzy2@mail.ru>
parents:
15241
diff
changeset
|
161 |
sndLeaveMeAlone, sndOuch, sndHmm, sndKiss, sndFlyAway, sndPlaneWater); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
162 |
|
5125 | 163 |
// 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
|
164 |
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
|
165 |
amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip, // 13 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
166 |
amBaseballBat, amParachute, amAirAttack, amMineStrike, amBlowTorch, // 18 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
167 |
amGirder, amTeleport, amSwitch, amMortar, amKamikaze, amCake, // 24 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
168 |
amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
169 |
amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
170 |
amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
171 |
amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48 |
14217
ab5e710d353d
Remove all traces of dead code related to amStructure/gtStructure
Wuzzy <Wuzzy2@mail.ru>
parents:
14063
diff
changeset
|
172 |
amResurrector, amDrillStrike, amSnowball, amTardis, amLandGun, // 53 |
13872
f01798038c2e
Rename amDuck and related symbols to amCreeper, gtCreeper, etc.
Wuzzy <Wuzzy2@mail.ru>
parents:
13847
diff
changeset
|
173 |
amIceGun, amKnife, amRubber, amAirMine, amCreeper, amMinigun); // 59 |
14551
ec0afe1c6024
Add control (default: X) to unselect current weapon
Wuzzy <Wuzzy2@mail.ru>
parents:
14419
diff
changeset
|
174 |
// NOTE: If we ever reach 126 ammo types, make sure to skip ammo type number 126 because it's |
ec0afe1c6024
Add control (default: X) to unselect current weapon
Wuzzy <Wuzzy2@mail.ru>
parents:
14419
diff
changeset
|
175 |
// reserved as synonym for amNothing. See also chSetWeapon. |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
176 |
|
5125 | 177 |
// 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
|
178 |
TCrateType = (HealthCrate, AmmoCrate, UtilityCrate); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
179 |
|
5639 | 180 |
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
|
181 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
182 |
TCapGroup = (capgrpGameState, capgrpAmmoinfo, capgrpVolume, |
5118 | 183 |
capgrpMessage, capgrpMessage2, capgrpAmmostate); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
184 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
185 |
TStatInfoType = (siGameResult, siMaxStepDamage, siMaxStepKills, siKilledHHs, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
186 |
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
|
187 |
siMaxTeamKills, siMaxTurnSkips, siCustomAchievement, siGraphTitle, |
13797
c084bd440009
Add funny message in stats screen when everyone wins
Wuzzy <Wuzzy2@mail.ru>
parents:
13760
diff
changeset
|
188 |
siPointType, siTeamRank, siEverAfter); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
189 |
|
9244 | 190 |
// Various 'emote' animations a hedgehog can do |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
191 |
TWave = (waveRollup, waveSad, waveWave, waveHurrah, waveLemonade, waveShrug, waveJuggle); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
192 |
|
4812
f924be23ffb4
merge with HEAD after 0.9.15 release, move consts and vars in their proper files
koda
parents:
4807
diff
changeset
|
193 |
TRenderMode = (rmDefault, rmLeftEye, rmRightEye); |
8359
9a7024b2a4d3
Removed wiggle 3D mode, reorder the list of 3D modes.
martin_bede
parents:
8204
diff
changeset
|
194 |
TStereoMode = (smNone, smRedCyan, smCyanRed, smRedBlue, smBlueRed, smRedGreen, smGreenRed, smHorizontal, smVertical); |
9473
a51a69094c24
partial implementation of non-infinite world (edge wrap/warp/bounce)
nemo
parents:
9377
diff
changeset
|
195 |
TWorldEdge = (weNone, weWrap, weBounce, weSea, weSky); |
9693 | 196 |
TUIDisplay = (uiAll, uiNoTeams, uiNone); |
11744
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
11734
diff
changeset
|
197 |
TMapGen = (mgRandom, mgMaze, mgPerlin, mgDrawn, mgForts); |
10603
bda5c7caf396
switch mapgen to enum. should still try and make sure the values are backwards compatible if possible.
nemo
parents:
10466
diff
changeset
|
198 |
|
9473
a51a69094c24
partial implementation of non-infinite world (edge wrap/warp/bounce)
nemo
parents:
9377
diff
changeset
|
199 |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
200 |
THHFont = record |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
201 |
Handle: PTTF_Font; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
202 |
Height: LongInt; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
203 |
style: LongInt; |
6889 | 204 |
Name: string[31]; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
205 |
end; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
206 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
207 |
PAmmo = ^TAmmo; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
208 |
TAmmo = record |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
209 |
Propz: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
210 |
Count: LongWord; |
9244 | 211 |
// Using for place hedgehogs mode, but for any other situation where the initial count would be needed I guess. |
212 |
// For example, say, a mode where the weaponset is reset each turn, or on sudden death |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
213 |
NumPerTurn: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
214 |
Timer: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
215 |
Pos: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
216 |
AmmoType: TAmmoType; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
217 |
AttackVoice: TSound; |
5319
51d8e4747876
bounce. tweak of values, remove friction modifier, move to weapon, to match timer behaviour
nemo
parents:
5316
diff
changeset
|
218 |
Bounciness: LongWord; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
219 |
end; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
220 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
221 |
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
|
222 |
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
|
223 |
end; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
224 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
225 |
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
|
226 |
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
|
227 |
end; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
228 |
|
8026
4a4f21070479
merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
7996
diff
changeset
|
229 |
TMatrix4x4f = array[0..3, 0..3] of GLfloat; |
4a4f21070479
merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
7996
diff
changeset
|
230 |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
231 |
PTexture = ^TTexture; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
232 |
TTexture = record |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
233 |
id: GLuint; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
234 |
w, h, scale: LongInt; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
235 |
rx, ry: GLfloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
236 |
priority: GLfloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
237 |
vb, tb: array [0..3] of TVertex2f; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
238 |
PrevTexture, NextTexture: PTexture; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
239 |
end; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
240 |
|
13096
d78e65c66573
Add hedgehog effect heArtillery, allows to set per-hedgehog artillery mode
Wuzzy <Wuzzy2@mail.ru>
parents:
13077
diff
changeset
|
241 |
THogEffect = (heInvulnerable, heResurrectable, hePoisoned, heResurrected, heFrozen, heArtillery); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
242 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
243 |
TScreenFade = (sfNone, sfInit, sfToBlack, sfFromBlack, sfToWhite, sfFromWhite); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
244 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
245 |
PGear = ^TGear; |
4361 | 246 |
PHedgehog = ^THedgehog; |
247 |
PTeam = ^TTeam; |
|
248 |
PClan = ^TClan; |
|
249 |
||
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
250 |
TGearStepProcedure = procedure (Gear: PGear); |
9244 | 251 |
// So, you are here looking for variables you can (ab)use to store some gear state? |
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
|
252 |
// 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
|
253 |
TGear = record |
9244 | 254 |
// Do *not* ever override these. |
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 |
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
|
256 |
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
|
257 |
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
|
258 |
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
|
259 |
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
|
260 |
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
|
261 |
RenderTimer: Boolean; // Will visually display Timer if true |
14770
533ac9774279
Add key to display extra gear info tags
Wuzzy <Wuzzy2@mail.ru>
parents:
14757
diff
changeset
|
262 |
RenderHealth: Boolean; // Will visually display Health if true |
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
|
263 |
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
|
264 |
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
|
265 |
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
|
266 |
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
|
267 |
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
|
268 |
uid: Longword; // Lua use this to reference gears |
10809
bb2e4e9944f7
Add generic getter/setter for a bunch of more obscure gear structure values
nemo
parents:
10792
diff
changeset
|
269 |
Hedgehog: PHedgehog; // set to CurrentHedgehog on gear creation. uStats damage code appears to assume it will never be nil and never be changed. If you override it, make sure it is set to a non-nil PHedgehog before dealing damage. |
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
|
270 |
// 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
|
271 |
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
|
272 |
Y : hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
273 |
dX: hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
274 |
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
|
275 |
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
|
276 |
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
|
277 |
// 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
|
278 |
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
|
279 |
CollisionMask: Word; // Masking off Land impact FF7F for example ignores current hog and crates |
9248 | 280 |
AdvBounce: Longword; // Triggers 45 bounces. Is a counter to avoid edge cases |
13610
f1b6070a6e14
Fix projectiles reacing incorrectly with land just behind the wrap world edge
Wuzzy <Wuzzy2@mail.ru>
parents:
13488
diff
changeset
|
281 |
Sticky: Boolean; // True if gear is *normally* able to stick to landscape on impact |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
282 |
Elasticity: hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
283 |
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
|
284 |
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
|
285 |
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
|
286 |
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
|
287 |
// Don't use these if you want to take damage normally, otherwise health/damage are commonly used for other purposes |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
288 |
Health, Damage, Karma: LongInt; |
9244 | 289 |
// 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 |
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
|
290 |
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
|
291 |
// These are frequently overridden to serve some other purpose |
12159 | 292 |
Boom: Longword; // amount of damage caused by the gear |
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
|
293 |
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
|
294 |
Angle, Power : Longword; // Used for hog aiming/firing. Angle is rarely used as an Angle otherwise. |
9969 | 295 |
Timer, WDTimer : LongWord; // Typically used for some sort of gear timer. Time to explosion, remaining fuel... |
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
|
296 |
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
|
297 |
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
|
298 |
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
|
299 |
// 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
|
300 |
Tex: PTexture; // A texture created by the gear. Shouldn't use for anything but textures |
10032
db65298717da
This adds idle hog tinting. Active hog tinting still needed.
nemo
parents:
9998
diff
changeset
|
301 |
Tint: LongWord; // Used to colour a texture |
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
|
302 |
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
|
303 |
SoundChannel: LongInt; // Used to track a sound the gear started |
10874
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
304 |
Data: Pointer; // pointer to gear type specific data structure (if any) |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6426
diff
changeset
|
305 |
end; |
6426 | 306 |
TPGearArray = array of PGear; |
7335 | 307 |
PGearArrayS = record |
308 |
size: LongWord; |
|
309 |
ar: ^TPGearArray; |
|
310 |
end; |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
311 |
|
4361 | 312 |
PVisualGear = ^TVisualGear; |
313 |
TVGearStepProcedure = procedure (Gear: PVisualGear; Steps: Longword); |
|
314 |
TVisualGear = record |
|
315 |
NextGear, PrevGear: PVisualGear; |
|
316 |
Frame, |
|
317 |
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
|
318 |
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
|
319 |
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
|
320 |
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
|
321 |
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
|
322 |
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
|
323 |
tdY: real; |
4361 | 324 |
State : Longword; |
325 |
Timer: Longword; |
|
326 |
Angle, dAngle: real; |
|
327 |
Kind: TVisualGearType; |
|
328 |
doStep: TVGearStepProcedure; |
|
329 |
Tex: PTexture; |
|
330 |
alpha, scale: GLfloat; |
|
4365 | 331 |
Hedgehog: PHedgehog; |
5357
ec36f3d53f3c
Tiny optimization: convert smooth wind indicator change gear into visual gear
unc0rr
parents:
5319
diff
changeset
|
332 |
Tag: LongInt; |
4361 | 333 |
Text: shortstring; |
334 |
Tint: Longword; |
|
4422 | 335 |
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
|
336 |
Layer: byte; |
4361 | 337 |
end; |
338 |
||
339 |
TStatistics = record |
|
14056
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
340 |
DamageRecv, // total damage received |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
341 |
DamageGiven: Longword; // total damage dealt |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
342 |
StepDamageRecvInRow, // number of enemy turns in row this hog received any damage |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
343 |
StepDamageRecv, // damage received in this turn |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
344 |
StepDamageGiven, // damage dealt in this turn |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
345 |
StepKills: Longword; // kills in this turn |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
346 |
StepPoisoned, // whether hog got poisoned this turn |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
347 |
StepDied, // whether hog died this turn |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
348 |
Sacrificed, // whether hog was sacrificed in suicide attack (kamikaze, piano) |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
349 |
GotRevenge: boolean; // whether hog got revenge in this turn |
14906
0ec83cc2365e
Don't play "LeaveMeAlone" taunt if attacker hits same hog multiple times in same turn
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
350 |
StepRevenge: boolean; // whether hog's revenge mode was activated in this turn |
14056
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
351 |
MaxStepDamageRecv, // most damage received in one turn |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
352 |
MaxStepDamageGiven, // most damage dealt in one turn |
ecfd13128100
Add taunts: Leavemealone, Cutitout (when attacked many times)
Wuzzy <Wuzzy2@mail.ru>
parents:
14055
diff
changeset
|
353 |
MaxStepKills: Longword; // most kills in one turn |
4361 | 354 |
FinishedTurns: Longword; |
355 |
end; |
|
356 |
||
357 |
TTeamStats = record |
|
358 |
Kills : Longword; |
|
5202 | 359 |
Suicides: Longword; |
4361 | 360 |
AIKills : Longword; |
361 |
TeamKills : Longword; |
|
362 |
TurnSkips : Longword; |
|
363 |
TeamDamage : Longword; |
|
364 |
end; |
|
365 |
||
13758
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
366 |
PClanDeathLogEntry = ^TClanDeathLogEntry; |
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
367 |
|
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
368 |
TClanDeathLogEntry = record |
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
369 |
Turn : Longword; // turn in which the clans were killed |
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
370 |
KilledClans : array[0..Pred(cMaxTeams)] of PClan; // array of clans that have died |
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
371 |
KilledClansCount: Longword; // number of clans that died |
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
372 |
NextEntry : PClanDeathLogEntry; // linked list |
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
373 |
end; |
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
374 |
|
a0d6404a80a2
Rework rankings of losing clans: Rank them in the reverse order they died
Wuzzy <Wuzzy2@mail.ru>
parents:
13674
diff
changeset
|
375 |
|
13068 | 376 |
TBinds = record |
377 |
indices: array[0..cKbdMaxIndex] of byte; |
|
378 |
// zeroth element is reserved, indices[i] == 0 means no binding |
|
379 |
binds: array[0..255] of shortstring; |
|
380 |
lastIndex: byte; |
|
381 |
end; |
|
382 |
||
4361 | 383 |
TKeyboardState = array[0..cKeyMaxIndex] of Byte; |
384 |
||
385 |
PVoicepack = ^TVoicepack; |
|
386 |
TVoicepack = record |
|
387 |
name: shortstring; |
|
388 |
chunks: array [TSound] of PMixChunk; |
|
389 |
end; |
|
390 |
||
5638
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
391 |
TVoice = record |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
392 |
snd: TSound; |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
393 |
voicepack: PVoicePack; |
14058
bf8b7c166b3c
Play another voice as fallback if sndRevenge could not be found
Wuzzy <Wuzzy2@mail.ru>
parents:
14056
diff
changeset
|
394 |
isFallback: boolean; |
5638
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
395 |
end; |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
396 |
|
7034
e3639ce1d4f8
(PointerTo (SimpleType _)) could be a pointer to a non-struct type
unc0rr
parents:
7016
diff
changeset
|
397 |
THHAmmo = array[0..cMaxSlotIndex, 0..cMaxSlotAmmoIndex] of TAmmo; |
4361 | 398 |
PHHAmmo = ^THHAmmo; |
399 |
||
400 |
THedgehog = record |
|
7016 | 401 |
Name: shortstring; |
4361 | 402 |
Gear: PGear; |
4881
35e6269227b6
still in developement take on adding structures, working hiding of hogs and ejecting them later.
Henek
parents:
4812
diff
changeset
|
403 |
GearHidden: PGear; |
4361 | 404 |
SpeechGear: PVisualGear; |
405 |
NameTagTex, |
|
406 |
HealthTagTex, |
|
407 |
HatTex: PTexture; |
|
408 |
Ammo: PHHAmmo; |
|
409 |
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
|
410 |
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
|
411 |
PickUpDelay: LongInt; |
4361 | 412 |
AmmoStore: Longword; |
413 |
Team: PTeam; |
|
414 |
MultiShootAttacks: Longword; |
|
415 |
visStepPos: LongWord; |
|
416 |
BotLevel : Byte; // 0 - Human player |
|
417 |
HatVisibility: GLfloat; |
|
418 |
stats: TStatistics; |
|
419 |
Hat: shortstring; |
|
420 |
InitialHealth: LongInt; // used for gfResetHealth |
|
421 |
King: boolean; // Flag for a bunch of hedgehog attributes |
|
422 |
Unplaced: boolean; // Flag for hog placing mode |
|
15241
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
15226
diff
changeset
|
423 |
UnplacedKing: boolean; // Flag for king placing phase in King Mode |
4361 | 424 |
Timer: Longword; |
9720
453a1c29b7e4
Animate hedgehogs healths inside team health bar. Proper animation for the case when max team health grows is lost though.
unc0rr
parents:
9693
diff
changeset
|
425 |
HealthBarHealth: LongInt; |
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
|
426 |
Effects: array[THogEffect] of LongInt; |
14055 | 427 |
RevengeHog: PHedgehog; // For which hog this hog wants revenge most. For sndRevenge taunt |
14961
8b848c2939da
Add taunt sndFlyAway when hog flies off the map
Wuzzy <Wuzzy2@mail.ru>
parents:
14906
diff
changeset
|
428 |
FlownOffMap: boolean; // When hedgehog has flown far away off the map left or right |
4361 | 429 |
end; |
430 |
||
431 |
TTeam = record |
|
432 |
Clan: PClan; |
|
7016 | 433 |
TeamName: shortstring; |
4361 | 434 |
ExtDriven: boolean; |
435 |
Binds: TBinds; |
|
436 |
Hedgehogs: array[0..cMaxHHIndex] of THedgehog; |
|
437 |
CurrHedgehog: LongWord; |
|
9790 | 438 |
NameTagTex, |
10634
35d059bd0932
Use FreeAndNil across the board. Even if we are immediately assigning after, probably avoids accidental mistakes. Also free neglected owner tex on shutdown, and delete hog gears using the normal deletion procedure if for any reason they still exist (EndGame call?).
nemo
parents:
10603
diff
changeset
|
439 |
OwnerTex, |
4361 | 440 |
GraveTex, |
441 |
AIKillsTex, |
|
13018
0248cf0da834
Add SetTeamLabel to Lua API, can set arbitrary string as team label
Wuzzy <Wuzzy2@mail.ru>
parents:
12898
diff
changeset
|
442 |
LuaTeamValueTex, |
4361 | 443 |
FlagTex: PTexture; |
444 |
Flag: shortstring; |
|
445 |
GraveName: shortstring; |
|
446 |
FortName: shortstring; |
|
9790 | 447 |
Owner: shortstring; |
4361 | 448 |
TeamHealth: LongInt; |
9720
453a1c29b7e4
Animate hedgehogs healths inside team health bar. Proper animation for the case when max team health grows is lost though.
unc0rr
parents:
9693
diff
changeset
|
449 |
TeamHealthBarHealth: LongInt; |
4361 | 450 |
DrawHealthY: LongInt; |
451 |
AttackBar: LongWord; |
|
452 |
HedgehogsNumber: Longword; |
|
453 |
voicepack: PVoicepack; |
|
454 |
PlayerHash: shortstring; // md5 hash of player name. For temporary enabling of hats as thank you. Hashed for privacy of players |
|
455 |
stats: TTeamStats; |
|
14632
3cf7799e04b5
Add SetTeamPassive. Passive teams are treated like frozen teams
Wuzzy <Wuzzy2@mail.ru>
parents:
14559
diff
changeset
|
456 |
Passive: boolean; // if true, team will not participate in game. It is treated as if all its hedgehogs are frozen. |
3cf7799e04b5
Add SetTeamPassive. Passive teams are treated like frozen teams
Wuzzy <Wuzzy2@mail.ru>
parents:
14559
diff
changeset
|
457 |
// updating this value requires updating Passive in TClan as well! |
14419
87562a68c41f
Fix some King Mode bugs causing minions not always being properly killed
Wuzzy <Wuzzy2@mail.ru>
parents:
14399
diff
changeset
|
458 |
hasKing: boolean; // true if team has a living king |
10343
fe9853dea6c4
Finish implementation of ability to take control over your team after being disconnected. Completely untested.
unc0rr
parents:
10339
diff
changeset
|
459 |
hasGone: boolean; |
10345 | 460 |
skippedTurns: Longword; |
10397 | 461 |
isGoneFlagPendingToBeSet, isGoneFlagPendingToBeUnset: boolean; |
13018
0248cf0da834
Add SetTeamLabel to Lua API, can set arbitrary string as team label
Wuzzy <Wuzzy2@mail.ru>
parents:
12898
diff
changeset
|
462 |
luaTeamValue: ansistring; |
0248cf0da834
Add SetTeamLabel to Lua API, can set arbitrary string as team label
Wuzzy <Wuzzy2@mail.ru>
parents:
12898
diff
changeset
|
463 |
hasLuaTeamValue: boolean; |
4361 | 464 |
end; |
465 |
||
466 |
TClan = record |
|
467 |
Color: Longword; |
|
468 |
Teams: array[0..Pred(cMaxTeams)] of PTeam; |
|
9656 | 469 |
HealthTex: PTexture; |
4361 | 470 |
TeamsNumber: Longword; |
5016
9347d82a26cc
added game mode Tag Team, mostly untested, please test :)
Henek
parents:
4978
diff
changeset
|
471 |
TagTeamIndex: Longword; |
4361 | 472 |
CurrTeam: LongWord; |
473 |
ClanHealth: LongInt; |
|
474 |
ClanIndex: LongInt; |
|
475 |
TurnNumber: LongWord; |
|
13760
b1177e9c9ee9
Fix player rankings getting confused if a clan was revived
Wuzzy <Wuzzy2@mail.ru>
parents:
13759
diff
changeset
|
476 |
DeathLogged: boolean; // true if clan is dead and its latest death has been logged in the clan death log |
b1177e9c9ee9
Fix player rankings getting confused if a clan was revived
Wuzzy <Wuzzy2@mail.ru>
parents:
13759
diff
changeset
|
477 |
StatsHandled : boolean; // true if clan's rank has been handled for stats screen |
4978 | 478 |
Flawless: boolean; |
14632
3cf7799e04b5
Add SetTeamPassive. Passive teams are treated like frozen teams
Wuzzy <Wuzzy2@mail.ru>
parents:
14559
diff
changeset
|
479 |
Passive: boolean; // informational. Must be set to true if all of the teams are passive |
15073
1a754860b0e5
Refactor definition of "local" clans
Wuzzy <Wuzzy2@mail.ru>
parents:
15019
diff
changeset
|
480 |
LocalOrAlly: boolean; // true if at least 1 team in the clan is a local team. A local team is a non-extdriven team controlled by a human |
4361 | 481 |
end; |
482 |
||
8204 | 483 |
cdeclPtr = procedure; cdecl; |
484 |
cdeclIntPtr = procedure(num: LongInt); cdecl; |
|
8332
9333216f2054
fix hwc install and pas2c preprocessing (but not total conversion)
koda
parents:
8330
diff
changeset
|
485 |
funcDoublePtr = function: Double; |
8204 | 486 |
|
487 |
TMobileRecord = record |
|
488 |
PerformRumble: cdeclIntPtr; |
|
489 |
GameLoading: cdeclPtr; |
|
490 |
GameLoaded: cdeclPtr; |
|
491 |
SaveLoadingEnded: cdeclPtr; |
|
492 |
end; |
|
493 |
||
4807
180dbfb13903
display caption for ammotype amNothing when switched to so that players know what just happened
sheepluva
parents:
4782
diff
changeset
|
494 |
TAmmoStrId = (sidGrenade, sidClusterBomb, sidBazooka, sidBee, sidShotgun, |
4361 | 495 |
sidPickHammer, sidSkip, sidRope, sidMine, sidDEagle, |
496 |
sidDynamite, sidBaseballBat, sidFirePunch, sidSeconds, |
|
497 |
sidParachute, sidAirAttack, sidMineStrike, sidBlowTorch, |
|
498 |
sidGirder, sidTeleport, sidSwitch, sidMortar, sidWhip, |
|
499 |
sidKamikaze, sidCake, sidSeduction, sidWatermelon, |
|
500 |
sidHellishBomb, sidDrill, sidBallgun, sidNapalm, sidRCPlane, |
|
501 |
sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime, |
|
502 |
sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack, |
|
7404 | 503 |
sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb, |
504 |
sidSineGun, sidFlamethrower,sidSMine, sidHammer, sidResurrector, |
|
505 |
sidDrillStrike, sidSnowball, sidNothing, sidTardis, |
|
14217
ab5e710d353d
Remove all traces of dead code related to amStructure/gtStructure
Wuzzy <Wuzzy2@mail.ru>
parents:
14063
diff
changeset
|
506 |
sidLandGun, sidIceGun, sidKnife, sidRubber, sidAirMine, |
13872
f01798038c2e
Rename amDuck and related symbols to amCreeper, gtCreeper, etc.
Wuzzy <Wuzzy2@mail.ru>
parents:
13847
diff
changeset
|
507 |
sidCreeper, sidMinigun); |
4361 | 508 |
|
12186
322aaad4a93d
Load screen: Move “LOADING” from image into text box
Wuzzy <almikes@aol.com>
parents:
12175
diff
changeset
|
509 |
TMsgStrId = (sidLoading, sidDraw, sidWinner, sidVolume, sidPaused, |
4361 | 510 |
sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync, |
8795
b5b79a8f9354
merge correction, also what's with all those trailing whitespaces?
koda
parents:
8774
diff
changeset
|
511 |
sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady, |
7403 | 512 |
sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce, |
12175
9237bfb198c7
Fix time box tooltip saying it is not *yet* available in SD
Wuzzy <almikes@aol.com>
parents:
12174
diff
changeset
|
513 |
sidMute, sidAFK, sidAutoCameraOff, sidAutoCameraOn, sidPressTarget, |
13047
eadf8259306f
Improve/fix messaging when multiple teams win
Wuzzy <Wuzzy2@mail.ru>
parents:
13042
diff
changeset
|
514 |
sidNotAvailableInSD, sidHealthGain, sidEmptyCrate, sidUnknownKey, |
eadf8259306f
Improve/fix messaging when multiple teams win
Wuzzy <Wuzzy2@mail.ru>
parents:
13042
diff
changeset
|
515 |
sidWinner2, sidWinner3, sidWinner4, sidWinner5, sidWinner6, |
13156
26f0c3669b4e
Make a few more engine strings translatable
Wuzzy <Wuzzy2@mail.ru>
parents:
13096
diff
changeset
|
516 |
sidWinner7, sidWinnerAll, sidTeamGone, sidTeamBack, sidAutoSkip, |
13639
05dd413393bf
Make ammo count in ammo menu translatable, and replace “x” with “×”
Wuzzy <Wuzzy2@mail.ru>
parents:
13610
diff
changeset
|
517 |
sidFPS, sidLuaParsingOff, sidLuaParsingOn, sidLuaParsingDenied, |
14773
56098968df90
Don't explose mine timer in game if random (using Karma value)
Wuzzy <Wuzzy2@mail.ru>
parents:
14770
diff
changeset
|
518 |
sidAmmoCount, sidChat, sidChatTeam, sidChatHog, sidUnknownGearValue); |
4361 | 519 |
|
13463 | 520 |
TCmdHelpStrId = ( |
521 |
sidCmdHeaderBasic, sidCmdTogglechat, sidCmdTeam, sidCmdMe, |
|
522 |
sidCmdPause, sidCmdPauseNet, sidCmdFullscreen, sidCmdQuit, |
|
523 |
sidCmdHelp, sidCmdHelpTaunts, sidCmdHistory, sidLua, |
|
524 |
||
525 |
sidCmdHeaderTaunts, sidCmdSpeech, sidCmdThink, sidCmdYell, |
|
526 |
sidCmdSpeechNumberHint, sidCmdHsa, sidCmdHta, sidCmdHya, |
|
527 |
sidCmdHurrah, sidCmdIlovelotsoflemonade, sidCmdJuggle, |
|
14399
4edc73fc722c
Add chat command "/help room" to show room help in game
Wuzzy <Wuzzy2@mail.ru>
parents:
14373
diff
changeset
|
528 |
sidCmdRollup, sidCmdShrug, sidCmdWave, sidCmdUnknown, |
4edc73fc722c
Add chat command "/help room" to show room help in game
Wuzzy <Wuzzy2@mail.ru>
parents:
14373
diff
changeset
|
529 |
sidCmdHelpRoom, sidCmdHelpRoomFail); |
13463 | 530 |
|
5125 | 531 |
// Events that are important for the course of the game or at least interesting for other reasons |
4361 | 532 |
TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw, |
7404 | 533 |
eidNewHealthPack, eidNewAmmoPack, eidNewUtilityPack, eidTurnSkipped, |
12169
869cf5f34700
More ticker messages: Sick, king died, resurrect, time box return, timeout, kamikaze
Wuzzy <almikes@aol.com>
parents:
12159
diff
changeset
|
534 |
eidHurtSelf, eidHomerun, eidGone, eidPoisoned, eidResurrected, |
869cf5f34700
More ticker messages: Sick, king died, resurrect, time box return, timeout, kamikaze
Wuzzy <almikes@aol.com>
parents:
12159
diff
changeset
|
535 |
eidKamikaze, eidTimeTravelEnd, eidTimeout, eidKingDied); |
4361 | 536 |
|
12072
10aad1cafc10
Game mode messages: New messages for PlaceHog+King; All messages get a colon to get highlighted; Reorder messages more logically
Wuzzy <almikes@aol.com>
parents:
11914
diff
changeset
|
537 |
TGoalStrId = (gidCaption, gidSubCaption, gidPlaceKing, gidLowGravity, gidInvulnerable, |
4361 | 538 |
gidVampiric, gidKarma, gidKing, gidPlaceHog, gidArtillery, |
8795
b5b79a8f9354
merge correction, also what's with all those trailing whitespaces?
koda
parents:
8774
diff
changeset
|
539 |
gidSolidLand, gidSharedAmmo, gidMineTimer, gidNoMineTimer, |
b5b79a8f9354
merge correction, also what's with all those trailing whitespaces?
koda
parents:
8774
diff
changeset
|
540 |
gidRandomMineTimer, gidDamageModifier, gidResetHealth, gidAISurvival, |
11878
74e838b7eecc
Show “More Wind” modifier in mission panel
Wuzzy <almikes@aol.com>
parents:
11766
diff
changeset
|
541 |
gidInfAttack, gidResetWeps, gidPerHogAmmo, gidTagTeam, gidMoreWind); |
4361 | 542 |
|
8026
4a4f21070479
merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
7996
diff
changeset
|
543 |
|
4367 | 544 |
TLandArray = packed array of array of LongWord; |
545 |
TCollisionArray = packed array of array of Word; |
|
8026
4a4f21070479
merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
7996
diff
changeset
|
546 |
TDirtyTag = packed array of array of byte; |
8330 | 547 |
|
4367 | 548 |
TPreview = packed array[0..127, 0..31] of byte; |
10162 | 549 |
TPreviewAlpha = packed array[0..127, 0..255] of byte; |
4367 | 550 |
|
6688 | 551 |
PWidgetMovement = ^TWidgetMovement; |
552 |
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
|
553 |
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
|
554 |
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
|
555 |
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
|
556 |
startTime : Longword; |
6688 | 557 |
end; |
558 |
||
559 |
POnScreenWidget = ^TOnScreenWidget; |
|
560 |
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
|
561 |
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
|
562 |
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
|
563 |
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
|
564 |
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
|
565 |
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
|
566 |
// (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
|
567 |
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
|
568 |
end; |
4367 | 569 |
|
6693 | 570 |
PTouch_Data = ^TTouch_Data; |
571 |
TTouch_Data = record |
|
572 |
id : TSDL_FingerId; |
|
573 |
x,y : LongInt; |
|
574 |
dx,dy : LongInt; |
|
575 |
historicalX, historicalY : LongInt; |
|
576 |
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
|
577 |
pressedWidget : POnScreenWidget; |
6693 | 578 |
end; |
579 |
||
10361 | 580 |
PSpriteData = ^TSpriteData; |
581 |
TSpriteData = record |
|
582 |
FileName: string[15]; |
|
583 |
Path, AltPath: TPathType; |
|
584 |
Texture: PTexture; |
|
585 |
Surface: PSDL_Surface; |
|
586 |
Width, Height, imageWidth, imageHeight: LongInt; |
|
587 |
saveSurf: boolean; |
|
12701
79e13080b9db
mark up sprites for uStore loading. critical is for ones needed for proper gameplay, checksum is for ones where the game will desync if they don't match. will add checksumming next...
nemo
parents:
12668
diff
changeset
|
588 |
critical: boolean; |
79e13080b9db
mark up sprites for uStore loading. critical is for ones needed for proper gameplay, checksum is for ones where the game will desync if they don't match. will add checksumming next...
nemo
parents:
12668
diff
changeset
|
589 |
checkSum: boolean; // use for images where if they are missing a desync can occur. |
10361 | 590 |
priority: GLfloat; |
591 |
getDimensions, getImageDimensions: boolean; |
|
592 |
end; |
|
593 |
||
10874
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
594 |
// gear data types |
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
595 |
|
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
596 |
const cakeh = 27; |
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
597 |
|
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
598 |
type TCakeData = record |
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
599 |
CakeI: integer; |
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
600 |
CakePoints: array[0..Pred(cakeh)] of record |
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
601 |
x, y: hwFloat; |
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
602 |
end; |
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
603 |
end; |
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
604 |
|
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
605 |
PCakeData = ^TCakeData; |
059a6492176e
allow gear specific data (with gear type specific type). applied to cake
sheepluva
parents:
10829
diff
changeset
|
606 |
|
11734 | 607 |
TClansArray = array[0..Pred(cMaxTeams)] of PClan; |
608 |
||
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
609 |
implementation |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
610 |
|
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
|
611 |
end. |