author  Wuzzy <Wuzzy2@mail.ru> 
Tue, 07 Jul 2020 00:17:05 +0200  
changeset 15698  f681c3f2eeba 
parent 15442  6031c0cfec89 
permissions  rwrr 
393  1 
(* 
1066  2 
* Hedgewars, a free turn based strategy game 
11046  3 
* Copyright (c) 20042015 Andrey Korotaev <unC0Rr@gmail.com> 
393  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:
10105
diff
changeset

16 
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 021101301 USA 
393  17 
*) 
18 

2630  19 
{$INCLUDE "options.inc"} 
20 

288  21 
unit uAmmos; 
22 
interface 

7754  23 
uses uConsts, uTypes, uStore; 
288  24 

3038  25 
procedure initModule; 
26 
procedure freeModule; 

2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2715
diff
changeset

27 

3346  28 
procedure AddAmmoStore; 
6898  29 
procedure SetAmmoLoadout(var s: shortstring); 
30 
procedure SetAmmoProbability(var s: shortstring); 

31 
procedure SetAmmoDelay(var s: shortstring); 

32 
procedure SetAmmoReinforcement(var s: shortstring); 

288  33 
procedure AssignStores; 
553
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

34 
procedure AddAmmo(var Hedgehog: THedgehog; ammo: TAmmoType); 
7337
c224cd2d32f3
Allow script to set number of ammo in a crate. untested.
nemo
parents:
7037
diff
changeset

35 
procedure AddAmmo(var Hedgehog: THedgehog; ammo: TAmmoType; amt: LongWord); 
6924  36 
procedure SetAmmo(var Hedgehog: THedgehog; ammo: TAmmoType; cnt: LongWord); 
6770
7d2c6cdb816a
Start on adding drowning bonus to bat/firepunch/whip. AI still is not smart enough to change direction when firepunching to face the water, or change the angle of the bat.
nemo
parents:
6762
diff
changeset

37 
function HHHasAmmo(var Hedgehog: THedgehog; Ammo: TAmmoType): LongWord; 
371  38 
procedure PackAmmo(Ammo: PHHAmmo; Slot: LongInt); 
534  39 
procedure OnUsedAmmo(var Hedgehog: THedgehog); 
1964  40 
procedure ApplyAngleBounds(var Hedgehog: THedgehog; AmmoType: TAmmoType); 
553
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

41 
procedure ApplyAmmoChanges(var Hedgehog: THedgehog); 
1922  42 
procedure SwitchNotHeldAmmo(var Hedgehog: THedgehog); 
783  43 
procedure SetWeapon(weap: TAmmoType); 
1784  44 
procedure DisableSomeWeapons; 
2762
2fbc8d35eb52
Mode to place hogs at start of game. Will probably need a bit more testing.
nemo
parents:
2732
diff
changeset

45 
procedure ResetWeapons; 
10560  46 
function GetAmmoByNum(num: LongInt): PHHAmmo; 
6924  47 
function GetCurAmmoEntry(var Hedgehog: THedgehog): PAmmo; 
5272  48 
function GetAmmoEntry(var Hedgehog: THedgehog; am: TAmmoType): PAmmo; 
288  49 

10560  50 
var StoreCnt: LongInt; 
1966  51 

288  52 
implementation 
12156
9755922396f5
Lua callback: onUsedAmmo, after using up an ammo
Wuzzy <almikes@aol.com>
parents:
11939
diff
changeset

53 
uses uVariables, uCommands, uUtils, uCaptions, uDebug, uScript; 
2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2715
diff
changeset

54 

13455
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

55 
type TAmmoArray = array[TAmmoType] of TAmmo; 
288  56 
var StoresList: array[0..Pred(cMaxHHs)] of PHHAmmo; 
3346  57 
ammoLoadout, ammoProbability, ammoDelay, ammoReinforcement: shortstring; 
13455
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

58 
InitialCountsLocal: array[0..Pred(cMaxHHs)] of TAmmoCounts; 
288  59 

9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

60 
procedure FillAmmoStore(Ammo: PHHAmmo; var newAmmo: TAmmoArray); 
288  61 
var mi: array[0..cMaxSlotIndex] of byte; 
62 
a: TAmmoType; 

295  63 
begin 
3407  64 
{$HINTS OFF} 
295  65 
FillChar(mi, sizeof(mi), 0); 
3407  66 
{$HINTS ON} 
295  67 
FillChar(Ammo^, sizeof(Ammo^), 0); 
68 
for a:= Low(TAmmoType) to High(TAmmoType) do 

2764  69 
begin 
9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

70 
if newAmmo[a].Count > 0 then 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

71 
begin 
11532  72 
if checkFails(mi[Ammoz[a].Slot] <= cMaxSlotAmmoIndex, 'Ammo slot overflow', true) then exit; 
9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

73 
Ammo^[Ammoz[a].Slot, mi[Ammoz[a].Slot]]:= newAmmo[a]; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

74 
inc(mi[Ammoz[a].Slot]) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

75 
end 
6631  76 
end; 
77 
AmmoMenuInvalidated:= true; 

295  78 
end; 
79 

3346  80 
procedure AddAmmoStore; 
295  81 
var cnt: Longword; 
82 
a: TAmmoType; 

83 
ammos: TAmmoCounts; 

9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

84 
newAmmos: TAmmoArray; 
288  85 
begin 
11532  86 
if checkFails((byte(ammoLoadout[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoProbability[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoDelay[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoReinforcement[0]) = byte(ord(High(TAmmoType)))) 
87 
, 'Incomplete or missing ammo scheme set (incompatible frontend or demo/save?)' 

88 
, true) 

89 
then exit; 

288  90 

11534  91 
if checkFails(StoreCnt < cMaxHHs, 'Ammo stores overflow', true) then exit; 
288  92 
inc(StoreCnt); 
93 

94 
new(StoresList[Pred(StoreCnt)]); 

95 

96 
for a:= Low(TAmmoType) to High(TAmmoType) do 

97 
begin 

2357
babe1a55e284
Add an empty weapon to avoid selection of weapons which aren't yet ready. Might all be useful to switch to amNothing in certain situations, like after using up all ropes, instead of bazooka.
nemo
parents:
2246
diff
changeset

98 
if a <> amNothing then 
1895  99 
begin 
13454
794dcf69a5aa
New Lua API function: GetAmmo, to get ammo config
Wuzzy <Wuzzy2@mail.ru>
parents:
12733
diff
changeset

100 
Ammoz[a].Probability:= probabilityLevels[byte(ammoProbability[ord(a)])  byte('0')]; 
3346  101 
Ammoz[a].SkipTurns:= (byte(ammoDelay[ord(a)])  byte('0')); 
102 
Ammoz[a].NumberInCase:= (byte(ammoReinforcement[ord(a)])  byte('0')); 

103 
cnt:= byte(ammoLoadout[ord(a)])  byte('0'); 

2370  104 
// avoid things we already have infinite number 
2357
babe1a55e284
Add an empty weapon to avoid selection of weapons which aren't yet ready. Might all be useful to switch to amNothing in certain situations, like after using up all ropes, instead of bazooka.
nemo
parents:
2246
diff
changeset

105 
if cnt = 9 then 
babe1a55e284
Add an empty weapon to avoid selection of weapons which aren't yet ready. Might all be useful to switch to amNothing in certain situations, like after using up all ropes, instead of bazooka.
nemo
parents:
2246
diff
changeset

106 
begin 
babe1a55e284
Add an empty weapon to avoid selection of weapons which aren't yet ready. Might all be useful to switch to amNothing in certain situations, like after using up all ropes, instead of bazooka.
nemo
parents:
2246
diff
changeset

107 
cnt:= AMMO_INFINITE; 
2370  108 
Ammoz[a].Probability:= 0 
2357
babe1a55e284
Add an empty weapon to avoid selection of weapons which aren't yet ready. Might all be useful to switch to amNothing in certain situations, like after using up all ropes, instead of bazooka.
nemo
parents:
2246
diff
changeset

109 
end; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

110 
if Ammoz[a].NumberInCase = 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

111 
Ammoz[a].Probability:= 0; 
2860
13a53315ae18
Awesome patch from TheException  adds editing of weapon delay and crate count. Tiy might want to tweak the crate graphic, could make be smaller or less overlappy.
nemo
parents:
2855
diff
changeset

112 

2370  113 
// avoid things we already have by scheme 
2461  114 
// merge this into DisableSomeWeapons ? 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

115 
if ((a = amLowGravity) and ((GameFlags and gfLowGravity) <> 0)) 
15698
f681c3f2eeba
Remove Vamp/Resurrect ammos in gfInvulnerable mode
Wuzzy <Wuzzy2@mail.ru>
parents:
15442
diff
changeset

116 
or ((a in [amInvulnerable, amResurrector, amVampiric]) and ((GameFlags and gfInvulnerable) <> 0)) 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

117 
or ((a = amLaserSight) and ((GameFlags and gfLaserSight) <> 0)) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

118 
or ((a = amVampiric) and ((GameFlags and gfVampiric) <> 0)) 
13854
ccfbc5f59c52
Hide creeper from frontend, prevent addition of creeper ammo via ammo scheme
Wuzzy <Wuzzy2@mail.ru>
parents:
13499
diff
changeset

119 
or ((a = amExtraTime) and (cHedgehogTurnTime >= 1000000)) 
ccfbc5f59c52
Hide creeper from frontend, prevent addition of creeper ammo via ammo scheme
Wuzzy <Wuzzy2@mail.ru>
parents:
13499
diff
changeset

120 
// Always remove creeper because it's unfinished. 
ccfbc5f59c52
Hide creeper from frontend, prevent addition of creeper ammo via ammo scheme
Wuzzy <Wuzzy2@mail.ru>
parents:
13499
diff
changeset

121 
// TODO: Reenable creeper when creeper is done 
ccfbc5f59c52
Hide creeper from frontend, prevent addition of creeper ammo via ammo scheme
Wuzzy <Wuzzy2@mail.ru>
parents:
13499
diff
changeset

122 
or (a = amCreeper) then 
2128  123 
begin 
2357
babe1a55e284
Add an empty weapon to avoid selection of weapons which aren't yet ready. Might all be useful to switch to amNothing in certain situations, like after using up all ropes, instead of bazooka.
nemo
parents:
2246
diff
changeset

124 
cnt:= 0; 
2370  125 
Ammoz[a].Probability:= 0 
126 
end; 

2457
ecf0c7e7995b
Initial molotov cocktail. Still needs graphics, tweaking of fire behaviour. Also changed probabilities for default weapon sets
nemo
parents:
2453
diff
changeset

127 
ammos[a]:= cnt; 
2730
f56592281526
Remove king invulnerability, disable everything but teleport instead.
nemo
parents:
2716
diff
changeset

128 

15220
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

129 
if (((GameFlags and gfPlaceHog) <> 0) 
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

130 
or (((GameFlags and gfKing) <> 0) and ((GameFlags and gfPlaceHog) = 0))) 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

131 
and (a <> amTeleport) and (a <> amSkip) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

132 
and (Ammoz[a].SkipTurns < 10000) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

133 
inc(Ammoz[a].SkipTurns,10000); 
15220
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

134 
if (((GameFlags and gfPlaceHog) <> 0) 
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

135 
or (((GameFlags and gfKing) <> 0) and ((GameFlags and gfPlaceHog) = 0))) 
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

136 
and (a = amTeleport) then 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

137 
ammos[a]:= AMMO_INFINITE 
10015  138 
end 
139 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

140 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

141 
ammos[a]:= AMMO_INFINITE; 
15220
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

142 

ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

143 
if (((GameFlags and gfPlaceHog) <> 0) 
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

144 
or (((GameFlags and gfKing) <> 0) and ((GameFlags and gfPlaceHog) = 0))) 
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

145 
and (a = amTeleport) then 
13455
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

146 
begin 
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

147 
InitialCountsLocal[Pred(StoreCnt)][a]:= cnt; 
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

148 
InitialAmmoCounts[a]:= cnt; 
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

149 
end 
4344
23ab3bdbf218
This should fix Chip's bug with unlimited teleports. Also remove more hog placement special behaviour and just use ResetWeapons with a check against PlacingHogs mode
nemo
parents:
4339
diff
changeset

150 
else 
13455
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

151 
begin 
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

152 
InitialCountsLocal[Pred(StoreCnt)][a]:= ammos[a]; 
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

153 
InitialAmmoCounts[a]:= ammos[a]; 
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

154 
end 
288  155 
end; 
10015  156 

9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

157 
for a:= Low(TAmmoType) to High(TAmmoType) do 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

158 
begin 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

159 
newAmmos[a]:= Ammoz[a].Ammo; 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

160 
newAmmos[a].Count:= ammos[a] 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

161 
end; 
10015  162 

9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

163 
FillAmmoStore(StoresList[Pred(StoreCnt)], newAmmos) 
288  164 
end; 
165 

10560  166 
function GetAmmoByNum(num: LongInt): PHHAmmo; 
288  167 
begin 
13499
c41b16ac2e05
Clarify the wording of a few checkFails messages
Wuzzy <Wuzzy2@mail.ru>
parents:
13455
diff
changeset

168 
if checkFails(num < StoreCnt, 'Invalid ammo store number', true) then 
11532  169 
GetAmmoByNum:= nil 
170 
else 

171 
GetAmmoByNum:= StoresList[num] 

288  172 
end; 
173 

6924  174 
function GetCurAmmoEntry(var Hedgehog: THedgehog): PAmmo; 
5272  175 
begin 
6990
40e5af28d026
change every return value into a more pascalish form, using the name of the fucntion (helps the parser and macpas compaitilibity)
koda
parents:
6924
diff
changeset

176 
GetCurAmmoEntry:= GetAmmoEntry(Hedgehog, Hedgehog.CurAmmoType) 
5272  177 
end; 
178 

179 
function GetAmmoEntry(var Hedgehog: THedgehog; am: TAmmoType): PAmmo; 

3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

180 
var ammoidx, slot: LongWord; 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

181 
begin 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

182 
with Hedgehog do 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

183 
begin 
5272  184 
slot:= Ammoz[am].Slot; 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

185 
ammoidx:= 0; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

186 
while (ammoidx < cMaxSlotAmmoIndex) and (Ammo^[slot, ammoidx].AmmoType <> am) do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

187 
inc(ammoidx); 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

188 
GetAmmoEntry:= @Ammo^[slot, ammoidx]; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

189 
if (Ammo^[slot, ammoidx].AmmoType <> am) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

190 
GetAmmoEntry:= GetAmmoEntry(Hedgehog, amNothing) 
5676
a655dfab27d7
Scripting changes. Add override of mapgen, templatefilter. Expose waterline, add "GetAmmoCount". Default to amNothing in uAmmos if entry is not found.
nemo
parents:
5640
diff
changeset

191 
end; 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

192 
end; 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

193 

288  194 
procedure AssignStores; 
547  195 
var t: LongInt; 
288  196 
i: Longword; 
197 
begin 

547  198 
for t:= 0 to Pred(TeamsCount) do 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

199 
with TeamsArray[t]^ do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

200 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

201 
for i:= 0 to cMaxHHIndex do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

202 
if Hedgehogs[i].Gear <> nil then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

203 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

204 
Hedgehogs[i].Ammo:= GetAmmoByNum(Hedgehogs[i].AmmoStore); 
15364
114b036522a6
King Mode: Automatically select teleport in king placement phase
Wuzzy <Wuzzy2@mail.ru>
parents:
15246
diff
changeset

205 
if ((GameFlags and gfPlaceHog) <> 0) or (((GameFlags and gfKing) <> 0) and (Hedgehogs[i].King = true)) then 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

206 
Hedgehogs[i].CurAmmoType:= amTeleport 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

207 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

208 
Hedgehogs[i].CurAmmoType:= amNothing 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

209 
end 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

210 
end 
288  211 
end; 
212 

7337
c224cd2d32f3
Allow script to set number of ammo in a crate. untested.
nemo
parents:
7037
diff
changeset

213 
procedure AddAmmo(var Hedgehog: THedgehog; ammo: TAmmoType; amt: LongWord); 
5273  214 
var cnt: LongWord; 
5676
a655dfab27d7
Scripting changes. Add override of mapgen, templatefilter. Expose waterline, add "GetAmmoCount". Default to amNothing in uAmmos if entry is not found.
nemo
parents:
5640
diff
changeset

215 
a: PAmmo; 
5272  216 
begin 
5676
a655dfab27d7
Scripting changes. Add override of mapgen, templatefilter. Expose waterline, add "GetAmmoCount". Default to amNothing in uAmmos if entry is not found.
nemo
parents:
5640
diff
changeset

217 
a:= GetAmmoEntry(Hedgehog, ammo); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

218 
if (a^.AmmoType <> amNothing) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

219 
cnt:= a^.Count 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

220 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

221 
cnt:= 0; 
12733
353cb2ce6f9c
Fix AddAmmo setting ammo to 99 when trying to add infinite ammo
Wuzzy <Wuzzy2@mail.ru>
parents:
12691
diff
changeset

222 
if (cnt >= AMMO_INFINITE) or (amt >= AMMO_INFINITE) then 
353cb2ce6f9c
Fix AddAmmo setting ammo to 99 when trying to add infinite ammo
Wuzzy <Wuzzy2@mail.ru>
parents:
12691
diff
changeset

223 
cnt:= AMMO_INFINITE 
353cb2ce6f9c
Fix AddAmmo setting ammo to 99 when trying to add infinite ammo
Wuzzy <Wuzzy2@mail.ru>
parents:
12691
diff
changeset

224 
else 
12671
87b3009f51c3
Fix team getting inf. ammo when stockpiling >= 100 ammo
Wuzzy <almikes@aol.com>
parents:
12649
diff
changeset

225 
cnt:= min(AMMO_FINITE_MAX, cnt + amt); 
12733
353cb2ce6f9c
Fix AddAmmo setting ammo to 99 when trying to add infinite ammo
Wuzzy <Wuzzy2@mail.ru>
parents:
12691
diff
changeset

226 
SetAmmo(Hedgehog, ammo, cnt); 
5272  227 
end; 
228 

7337
c224cd2d32f3
Allow script to set number of ammo in a crate. untested.
nemo
parents:
7037
diff
changeset

229 
procedure AddAmmo(var Hedgehog: THedgehog; ammo: TAmmoType); 
c224cd2d32f3
Allow script to set number of ammo in a crate. untested.
nemo
parents:
7037
diff
changeset

230 
begin 
c224cd2d32f3
Allow script to set number of ammo in a crate. untested.
nemo
parents:
7037
diff
changeset

231 
AddAmmo(Hedgehog, ammo, Ammoz[ammo].NumberInCase); 
c224cd2d32f3
Allow script to set number of ammo in a crate. untested.
nemo
parents:
7037
diff
changeset

232 
end; 
c224cd2d32f3
Allow script to set number of ammo in a crate. untested.
nemo
parents:
7037
diff
changeset

233 

6924  234 
procedure SetAmmo(var Hedgehog: THedgehog; ammo: TAmmoType; cnt: LongWord); 
9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

235 
var ammos: TAmmoArray; 
371  236 
slot, ami: LongInt; 
295  237 
hhammo: PHHAmmo; 
5316
191cd6c06203
Allow control of grenade bounce. Not sure if this is a good idea, but has been requested a lot, so...
nemo
parents:
5273
diff
changeset

238 
CurWeapon: PAmmo; 
9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

239 
a: TAmmoType; 
295  240 
begin 
9660  241 
if ammo = amNothing then exit; 
3407  242 
{$HINTS OFF} 
295  243 
FillChar(ammos, sizeof(ammos), 0); 
3407  244 
{$HINTS ON} 
553
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

245 
hhammo:= Hedgehog.Ammo; 
295  246 

9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

247 
for a:= Low(TAmmoType) to High(TAmmoType) do 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

248 
begin 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

249 
ammos[a]:= Ammoz[a].Ammo; 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

250 
ammos[a].Count:= 0 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

251 
end; 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

252 

295  253 
for slot:= 0 to cMaxSlotIndex do 
254 
for ami:= 0 to cMaxSlotAmmoIndex do 

351  255 
if hhammo^[slot, ami].Count > 0 then 
9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

256 
ammos[hhammo^[slot, ami].AmmoType]:= hhammo^[slot, ami]; 
295  257 

9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

258 
ammos[ammo].Count:= cnt; 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

259 
if ammos[ammo].Count > AMMO_INFINITE then ammos[ammo].Count:= AMMO_INFINITE; 
941
b5222ddafe1f
 Fix bug with picking up ammos from cases, when total ammo count may become more than AMMO_INFINITE
unc0rr
parents:
927
diff
changeset

260 

5316
191cd6c06203
Allow control of grenade bounce. Not sure if this is a good idea, but has been requested a lot, so...
nemo
parents:
5273
diff
changeset

261 
FillAmmoStore(hhammo, ammos); 
6924  262 
CurWeapon:= GetCurAmmoEntry(Hedgehog); 
5345
3c5480e91951
Simplify code using 'with', convert some tabs to spaces
unc0rr
parents:
5316
diff
changeset

263 
with Hedgehog, CurWeapon^ do 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

264 
if (Count = 0) or (AmmoType = amNothing) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

265 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

266 
PackAmmo(Ammo, Ammoz[AmmoType].Slot); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

267 
CurAmmoType:= amNothing 
15442
6031c0cfec89
Make sure AI doesn't skip after collecting ammo. Fixes bug 796
Wuzzy <Wuzzy2@mail.ru>
parents:
15364
diff
changeset

268 
end; 
6031c0cfec89
Make sure AI doesn't skip after collecting ammo. Fixes bug 796
Wuzzy <Wuzzy2@mail.ru>
parents:
15364
diff
changeset

269 
if Hedgehog.BotLevel <> 0 then 
6031c0cfec89
Make sure AI doesn't skip after collecting ammo. Fixes bug 796
Wuzzy <Wuzzy2@mail.ru>
parents:
15364
diff
changeset

270 
Hedgehog.Gear^.AIHints := Hedgehog.Gear^.AIHints or aihAmmosChanged; 
295  271 
end; 
272 

371  273 
procedure PackAmmo(Ammo: PHHAmmo; Slot: LongInt); 
274 
var ami: LongInt; 

295  275 
b: boolean; 
276 
begin 

277 
repeat 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

278 
b:= false; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

279 
ami:= 0; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

280 
while (not b) and (ami < cMaxSlotAmmoIndex) do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

281 
if (Ammo^[Slot, ami].Count = 0) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

282 
and (Ammo^[Slot, ami + 1].Count > 0) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

283 
b:= true 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

284 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

285 
inc(ami); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

286 
if b then // there is a free item in ammo stack 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

287 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

288 
Ammo^[Slot, ami]:= Ammo^[Slot, ami + 1]; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

289 
Ammo^[Slot, ami + 1].Count:= 0 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

290 
end; 
8026
4a4f21070479
merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
7754
diff
changeset

291 
until (not b); 
6631  292 
AmmoMenuInvalidated:= true; 
295  293 
end; 
294 

534  295 
procedure OnUsedAmmo(var Hedgehog: THedgehog); 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

296 
var CurWeapon: PAmmo; 
295  297 
begin 
6924  298 
CurWeapon:= GetCurAmmoEntry(Hedgehog); 
534  299 
with Hedgehog do 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

300 
begin 
12156
9755922396f5
Lua callback: onUsedAmmo, after using up an ammo
Wuzzy <almikes@aol.com>
parents:
11939
diff
changeset

301 
if CurAmmoType <> amNothing then 
9755922396f5
Lua callback: onUsedAmmo, after using up an ammo
Wuzzy <almikes@aol.com>
parents:
11939
diff
changeset

302 
ScriptCall('onUsedAmmo', ord(CurAmmoType)); 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

303 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

304 
MultiShootAttacks:= 0; 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

305 
with CurWeapon^ do 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

306 
if Count <> AMMO_INFINITE then 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

307 
begin 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

308 
dec(Count); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

309 
if Count = 0 then 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

310 
begin 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

311 
PackAmmo(Ammo, Ammoz[AmmoType].Slot); 
3931
fd04228971b3
Set ammo to amNothing after using up the current ammo. This should reduce noob fail where they blow themselves up w/ bazooka.
nemo
parents:
3836
diff
changeset

312 
//SwitchNotHeldAmmo(Hedgehog); 
7754  313 
if CurAmmoType = amKnife then LoadHedgehogHat(Hedgehog, Hedgehog.Hat); 
9006
552517b23882
bleah. sorry for spam. this reverts the first attempt in uAmmos
nemo
parents:
9004
diff
changeset

314 
CurAmmoType:= amNothing 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

315 
end 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

316 
end 
3935  317 
end; 
295  318 
end; 
319 

6770
7d2c6cdb816a
Start on adding drowning bonus to bat/firepunch/whip. AI still is not smart enough to change direction when firepunching to face the water, or change the angle of the bat.
nemo
parents:
6762
diff
changeset

320 
function HHHasAmmo(var Hedgehog: THedgehog; Ammo: TAmmoType): LongWord; 
371  321 
var slot, ami: LongInt; 
295  322 
begin 
6990
40e5af28d026
change every return value into a more pascalish form, using the name of the fucntion (helps the parser and macpas compaitilibity)
koda
parents:
6924
diff
changeset

323 
HHHasAmmo:= 0; 
40e5af28d026
change every return value into a more pascalish form, using the name of the fucntion (helps the parser and macpas compaitilibity)
koda
parents:
6924
diff
changeset

324 
Slot:= Ammoz[Ammo].Slot; 
40e5af28d026
change every return value into a more pascalish form, using the name of the fucntion (helps the parser and macpas compaitilibity)
koda
parents:
6924
diff
changeset

325 
ami:= 0; 
40e5af28d026
change every return value into a more pascalish form, using the name of the fucntion (helps the parser and macpas compaitilibity)
koda
parents:
6924
diff
changeset

326 
while (ami <= cMaxSlotAmmoIndex) do 
40e5af28d026
change every return value into a more pascalish form, using the name of the fucntion (helps the parser and macpas compaitilibity)
koda
parents:
6924
diff
changeset

327 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

328 
with Hedgehog.Ammo^[Slot, ami] do 
941
b5222ddafe1f
 Fix bug with picking up ammos from cases, when total ammo count may become more than AMMO_INFINITE
unc0rr
parents:
927
diff
changeset

329 
if (AmmoType = Ammo) then 
6770
7d2c6cdb816a
Start on adding drowning bonus to bat/firepunch/whip. AI still is not smart enough to change direction when firepunching to face the water, or change the angle of the bat.
nemo
parents:
6762
diff
changeset

330 
if Hedgehog.Team^.Clan^.TurnNumber > Ammoz[AmmoType].SkipTurns then 
7037  331 
exit(Count) 
10015  332 
else 
7037  333 
exit(0); 
6990
40e5af28d026
change every return value into a more pascalish form, using the name of the fucntion (helps the parser and macpas compaitilibity)
koda
parents:
6924
diff
changeset

334 
inc(ami) 
40e5af28d026
change every return value into a more pascalish form, using the name of the fucntion (helps the parser and macpas compaitilibity)
koda
parents:
6924
diff
changeset

335 
end; 
295  336 
end; 
337 

1964  338 
procedure ApplyAngleBounds(var Hedgehog: THedgehog; AmmoType: TAmmoType); 
1922  339 
begin 
7341
d70478d265ec
Fix crash when hedgehog dies while switching from it
unc0rr
parents:
7337
diff
changeset

340 
if Hedgehog.Gear <> nil then 
d70478d265ec
Fix crash when hedgehog dies while switching from it
unc0rr
parents:
7337
diff
changeset

341 
with Hedgehog do 
d70478d265ec
Fix crash when hedgehog dies while switching from it
unc0rr
parents:
7337
diff
changeset

342 
begin 
9717
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

343 
if (AmmoType <> amNothing) then 
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

344 
begin 
12691
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

345 
if ((CurAmmoGear <> nil) and (CurAmmoGear^.AmmoType = amRope)) then 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

346 
begin 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

347 
CurMaxAngle:= Ammoz[amRope].maxAngle; 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

348 
CurMinAngle:= Ammoz[amRope].minAngle; 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

349 
end 
9717
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

350 
else 
12691
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

351 
begin 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

352 
CurMinAngle:= Ammoz[AmmoType].minAngle; 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

353 
if Ammoz[AmmoType].maxAngle <> 0 then 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

354 
CurMaxAngle:= Ammoz[AmmoType].maxAngle 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

355 
else 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

356 
CurMaxAngle:= cMaxAngle; 
286afe079117
Fix rope angle possible to go below 0Â° if having secondary weapon selected
Wuzzy <almikes@aol.com>
parents:
12671
diff
changeset

357 
end; 
1964  358 

9717
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

359 
with Hedgehog.Gear^ do 
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

360 
begin 
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

361 
if Angle < CurMinAngle then 
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

362 
Angle:= CurMinAngle; 
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

363 
if Angle > CurMaxAngle then 
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

364 
Angle:= CurMaxAngle; 
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

365 
end 
7341
d70478d265ec
Fix crash when hedgehog dies while switching from it
unc0rr
parents:
7337
diff
changeset

366 
end 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

367 
end 
1922  368 
end; 
369 

2432
1a0bb82d55f0
Switch to first legal ammo when hedgehog can't hold current one
unc0rr
parents:
2431
diff
changeset

370 
procedure SwitchToFirstLegalAmmo(var Hedgehog: THedgehog); 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

371 
var slot, ammoidx: LongWord; 
2432
1a0bb82d55f0
Switch to first legal ammo when hedgehog can't hold current one
unc0rr
parents:
2431
diff
changeset

372 
begin 
1a0bb82d55f0
Switch to first legal ammo when hedgehog can't hold current one
unc0rr
parents:
2431
diff
changeset

373 
with Hedgehog do 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

374 
begin 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

375 
CurAmmoType:= amNothing; 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

376 
slot:= 0; 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

377 
ammoidx:= 0; 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

378 
while (slot <= cMaxSlotIndex) and 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

379 
((Ammo^[slot, ammoidx].Count = 0) or 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

380 
(Ammoz[Ammo^[slot, ammoidx].AmmoType].SkipTurns  CurrentTeam^.Clan^.TurnNumber >= 0)) 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

381 
do 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

382 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

383 
while (ammoidx <= cMaxSlotAmmoIndex) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

384 
and ((Ammo^[slot, ammoidx].Count = 0) or (Ammoz[Ammo^[slot, ammoidx].AmmoType].SkipTurns  CurrentTeam^.Clan^.TurnNumber >= 0)) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

385 
do inc(ammoidx); 
2432
1a0bb82d55f0
Switch to first legal ammo when hedgehog can't hold current one
unc0rr
parents:
2431
diff
changeset

386 

3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

387 
if (ammoidx > cMaxSlotAmmoIndex) then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

388 
begin 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

389 
ammoidx:= 0; 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

390 
inc(slot) 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

391 
end 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

392 
end; 
11532  393 
if checkFails(slot <= cMaxSlotIndex, 'Ammo slot index overflow', true) then exit; 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

394 
CurAmmoType:= Ammo^[slot, ammoidx].AmmoType; 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

395 
end 
2432
1a0bb82d55f0
Switch to first legal ammo when hedgehog can't hold current one
unc0rr
parents:
2431
diff
changeset

396 
end; 
1a0bb82d55f0
Switch to first legal ammo when hedgehog can't hold current one
unc0rr
parents:
2431
diff
changeset

397 

553
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

398 
procedure ApplyAmmoChanges(var Hedgehog: THedgehog); 
10123  399 
var s: ansistring; 
12649
2837dee472cc
Show selected weapon again when using it in inf attack mode
Wuzzy <almikes@aol.com>
parents:
12156
diff
changeset

400 
OldWeapon, CurWeapon: PAmmo; 
553
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

401 
begin 
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

402 
TargetPoint.X:= NoPointX; 
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

403 

5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

404 
with Hedgehog do 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

405 
begin 
6924  406 
CurWeapon:= GetCurAmmoEntry(Hedgehog); 
12649
2837dee472cc
Show selected weapon again when using it in inf attack mode
Wuzzy <almikes@aol.com>
parents:
12156
diff
changeset

407 
OldWeapon:= GetCurAmmoEntry(Hedgehog); 
3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

408 

15246
4aa19b21707d
Fix cursor not being disabled when teleporting hog into water
Wuzzy <Wuzzy2@mail.ru>
parents:
15220
diff
changeset

409 
if (Hedgehog.Gear^.State and gstHHDriven) = 0 then 
4aa19b21707d
Fix cursor not being disabled when teleporting hog into water
Wuzzy <Wuzzy2@mail.ru>
parents:
15220
diff
changeset

410 
Hedgehog.CurAmmoType:= amNothing 
4aa19b21707d
Fix cursor not being disabled when teleporting hog into water
Wuzzy <Wuzzy2@mail.ru>
parents:
15220
diff
changeset

411 
else if (CurWeapon^.Count = 0) then 
6131  412 
SwitchToFirstLegalAmmo(Hedgehog) 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

413 
else if CurWeapon^.AmmoType = amNothing then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

414 
Hedgehog.CurAmmoType:= amNothing; 
2431
23242609c44b
Real fix to ammo slot overflow (bug triggered by r2411 fix)
unc0rr
parents:
2409
diff
changeset

415 

6924  416 
CurWeapon:= GetCurAmmoEntry(Hedgehog); 
553
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

417 

12649
2837dee472cc
Show selected weapon again when using it in inf attack mode
Wuzzy <almikes@aol.com>
parents:
12156
diff
changeset

418 
// Weapon selection animation (if new ammo type) 
2837dee472cc
Show selected weapon again when using it in inf attack mode
Wuzzy <almikes@aol.com>
parents:
12156
diff
changeset

419 
if CurWeapon^.AmmoType <> OldWeapon^.AmmoType then 
2837dee472cc
Show selected weapon again when using it in inf attack mode
Wuzzy <almikes@aol.com>
parents:
12156
diff
changeset

420 
Timer:= 10; 
2837dee472cc
Show selected weapon again when using it in inf attack mode
Wuzzy <almikes@aol.com>
parents:
12156
diff
changeset

421 

3836
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

422 
ApplyAngleBounds(Hedgehog, CurWeapon^.AmmoType); 
833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

423 

833c0f32e326
Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents:
3697
diff
changeset

424 
with CurWeapon^ do 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

425 
begin 
11939
c7ec309cd685
Add Lua API function SetAmmoTexts (see issue 82)
Wuzzy <almikes@aol.com>
parents:
11534
diff
changeset

426 
if length(trluaammo[Ammoz[AmmoType].NameId]) > 0 then 
c7ec309cd685
Add Lua API function SetAmmoTexts (see issue 82)
Wuzzy <almikes@aol.com>
parents:
11534
diff
changeset

427 
s:= trluaammo[Ammoz[AmmoType].NameId] 
c7ec309cd685
Add Lua API function SetAmmoTexts (see issue 82)
Wuzzy <almikes@aol.com>
parents:
11534
diff
changeset

428 
else 
c7ec309cd685
Add Lua API function SetAmmoTexts (see issue 82)
Wuzzy <almikes@aol.com>
parents:
11534
diff
changeset

429 
s:= trammo[Ammoz[AmmoType].NameId]; 
7426
55b49cc1f33a
Changes for the benefit of pas2c. Use downto in for loops to avoid repeated calls of Random/GetRandom. Wrap nots.
nemo
parents:
7341
diff
changeset

430 
if (Count <> AMMO_INFINITE) and (not (Hedgehog.Team^.ExtDriven or (Hedgehog.BotLevel > 0))) then 
10123  431 
s:= s + ansistring(' (' + IntToStr(Count) + ')'); 
4807
180dbfb13903
display caption for ammotype amNothing when switched to so that players know what just happened
sheepluva
parents:
4403
diff
changeset

432 
if (Propz and ammoprop_Timerable) <> 0 then 
10123  433 
s:= s + ansistring(', ' + IntToStr(Timer div 1000) + ' ') + trammo[sidSeconds]; 
15246
4aa19b21707d
Fix cursor not being disabled when teleporting hog into water
Wuzzy <Wuzzy2@mail.ru>
parents:
15220
diff
changeset

434 
if (Hedgehog.Gear^.State and gstHHDriven) <> 0 then 
4aa19b21707d
Fix cursor not being disabled when teleporting hog into water
Wuzzy <Wuzzy2@mail.ru>
parents:
15220
diff
changeset

435 
AddCaption(s, Team^.Clan^.Color, capgrpAmmoinfo); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

436 
if (Propz and ammoprop_NeedTarget) <> 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

437 
begin 
10818
f642a28cab0c
Add placement of airmines in engine outside of hog proximity. Has a bug, only protecting 1st team. Also fix a spelling error and rename gstHHChooseTarget to gstChooseTarget
nemo
parents:
10560
diff
changeset

438 
if Gear <> nil then Gear^.State:= Gear^.State or gstChooseTarget; 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

439 
isCursorVisible:= true 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

440 
end 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

441 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

442 
begin 
10818
f642a28cab0c
Add placement of airmines in engine outside of hog proximity. Has a bug, only protecting 1st team. Also fix a spelling error and rename gstHHChooseTarget to gstChooseTarget
nemo
parents:
10560
diff
changeset

443 
if Gear <> nil then Gear^.State:= Gear^.State and (not gstChooseTarget); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

444 
isCursorVisible:= false 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

445 
end; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

446 
end 
3935  447 
end; 
553
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

448 
end; 
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

449 

1922  450 
procedure SwitchNotHeldAmmo(var Hedgehog: THedgehog); 
553
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

451 
begin 
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

452 
with Hedgehog do 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

453 
if ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_DontHold) <> 0) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

454 
or (Ammoz[CurAmmoType].SkipTurns  CurrentTeam^.Clan^.TurnNumber >= 0) then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

455 
SwitchToFirstLegalAmmo(Hedgehog); 
553
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

456 
end; 
5478386d935f
 Switch to bazooka (or whatever) after use of some weapon (fixes problem with bots)
unc0rr
parents:
547
diff
changeset

457 

783  458 
procedure SetWeapon(weap: TAmmoType); 
459 
begin 

1850  460 
ParseCommand('/setweap ' + char(weap), true) 
783  461 
end; 
462 

1784  463 
procedure DisableSomeWeapons; 
464 
var i, slot, a: Longword; 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

465 
t: TAmmoType; 
1784  466 
begin 
467 
for i:= 0 to Pred(StoreCnt) do 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

468 
for slot:= 0 to cMaxSlotIndex do 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

469 
begin 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

470 
for a:= 0 to cMaxSlotAmmoIndex do 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

471 
with StoresList[i]^[slot, a] do 
3697  472 
if (Propz and ammoprop_NotBorder) <> 0 then 
3319  473 
begin 
474 
Count:= 0; 

13455
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

475 
InitialCountsLocal[i][AmmoType]:= 0 
3319  476 
end; 
1784  477 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

478 
PackAmmo(StoresList[i], slot) 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

479 
end; 
1784  480 

481 
for t:= Low(TAmmoType) to High(TAmmoType) do 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

482 
if (Ammoz[t].Ammo.Propz and ammoprop_NotBorder) <> 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

483 
Ammoz[t].Probability:= 0 
1784  484 
end; 
485 

6898  486 
procedure SetAmmoLoadout(var s: shortstring); 
3346  487 
begin 
488 
ammoLoadout:= s; 

489 
end; 

490 

6898  491 
procedure SetAmmoProbability(var s: shortstring); 
3346  492 
begin 
493 
ammoProbability:= s; 

494 
end; 

495 

6898  496 
procedure SetAmmoDelay(var s: shortstring); 
3346  497 
begin 
498 
ammoDelay:= s; 

499 
end; 

500 

6898  501 
procedure SetAmmoReinforcement(var s: shortstring); 
3346  502 
begin 
503 
ammoReinforcement:= s; 

504 
end; 

505 

15220
ceb289e8a582
King Mode: Fix king placement phase not working correctly with multiple teams in a clan
Wuzzy <Wuzzy2@mail.ru>
parents:
13854
diff
changeset

506 
// Restore indefinitely disabled weapons and initial weapon counts. 
2762
2fbc8d35eb52
Mode to place hogs at start of game. Will probably need a bit more testing.
nemo
parents:
2732
diff
changeset

507 
procedure ResetWeapons; 
3955  508 
var i, t: Longword; 
509 
a: TAmmoType; 

9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

510 
newAmmos: TAmmoArray; 
2762
2fbc8d35eb52
Mode to place hogs at start of game. Will probably need a bit more testing.
nemo
parents:
2732
diff
changeset

511 
begin 
3955  512 
for t:= 0 to Pred(TeamsCount) do 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

513 
with TeamsArray[t]^ do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

514 
for i:= 0 to cMaxHHIndex do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

515 
Hedgehogs[i].CurAmmoType:= amNothing; 
6519  516 

9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

517 
for a:= Low(TAmmoType) to High(TAmmoType) do 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

518 
newAmmos[a]:= Ammoz[a].Ammo; 
10015  519 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

520 
for i:= 0 to Pred(StoreCnt) do 
9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

521 
begin 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

522 
for a:= Low(TAmmoType) to High(TAmmoType) do 
13455
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

523 
newAmmos[a].Count:= InitialCountsLocal[i][a]; 
9391
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

524 
FillAmmoStore(StoresList[i], newAmmos); 
2af25494f3bb
Preserve weapon settings in AddAmmo. Fixes issue 450.
unc0rr
parents:
9080
diff
changeset

525 
end; 
2762
2fbc8d35eb52
Mode to place hogs at start of game. Will probably need a bit more testing.
nemo
parents:
2732
diff
changeset

526 

3955  527 
for a:= Low(TAmmoType) to High(TAmmoType) do 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

528 
if Ammoz[a].SkipTurns >= 10000 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

529 
dec(Ammoz[a].SkipTurns,10000) 
2762
2fbc8d35eb52
Mode to place hogs at start of game. Will probably need a bit more testing.
nemo
parents:
2732
diff
changeset

530 
end; 
2fbc8d35eb52
Mode to place hogs at start of game. Will probably need a bit more testing.
nemo
parents:
2732
diff
changeset

531 

4401  532 

533 

534 
procedure chAddAmmoStore(var descr: shortstring); 

535 
begin 

10015  536 
descr:= ''; // avoid compiler hint 
537 
AddAmmoStore 

4401  538 
end; 
539 

3038  540 
procedure initModule; 
6762
85ba0c55d077
Set default empty ammo sets. Current mission handling appears to not pass any default ammo set, so script was never getting a chance to set its own.
nemo
parents:
6700
diff
changeset

541 
var i: Longword; 
2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2715
diff
changeset

542 
begin 
6898  543 
RegisterVariable('ammloadt', @SetAmmoLoadout, false); 
544 
RegisterVariable('ammdelay', @SetAmmoDelay, false); 

545 
RegisterVariable('ammprob', @SetAmmoProbability, false); 

546 
RegisterVariable('ammreinf', @SetAmmoReinforcement, false); 

547 
RegisterVariable('ammstore', @chAddAmmoStore , false); 

4401  548 

9717
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

549 
CurMinAngle:= 0; 
b8b7ef99a084
don't let (am)Nothing change allowed aiming angles. e.g. fixes aiming problems when on last rope. please test for possible side effects (flying saucer and whatnot)
sheepluva
parents:
9660
diff
changeset

550 
CurMaxAngle:= cMaxAngle; 
3346  551 
StoreCnt:= 0; 
552 
ammoLoadout:= ''; 

553 
ammoProbability:= ''; 

554 
ammoDelay:= ''; 

3951
c9a63db3e603
Correct another bug in slot switching, adjust width of theme list, really truly fix reset of weps (I hope) should also fix infinite teleport bug in place hogs mode. Slow update of health to 5s for inf attack mode.
nemo
parents:
3943
diff
changeset

555 
ammoReinforcement:= ''; 
6762
85ba0c55d077
Set default empty ammo sets. Current mission handling appears to not pass any default ammo set, so script was never getting a chance to set its own.
nemo
parents:
6700
diff
changeset

556 
for i:=1 to ord(High(TAmmoType)) do 
85ba0c55d077
Set default empty ammo sets. Current mission handling appears to not pass any default ammo set, so script was never getting a chance to set its own.
nemo
parents:
6700
diff
changeset

557 
begin 
85ba0c55d077
Set default empty ammo sets. Current mission handling appears to not pass any default ammo set, so script was never getting a chance to set its own.
nemo
parents:
6700
diff
changeset

558 
ammoLoadout:= ammoLoadout + '0'; 
85ba0c55d077
Set default empty ammo sets. Current mission handling appears to not pass any default ammo set, so script was never getting a chance to set its own.
nemo
parents:
6700
diff
changeset

559 
ammoProbability:= ammoProbability + '0'; 
85ba0c55d077
Set default empty ammo sets. Current mission handling appears to not pass any default ammo set, so script was never getting a chance to set its own.
nemo
parents:
6700
diff
changeset

560 
ammoDelay:= ammoDelay + '0'; 
85ba0c55d077
Set default empty ammo sets. Current mission handling appears to not pass any default ammo set, so script was never getting a chance to set its own.
nemo
parents:
6700
diff
changeset

561 
ammoReinforcement:= ammoReinforcement + '0' 
85ba0c55d077
Set default empty ammo sets. Current mission handling appears to not pass any default ammo set, so script was never getting a chance to set its own.
nemo
parents:
6700
diff
changeset

562 
end; 
13455
38814954a248
Fix GetAmmo getting wrong ammo count
Wuzzy <Wuzzy2@mail.ru>
parents:
13454
diff
changeset

563 
FillChar(InitialCountsLocal, sizeof(InitialCountsLocal), 0) 
2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2715
diff
changeset

564 
end; 
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2715
diff
changeset

565 

3038  566 
procedure freeModule; 
2715
0e4e0db79e2a
Free up some unfreed memory. Needed for Koda's iphone lib work
nemo
parents:
2630
diff
changeset

567 
var i: LongWord; 
0e4e0db79e2a
Free up some unfreed memory. Needed for Koda's iphone lib work
nemo
parents:
2630
diff
changeset

568 
begin 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2860
diff
changeset

569 
if StoreCnt > 0 then 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

570 
for i:= 0 to Pred(StoreCnt) do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6519
diff
changeset

571 
Dispose(StoresList[i]) 
2715
0e4e0db79e2a
Free up some unfreed memory. Needed for Koda's iphone lib work
nemo
parents:
2630
diff
changeset

572 
end; 
0e4e0db79e2a
Free up some unfreed memory. Needed for Koda's iphone lib work
nemo
parents:
2630
diff
changeset

573 

288  574 
end. 