author | Wolfgang Steffens <WolfgangSteff@gmail.com> |
Tue, 10 Jul 2012 16:38:50 +0200 | |
changeset 7377 | 1aceade403ba |
parent 7374 | 514138949c76 |
child 11317 | 62287d4044e7 |
permissions | -rw-r--r-- |
4976 | 1 |
(* |
2 |
* Hedgewars, a free turn based strategy game |
|
6700 | 3 |
* Copyright (c) 2004-2012 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 |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
42 |
TGameType = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview, gmtSyntax); |
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, |
7129
0ce4f478ea6c
initial GLSL1.2 test version
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7111
diff
changeset
|
47 |
ptLocale, ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps, ptSuddenDeath, ptButtons, |
0ce4f478ea6c
initial GLSL1.2 test version
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7111
diff
changeset
|
48 |
ptShaders); |
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 |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
51 |
TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprFrame, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
52 |
sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee, |
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, |
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, |
6637
b4a3310f2974
show buttons on the screen, similar to the iOS overlay
Xeli
parents:
6627
diff
changeset
|
64 |
{$ENDIF} |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
65 |
sprFlake, sprHandRope, sprHandBazooka, sprHandShotgun, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
66 |
sprHandDEagle, sprHandAirAttack, sprHandBaseball, sprPHammer, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
67 |
sprHandBlowTorch, sprBlowTorch, sprTeleport, sprHHDeath, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
68 |
sprShotgun, sprDEagle, sprHHIdle, sprMortar, sprTurnsLeft, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
69 |
sprKamikaze, sprWhip, sprKowtow, sprSad, sprWave, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
70 |
sprHurrah, sprLemonade, sprShrug, sprJuggle, sprExplPart, sprExplPart2, |
6609 | 71 |
sprCakeWalk, sprCakeDown, sprWatermelon, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
72 |
sprEvilTrace, sprHellishBomb, sprSeduction, sprDress, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
73 |
sprCensored, sprDrill, sprHandDrill, sprHandBallgun, sprBalls, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
74 |
sprPlane, sprHandPlane, sprUtility, sprInvulnerable, sprVampiric, sprGirder, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
75 |
sprSpeechCorner, sprSpeechEdge, sprSpeechTail, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
76 |
sprThoughtCorner, sprThoughtEdge, sprThoughtTail, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
77 |
sprShoutCorner, sprShoutEdge, sprShoutTail, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
78 |
sprSniperRifle, sprBubbles, sprJetpack, sprHealth, sprHandMolotov, sprMolotov, |
5065 | 79 |
sprSmoke, sprSmokeWhite, sprShell, sprDust, sprSnowDust, sprExplosives, sprExplosivesRoll, |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
80 |
sprAmTeleport, sprSplash, sprDroplet, sprBirdy, sprHandCake, sprHandConstruction, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
81 |
sprHandGrenade, sprHandMelon, sprHandMortar, sprHandSkip, sprHandCluster, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
82 |
sprHandDynamite, sprHandHellish, sprHandMine, sprHandSeduction, sprHandVamp, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
83 |
sprBigExplosion, sprSmokeRing, sprBeeTrace, sprEgg, sprTargetBee, sprHandBee, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
84 |
sprFeather, sprPiano, sprHandSineGun, sprPortalGun, sprPortal, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
85 |
sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
86 |
sprSMineOff, sprSMineOn, sprHandSMine, sprHammer, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
87 |
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
|
88 |
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
|
89 |
sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis, |
6637
b4a3310f2974
show buttons on the screen, similar to the iOS overlay
Xeli
parents:
6627
diff
changeset
|
90 |
sprSlider |
4357
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 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
93 |
// Gears that interact with other Gears and/or Land |
6888 | 94 |
TGearType = ({-->}gtFlame, gtHedgehog, gtMine, gtCase, gtExplosives, // <-- these are gears which should be avoided when searching a spawn place |
95 |
gtGrenade, gtShell, gtGrave, gtBee, // 8 |
|
96 |
gtShotgunShot, gtPickHammer, gtRope, // 11 |
|
97 |
gtDEagleShot, gtDynamite, gtClusterBomb, gtCluster, gtShover, // 16 |
|
98 |
gtFirePunch, gtATStartGame, // 18 |
|
99 |
gtATFinishGame, gtParachute, gtAirAttack, gtAirBomb, gtBlowTorch, // 23 |
|
100 |
gtGirder, gtTeleport, gtSwitcher, gtTarget, gtMortar, // 28 |
|
101 |
gtWhip, gtKamikaze, gtCake, gtSeduction, gtWatermelon, gtMelonPiece, // 34 |
|
102 |
gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 40 |
|
103 |
gtSniperRifleShot, gtJetpack, gtMolotov, gtBirdy, // 44 |
|
5357
ec36f3d53f3c
Tiny optimization: convert smooth wind indicator change gear into visual gear
unc0rr
parents:
5319
diff
changeset
|
104 |
gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 50 |
ec36f3d53f3c
Tiny optimization: convert smooth wind indicator change gear into visual gear
unc0rr
parents:
5319
diff
changeset
|
105 |
gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 55 |
7007 | 106 |
gtNapalmBomb, gtSnowball, gtFlake, gtStructure, gtLandGun, gtTardis, gtIceGun); // 62 |
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, |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
126 |
sndJump3, sndYesSir, sndLaugh, sndIllGetYou, sndIncoming, |
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, |
5728 | 143 |
sndComeonthen, sndParachute, sndBump, sndResurrector, sndPlane, sndTardis); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
144 |
|
5125 | 145 |
// 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
|
146 |
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
|
147 |
amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip, // 13 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
148 |
amBaseballBat, amParachute, amAirAttack, amMineStrike, amBlowTorch, // 18 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
149 |
amGirder, amTeleport, amSwitch, amMortar, amKamikaze, amCake, // 24 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
150 |
amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
151 |
amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
152 |
amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42 |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
153 |
amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48 |
7007 | 154 |
amResurrector, amDrillStrike, amSnowball, amTardis, amStructure, amLandGun, amIceGun); // 54 |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
155 |
|
5125 | 156 |
// 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
|
157 |
TCrateType = (HealthCrate, AmmoCrate, UtilityCrate); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
158 |
|
5639 | 159 |
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
|
160 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
161 |
TCapGroup = (capgrpGameState, capgrpAmmoinfo, capgrpVolume, |
5118 | 162 |
capgrpMessage, capgrpMessage2, capgrpAmmostate); |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
163 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
164 |
TStatInfoType = (siGameResult, siMaxStepDamage, siMaxStepKills, siKilledHHs, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
165 |
siClanHealth, siTeamStats, siPlayerKills, siMaxTeamDamage, |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
166 |
siMaxTeamKills, siMaxTurnSkips ); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
167 |
|
5125 | 168 |
// Various "emote" animations a hedgehog can do |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
169 |
TWave = (waveRollup, waveSad, waveWave, waveHurrah, waveLemonade, waveShrug, waveJuggle); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
170 |
|
4812
f924be23ffb4
merge with HEAD after 0.9.15 release, move consts and vars in their proper files
koda
parents:
4807
diff
changeset
|
171 |
TRenderMode = (rmDefault, rmLeftEye, rmRightEye); |
f924be23ffb4
merge with HEAD after 0.9.15 release, move consts and vars in their proper files
koda
parents:
4807
diff
changeset
|
172 |
TStereoMode = (smNone, smRedCyan, smCyanRed, smRedBlue, smBlueRed, smRedGreen, smGreenRed, smHorizontal, smVertical, smAFR); |
f924be23ffb4
merge with HEAD after 0.9.15 release, move consts and vars in their proper files
koda
parents:
4807
diff
changeset
|
173 |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
174 |
THHFont = record |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
175 |
Handle: PTTF_Font; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
176 |
Height: LongInt; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
177 |
style: LongInt; |
6889 | 178 |
Name: string[31]; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
179 |
end; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
180 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
181 |
PAmmo = ^TAmmo; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
182 |
TAmmo = record |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
183 |
Propz: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
184 |
Count: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
185 |
(* 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
|
186 |
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
|
187 |
NumPerTurn: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
188 |
Timer: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
189 |
Pos: LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
190 |
AmmoType: TAmmoType; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
191 |
AttackVoice: TSound; |
5319
51d8e4747876
bounce. tweak of values, remove friction modifier, move to weapon, to match timer behaviour
nemo
parents:
5316
diff
changeset
|
192 |
Bounciness: LongWord; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
193 |
end; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
194 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
195 |
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
|
196 |
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
|
197 |
end; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
198 |
|
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
199 |
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
|
200 |
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
|
201 |
end; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
202 |
|
7111
5ba5a92d74fb
Replaced matrix related FFP code with explicit matrix calculations.
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7080
diff
changeset
|
203 |
TMatrix4x4f = array[0..3, 0..3] of GLfloat; |
5ba5a92d74fb
Replaced matrix related FFP code with explicit matrix calculations.
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7080
diff
changeset
|
204 |
|
7080
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
205 |
PAtlas = ^TAtlas; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
206 |
PTexture = ^TTexture; |
7080
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
207 |
|
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
208 |
TAtlas = record |
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
209 |
id: GLuint; |
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
210 |
w, h: LongInt; |
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
211 |
priority: GLfloat; |
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
212 |
end; |
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
213 |
|
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
214 |
PVertexRect = ^TVertexRect; |
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
215 |
TVertexRect = array[0..3] of TVertex2f; |
7304
8b3575750cd2
Added auto cropping to atlasing
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7297
diff
changeset
|
216 |
|
8b3575750cd2
Added auto cropping to atlasing
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7297
diff
changeset
|
217 |
TCropInformation = record |
8b3575750cd2
Added auto cropping to atlasing
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7297
diff
changeset
|
218 |
l, r, t, b: Integer; // cropped pixels for each side |
8b3575750cd2
Added auto cropping to atlasing
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7297
diff
changeset
|
219 |
x, y: Integer; // pivot (center) of the sprite in the cropped image |
8b3575750cd2
Added auto cropping to atlasing
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7297
diff
changeset
|
220 |
end; |
7080
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
221 |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
222 |
TTexture = record |
7080
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
223 |
atlas: PAtlas; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
224 |
w, h, scale: LongInt; |
7080
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
225 |
|
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
226 |
x, y: LongInt; // Offset in the texture atlas |
7304
8b3575750cd2
Added auto cropping to atlasing
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7297
diff
changeset
|
227 |
cropInfo: TCropInformation; |
8b3575750cd2
Added auto cropping to atlasing
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7297
diff
changeset
|
228 |
|
7080
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
229 |
isRotated: boolean; // if true sprite is flipped in the atlas taking w pixels along the y and h pixels along the x axis |
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
230 |
|
7297
af64b509725c
using atlas for rendering now
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7291
diff
changeset
|
231 |
shared: boolean; // true if in an atlas, false if atlas points to a dedicated texture for this sprite |
af64b509725c
using atlas for rendering now
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7291
diff
changeset
|
232 |
|
7291
ad4b6c2b09e8
retaining SDL surfaces in order to allow recreating atlases from scratch without
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7288
diff
changeset
|
233 |
surface: PSDL_Surface; // retained in memory surface |
ad4b6c2b09e8
retaining SDL surfaces in order to allow recreating atlases from scratch without
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7288
diff
changeset
|
234 |
|
7080
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
235 |
// Cached values for texel coordinates and vertex coordinates |
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
236 |
vb, tb: TVertexRect; |
dbf43c07a507
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7034
diff
changeset
|
237 |
|
7304
8b3575750cd2
Added auto cropping to atlasing
Wolfgang Steffens <WolfgangSteff@gmail.com>
parents:
7297
diff
changeset
|
238 |
nextFrame: PTexture; |
4357
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 |
|
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
|
241 |
THogEffect = (heInvulnerable, heResurrectable, hePoisoned, heResurrected, heFrozen); |
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); |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
251 |
TGear = record |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
252 |
NextGear, PrevGear: PGear; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
253 |
Active: Boolean; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
254 |
AdvBounce: Longword; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
255 |
Invulnerable: Boolean; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
256 |
RenderTimer: Boolean; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
257 |
AmmoType : TAmmoType; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
258 |
State : Longword; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
259 |
X : hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
260 |
Y : hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
261 |
dX: hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
262 |
dY: hwFloat; |
5612
2638dec1b323
This really should have been a TPoint for consistency
nemo
parents:
5585
diff
changeset
|
263 |
Target : TPoint; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
264 |
Kind: TGearType; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
265 |
Pos: Longword; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
266 |
doStep: TGearStepProcedure; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
267 |
Radius: LongInt; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
268 |
Angle, Power : Longword; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
269 |
DirAngle: real; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
270 |
Timer : LongWord; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
271 |
Elasticity: hwFloat; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
272 |
Friction : hwFloat; |
4602
ec84fb564bab
added density for gears used in gfMoreWind, needs alot of tweaking
Henek
parents:
4578
diff
changeset
|
273 |
Density : hwFloat; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
274 |
Message, MsgParam : Longword; |
4361 | 275 |
Hedgehog: PHedgehog; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
276 |
Health, Damage, Karma: LongInt; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
277 |
CollisionIndex: LongInt; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
278 |
Tag: LongInt; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
279 |
Tex: PTexture; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
280 |
Z: Longword; |
7272
71df899c4163
Second part of the change. Make collision check use the new mask bit.
nemo
parents:
7191
diff
changeset
|
281 |
CollisionMask: Word; |
71df899c4163
Second part of the change. Make collision check use the new mask bit.
nemo
parents:
7191
diff
changeset
|
282 |
LinkedGear: PGear; |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
283 |
FlightTime: Longword; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
284 |
uid: Longword; |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
285 |
ImpactSound: TSound; // first sound, others have to be after it in the sounds def. |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
286 |
nImpactSounds: Word; // count of ImpactSounds |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
287 |
SoundChannel: LongInt; |
5062 | 288 |
PortalCounter: LongWord; // Hopefully temporary, but avoids infinite portal loops in a guaranteed fashion. |
289 |
LastDamage: PHedgehog; |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6426
diff
changeset
|
290 |
end; |
6426 | 291 |
TPGearArray = array of PGear; |
7335 | 292 |
PGearArrayS = record |
293 |
size: LongWord; |
|
294 |
ar: ^TPGearArray; |
|
295 |
end; |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
296 |
|
4361 | 297 |
PVisualGear = ^TVisualGear; |
298 |
TVGearStepProcedure = procedure (Gear: PVisualGear; Steps: Longword); |
|
299 |
TVisualGear = record |
|
300 |
NextGear, PrevGear: PVisualGear; |
|
301 |
Frame, |
|
302 |
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
|
303 |
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
|
304 |
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
|
305 |
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
|
306 |
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
|
307 |
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
|
308 |
tdY: real; |
4361 | 309 |
State : Longword; |
310 |
Timer: Longword; |
|
311 |
Angle, dAngle: real; |
|
312 |
Kind: TVisualGearType; |
|
313 |
doStep: TVGearStepProcedure; |
|
314 |
Tex: PTexture; |
|
315 |
alpha, scale: GLfloat; |
|
4365 | 316 |
Hedgehog: PHedgehog; |
5357
ec36f3d53f3c
Tiny optimization: convert smooth wind indicator change gear into visual gear
unc0rr
parents:
5319
diff
changeset
|
317 |
Tag: LongInt; |
4361 | 318 |
Text: shortstring; |
319 |
Tint: Longword; |
|
4422 | 320 |
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
|
321 |
Layer: byte; |
4361 | 322 |
end; |
323 |
||
324 |
TStatistics = record |
|
325 |
DamageRecv, |
|
326 |
DamageGiven: Longword; |
|
327 |
StepDamageRecv, |
|
328 |
StepDamageGiven, |
|
329 |
StepKills: Longword; |
|
330 |
MaxStepDamageRecv, |
|
331 |
MaxStepDamageGiven, |
|
332 |
MaxStepKills: Longword; |
|
333 |
FinishedTurns: Longword; |
|
334 |
end; |
|
335 |
||
336 |
TTeamStats = record |
|
337 |
Kills : Longword; |
|
5202 | 338 |
Suicides: Longword; |
4361 | 339 |
AIKills : Longword; |
340 |
TeamKills : Longword; |
|
341 |
TurnSkips : Longword; |
|
342 |
TeamDamage : Longword; |
|
343 |
end; |
|
344 |
||
7191
9419294e5f33
first attempt at implementing support for keys with modifiers
Xeli
parents:
7034
diff
changeset
|
345 |
TBinds = array[0..cKbdMaxIndex] of shortstring; |
4361 | 346 |
TKeyboardState = array[0..cKeyMaxIndex] of Byte; |
347 |
||
348 |
PVoicepack = ^TVoicepack; |
|
349 |
TVoicepack = record |
|
350 |
name: shortstring; |
|
351 |
chunks: array [TSound] of PMixChunk; |
|
352 |
end; |
|
353 |
||
5638
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
354 |
TVoice = record |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
355 |
snd: TSound; |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
356 |
voicepack: PVoicePack; |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
357 |
end; |
e35ba2a400d8
Try to avoid overlapping voices for major statements (not things like byebye or oof)
nemo
parents:
5612
diff
changeset
|
358 |
|
7034
e3639ce1d4f8
(PointerTo (SimpleType _)) could be a pointer to a non-struct type
unc0rr
parents:
7016
diff
changeset
|
359 |
THHAmmo = array[0..cMaxSlotIndex, 0..cMaxSlotAmmoIndex] of TAmmo; |
4361 | 360 |
PHHAmmo = ^THHAmmo; |
361 |
||
362 |
THedgehog = record |
|
7016 | 363 |
Name: shortstring; |
4361 | 364 |
Gear: PGear; |
4881
35e6269227b6
still in developement take on adding structures, working hiding of hogs and ejecting them later.
Henek
parents:
4812
diff
changeset
|
365 |
GearHidden: PGear; |
4361 | 366 |
SpeechGear: PVisualGear; |
367 |
NameTagTex, |
|
368 |
HealthTagTex, |
|
369 |
HatTex: PTexture; |
|
370 |
Ammo: PHHAmmo; |
|
371 |
CurAmmoType: TAmmoType; |
|
372 |
AmmoStore: Longword; |
|
373 |
Team: PTeam; |
|
374 |
MultiShootAttacks: Longword; |
|
375 |
visStepPos: LongWord; |
|
376 |
BotLevel : Byte; // 0 - Human player |
|
377 |
HatVisibility: GLfloat; |
|
378 |
stats: TStatistics; |
|
379 |
Hat: shortstring; |
|
380 |
InitialHealth: LongInt; // used for gfResetHealth |
|
381 |
King: boolean; // Flag for a bunch of hedgehog attributes |
|
382 |
Unplaced: boolean; // Flag for hog placing mode |
|
383 |
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
|
384 |
Effects: array[THogEffect] of LongInt; |
4361 | 385 |
end; |
386 |
||
387 |
TTeam = record |
|
388 |
Clan: PClan; |
|
7016 | 389 |
TeamName: shortstring; |
4361 | 390 |
ExtDriven: boolean; |
391 |
Binds: TBinds; |
|
392 |
Hedgehogs: array[0..cMaxHHIndex] of THedgehog; |
|
393 |
CurrHedgehog: LongWord; |
|
394 |
NameTagTex: PTexture; |
|
395 |
CrosshairTex, |
|
396 |
GraveTex, |
|
397 |
HealthTex, |
|
398 |
AIKillsTex, |
|
399 |
FlagTex: PTexture; |
|
400 |
Flag: shortstring; |
|
401 |
GraveName: shortstring; |
|
402 |
FortName: shortstring; |
|
403 |
TeamHealth: LongInt; |
|
404 |
TeamHealthBarWidth, |
|
405 |
NewTeamHealthBarWidth: LongInt; |
|
406 |
DrawHealthY: LongInt; |
|
407 |
AttackBar: LongWord; |
|
408 |
HedgehogsNumber: Longword; |
|
409 |
hasGone: boolean; |
|
410 |
voicepack: PVoicepack; |
|
411 |
PlayerHash: shortstring; // md5 hash of player name. For temporary enabling of hats as thank you. Hashed for privacy of players |
|
412 |
stats: TTeamStats; |
|
413 |
end; |
|
414 |
||
415 |
TClan = record |
|
416 |
Color: Longword; |
|
417 |
Teams: array[0..Pred(cMaxTeams)] of PTeam; |
|
418 |
TeamsNumber: Longword; |
|
5016
9347d82a26cc
added game mode Tag Team, mostly untested, please test :)
Henek
parents:
4978
diff
changeset
|
419 |
TagTeamIndex: Longword; |
4361 | 420 |
CurrTeam: LongWord; |
421 |
ClanHealth: LongInt; |
|
422 |
ClanIndex: LongInt; |
|
423 |
TurnNumber: LongWord; |
|
4978 | 424 |
Flawless: boolean; |
4361 | 425 |
end; |
426 |
||
4807
180dbfb13903
display caption for ammotype amNothing when switched to so that players know what just happened
sheepluva
parents:
4782
diff
changeset
|
427 |
TAmmoStrId = (sidGrenade, sidClusterBomb, sidBazooka, sidBee, sidShotgun, |
4361 | 428 |
sidPickHammer, sidSkip, sidRope, sidMine, sidDEagle, |
429 |
sidDynamite, sidBaseballBat, sidFirePunch, sidSeconds, |
|
430 |
sidParachute, sidAirAttack, sidMineStrike, sidBlowTorch, |
|
431 |
sidGirder, sidTeleport, sidSwitch, sidMortar, sidWhip, |
|
432 |
sidKamikaze, sidCake, sidSeduction, sidWatermelon, |
|
433 |
sidHellishBomb, sidDrill, sidBallgun, sidNapalm, sidRCPlane, |
|
434 |
sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime, |
|
435 |
sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack, |
|
436 |
sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb, sidSineGun, sidFlamethrower, |
|
7007 | 437 |
sidSMine, sidHammer, sidResurrector, sidDrillStrike, sidSnowball, sidNothing, sidTardis, |
438 |
sidStructure, sidLandGun, sidIceGun); |
|
4361 | 439 |
|
440 |
TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused, |
|
441 |
sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync, |
|
5316
191cd6c06203
Allow control of grenade bounce. Not sure if this is a good idea, but has been requested a lot, so...
nemo
parents:
5202
diff
changeset
|
442 |
sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady, |
191cd6c06203
Allow control of grenade bounce. Not sure if this is a good idea, but has been requested a lot, so...
nemo
parents:
5202
diff
changeset
|
443 |
sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce); |
4361 | 444 |
|
5125 | 445 |
// Events that are important for the course of the game or at least interesting for other reasons |
4361 | 446 |
TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw, |
447 |
eidNewHealthPack, eidNewAmmoPack, eidNewUtilityPack, eidTurnSkipped, eidHurtSelf, |
|
448 |
eidHomerun, eidGone); |
|
449 |
||
450 |
TGoalStrId = (gidCaption, gidSubCaption, gidForts, gidLowGravity, gidInvulnerable, |
|
451 |
gidVampiric, gidKarma, gidKing, gidPlaceHog, gidArtillery, |
|
452 |
gidSolidLand, gidSharedAmmo, gidMineTimer, gidNoMineTimer, gidRandomMineTimer, |
|
5022
d2a2f6c9b236
some final work and buggfix for Tag Team, it is now playable
Henek
parents:
5016
diff
changeset
|
453 |
gidDamageModifier, gidResetHealth, gidAISurvival, gidInfAttack, gidResetWeps, gidPerHogAmmo, gidTagTeam); |
4361 | 454 |
|
4367 | 455 |
TLandArray = packed array of array of LongWord; |
456 |
TCollisionArray = packed array of array of Word; |
|
457 |
TPreview = packed array[0..127, 0..31] of byte; |
|
458 |
TDirtyTag = packed array of array of byte; |
|
459 |
||
6688 | 460 |
PWidgetMovement = ^TWidgetMovement; |
461 |
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
|
462 |
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
|
463 |
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
|
464 |
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
|
465 |
startTime : Longword; |
6688 | 466 |
end; |
467 |
||
468 |
POnScreenWidget = ^TOnScreenWidget; |
|
469 |
TOnScreenWidget = 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
|
470 |
show : boolean; // if false widget will not be drawn |
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
|
471 |
sprite : TSprite; // a convenience type |
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
|
472 |
frame : TSDL_Rect; // graphical coordinates |
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
|
473 |
active : TSDL_Rect; // active touch region |
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
|
474 |
fadeAnimStart : Longword; // time the fade started, 0 means don't fade |
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
|
475 |
moveAnim : TWidgetMovement; // the animation associated to the widget |
6685
ef706fccfb0a
moved other widgets under the USE_TOUCH_INTERFACE, added pause button (at least, graphically...)
koda
parents:
6683
diff
changeset
|
476 |
end; |
4367 | 477 |
|
6694 | 478 |
{$IFDEF SDL13} |
6693 | 479 |
PTouch_Data = ^TTouch_Data; |
480 |
TTouch_Data = record |
|
481 |
id : TSDL_FingerId; |
|
482 |
x,y : LongInt; |
|
483 |
dx,dy : LongInt; |
|
484 |
historicalX, historicalY : LongInt; |
|
485 |
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
|
486 |
pressedWidget : POnScreenWidget; |
6693 | 487 |
end; |
6694 | 488 |
{$ENDIF} |
6693 | 489 |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
490 |
implementation |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
diff
changeset
|
491 |
|
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
|
492 |
end. |