author | Wuzzy <Wuzzy2@mail.ru> |
Mon, 21 Jan 2019 02:09:30 +0100 | |
changeset 14644 | 3e15412536c8 |
parent 14535 | ec0afe1c6024 |
child 14682 | 93429d8f6b3f |
permissions | -rw-r--r-- |
4976 | 1 |
(* |
2 |
* Hedgewars, a free turn based strategy game |
|
11046 | 3 |
* Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com> |
4976 | 4 |
* |
5 |
* This program is free software; you can redistribute it and/or modify |
|
6 |
* it under the terms of the GNU General Public License as published by |
|
7 |
* the Free Software Foundation; version 2 of the License |
|
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU General Public License |
|
15 |
* along with this program; if not, write to the Free Software |
|
10108
c68cf030eded
update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents:
10015
diff
changeset
|
16 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
4976 | 17 |
*) |
18 |
||
4413 | 19 |
{$INCLUDE "options.inc"} |
4976 | 20 |
|
4413 | 21 |
unit uCommandHandlers; |
22 |
||
23 |
interface |
|
24 |
||
25 |
procedure initModule; |
|
26 |
procedure freeModule; |
|
27 |
||
28 |
implementation |
|
13003
22e032ab1cb7
Toggle hog tag translucency with Precise + Change hog tags key
Wuzzy <Wuzzy2@mail.ru>
parents:
13002
diff
changeset
|
29 |
uses uCommands, uTypes, uVariables, uIO, uDebug, uConsts, uScript, uUtils, SDLh, uWorld, uRandom, uCaptions |
12820
92218a06c9ff
Don't send taunt message for automatically happening taunt animation
unc0rr
parents:
12495
diff
changeset
|
30 |
, uVisualGearsList, uGearsHedgehog |
7629 | 31 |
{$IFDEF USE_VIDEO_RECORDING}, uVideoRec {$ENDIF}; |
4413 | 32 |
|
13112
7b3bc9a4dfb9
uCommandHandlers: Remove unused variable
Wuzzy <Wuzzy2@mail.ru>
parents:
13082
diff
changeset
|
33 |
var cTagsMasks : array[0..15] of byte = (7, 0, 0, 0, 0, 4, 5, 6, 15, 8, 8, 8, 8, 12, 13, 14); |
13003
22e032ab1cb7
Toggle hog tag translucency with Precise + Change hog tags key
Wuzzy <Wuzzy2@mail.ru>
parents:
13002
diff
changeset
|
34 |
cTagsMasksNoHealth: array[0..15] of byte = (3, 0, 1, 2, 0, 0, 0, 0, 11, 8, 9, 10, 8, 8, 8, 8); |
7028 | 35 |
|
4531
4ea193b0e378
Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents:
4528
diff
changeset
|
36 |
procedure chGenCmd(var s: shortstring); |
4ea193b0e378
Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents:
4528
diff
changeset
|
37 |
begin |
4ea193b0e378
Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents:
4528
diff
changeset
|
38 |
case s[1] of |
11924
e0476802c8b5
When doing something, set ready time to 0 instead of 1
Wuzzy <almikes@aol.com>
parents:
11537
diff
changeset
|
39 |
'R': if ReadyTimeLeft > 0 then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
40 |
begin |
11924
e0476802c8b5
When doing something, set ready time to 0 instead of 1
Wuzzy <almikes@aol.com>
parents:
11537
diff
changeset
|
41 |
ReadyTimeLeft:= 0; |
7805 | 42 |
if not isExternalSource then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
43 |
SendIPC('c'+s); |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
44 |
end |
4531
4ea193b0e378
Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents:
4528
diff
changeset
|
45 |
end |
4ea193b0e378
Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents:
4528
diff
changeset
|
46 |
end; |
4ea193b0e378
Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents:
4528
diff
changeset
|
47 |
|
4413 | 48 |
procedure chQuit(var s: shortstring); |
49 |
begin |
|
4751 | 50 |
s:= s; // avoid compiler hint |
13082 | 51 |
if (GameState = gsGame) then |
52 |
begin |
|
53 |
isInChatMode:= false; |
|
5523 | 54 |
GameState:= gsConfirm; |
13082 | 55 |
end |
56 |
else begin |
|
10510 | 57 |
if GameState = gsConfirm then |
13082 | 58 |
GameState:= gsGame; |
59 |
end; |
|
10510 | 60 |
|
10392 | 61 |
updateCursorVisibility; |
4413 | 62 |
end; |
63 |
||
4744
ecc2c757d0df
general uKey refactor in preparaiton of two new shortcuts
koda
parents:
4661
diff
changeset
|
64 |
procedure chForceQuit(var s: shortstring); |
ecc2c757d0df
general uKey refactor in preparaiton of two new shortcuts
koda
parents:
4661
diff
changeset
|
65 |
begin |
ecc2c757d0df
general uKey refactor in preparaiton of two new shortcuts
koda
parents:
4661
diff
changeset
|
66 |
s:= s; // avoid compiler hint |
4751 | 67 |
GameState:= gsConfirm; |
68 |
ParseCommand('confirm', true); |
|
4413 | 69 |
end; |
70 |
||
71 |
procedure chConfirm(var s: shortstring); |
|
72 |
begin |
|
4751 | 73 |
s:= s; // avoid compiler hint |
74 |
if GameState = gsConfirm then |
|
7722 | 75 |
begin |
7068 | 76 |
SendIPC(_S'Q'); |
4751 | 77 |
GameState:= gsExit |
7722 | 78 |
end |
4413 | 79 |
end; |
80 |
||
4751 | 81 |
procedure chHalt (var s: shortstring); |
4746
3ae448aebe7e
implemented actions for closing/enging program (needs testing over the net)
koda
parents:
4744
diff
changeset
|
82 |
begin |
3ae448aebe7e
implemented actions for closing/enging program (needs testing over the net)
koda
parents:
4744
diff
changeset
|
83 |
s:= s; // avoid compiler hint |
7068 | 84 |
SendIPC(_S'H'); |
4746
3ae448aebe7e
implemented actions for closing/enging program (needs testing over the net)
koda
parents:
4744
diff
changeset
|
85 |
GameState:= gsExit |
3ae448aebe7e
implemented actions for closing/enging program (needs testing over the net)
koda
parents:
4744
diff
changeset
|
86 |
end; |
3ae448aebe7e
implemented actions for closing/enging program (needs testing over the net)
koda
parents:
4744
diff
changeset
|
87 |
|
4413 | 88 |
procedure chCheckProto(var s: shortstring); |
8370 | 89 |
var i: LongInt; |
4413 | 90 |
begin |
6001 | 91 |
if isDeveloperMode then |
92 |
begin |
|
8370 | 93 |
i:= StrToInt(s); |
11537 | 94 |
checkFails(i <= cNetProtoVersion, 'Protocol version mismatch: engine is too old (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true); |
95 |
checkFails(i >= cNetProtoVersion, 'Protocol version mismatch: engine is too new (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true); |
|
7058 | 96 |
end |
4413 | 97 |
end; |
98 |
||
99 |
procedure chTeamLocal(var s: shortstring); |
|
100 |
begin |
|
101 |
s:= s; // avoid compiler hint |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
102 |
if not isDeveloperMode then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
103 |
exit; |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
104 |
if CurrentTeam = nil then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
105 |
OutError(errmsgIncorrectUse + ' "/rdriven"', true); |
4413 | 106 |
CurrentTeam^.ExtDriven:= true |
107 |
end; |
|
108 |
||
109 |
procedure chScript(var s: shortstring); |
|
110 |
begin |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
111 |
if s[1]='"' then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
112 |
Delete(s, 1, 1); |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
113 |
if s[byte(s[0])]='"' then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
114 |
Delete(s, byte(s[0]), 1); |
6254
e90fb60cb46d
Force a desync if there is a script name mismatch. This avoids playing until the game desyncs due to script differences.
nemo
parents:
6245
diff
changeset
|
115 |
cScriptName:= s; |
13726
61095cb5f58a
Critical error if loading a script has failed
Wuzzy <Wuzzy2@mail.ru>
parents:
13647
diff
changeset
|
116 |
ScriptLoad(s, true) |
4413 | 117 |
end; |
118 |
||
9902 | 119 |
procedure chScriptParam(var s: shortstring); |
120 |
begin |
|
9985
42cd42e44c9a
GravRacer, GravHigh, GravMutant, Grav... uhm... shoppamap? Easy! Gravity script could be combined with any other script now.
unc0rr
parents:
9902
diff
changeset
|
121 |
ScriptSetString('ScriptParam', s); |
42cd42e44c9a
GravRacer, GravHigh, GravMutant, Grav... uhm... shoppamap? Easy! Gravity script could be combined with any other script now.
unc0rr
parents:
9902
diff
changeset
|
122 |
ScriptCall('onParameters'); |
9902 | 123 |
end; |
124 |
||
4413 | 125 |
procedure chCurU_p(var s: shortstring); |
126 |
begin |
|
127 |
s:= s; // avoid compiler hint |
|
128 |
CursorMovementY:= -1; |
|
129 |
end; |
|
130 |
||
131 |
procedure chCurU_m(var s: shortstring); |
|
132 |
begin |
|
133 |
s:= s; // avoid compiler hint |
|
13772
2e8b3081cf80
Only reset CursorMovement to 0 if command "-cur_*" is called with appropriate direction
Wuzzy <Wuzzy2@mail.ru>
parents:
13726
diff
changeset
|
134 |
if CursorMovementY < 0 then |
2e8b3081cf80
Only reset CursorMovement to 0 if command "-cur_*" is called with appropriate direction
Wuzzy <Wuzzy2@mail.ru>
parents:
13726
diff
changeset
|
135 |
CursorMovementY:= 0; |
4413 | 136 |
end; |
137 |
||
138 |
procedure chCurD_p(var s: shortstring); |
|
139 |
begin |
|
140 |
s:= s; // avoid compiler hint |
|
141 |
CursorMovementY:= 1; |
|
142 |
end; |
|
143 |
||
144 |
procedure chCurD_m(var s: shortstring); |
|
145 |
begin |
|
146 |
s:= s; // avoid compiler hint |
|
13772
2e8b3081cf80
Only reset CursorMovement to 0 if command "-cur_*" is called with appropriate direction
Wuzzy <Wuzzy2@mail.ru>
parents:
13726
diff
changeset
|
147 |
if CursorMovementY > 0 then |
2e8b3081cf80
Only reset CursorMovement to 0 if command "-cur_*" is called with appropriate direction
Wuzzy <Wuzzy2@mail.ru>
parents:
13726
diff
changeset
|
148 |
CursorMovementY:= 0; |
4413 | 149 |
end; |
150 |
||
151 |
procedure chCurL_p(var s: shortstring); |
|
152 |
begin |
|
153 |
s:= s; // avoid compiler hint |
|
154 |
CursorMovementX:= -1; |
|
155 |
end; |
|
156 |
||
157 |
procedure chCurL_m(var s: shortstring); |
|
158 |
begin |
|
159 |
s:= s; // avoid compiler hint |
|
13772
2e8b3081cf80
Only reset CursorMovement to 0 if command "-cur_*" is called with appropriate direction
Wuzzy <Wuzzy2@mail.ru>
parents:
13726
diff
changeset
|
160 |
if CursorMovementX < 0 then |
2e8b3081cf80
Only reset CursorMovement to 0 if command "-cur_*" is called with appropriate direction
Wuzzy <Wuzzy2@mail.ru>
parents:
13726
diff
changeset
|
161 |
CursorMovementX:= 0; |
4413 | 162 |
end; |
163 |
||
164 |
procedure chCurR_p(var s: shortstring); |
|
165 |
begin |
|
166 |
s:= s; // avoid compiler hint |
|
167 |
CursorMovementX:= 1; |
|
168 |
end; |
|
169 |
||
170 |
procedure chCurR_m(var s: shortstring); |
|
171 |
begin |
|
172 |
s:= s; // avoid compiler hint |
|
13772
2e8b3081cf80
Only reset CursorMovement to 0 if command "-cur_*" is called with appropriate direction
Wuzzy <Wuzzy2@mail.ru>
parents:
13726
diff
changeset
|
173 |
if CursorMovementX > 0 then |
2e8b3081cf80
Only reset CursorMovement to 0 if command "-cur_*" is called with appropriate direction
Wuzzy <Wuzzy2@mail.ru>
parents:
13726
diff
changeset
|
174 |
CursorMovementX:= 0; |
4413 | 175 |
end; |
176 |
||
177 |
procedure chLeft_p(var s: shortstring); |
|
178 |
begin |
|
179 |
s:= s; // avoid compiler hint |
|
10392 | 180 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
181 |
exit; |
7805 | 182 |
if not isExternalSource then |
7068 | 183 |
SendIPC(_S'L'); |
4413 | 184 |
bShowFinger:= false; |
185 |
with CurrentHedgehog^.Gear^ do |
|
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
186 |
Message:= Message or (gmLeft and InputMask); |
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
187 |
ScriptCall('onLeft'); |
4413 | 188 |
end; |
189 |
||
190 |
procedure chLeft_m(var s: shortstring); |
|
191 |
begin |
|
192 |
s:= s; // avoid compiler hint |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
193 |
if CheckNoTeamOrHH then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
194 |
exit; |
7805 | 195 |
if not isExternalSource then |
7068 | 196 |
SendIPC(_S'l'); |
4413 | 197 |
with CurrentHedgehog^.Gear^ do |
6453
11c578d30bd3
Countless imporvements to the parser and countless help to the parser in sources.
unc0rr
parents:
6415
diff
changeset
|
198 |
Message:= Message and (not (gmLeft and InputMask)); |
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
199 |
ScriptCall('onLeftUp'); |
4413 | 200 |
end; |
201 |
||
202 |
procedure chRight_p(var s: shortstring); |
|
203 |
begin |
|
204 |
s:= s; // avoid compiler hint |
|
10392 | 205 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
206 |
exit; |
7805 | 207 |
if not isExternalSource then |
7068 | 208 |
SendIPC(_S'R'); |
4413 | 209 |
bShowFinger:= false; |
210 |
with CurrentHedgehog^.Gear^ do |
|
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
211 |
Message:= Message or (gmRight and InputMask); |
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
212 |
ScriptCall('onRight'); |
4413 | 213 |
end; |
214 |
||
215 |
procedure chRight_m(var s: shortstring); |
|
216 |
begin |
|
217 |
s:= s; // avoid compiler hint |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
218 |
if CheckNoTeamOrHH then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
219 |
exit; |
7805 | 220 |
if not isExternalSource then |
7068 | 221 |
SendIPC(_S'r'); |
4413 | 222 |
with CurrentHedgehog^.Gear^ do |
6453
11c578d30bd3
Countless imporvements to the parser and countless help to the parser in sources.
unc0rr
parents:
6415
diff
changeset
|
223 |
Message:= Message and (not (gmRight and InputMask)); |
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
224 |
ScriptCall('onRightUp'); |
4413 | 225 |
end; |
226 |
||
227 |
procedure chUp_p(var s: shortstring); |
|
228 |
begin |
|
229 |
s:= s; // avoid compiler hint |
|
10392 | 230 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
231 |
exit; |
7805 | 232 |
if not isExternalSource then |
7068 | 233 |
SendIPC(_S'U'); |
4413 | 234 |
bShowFinger:= false; |
235 |
with CurrentHedgehog^.Gear^ do |
|
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
236 |
Message:= Message or (gmUp and InputMask); |
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
237 |
ScriptCall('onUp'); |
4413 | 238 |
end; |
239 |
||
240 |
procedure chUp_m(var s: shortstring); |
|
241 |
begin |
|
242 |
s:= s; // avoid compiler hint |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
243 |
if CheckNoTeamOrHH then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
244 |
exit; |
7805 | 245 |
if not isExternalSource then |
7068 | 246 |
SendIPC(_S'u'); |
4413 | 247 |
with CurrentHedgehog^.Gear^ do |
6453
11c578d30bd3
Countless imporvements to the parser and countless help to the parser in sources.
unc0rr
parents:
6415
diff
changeset
|
248 |
Message:= Message and (not (gmUp and InputMask)); |
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
249 |
ScriptCall('onUpUp'); |
4413 | 250 |
end; |
251 |
||
252 |
procedure chDown_p(var s: shortstring); |
|
253 |
begin |
|
254 |
s:= s; // avoid compiler hint |
|
10392 | 255 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
256 |
exit; |
7805 | 257 |
if not isExternalSource then |
7068 | 258 |
SendIPC(_S'D'); |
4413 | 259 |
bShowFinger:= false; |
260 |
with CurrentHedgehog^.Gear^ do |
|
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
261 |
Message:= Message or (gmDown and InputMask); |
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
262 |
ScriptCall('onDown'); |
4413 | 263 |
end; |
264 |
||
265 |
procedure chDown_m(var s: shortstring); |
|
266 |
begin |
|
267 |
s:= s; // avoid compiler hint |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
268 |
if CheckNoTeamOrHH then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
269 |
exit; |
7805 | 270 |
if not isExternalSource then |
7068 | 271 |
SendIPC(_S'd'); |
4413 | 272 |
with CurrentHedgehog^.Gear^ do |
6453
11c578d30bd3
Countless imporvements to the parser and countless help to the parser in sources.
unc0rr
parents:
6415
diff
changeset
|
273 |
Message:= Message and (not (gmDown and InputMask)); |
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
274 |
ScriptCall('onDownUp'); |
4413 | 275 |
end; |
276 |
||
277 |
procedure chPrecise_p(var s: shortstring); |
|
278 |
begin |
|
279 |
s:= s; // avoid compiler hint |
|
10392 | 280 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
281 |
exit; |
7805 | 282 |
if not isExternalSource then |
7068 | 283 |
SendIPC(_S'Z'); |
4413 | 284 |
bShowFinger:= false; |
285 |
with CurrentHedgehog^.Gear^ do |
|
4522
0f590eefd531
Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents:
4437
diff
changeset
|
286 |
Message:= Message or (gmPrecise and InputMask); |
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
287 |
ScriptCall('onPrecise'); |
4413 | 288 |
end; |
289 |
||
290 |
procedure chPrecise_m(var s: shortstring); |
|
291 |
begin |
|
292 |
s:= s; // avoid compiler hint |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
293 |
if CheckNoTeamOrHH then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
294 |
exit; |
7805 | 295 |
if not isExternalSource then |
7068 | 296 |
SendIPC(_S'z'); |
4413 | 297 |
with CurrentHedgehog^.Gear^ do |
6453
11c578d30bd3
Countless imporvements to the parser and countless help to the parser in sources.
unc0rr
parents:
6415
diff
changeset
|
298 |
Message:= Message and (not (gmPrecise and InputMask)); |
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
299 |
ScriptCall('onPreciseUp'); |
4413 | 300 |
end; |
301 |
||
302 |
procedure chLJump(var s: shortstring); |
|
303 |
begin |
|
304 |
s:= s; // avoid compiler hint |
|
10392 | 305 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
306 |
exit; |
7805 | 307 |
if not isExternalSource then |
7068 | 308 |
SendIPC(_S'j'); |
4413 | 309 |
bShowFinger:= false; |
310 |
with CurrentHedgehog^.Gear^ do |
|
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
311 |
Message:= Message or (gmLJump and InputMask); |
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
312 |
ScriptCall('onLJump'); |
4413 | 313 |
end; |
314 |
||
315 |
procedure chHJump(var s: shortstring); |
|
316 |
begin |
|
317 |
s:= s; // avoid compiler hint |
|
10392 | 318 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
319 |
exit; |
7805 | 320 |
if not isExternalSource then |
7068 | 321 |
SendIPC(_S'J'); |
4413 | 322 |
bShowFinger:= false; |
323 |
with CurrentHedgehog^.Gear^ do |
|
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
324 |
Message:= Message or (gmHJump and InputMask); |
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
325 |
ScriptCall('onHJump'); |
4413 | 326 |
end; |
327 |
||
328 |
procedure chAttack_p(var s: shortstring); |
|
10672 | 329 |
var inbtwnTrgtAttks: Boolean; |
4413 | 330 |
begin |
331 |
s:= s; // avoid compiler hint |
|
10392 | 332 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
333 |
exit; |
4413 | 334 |
bShowFinger:= false; |
335 |
with CurrentHedgehog^.Gear^ do |
|
336 |
begin |
|
4900 | 337 |
AddFileLog('/+attack: hedgehog''s Gear^.State = '+inttostr(State)); |
4413 | 338 |
if ((State and gstHHDriven) <> 0) then |
339 |
begin |
|
10672 | 340 |
inbtwnTrgtAttks:= ((GameFlags and gfInfAttack) <> 0) and ((Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_NeedTarget) <> 0); |
341 |
if (not inbtwnTrgtAttks) then |
|
342 |
FollowGear:= CurrentHedgehog^.Gear; |
|
7805 | 343 |
if not isExternalSource then |
7068 | 344 |
SendIPC(_S'A'); |
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
345 |
Message:= Message or (gmAttack and InputMask); |
10228 | 346 |
ScriptCall('onAttack'); // so if I fire airstrike, it doesn't count as attack? fine, fine |
4413 | 347 |
end |
348 |
end |
|
349 |
end; |
|
350 |
||
351 |
procedure chAttack_m(var s: shortstring); |
|
352 |
begin |
|
353 |
s:= s; // avoid compiler hint |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
354 |
if CheckNoTeamOrHH then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
355 |
exit; |
4413 | 356 |
with CurrentHedgehog^.Gear^ do |
357 |
begin |
|
7805 | 358 |
if not isExternalSource and |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
359 |
((Message and gmAttack) <> 0) then |
7068 | 360 |
SendIPC(_S'a'); |
6453
11c578d30bd3
Countless imporvements to the parser and countless help to the parser in sources.
unc0rr
parents:
6415
diff
changeset
|
361 |
Message:= Message and (not (gmAttack and InputMask)); |
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
362 |
ScriptCall('onAttackUp'); |
4413 | 363 |
end |
364 |
end; |
|
365 |
||
366 |
procedure chSwitch(var s: shortstring); |
|
367 |
begin |
|
368 |
s:= s; // avoid compiler hint |
|
10392 | 369 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
370 |
exit; |
7805 | 371 |
if not isExternalSource then |
7068 | 372 |
SendIPC(_S'S'); |
4413 | 373 |
bShowFinger:= false; |
374 |
with CurrentHedgehog^.Gear^ do |
|
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
375 |
Message:= Message or (gmSwitch and InputMask); |
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
376 |
ScriptCall('onSwitch'); |
4413 | 377 |
end; |
378 |
||
379 |
procedure chNextTurn(var s: shortstring); |
|
7671 | 380 |
var gi: PGear; |
4413 | 381 |
begin |
382 |
s:= s; // avoid compiler hint |
|
7103 | 383 |
|
11537 | 384 |
if checkFails(AllInactive, '/nextturn called when not all gears are inactive', true) then exit; |
4413 | 385 |
|
7389
15c3fb4882df
Sorry about the slight delay in pickup. You can blame a few lame cheaters. This is to make their cheating a bit harder.
nemo
parents:
7218
diff
changeset
|
386 |
CheckSum:= CheckSum xor GameTicks; |
7104 | 387 |
gi := GearsList; |
388 |
while gi <> nil do |
|
389 |
begin |
|
9797
1fdc1507e42d
remove state from check, just to see if this was why we just desynced
nemo
parents:
9796
diff
changeset
|
390 |
with gi^ do CheckSum:= CheckSum xor X.round xor X.frac xor dX.round xor dX.frac xor Y.round xor Y.frac xor dY.round xor dY.frac; |
7389
15c3fb4882df
Sorry about the slight delay in pickup. You can blame a few lame cheaters. This is to make their cheating a bit harder.
nemo
parents:
7218
diff
changeset
|
391 |
AddRandomness(CheckSum); |
7104 | 392 |
gi := gi^.NextGear |
393 |
end; |
|
7103 | 394 |
|
7805 | 395 |
if not isExternalSource then |
7103 | 396 |
begin |
397 |
s[0]:= #5; |
|
398 |
s[1]:= 'N'; |
|
7389
15c3fb4882df
Sorry about the slight delay in pickup. You can blame a few lame cheaters. This is to make their cheating a bit harder.
nemo
parents:
7218
diff
changeset
|
399 |
SDLNet_Write32(CheckSum, @s[2]); |
7103 | 400 |
SendIPC(s) |
401 |
end |
|
402 |
else |
|
11537 | 403 |
checkFails(CurrentTeam^.hasGone or (CheckSum = lastTurnChecksum), 'Desync detected', true); |
7831 | 404 |
|
7187
aff30d80bd7b
- Allow camera movement while current hedgehog is falling
unc0rr
parents:
7151
diff
changeset
|
405 |
AddFileLog('Next turn: time '+inttostr(GameTicks)); |
4413 | 406 |
end; |
407 |
||
408 |
procedure chTimer(var s: shortstring); |
|
409 |
begin |
|
7790 | 410 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
411 |
exit; |
4413 | 412 |
|
11537 | 413 |
if checkFails((s[0] = #1) and (s[1] >= '1') and (s[1] <= '5'), 'Malformed /timer', true) then exit; |
7790 | 414 |
|
7805 | 415 |
if not isExternalSource then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
416 |
SendIPC(s); |
4413 | 417 |
bShowFinger:= false; |
418 |
with CurrentHedgehog^.Gear^ do |
|
419 |
begin |
|
4522
0f590eefd531
Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents:
4437
diff
changeset
|
420 |
Message:= Message or (gmTimer and InputMask); |
4661
f5d858e4b634
Whole ton of script callbacks on commands. Poor engine.
mikade
parents:
4611
diff
changeset
|
421 |
MsgParam:= byte(s[1]) - ord('0'); |
6818
136aa9c8c593
Add the parameters I missed the first time when I added these hooks.
mikade
parents:
6700
diff
changeset
|
422 |
ScriptCall('onTimer', MsgParam); |
4413 | 423 |
end |
424 |
end; |
|
425 |
||
13538
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
426 |
// Increment timer or bounciness |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
427 |
procedure chTimerU(var s: shortstring); |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
428 |
var t: LongWord; |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
429 |
tb: Byte; |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
430 |
begin |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
431 |
s:= s; // avoid compiler hint |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
432 |
if CheckNoTeamOrHH then |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
433 |
exit; |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
434 |
// We grab the current timer first so we can increment it |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
435 |
if (CurrentHedgehog^.Gear^.Message and gmPrecise) = 0 then |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
436 |
t:= HHGetTimerMsg(CurrentHedgehog^.Gear) |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
437 |
else |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
438 |
// Use bounciness if Precise is pressed |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
439 |
t:= HHGetBouncinessMsg(CurrentHedgehog^.Gear); |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
440 |
if t <> MSGPARAM_INVALID then |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
441 |
begin |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
442 |
// Calculate new timer |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
443 |
Inc(t); |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
444 |
if t > 5 then |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
445 |
t:= 1; |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
446 |
tb:= t mod 255; |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
447 |
// Delegate the actual change to /timer |
13867 | 448 |
ParseCommand('timer ' + Char(tb + Ord('0')), true); |
13538
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
449 |
end; |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
450 |
end; |
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
451 |
|
4413 | 452 |
procedure chSlot(var s: shortstring); |
453 |
var slot: LongWord; |
|
7068 | 454 |
ss: shortstring; |
4413 | 455 |
begin |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
456 |
if (s[0] <> #1) or CheckNoTeamOrHH then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
457 |
exit; |
4413 | 458 |
slot:= byte(s[1]) - 49; |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
459 |
if slot > cMaxSlotIndex then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
460 |
exit; |
7805 | 461 |
if not isExternalSource then |
7068 | 462 |
begin |
463 |
ss[0]:= #1; |
|
464 |
ss[1]:= char(byte(s[1]) + 79); |
|
465 |
SendIPC(ss); |
|
466 |
end; |
|
4413 | 467 |
bShowFinger:= false; |
468 |
with CurrentHedgehog^.Gear^ do |
|
469 |
begin |
|
4522
0f590eefd531
Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents:
4437
diff
changeset
|
470 |
Message:= Message or (gmSlot and InputMask); |
8924 | 471 |
MsgParam:= slot; |
6818
136aa9c8c593
Add the parameters I missed the first time when I added these hooks.
mikade
parents:
6700
diff
changeset
|
472 |
ScriptCall('onSlot', MsgParam); |
4413 | 473 |
end |
474 |
end; |
|
475 |
||
476 |
procedure chSetWeapon(var s: shortstring); |
|
477 |
begin |
|
7790 | 478 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
479 |
exit; |
4413 | 480 |
|
14535
ec0afe1c6024
Add control (default: X) to unselect current weapon
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
481 |
(* Use "~" (ASCII character 126) as synonym for NUL byte (=amNothing). |
ec0afe1c6024
Add control (default: X) to unselect current weapon
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
482 |
This is done to allow to add "setweap ~" in QTfrontend/binds.cpp because |
ec0afe1c6024
Add control (default: X) to unselect current weapon
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
483 |
the NUL byte would terminate the strings in C++ otherwise. *) |
ec0afe1c6024
Add control (default: X) to unselect current weapon
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
484 |
if (s[1] = '~') then |
ec0afe1c6024
Add control (default: X) to unselect current weapon
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
485 |
s[1]:= #0; |
11537 | 486 |
if checkFails((s[0] = #1) and (s[1] <= char(High(TAmmoType))), 'Malformed /setweap', true) then exit; |
4413 | 487 |
|
7805 | 488 |
if not isExternalSource then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
489 |
SendIPC('w' + s); |
4413 | 490 |
|
491 |
with CurrentHedgehog^.Gear^ do |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
492 |
begin |
4522
0f590eefd531
Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents:
4437
diff
changeset
|
493 |
Message:= Message or (gmWeapon and InputMask); |
4413 | 494 |
MsgParam:= byte(s[1]); |
6818
136aa9c8c593
Add the parameters I missed the first time when I added these hooks.
mikade
parents:
6700
diff
changeset
|
495 |
ScriptCall('onSetWeapon', MsgParam); |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
496 |
end; |
4413 | 497 |
end; |
498 |
||
499 |
procedure chTaunt(var s: shortstring); |
|
500 |
begin |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
501 |
if (s[0] <> #1) or CheckNoTeamOrHH then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
502 |
exit; |
4413 | 503 |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
504 |
if TWave(s[1]) > High(TWave) then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
505 |
exit; |
4413 | 506 |
|
7805 | 507 |
if not isExternalSource then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
508 |
SendIPC('t' + s); |
4413 | 509 |
|
12820
92218a06c9ff
Don't send taunt message for automatically happening taunt animation
unc0rr
parents:
12495
diff
changeset
|
510 |
PlayTaunt(byte(s[1])) |
4413 | 511 |
end; |
512 |
||
513 |
procedure chPut(var s: shortstring); |
|
514 |
begin |
|
515 |
s:= s; // avoid compiler hint |
|
516 |
doPut(0, 0, false); |
|
517 |
end; |
|
518 |
||
519 |
procedure chCapture(var s: shortstring); |
|
520 |
begin |
|
521 |
s:= s; // avoid compiler hint |
|
10633
2f062fac5791
Add that "make screenshots of Land/LandPixels" thing for map creators
nemo
parents:
10603
diff
changeset
|
522 |
flagMakeCapture:= true; |
11025
999afa63035f
just disable landpixels w/ blurry land instead. the mask can be helpful for debugging at least.
nemo
parents:
11024
diff
changeset
|
523 |
flagDumpLand:= (LocalMessage and gmPrecise <> 0); |
4413 | 524 |
end; |
525 |
||
7629 | 526 |
procedure chRecord(var s: shortstring); |
527 |
begin |
|
528 |
s:= s; // avoid compiler hint |
|
529 |
{$IFDEF USE_VIDEO_RECORDING} |
|
530 |
if flagPrerecording then |
|
531 |
StopPreRecording() |
|
532 |
else |
|
533 |
BeginPreRecording(); |
|
534 |
{$ENDIF} |
|
535 |
end; |
|
536 |
||
4413 | 537 |
procedure chSetMap(var s: shortstring); |
538 |
begin |
|
5679
505c6448069b
accidentally reverted this when reverting the rest of the override changes.
nemo
parents:
5555
diff
changeset
|
539 |
if isDeveloperMode then |
6088 | 540 |
begin |
6339 | 541 |
if s = '' then |
8025 | 542 |
cPathz[ptMapCurrent]:= s |
6339 | 543 |
else |
8025 | 544 |
cPathz[ptMapCurrent]:= cPathz[ptMaps] + '/' + s; |
6088 | 545 |
InitStepsFlags:= InitStepsFlags or cifMap |
546 |
end; |
|
6828
6a5d33bff0b0
At mikade's request. give scripting access to the map name prior to override.
nemo
parents:
6818
diff
changeset
|
547 |
cMapName:= s; |
13726
61095cb5f58a
Critical error if loading a script has failed
Wuzzy <Wuzzy2@mail.ru>
parents:
13647
diff
changeset
|
548 |
ScriptLoad('Maps/' + s + '/map.lua', false) |
4413 | 549 |
end; |
550 |
||
551 |
procedure chSetTheme(var s: shortstring); |
|
552 |
begin |
|
553 |
if isDeveloperMode then |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
554 |
begin |
8025 | 555 |
cPathz[ptCurrTheme]:= cPathz[ptThemes] + '/' + s; |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
556 |
Theme:= s; |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
557 |
InitStepsFlags:= InitStepsFlags or cifTheme |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
558 |
end |
4413 | 559 |
end; |
560 |
||
561 |
procedure chSetSeed(var s: shortstring); |
|
562 |
begin |
|
563 |
if isDeveloperMode then |
|
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
564 |
begin |
8912 | 565 |
SetRandomSeed(s, true); |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
566 |
cSeed:= s; |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
567 |
InitStepsFlags:= InitStepsFlags or cifRandomize |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
568 |
end |
12852
1aba77b2e4ac
This is a desyncing change. But... We might need a new release anyway. ☹
nemo
parents:
12820
diff
changeset
|
569 |
end; |
4413 | 570 |
|
571 |
procedure chAmmoMenu(var s: shortstring); |
|
572 |
begin |
|
573 |
s:= s; // avoid compiler hint |
|
574 |
if CheckNoTeamOrHH then |
|
10439
7de934f2247c
allow toggling ammo menu while NoTeamOrHH, as suggested by unC0Rr
sheepluva
parents:
10392
diff
changeset
|
575 |
bShowAmmoMenu:= (not bShowAmmoMenu) |
4413 | 576 |
else |
577 |
begin |
|
578 |
with CurrentTeam^ do |
|
579 |
with Hedgehogs[CurrHedgehog] do |
|
580 |
begin |
|
581 |
bSelected:= false; |
|
582 |
||
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
583 |
if bShowAmmoMenu then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
584 |
bShowAmmoMenu:= false |
12221
5b525d041fb4
Fix crash when trying to open ammo menu with current team hog gear = nil
Wuzzy <almikes@aol.com>
parents:
11924
diff
changeset
|
585 |
else if not(CurrentTeam^.Extdriven) and ((Gear = nil) or ((Gear^.State and (gstAttacking or gstAttacked)) <> 0) |
7946
a99a79bbd857
Simplify ammo menu conditions so it shows up in more states. Should fix issue #465. The part w/ sliding in uworld is main #465 problem.
nemo
parents:
7831
diff
changeset
|
586 |
or ((Gear^.State and gstHHDriven) = 0)) then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
587 |
begin |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
588 |
end |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
589 |
else |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
590 |
bShowAmmoMenu:= true |
4413 | 591 |
end; |
592 |
end |
|
593 |
end; |
|
594 |
||
595 |
procedure chVol_p(var s: shortstring); |
|
596 |
begin |
|
597 |
s:= s; // avoid compiler hint |
|
598 |
inc(cVolumeDelta, 3) |
|
599 |
end; |
|
600 |
||
601 |
procedure chVol_m(var s: shortstring); |
|
602 |
begin |
|
603 |
s:= s; // avoid compiler hint |
|
604 |
dec(cVolumeDelta, 3) |
|
605 |
end; |
|
606 |
||
13044
aed4b25ff242
Fix volume caption not being shown when hitting mute key
Wuzzy <Wuzzy2@mail.ru>
parents:
13018
diff
changeset
|
607 |
procedure chMute(var s: shortstring); |
aed4b25ff242
Fix volume caption not being shown when hitting mute key
Wuzzy <Wuzzy2@mail.ru>
parents:
13018
diff
changeset
|
608 |
begin |
aed4b25ff242
Fix volume caption not being shown when hitting mute key
Wuzzy <Wuzzy2@mail.ru>
parents:
13018
diff
changeset
|
609 |
s:= s; // avoid compiler hint |
aed4b25ff242
Fix volume caption not being shown when hitting mute key
Wuzzy <Wuzzy2@mail.ru>
parents:
13018
diff
changeset
|
610 |
cMuteToggle:= true; |
aed4b25ff242
Fix volume caption not being shown when hitting mute key
Wuzzy <Wuzzy2@mail.ru>
parents:
13018
diff
changeset
|
611 |
end; |
aed4b25ff242
Fix volume caption not being shown when hitting mute key
Wuzzy <Wuzzy2@mail.ru>
parents:
13018
diff
changeset
|
612 |
|
4413 | 613 |
procedure chFindhh(var s: shortstring); |
614 |
begin |
|
615 |
s:= s; // avoid compiler hint |
|
10392 | 616 |
if CheckNoTeamOrHH then |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
617 |
exit; |
5247 | 618 |
|
7629 | 619 |
if autoCameraOn then |
5247 | 620 |
begin |
7629 | 621 |
FollowGear:= nil; |
13647
3d14950641a4
Refactor text color variable names, export 2 color values to Lua
Wuzzy <Wuzzy2@mail.ru>
parents:
13646
diff
changeset
|
622 |
AddCaption(trmsg[sidAutoCameraOff], capcolSetting, capgrpVolume); |
5247 | 623 |
autoCameraOn:= false |
624 |
end |
|
7629 | 625 |
else |
626 |
begin |
|
13647
3d14950641a4
Refactor text color variable names, export 2 color values to Lua
Wuzzy <Wuzzy2@mail.ru>
parents:
13646
diff
changeset
|
627 |
AddCaption(trmsg[sidAutoCameraOn], capcolSetting, capgrpVolume); |
5247 | 628 |
bShowFinger:= true; |
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
629 |
if not CurrentHedgehog^.Unplaced then |
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6453
diff
changeset
|
630 |
FollowGear:= CurrentHedgehog^.Gear; |
5247 | 631 |
autoCameraOn:= true |
632 |
end |
|
4413 | 633 |
end; |
634 |
||
635 |
procedure chPause(var s: shortstring); |
|
636 |
begin |
|
10392 | 637 |
if (gameType <> gmtNet) or (s = 'server') then |
9670
1954f692e8c6
Quick and simple implementation of afk mode (toggled by /pause)
unc0rr
parents:
9489
diff
changeset
|
638 |
isPaused:= not isPaused |
1954f692e8c6
Quick and simple implementation of afk mode (toggled by /pause)
unc0rr
parents:
9489
diff
changeset
|
639 |
else |
9671 | 640 |
if (CurrentTeam^.ExtDriven) or (CurrentHedgehog^.BotLevel > 0) then |
641 |
isAFK:= not isAFK |
|
642 |
else |
|
643 |
isAFK:= false; // for real ninjas |
|
5524
40b7f95d9f18
Oh, and fix cursor visibility correlations between gsConfirm state and paused state
unc0rr
parents:
5523
diff
changeset
|
644 |
|
10392 | 645 |
updateCursorVisibility; |
4413 | 646 |
end; |
647 |
||
648 |
procedure chRotateMask(var s: shortstring); |
|
649 |
begin |
|
650 |
s:= s; // avoid compiler hint |
|
12495
b4eb289b5913
Backed out changeset c19e5ece5b3f
Wuzzy <almikes@aol.com>
parents:
12493
diff
changeset
|
651 |
// this is just for me, 'cause I thought it'd be fun. using the old precise + switch to keep it out of people's way |
9693 | 652 |
if LocalMessage and (gmPrecise or gmSwitch) = (gmPrecise or gmSwitch) then |
653 |
begin |
|
654 |
if UIDisplay <> uiNone then |
|
655 |
UIDisplay:= uiNone |
|
656 |
else UIDisplay:= uiAll |
|
657 |
end |
|
12495
b4eb289b5913
Backed out changeset c19e5ece5b3f
Wuzzy <almikes@aol.com>
parents:
12493
diff
changeset
|
658 |
else |
b4eb289b5913
Backed out changeset c19e5ece5b3f
Wuzzy <almikes@aol.com>
parents:
12493
diff
changeset
|
659 |
begin |
b4eb289b5913
Backed out changeset c19e5ece5b3f
Wuzzy <almikes@aol.com>
parents:
12493
diff
changeset
|
660 |
if UIDisplay <> uiNoTeams then |
b4eb289b5913
Backed out changeset c19e5ece5b3f
Wuzzy <almikes@aol.com>
parents:
12493
diff
changeset
|
661 |
UIDisplay:= uiNoTeams |
b4eb289b5913
Backed out changeset c19e5ece5b3f
Wuzzy <almikes@aol.com>
parents:
12493
diff
changeset
|
662 |
else UIDisplay:= uiAll |
b4eb289b5913
Backed out changeset c19e5ece5b3f
Wuzzy <almikes@aol.com>
parents:
12493
diff
changeset
|
663 |
end |
4413 | 664 |
end; |
665 |
||
13002
f06660523198
Add separate control for changing hedgehog tags
Wuzzy <Wuzzy2@mail.ru>
parents:
12995
diff
changeset
|
666 |
procedure chRotateTags(var s: shortstring); |
f06660523198
Add separate control for changing hedgehog tags
Wuzzy <Wuzzy2@mail.ru>
parents:
12995
diff
changeset
|
667 |
begin |
f06660523198
Add separate control for changing hedgehog tags
Wuzzy <Wuzzy2@mail.ru>
parents:
12995
diff
changeset
|
668 |
s:= s; // avoid compiler hint |
13005
c5529aabdda9
Flip Switch/Precise key combintions with change hog tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13004
diff
changeset
|
669 |
// Rotate Tags key + Switch: Toggle translucency only |
c5529aabdda9
Flip Switch/Precise key combintions with change hog tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13004
diff
changeset
|
670 |
if LocalMessage and gmSwitch = gmSwitch then |
13003
22e032ab1cb7
Toggle hog tag translucency with Precise + Change hog tags key
Wuzzy <Wuzzy2@mail.ru>
parents:
13002
diff
changeset
|
671 |
if ((cTagsMask and htTransparent) = 0) then |
13006
876b1ef83191
Fix some consistency issues with change hog tags control
Wuzzy <Wuzzy2@mail.ru>
parents:
13005
diff
changeset
|
672 |
begin |
876b1ef83191
Fix some consistency issues with change hog tags control
Wuzzy <Wuzzy2@mail.ru>
parents:
13005
diff
changeset
|
673 |
cTagsMask:= cTagsMask or htTransparent; |
876b1ef83191
Fix some consistency issues with change hog tags control
Wuzzy <Wuzzy2@mail.ru>
parents:
13005
diff
changeset
|
674 |
cPrevTagsMask:= cPrevTagsMask or htTransparent |
876b1ef83191
Fix some consistency issues with change hog tags control
Wuzzy <Wuzzy2@mail.ru>
parents:
13005
diff
changeset
|
675 |
end |
13003
22e032ab1cb7
Toggle hog tag translucency with Precise + Change hog tags key
Wuzzy <Wuzzy2@mail.ru>
parents:
13002
diff
changeset
|
676 |
else |
13006
876b1ef83191
Fix some consistency issues with change hog tags control
Wuzzy <Wuzzy2@mail.ru>
parents:
13005
diff
changeset
|
677 |
begin |
876b1ef83191
Fix some consistency issues with change hog tags control
Wuzzy <Wuzzy2@mail.ru>
parents:
13005
diff
changeset
|
678 |
cTagsMask:= cTagsMask and (not htTransparent); |
876b1ef83191
Fix some consistency issues with change hog tags control
Wuzzy <Wuzzy2@mail.ru>
parents:
13005
diff
changeset
|
679 |
cPrevTagsMask:= cPrevTagsMask and (not htTransparent) |
876b1ef83191
Fix some consistency issues with change hog tags control
Wuzzy <Wuzzy2@mail.ru>
parents:
13005
diff
changeset
|
680 |
end |
13012
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
681 |
// Rotate Tags key + Precise: Cycle through hog tags (keeping translucency) |
13005
c5529aabdda9
Flip Switch/Precise key combintions with change hog tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13004
diff
changeset
|
682 |
else if LocalMessage and gmPrecise = gmPrecise then |
13012
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
683 |
begin |
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
684 |
cPrevTagsMask:= cTagsMask; |
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
685 |
if ((GameFlags and gfInvulnerable) = 0) then |
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
686 |
cTagsMask:= cTagsMasks[cTagsMask] |
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
687 |
else |
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
688 |
cTagsMask:= cTagsMasksNoHealth[cTagsMask] |
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
689 |
end |
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
690 |
// Rotate Tags key only: Toggle all hog tags on and off |
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
691 |
else |
13004
46ba3285449a
Switch + Change hog tags now turns on and off all tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13003
diff
changeset
|
692 |
if ((cTagsMask and (htTeamName or htName or htHealth)) = 0) then |
13018
4234a18a082c
Fix hittig precise+rottags the first time when all tags started off showing health tag in gfInvulnerable
Wuzzy <Wuzzy2@mail.ru>
parents:
13012
diff
changeset
|
693 |
begin |
4234a18a082c
Fix hittig precise+rottags the first time when all tags started off showing health tag in gfInvulnerable
Wuzzy <Wuzzy2@mail.ru>
parents:
13012
diff
changeset
|
694 |
cTagsMask:= cPrevTagsMask; |
4234a18a082c
Fix hittig precise+rottags the first time when all tags started off showing health tag in gfInvulnerable
Wuzzy <Wuzzy2@mail.ru>
parents:
13012
diff
changeset
|
695 |
if ((GameFlags and gfInvulnerable) <> 0) then |
4234a18a082c
Fix hittig precise+rottags the first time when all tags started off showing health tag in gfInvulnerable
Wuzzy <Wuzzy2@mail.ru>
parents:
13012
diff
changeset
|
696 |
cTagsMask:= cTagsMask and (not htHealth); |
4234a18a082c
Fix hittig precise+rottags the first time when all tags started off showing health tag in gfInvulnerable
Wuzzy <Wuzzy2@mail.ru>
parents:
13012
diff
changeset
|
697 |
end |
13004
46ba3285449a
Switch + Change hog tags now turns on and off all tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13003
diff
changeset
|
698 |
else |
46ba3285449a
Switch + Change hog tags now turns on and off all tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13003
diff
changeset
|
699 |
begin |
46ba3285449a
Switch + Change hog tags now turns on and off all tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13003
diff
changeset
|
700 |
cPrevTagsMask:= cTagsMask; |
46ba3285449a
Switch + Change hog tags now turns on and off all tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13003
diff
changeset
|
701 |
cTagsMask:= cTagsMask and (not (htTeamName or htName or htHealth)) |
13012
8a8aaaf97a95
The rottags key alone now toggles hog tags; preecise+rottags is used to cycle tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13006
diff
changeset
|
702 |
end; |
13004
46ba3285449a
Switch + Change hog tags now turns on and off all tags
Wuzzy <Wuzzy2@mail.ru>
parents:
13003
diff
changeset
|
703 |
end; |
13002
f06660523198
Add separate control for changing hedgehog tags
Wuzzy <Wuzzy2@mail.ru>
parents:
12995
diff
changeset
|
704 |
|
4413 | 705 |
procedure chSpeedup_p(var s: shortstring); |
706 |
begin |
|
707 |
s:= s; // avoid compiler hint |
|
7629 | 708 |
SpeedStart:= RealTicks; |
4413 | 709 |
isSpeed:= true |
710 |
end; |
|
711 |
||
712 |
procedure chSpeedup_m(var s: shortstring); |
|
713 |
begin |
|
714 |
s:= s; // avoid compiler hint |
|
715 |
isSpeed:= false |
|
716 |
end; |
|
717 |
||
718 |
procedure chZoomIn(var s: shortstring); |
|
719 |
begin |
|
720 |
s:= s; // avoid compiler hint |
|
721 |
if ZoomValue < cMinZoomLevel then |
|
722 |
ZoomValue:= ZoomValue + cZoomDelta; |
|
723 |
end; |
|
724 |
||
725 |
procedure chZoomOut(var s: shortstring); |
|
726 |
begin |
|
727 |
s:= s; // avoid compiler hint |
|
728 |
if ZoomValue > cMaxZoomLevel then |
|
729 |
ZoomValue:= ZoomValue - cZoomDelta; |
|
730 |
end; |
|
731 |
||
732 |
procedure chZoomReset(var s: shortstring); |
|
733 |
begin |
|
734 |
s:= s; // avoid compiler hint |
|
735 |
ZoomValue:= cDefaultZoomLevel; |
|
736 |
end; |
|
737 |
||
6898 | 738 |
procedure chMapGen(var s: shortstring); |
739 |
begin |
|
10603
bda5c7caf396
switch mapgen to enum. should still try and make sure the values are backwards compatible if possible.
nemo
parents:
10510
diff
changeset
|
740 |
cMapGen:= TMapGen(StrToInt(s)) |
6898 | 741 |
end; |
742 |
||
743 |
procedure chTemplateFilter(var s: shortstring); |
|
744 |
begin |
|
7151 | 745 |
cTemplateFilter:= StrToInt(s) |
6898 | 746 |
end; |
747 |
||
10472
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10455
diff
changeset
|
748 |
procedure chFeatureSize(var s: shortstring); |
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10455
diff
changeset
|
749 |
begin |
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10455
diff
changeset
|
750 |
cFeatureSize:= StrToInt(s) |
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10455
diff
changeset
|
751 |
end; |
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10455
diff
changeset
|
752 |
|
6898 | 753 |
procedure chInactDelay(var s: shortstring); |
754 |
begin |
|
7151 | 755 |
cInactDelay:= StrToInt(s) |
6898 | 756 |
end; |
757 |
||
758 |
procedure chReadyDelay(var s: shortstring); |
|
759 |
begin |
|
7151 | 760 |
cReadyDelay:= StrToInt(s) |
6898 | 761 |
end; |
762 |
||
763 |
procedure chCaseFactor(var s: shortstring); |
|
764 |
begin |
|
7151 | 765 |
cCaseFactor:= StrToInt(s) |
6898 | 766 |
end; |
767 |
||
768 |
procedure chHealthCaseProb(var s: shortstring); |
|
769 |
begin |
|
7151 | 770 |
cHealthCaseProb:= StrToInt(s) |
6898 | 771 |
end; |
772 |
||
773 |
procedure chHealthCaseAmount(var s: shortstring); |
|
774 |
begin |
|
7151 | 775 |
cHealthCaseAmount:= StrToInt(s) |
6898 | 776 |
end; |
777 |
||
778 |
procedure chSuddenDTurns(var s: shortstring); |
|
779 |
begin |
|
7151 | 780 |
cSuddenDTurns:= StrToInt(s) |
6898 | 781 |
end; |
782 |
||
783 |
procedure chWaterRise(var s: shortstring); |
|
784 |
begin |
|
7151 | 785 |
cWaterRise:= StrToInt(s) |
6898 | 786 |
end; |
787 |
||
788 |
procedure chHealthDecrease(var s: shortstring); |
|
789 |
begin |
|
7151 | 790 |
cHealthDecrease:= StrToInt(s) |
6898 | 791 |
end; |
792 |
||
14527
d0441c7e9000
Lua: Add InitHealth, read-only variable containing the initial hog health setting
Wuzzy <Wuzzy2@mail.ru>
parents:
14468
diff
changeset
|
793 |
procedure chInitHealth(var s: shortstring); |
d0441c7e9000
Lua: Add InitHealth, read-only variable containing the initial hog health setting
Wuzzy <Wuzzy2@mail.ru>
parents:
14468
diff
changeset
|
794 |
begin |
d0441c7e9000
Lua: Add InitHealth, read-only variable containing the initial hog health setting
Wuzzy <Wuzzy2@mail.ru>
parents:
14468
diff
changeset
|
795 |
cInitHealth:= StrToInt(s) |
d0441c7e9000
Lua: Add InitHealth, read-only variable containing the initial hog health setting
Wuzzy <Wuzzy2@mail.ru>
parents:
14468
diff
changeset
|
796 |
end; |
d0441c7e9000
Lua: Add InitHealth, read-only variable containing the initial hog health setting
Wuzzy <Wuzzy2@mail.ru>
parents:
14468
diff
changeset
|
797 |
|
6898 | 798 |
procedure chDamagePercent(var s: shortstring); |
799 |
begin |
|
7151 | 800 |
cDamagePercent:= StrToInt(s) |
6898 | 801 |
end; |
802 |
||
803 |
procedure chRopePercent(var s: shortstring); |
|
804 |
begin |
|
7151 | 805 |
cRopePercent:= StrToInt(s) |
6898 | 806 |
end; |
807 |
||
808 |
procedure chGetAwayTime(var s: shortstring); |
|
809 |
begin |
|
7151 | 810 |
cGetAwayTime:= StrToInt(s) |
6898 | 811 |
end; |
812 |
||
813 |
procedure chMineDudPercent(var s: shortstring); |
|
814 |
begin |
|
7151 | 815 |
cMineDudPercent:= StrToInt(s) |
6898 | 816 |
end; |
817 |
||
818 |
procedure chLandMines(var s: shortstring); |
|
819 |
begin |
|
7151 | 820 |
cLandMines:= StrToInt(s) |
6898 | 821 |
end; |
822 |
||
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:
10672
diff
changeset
|
823 |
procedure chAirMines(var s: shortstring); |
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:
10672
diff
changeset
|
824 |
begin |
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:
10672
diff
changeset
|
825 |
cAirMines:= StrToInt(s) |
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:
10672
diff
changeset
|
826 |
end; |
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:
10672
diff
changeset
|
827 |
|
6898 | 828 |
procedure chExplosives(var s: shortstring); |
829 |
begin |
|
7151 | 830 |
cExplosives:= StrToInt(s) |
6898 | 831 |
end; |
832 |
||
833 |
procedure chGameFlags(var s: shortstring); |
|
834 |
begin |
|
7218
9ecd5bc9810b
Ensure that Clan ammo always takes precedence over Per Hog Ammo in the flags. It'd be best for the user sake if these buttons acted more like radio buttons.
nemo
parents:
7187
diff
changeset
|
835 |
GameFlags:= StrToInt(s); |
7629 | 836 |
if GameFlags and gfSharedAmmo <> 0 then GameFlags:= GameFlags and (not gfPerHogAmmo) |
6898 | 837 |
end; |
838 |
||
839 |
procedure chHedgehogTurnTime(var s: shortstring); |
|
840 |
begin |
|
7151 | 841 |
cHedgehogTurnTime:= StrToInt(s) |
6898 | 842 |
end; |
843 |
||
844 |
procedure chMinesTime(var s: shortstring); |
|
845 |
begin |
|
7151 | 846 |
cMinesTime:= StrToInt(s) |
6898 | 847 |
end; |
848 |
||
849 |
procedure chFastUntilLag(var s: shortstring); |
|
850 |
begin |
|
10862
4575977d3ce0
Don't spawn team widget sorter on each frame when in lag. Issue 'spectate 0' instead, and only on first lag occasion.
unc0rr
parents:
10822
diff
changeset
|
851 |
fastUntilLag:= StrToInt(s) <> 0; |
4575977d3ce0
Don't spawn team widget sorter on each frame when in lag. Issue 'spectate 0' instead, and only on first lag occasion.
unc0rr
parents:
10822
diff
changeset
|
852 |
|
4575977d3ce0
Don't spawn team widget sorter on each frame when in lag. Issue 'spectate 0' instead, and only on first lag occasion.
unc0rr
parents:
10822
diff
changeset
|
853 |
if not fastUntilLag then |
4575977d3ce0
Don't spawn team widget sorter on each frame when in lag. Issue 'spectate 0' instead, and only on first lag occasion.
unc0rr
parents:
10822
diff
changeset
|
854 |
begin |
4575977d3ce0
Don't spawn team widget sorter on each frame when in lag. Issue 'spectate 0' instead, and only on first lag occasion.
unc0rr
parents:
10822
diff
changeset
|
855 |
// update health bars and the wind indicator |
4575977d3ce0
Don't spawn team widget sorter on each frame when in lag. Issue 'spectate 0' instead, and only on first lag occasion.
unc0rr
parents:
10822
diff
changeset
|
856 |
AddVisualGear(0, 0, vgtTeamHealthSorter); |
4575977d3ce0
Don't spawn team widget sorter on each frame when in lag. Issue 'spectate 0' instead, and only on first lag occasion.
unc0rr
parents:
10822
diff
changeset
|
857 |
AddVisualGear(0, 0, vgtSmoothWindBar) |
4575977d3ce0
Don't spawn team widget sorter on each frame when in lag. Issue 'spectate 0' instead, and only on first lag occasion.
unc0rr
parents:
10822
diff
changeset
|
858 |
end |
6898 | 859 |
end; |
4413 | 860 |
|
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7187
diff
changeset
|
861 |
procedure chCampVar(var s:shortstring); |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7187
diff
changeset
|
862 |
begin |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7187
diff
changeset
|
863 |
CampaignVariable := s; |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7187
diff
changeset
|
864 |
end; |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7187
diff
changeset
|
865 |
|
14468
bd1db668b7c0
Add Lua functions to save/get mission variables
Wuzzy <Wuzzy2@mail.ru>
parents:
13867
diff
changeset
|
866 |
procedure chMissVar(var s:shortstring); |
bd1db668b7c0
Add Lua functions to save/get mission variables
Wuzzy <Wuzzy2@mail.ru>
parents:
13867
diff
changeset
|
867 |
begin |
bd1db668b7c0
Add Lua functions to save/get mission variables
Wuzzy <Wuzzy2@mail.ru>
parents:
13867
diff
changeset
|
868 |
MissionVariable := s; |
bd1db668b7c0
Add Lua functions to save/get mission variables
Wuzzy <Wuzzy2@mail.ru>
parents:
13867
diff
changeset
|
869 |
end; |
bd1db668b7c0
Add Lua functions to save/get mission variables
Wuzzy <Wuzzy2@mail.ru>
parents:
13867
diff
changeset
|
870 |
|
9489 | 871 |
procedure chWorldEdge(var s: shortstring); |
872 |
begin |
|
873 |
WorldEdge:= TWorldEdge(StrToInt(s)) |
|
874 |
end; |
|
875 |
||
10237 | 876 |
procedure chAdvancedMapGenMode(var s:shortstring); |
877 |
begin |
|
10249 | 878 |
s:= s; // avoid compiler hint |
10237 | 879 |
cAdvancedMapGenMode:= true; |
880 |
end; |
|
881 |
||
13464
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
882 |
procedure chShowMission_p(var s: shortstring); |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
883 |
begin |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
884 |
s:= s; // avoid compiler hint |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
885 |
isShowMission:= true; |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
886 |
end; |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
887 |
|
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
888 |
procedure chShowMission_m(var s: shortstring); |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
889 |
begin |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
890 |
s:= s; // avoid compiler hint |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
891 |
isShowMission:= false; |
13466
854caa3c9212
Lua API: Add parameter forceDisplay to ShowMission to prevent manual hiding
Wuzzy <Wuzzy2@mail.ru>
parents:
13464
diff
changeset
|
892 |
if (not isForceMission) then |
854caa3c9212
Lua API: Add parameter forceDisplay to ShowMission to prevent manual hiding
Wuzzy <Wuzzy2@mail.ru>
parents:
13464
diff
changeset
|
893 |
HideMission(); |
13464
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
894 |
end; |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
895 |
|
4413 | 896 |
procedure initModule; |
897 |
begin |
|
4528
630f4ab0c926
Reorder top registered variables by frequency gathered from 60 or so games of varying length/type. Oh. And add green hair to joker.
nemo
parents:
4522
diff
changeset
|
898 |
//////// Begin top sorted by freq analysis not including chatmsg |
7407 | 899 |
RegisterVariable('+right' , @chRight_p , false, true); |
900 |
RegisterVariable('-right' , @chRight_m , false, true); |
|
901 |
RegisterVariable('+up' , @chUp_p , false, true); |
|
902 |
RegisterVariable('-up' , @chUp_m , false, true); |
|
903 |
RegisterVariable('+left' , @chLeft_p , false, true); |
|
904 |
RegisterVariable('-left' , @chLeft_m , false, true); |
|
7629 | 905 |
RegisterVariable('+attack' , @chAttack_p , false); |
7407 | 906 |
RegisterVariable('+down' , @chDown_p , false, true); |
907 |
RegisterVariable('-down' , @chDown_m , false, true); |
|
908 |
RegisterVariable('hjump' , @chHJump , false, true); |
|
909 |
RegisterVariable('ljump' , @chLJump , false, true); |
|
7629 | 910 |
RegisterVariable('nextturn', @chNextTurn , false); |
911 |
RegisterVariable('-attack' , @chAttack_m , false); |
|
912 |
RegisterVariable('slot' , @chSlot , false); |
|
7407 | 913 |
RegisterVariable('setweap' , @chSetWeapon , false, true); |
4528
630f4ab0c926
Reorder top registered variables by frequency gathered from 60 or so games of varying length/type. Oh. And add green hair to joker.
nemo
parents:
4522
diff
changeset
|
914 |
//////// End top by freq analysis |
7629 | 915 |
RegisterVariable('gencmd' , @chGenCmd , false); |
6898 | 916 |
RegisterVariable('script' , @chScript , false); |
9902 | 917 |
RegisterVariable('scriptparam', @chScriptParam, false); |
6898 | 918 |
RegisterVariable('proto' , @chCheckProto , true ); |
919 |
RegisterVariable('spectate', @chFastUntilLag , false); |
|
920 |
RegisterVariable('capture' , @chCapture , true ); |
|
921 |
RegisterVariable('rotmask' , @chRotateMask , true ); |
|
13002
f06660523198
Add separate control for changing hedgehog tags
Wuzzy <Wuzzy2@mail.ru>
parents:
12995
diff
changeset
|
922 |
RegisterVariable('rottags' , @chRotateTags , true ); |
6898 | 923 |
RegisterVariable('rdriven' , @chTeamLocal , false); |
924 |
RegisterVariable('map' , @chSetMap , false); |
|
925 |
RegisterVariable('theme' , @chSetTheme , false); |
|
926 |
RegisterVariable('seed' , @chSetSeed , false); |
|
927 |
RegisterVariable('template_filter', @chTemplateFilter, false); |
|
928 |
RegisterVariable('mapgen' , @chMapGen , false); |
|
929 |
RegisterVariable('maze_size',@chTemplateFilter, false); |
|
10472
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10455
diff
changeset
|
930 |
RegisterVariable('feature_size',@chFeatureSize, false); |
6898 | 931 |
RegisterVariable('delay' , @chInactDelay , false); |
932 |
RegisterVariable('ready' , @chReadyDelay , false); |
|
933 |
RegisterVariable('casefreq', @chCaseFactor , false); |
|
934 |
RegisterVariable('healthprob', @chHealthCaseProb, false); |
|
935 |
RegisterVariable('hcaseamount', @chHealthCaseAmount, false); |
|
936 |
RegisterVariable('sd_turns', @chSuddenDTurns , false); |
|
937 |
RegisterVariable('waterrise', @chWaterRise , false); |
|
938 |
RegisterVariable('healthdec', @chHealthDecrease, false); |
|
14527
d0441c7e9000
Lua: Add InitHealth, read-only variable containing the initial hog health setting
Wuzzy <Wuzzy2@mail.ru>
parents:
14468
diff
changeset
|
939 |
RegisterVariable('inithealth',@chInitHealth, false); |
6898 | 940 |
RegisterVariable('damagepct',@chDamagePercent , false); |
941 |
RegisterVariable('ropepct' , @chRopePercent , false); |
|
942 |
RegisterVariable('getawaytime' , @chGetAwayTime , false); |
|
943 |
RegisterVariable('minedudpct',@chMineDudPercent, false); |
|
944 |
RegisterVariable('minesnum', @chLandMines , false); |
|
10822 | 945 |
RegisterVariable('airmines', @chAirMines , false); |
6898 | 946 |
RegisterVariable('explosives',@chExplosives , false); |
947 |
RegisterVariable('gmflags' , @chGameFlags , false); |
|
948 |
RegisterVariable('turntime', @chHedgehogTurnTime, false); |
|
949 |
RegisterVariable('minestime',@chMinesTime , false); |
|
950 |
RegisterVariable('quit' , @chQuit , true ); |
|
951 |
RegisterVariable('forcequit', @chForceQuit , true ); |
|
952 |
RegisterVariable('confirm' , @chConfirm , true ); |
|
953 |
RegisterVariable('halt', @chHalt , true ); |
|
954 |
RegisterVariable('+speedup', @chSpeedup_p , true ); |
|
955 |
RegisterVariable('-speedup', @chSpeedup_m , true ); |
|
956 |
RegisterVariable('zoomin' , @chZoomIn , true ); |
|
957 |
RegisterVariable('zoomout' , @chZoomOut , true ); |
|
958 |
RegisterVariable('zoomreset',@chZoomReset , true ); |
|
959 |
RegisterVariable('ammomenu', @chAmmoMenu , true); |
|
7629 | 960 |
RegisterVariable('+precise', @chPrecise_p , false, true); |
961 |
RegisterVariable('-precise', @chPrecise_m , false, true); |
|
6898 | 962 |
RegisterVariable('switch' , @chSwitch , false); |
7629 | 963 |
RegisterVariable('timer' , @chTimer , false, true); |
6898 | 964 |
RegisterVariable('taunt' , @chTaunt , false); |
965 |
RegisterVariable('put' , @chPut , false); |
|
966 |
RegisterVariable('+volup' , @chVol_p , true ); |
|
967 |
RegisterVariable('-volup' , @chVol_m , true ); |
|
968 |
RegisterVariable('+voldown', @chVol_m , true ); |
|
969 |
RegisterVariable('-voldown', @chVol_p , true ); |
|
13044
aed4b25ff242
Fix volume caption not being shown when hitting mute key
Wuzzy <Wuzzy2@mail.ru>
parents:
13018
diff
changeset
|
970 |
RegisterVariable('mute' , @chMute , true ); |
7404 | 971 |
RegisterVariable('findhh' , @chFindhh , true ); |
6898 | 972 |
RegisterVariable('pause' , @chPause , true ); |
973 |
RegisterVariable('+cur_u' , @chCurU_p , true ); |
|
974 |
RegisterVariable('-cur_u' , @chCurU_m , true ); |
|
975 |
RegisterVariable('+cur_d' , @chCurD_p , true ); |
|
976 |
RegisterVariable('-cur_d' , @chCurD_m , true ); |
|
977 |
RegisterVariable('+cur_l' , @chCurL_p , true ); |
|
978 |
RegisterVariable('-cur_l' , @chCurL_m , true ); |
|
979 |
RegisterVariable('+cur_r' , @chCurR_p , true ); |
|
980 |
RegisterVariable('-cur_r' , @chCurR_m , true ); |
|
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7187
diff
changeset
|
981 |
RegisterVariable('campvar' , @chCampVar , true ); |
14468
bd1db668b7c0
Add Lua functions to save/get mission variables
Wuzzy <Wuzzy2@mail.ru>
parents:
13867
diff
changeset
|
982 |
RegisterVariable('missvar' , @chMissVar , true ); |
7629 | 983 |
RegisterVariable('record' , @chRecord , true ); |
9489 | 984 |
RegisterVariable('worldedge',@chWorldEdge , false); |
10237 | 985 |
RegisterVariable('advmapgen',@chAdvancedMapGenMode, false); |
13464
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
986 |
RegisterVariable('+mission', @chShowMission_p, true); |
08a3851aaf67
Add dedicated key to display mission panel: M
Wuzzy <Wuzzy2@mail.ru>
parents:
13112
diff
changeset
|
987 |
RegisterVariable('-mission', @chShowMission_m, true); |
13538
0c8001e43fd3
Add control to cycle through timer/bounciness values
Wuzzy <Wuzzy2@mail.ru>
parents:
13466
diff
changeset
|
988 |
RegisterVariable('timer_u' , @chTimerU , true ); |
4413 | 989 |
end; |
990 |
||
991 |
procedure freeModule; |
|
992 |
begin |
|
993 |
end; |
|
994 |
||
995 |
end. |