hedgewars/uCommandHandlers.pas
author nemo
Wed, 10 Aug 2011 17:20:21 -0400
changeset 5539 7bb3d679e648
parent 5524 40b7f95d9f18
child 5530 25d4118056e1
child 5555 38e3d9347910
permissions -rw-r--r--
:( bad revision.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4976
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
     1
(*
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
     2
 * Hedgewars, a free turn based strategy game
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
     3
 * Copyright (c) 2004-2011 Andrey Korotaev <unC0Rr@gmail.com>
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
     4
 *
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
     8
 *
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    12
 * GNU General Public License for more details.
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    13
 *
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    14
 * You should have received a copy of the GNU General Public License
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    15
 * along with this program; if not, write to the Free Software
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    17
 *)
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    18
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    19
{$INCLUDE "options.inc"}
4976
088d40d8aba2 Happy 2011 :)
koda
parents: 4900
diff changeset
    20
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    21
unit uCommandHandlers;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    22
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    23
interface
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    24
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    25
procedure initModule;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    26
procedure freeModule;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    27
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    28
implementation
5247
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
    29
uses uCommands, uTypes, uVariables, uIO, uDebug, uConsts, uScript, uUtils, SDLh, uRandom, uCaptions;
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    30
4531
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    31
procedure chGenCmd(var s: shortstring);
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    32
begin
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    33
case s[1] of
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    34
     'R': if ReadyTimeLeft > 1 then 
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    35
          begin
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    36
          ReadyTimeLeft:= 1;
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    37
          if not CurrentTeam^.ExtDriven then SendIPC('c'+s);
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    38
          end
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    39
    end
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    40
end;
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
    41
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    42
procedure chQuit(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    43
const prevGState: TGameState = gsConfirm;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    44
begin
4751
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    45
    s:= s; // avoid compiler hint
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    46
    if GameState <> gsConfirm then
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    47
    begin
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    48
        prevGState:= GameState;
5523
9ac5acc4f3e5 Also unhide mouse cursor when in gsConfirm state
unc0rr
parents: 5352
diff changeset
    49
        GameState:= gsConfirm;
9ac5acc4f3e5 Also unhide mouse cursor when in gsConfirm state
unc0rr
parents: 5352
diff changeset
    50
        SDL_ShowCursor(1)
4751
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    51
    end else
5523
9ac5acc4f3e5 Also unhide mouse cursor when in gsConfirm state
unc0rr
parents: 5352
diff changeset
    52
    begin
9ac5acc4f3e5 Also unhide mouse cursor when in gsConfirm state
unc0rr
parents: 5352
diff changeset
    53
        GameState:= prevGState;
5524
40b7f95d9f18 Oh, and fix cursor visibility correlations between gsConfirm state and paused state
unc0rr
parents: 5523
diff changeset
    54
        SDL_ShowCursor(ord(isPaused))
5523
9ac5acc4f3e5 Also unhide mouse cursor when in gsConfirm state
unc0rr
parents: 5352
diff changeset
    55
    end
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    56
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    57
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4661
diff changeset
    58
procedure chForceQuit(var s: shortstring);
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4661
diff changeset
    59
begin
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4661
diff changeset
    60
    s:= s; // avoid compiler hint
4751
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    61
    GameState:= gsConfirm;
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    62
    ParseCommand('confirm', true);
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    63
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    64
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    65
procedure chConfirm(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    66
begin
4751
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    67
    s:= s; // avoid compiler hint
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    68
    if GameState = gsConfirm then
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    69
    begin
4751
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    70
        SendIPC('Q');
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    71
        GameState:= gsExit
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    72
    end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    73
else
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    74
    ParseCommand('chat team', true);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    75
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    76
4751
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
    77
procedure chHalt (var s: shortstring);
4746
3ae448aebe7e implemented actions for closing/enging program (needs testing over the net)
koda
parents: 4744
diff changeset
    78
begin
3ae448aebe7e implemented actions for closing/enging program (needs testing over the net)
koda
parents: 4744
diff changeset
    79
    s:= s; // avoid compiler hint
3ae448aebe7e implemented actions for closing/enging program (needs testing over the net)
koda
parents: 4744
diff changeset
    80
    SendIPC('H');
3ae448aebe7e implemented actions for closing/enging program (needs testing over the net)
koda
parents: 4744
diff changeset
    81
    GameState:= gsExit
3ae448aebe7e implemented actions for closing/enging program (needs testing over the net)
koda
parents: 4744
diff changeset
    82
end;
3ae448aebe7e implemented actions for closing/enging program (needs testing over the net)
koda
parents: 4744
diff changeset
    83
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    84
procedure chCheckProto(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    85
var i, c: LongInt;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    86
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    87
if isDeveloperMode then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    88
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    89
val(s, i, c);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    90
if (c <> 0) or (i = 0) then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    91
TryDo(i <= cNetProtoVersion, 'Protocol version mismatch: engine is too old', true);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    92
TryDo(i >= cNetProtoVersion, 'Protocol version mismatch: engine is too new', true)
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    93
end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    94
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    95
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    96
procedure chTeamLocal(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    97
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    98
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
    99
if not isDeveloperMode then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   100
if CurrentTeam = nil then OutError(errmsgIncorrectUse + ' "/rdriven"', true);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   101
CurrentTeam^.ExtDriven:= true
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   102
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   103
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   104
procedure chGrave(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   105
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   106
if CurrentTeam = nil then OutError(errmsgIncorrectUse + ' "/grave"', true);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   107
if s[1]='"' then Delete(s, 1, 1);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   108
if s[byte(s[0])]='"' then Delete(s, byte(s[0]), 1);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   109
CurrentTeam^.GraveName:= s
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   110
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   111
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   112
procedure chFort(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   113
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   114
if CurrentTeam = nil then OutError(errmsgIncorrectUse + ' "/fort"', true);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   115
if s[1]='"' then Delete(s, 1, 1);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   116
if s[byte(s[0])]='"' then Delete(s, byte(s[0]), 1);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   117
CurrentTeam^.FortName:= s
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   118
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   119
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   120
procedure chFlag(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   121
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   122
if CurrentTeam = nil then OutError(errmsgIncorrectUse + ' "/flag"', true);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   123
if s[1]='"' then Delete(s, 1, 1);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   124
if s[byte(s[0])]='"' then Delete(s, byte(s[0]), 1);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   125
CurrentTeam^.flag:= s
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   126
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   127
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   128
procedure chScript(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   129
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   130
if s[1]='"' then Delete(s, 1, 1);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   131
if s[byte(s[0])]='"' then Delete(s, byte(s[0]), 1);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   132
ScriptLoad(s)
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   133
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   134
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   135
procedure chSetHat(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   136
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   137
if (not isDeveloperMode) or (CurrentTeam = nil) then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   138
with CurrentTeam^ do
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   139
    begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   140
    if not CurrentHedgehog^.King then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   141
    if (s = '') or
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   142
        (((GameFlags and gfKing) <> 0) and (s = 'crown')) or
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   143
        ((Length(s) > 39) and (Copy(s,1,8) = 'Reserved') and (Copy(s,9,32) <> PlayerHash)) then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   144
        CurrentHedgehog^.Hat:= 'NoHat'
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   145
    else
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   146
        CurrentHedgehog^.Hat:= s
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   147
    end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   148
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   149
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   150
procedure chCurU_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   151
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   152
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   153
CursorMovementY:= -1;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   154
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   155
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   156
procedure chCurU_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   157
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   158
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   159
CursorMovementY:= 0;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   160
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   161
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   162
procedure chCurD_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   163
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   164
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   165
CursorMovementY:= 1;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   166
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   167
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   168
procedure chCurD_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   169
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   170
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   171
CursorMovementY:= 0;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   172
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   173
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   174
procedure chCurL_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   175
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   176
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   177
CursorMovementX:= -1;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   178
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   179
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   180
procedure chCurL_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   181
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   182
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   183
CursorMovementX:= 0;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   184
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   185
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   186
procedure chCurR_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   187
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   188
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   189
CursorMovementX:= 1;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   190
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   191
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   192
procedure chCurR_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   193
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   194
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   195
CursorMovementX:= 0;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   196
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   197
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   198
procedure chLeft_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   199
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   200
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   201
if CheckNoTeamOrHH or isPaused then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   202
if not CurrentTeam^.ExtDriven then SendIPC('L');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   203
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   204
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   205
    Message:= Message or (gmLeft and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   206
    ScriptCall('onLeft');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   207
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   208
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   209
procedure chLeft_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   210
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   211
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   212
if CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   213
if not CurrentTeam^.ExtDriven then SendIPC('l');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   214
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   215
    Message:= Message and not (gmLeft and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   216
    ScriptCall('onLeftUp');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   217
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   218
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   219
procedure chRight_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   220
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   221
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   222
if CheckNoTeamOrHH or isPaused then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   223
if not CurrentTeam^.ExtDriven then SendIPC('R');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   224
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   225
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   226
    Message:= Message or (gmRight and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   227
    ScriptCall('onRight');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   228
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   229
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   230
procedure chRight_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   231
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   232
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   233
if CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   234
if not CurrentTeam^.ExtDriven then SendIPC('r');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   235
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   236
    Message:= Message and not (gmRight and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   237
    ScriptCall('onRightUp');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   238
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   239
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   240
procedure chUp_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   241
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   242
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   243
if CheckNoTeamOrHH or isPaused then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   244
if not CurrentTeam^.ExtDriven then SendIPC('U');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   245
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   246
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   247
    Message:= Message or (gmUp and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   248
    ScriptCall('onUp');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   249
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   250
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   251
procedure chUp_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   252
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   253
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   254
if CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   255
if not CurrentTeam^.ExtDriven then SendIPC('u');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   256
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
   257
    Message:= Message and not (gmUp and InputMask);
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   258
    ScriptCall('onUpUp');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   259
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   260
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   261
procedure chDown_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   262
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   263
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   264
if CheckNoTeamOrHH or isPaused then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   265
if not CurrentTeam^.ExtDriven then SendIPC('D');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   266
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   267
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   268
    Message:= Message or (gmDown and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   269
    ScriptCall('onDown');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   270
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   271
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   272
procedure chDown_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   273
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   274
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   275
if CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   276
if not CurrentTeam^.ExtDriven then SendIPC('d');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   277
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   278
    Message:= Message and not (gmDown and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   279
    ScriptCall('onDownUp');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   280
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   281
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   282
procedure chPrecise_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   283
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   284
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   285
if CheckNoTeamOrHH or isPaused then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   286
if not CurrentTeam^.ExtDriven then SendIPC('Z');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   287
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   288
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
   289
    Message:= Message or (gmPrecise and InputMask);
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   290
    ScriptCall('onPrecise');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   291
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   292
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   293
procedure chPrecise_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   294
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   295
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   296
if CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   297
if not CurrentTeam^.ExtDriven then SendIPC('z');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   298
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
   299
    Message:= Message and not (gmPrecise and InputMask);
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   300
    ScriptCall('onPreciseUp');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   301
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   302
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   303
procedure chLJump(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   304
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   305
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   306
if CheckNoTeamOrHH or isPaused then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   307
if not CurrentTeam^.ExtDriven then SendIPC('j');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   308
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   309
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   310
    Message:= Message or (gmLJump and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   311
    ScriptCall('onLJump');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   312
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   313
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   314
procedure chHJump(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   315
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   316
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   317
if CheckNoTeamOrHH or isPaused then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   318
if not CurrentTeam^.ExtDriven then SendIPC('J');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   319
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   320
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   321
    Message:= Message or (gmHJump and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   322
    ScriptCall('onHJump');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   323
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   324
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   325
procedure chAttack_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   326
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   327
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   328
if CheckNoTeamOrHH or isPaused then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   329
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   330
with CurrentHedgehog^.Gear^ do
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   331
    begin
4900
8ad0e23e6d63 addfilelog <3 debugfile
koda
parents: 4845
diff changeset
   332
    AddFileLog('/+attack: hedgehog''s Gear^.State = '+inttostr(State));
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   333
    if ((State and gstHHDriven) <> 0) then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   334
        begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   335
        FollowGear:= CurrentHedgehog^.Gear;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   336
        if not CurrentTeam^.ExtDriven then SendIPC('A');
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   337
        Message:= Message or (gmAttack and InputMask);
5247
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   338
        ScriptCall('onAttack');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   339
        end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   340
    end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   341
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   342
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   343
procedure chAttack_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   344
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   345
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   346
if CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   347
with CurrentHedgehog^.Gear^ do
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   348
    begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   349
    if not CurrentTeam^.ExtDriven and
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   350
        ((Message and gmAttack) <> 0) then SendIPC('a');
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   351
    Message:= Message and not (gmAttack and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   352
    ScriptCall('onAttackUp');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   353
    end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   354
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   355
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   356
procedure chSwitch(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   357
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   358
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   359
if CheckNoTeamOrHH or isPaused then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   360
if not CurrentTeam^.ExtDriven then SendIPC('S');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   361
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   362
with CurrentHedgehog^.Gear^ do
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   363
    Message:= Message or (gmSwitch and InputMask);
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   364
    ScriptCall('onSwitch');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   365
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   366
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   367
procedure chNextTurn(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   368
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   369
    s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   370
    TryDo(AllInactive, '/nextturn called when not all gears are inactive', true);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   371
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   372
    if not CurrentTeam^.ExtDriven then SendIPC('N');
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   373
    AddFileLog('Doing SwitchHedgehog: time '+inttostr(GameTicks));
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   374
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   375
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   376
procedure chTimer(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   377
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   378
if (s[0] <> #1) or (s[1] < '1') or (s[1] > '5') or CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   379
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   380
if not CurrentTeam^.ExtDriven then SendIPC(s);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   381
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   382
with CurrentHedgehog^.Gear^ do
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   383
    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
   384
    Message:= Message or (gmTimer and InputMask);
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   385
    MsgParam:= byte(s[1]) - ord('0');
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   386
    ScriptCall('onTimer');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   387
    end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   388
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   389
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   390
procedure chSlot(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   391
var slot: LongWord;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   392
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   393
if (s[0] <> #1) or CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   394
slot:= byte(s[1]) - 49;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   395
if slot > cMaxSlotIndex then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   396
if not CurrentTeam^.ExtDriven then SendIPC(char(byte(s[1]) + 79));
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   397
bShowFinger:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   398
with CurrentHedgehog^.Gear^ do
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   399
    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
   400
    Message:= Message or (gmSlot and InputMask);
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   401
    MsgParam:= slot; 
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   402
    ScriptCall('onSlot');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   403
    end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   404
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   405
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   406
procedure chSetWeapon(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   407
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   408
    if (s[0] <> #1) or CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   409
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   410
    if TAmmoType(s[1]) > High(TAmmoType) then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   411
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   412
    if not CurrentTeam^.ExtDriven then SendIPC('w' + s);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   414
    with CurrentHedgehog^.Gear^ do
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   415
    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
   416
        Message:= Message or (gmWeapon and InputMask);
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   417
        MsgParam:= byte(s[1]);
5247
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   418
    ScriptCall('onSetWeapon');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   419
    end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   420
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   421
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   422
procedure chTaunt(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   423
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   424
if (s[0] <> #1) or CheckNoTeamOrHH then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   425
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   426
if TWave(s[1]) > High(TWave) then exit;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   427
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   428
if not CurrentTeam^.ExtDriven then SendIPC('t' + s);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   429
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   430
with CurrentHedgehog^.Gear^ do
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   431
    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
   432
    Message:= Message or (gmAnimate and InputMask);
4661
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   433
    MsgParam:= byte(s[1]) ; 
f5d858e4b634 Whole ton of script callbacks on commands. Poor engine.
mikade
parents: 4611
diff changeset
   434
    ScriptCall('onTaunt');
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   435
    end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   436
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   437
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   438
procedure chPut(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   439
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   440
    s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   441
    doPut(0, 0, false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   442
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   443
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   444
procedure chCapture(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   445
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   446
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   447
flagMakeCapture:= true
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   448
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   449
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   450
procedure chSetMap(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   451
begin
5352
7f57d0c7816a Fix random weapons with per-hog ammo, fix ammo store loadout number in scripting for per-clan and per-hog ammo, add an advanced script hook into parsecommand to override values, add check for empty map in chSetMap, load script earlier in game params from frontend
nemo
parents: 5247
diff changeset
   452
if isDeveloperMode and (s <> '') then
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   453
begin
5238
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5026
diff changeset
   454
UserPathz[ptMapCurrent]:= UserPathz[ptMaps] + '/' + s;
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   455
Pathz[ptMapCurrent]:= Pathz[ptMaps] + '/' + s;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   456
InitStepsFlags:= InitStepsFlags or cifMap
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   457
end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   458
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   459
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   460
procedure chSetTheme(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   461
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   462
if isDeveloperMode then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   463
begin
5238
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5026
diff changeset
   464
UserPathz[ptCurrTheme]:= UserPathz[ptThemes] + '/' + s;
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   465
Pathz[ptCurrTheme]:= Pathz[ptThemes] + '/' + s;
4611
445d382cd401 A very very basic snow implementation
nemo
parents: 4532
diff changeset
   466
Theme:= s;
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   467
InitStepsFlags:= InitStepsFlags or cifTheme
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   468
end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   469
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   470
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   471
procedure chSetSeed(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   472
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   473
if isDeveloperMode then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   474
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   475
SetRandomSeed(s);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   476
cSeed:= s;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   477
InitStepsFlags:= InitStepsFlags or cifRandomize
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   478
end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   479
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   480
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   481
procedure chAmmoMenu(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   482
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   483
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   484
if CheckNoTeamOrHH then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   485
    bShowAmmoMenu:= true
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   486
else
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   487
    begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   488
    with CurrentTeam^ do
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   489
        with Hedgehogs[CurrHedgehog] do
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   490
            begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   491
            bSelected:= false;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   492
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   493
            if bShowAmmoMenu then bShowAmmoMenu:= false
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   494
            else if ((Gear^.State and (gstAttacking or gstAttacked)) <> 0) or
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   495
                    ((MultiShootAttacks > 0) and ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NoRoundEnd) = 0)) or
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   496
                    ((Gear^.State and gstHHDriven) = 0) then else bShowAmmoMenu:= true
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   497
            end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   498
    end
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   499
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   500
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   501
procedure chVol_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   502
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   503
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   504
inc(cVolumeDelta, 3)
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   505
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   506
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   507
procedure chVol_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   508
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   509
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   510
dec(cVolumeDelta, 3)
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   511
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   512
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   513
procedure chFindhh(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   514
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   515
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   516
if CheckNoTeamOrHH or isPaused then exit;
5247
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   517
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   518
if FollowGear <> nil then
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   519
    begin
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   520
    AddCaption('Auto Camera Off', $CCCCCC, capgrpVolume);
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   521
    autoCameraOn:= false
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   522
    end
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   523
    else begin
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   524
    AddCaption('Auto Camera On', $CCCCCC, capgrpVolume);
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   525
    bShowFinger:= true;
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   526
    FollowGear:= CurrentHedgehog^.Gear;
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   527
    autoCameraOn:= true
bf6d4bc531d2 Ability to turn camera following gears off
unc0rr
parents: 5238
diff changeset
   528
    end
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   529
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   530
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   531
procedure chPause(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   532
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   533
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   534
if gameType <> gmtNet then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   535
    isPaused:= not isPaused;
5524
40b7f95d9f18 Oh, and fix cursor visibility correlations between gsConfirm state and paused state
unc0rr
parents: 5523
diff changeset
   536
40b7f95d9f18 Oh, and fix cursor visibility correlations between gsConfirm state and paused state
unc0rr
parents: 5523
diff changeset
   537
if isPaused then
40b7f95d9f18 Oh, and fix cursor visibility correlations between gsConfirm state and paused state
unc0rr
parents: 5523
diff changeset
   538
    SDL_ShowCursor(1)
40b7f95d9f18 Oh, and fix cursor visibility correlations between gsConfirm state and paused state
unc0rr
parents: 5523
diff changeset
   539
    else
40b7f95d9f18 Oh, and fix cursor visibility correlations between gsConfirm state and paused state
unc0rr
parents: 5523
diff changeset
   540
    SDL_ShowCursor(ord(GameState = gsConfirm))
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   541
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   542
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   543
procedure chRotateMask(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   544
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   545
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   546
if ((GameFlags and gfInvulnerable) = 0) then cTagsMask:= cTagsMasks[cTagsMask] else cTagsMask:= cTagsMasksNoHealth[cTagsMask];
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   547
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   548
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   549
procedure chSpeedup_p(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   550
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   551
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   552
isSpeed:= true
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   553
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   554
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   555
procedure chSpeedup_m(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   556
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   557
s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   558
isSpeed:= false
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   559
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   560
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   561
procedure chZoomIn(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   562
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   563
    s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   564
    if ZoomValue < cMinZoomLevel then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   565
        ZoomValue:= ZoomValue + cZoomDelta;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   566
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   567
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   568
procedure chZoomOut(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   569
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   570
    s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   571
    if ZoomValue > cMaxZoomLevel then
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   572
        ZoomValue:= ZoomValue - cZoomDelta;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   573
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   574
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   575
procedure chZoomReset(var s: shortstring);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   576
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   577
    s:= s; // avoid compiler hint
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   578
    ZoomValue:= cDefaultZoomLevel;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   579
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   580
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   581
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   582
procedure initModule;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   583
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
   584
//////// Begin top sorted by freq analysis not including chatmsg
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
   585
    RegisterVariable('+right'  , vtCommand, @chRight_p      , false);
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
   586
    RegisterVariable('-right'  , vtCommand, @chRight_m      , false);
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
   587
    RegisterVariable('+up'     , vtCommand, @chUp_p         , false);
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
   588
    RegisterVariable('-up'     , vtCommand, @chUp_m         , false);
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
   589
    RegisterVariable('+left'   , vtCommand, @chLeft_p       , false);
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
   590
    RegisterVariable('-left'   , vtCommand, @chLeft_m       , false);
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
   591
    RegisterVariable('+attack' , vtCommand, @chAttack_p     , false);
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
   592
    RegisterVariable('+down'   , vtCommand, @chDown_p       , false);
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
   593
    RegisterVariable('-down'   , vtCommand, @chDown_m       , false);
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
   594
    RegisterVariable('hjump'   , vtCommand, @chHJump        , false);
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
   595
    RegisterVariable('ljump'   , vtCommand, @chLJump        , false);
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
   596
    RegisterVariable('nextturn', vtCommand, @chNextTurn     , false);
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
   597
    RegisterVariable('-attack' , vtCommand, @chAttack_m     , false);
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
   598
    RegisterVariable('slot'    , vtCommand, @chSlot         , false);
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
   599
    RegisterVariable('setweap' , vtCommand, @chSetWeapon    , false);
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
   600
//////// End top by freq analysis
4531
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4528
diff changeset
   601
    RegisterVariable('gencmd'  , vtCommand, @chGenCmd       , false);
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   602
    RegisterVariable('flag'    , vtCommand, @chFlag         , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   603
    RegisterVariable('script'  , vtCommand, @chScript       , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   604
    RegisterVariable('proto'   , vtCommand, @chCheckProto   , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   605
    RegisterVariable('spectate', vtBoolean, @fastUntilLag   , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   606
    RegisterVariable('capture' , vtCommand, @chCapture      , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   607
    RegisterVariable('rotmask' , vtCommand, @chRotateMask   , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   608
    RegisterVariable('rdriven' , vtCommand, @chTeamLocal    , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   609
    RegisterVariable('map'     , vtCommand, @chSetMap       , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   610
    RegisterVariable('theme'   , vtCommand, @chSetTheme     , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   611
    RegisterVariable('seed'    , vtCommand, @chSetSeed      , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   612
    RegisterVariable('template_filter', vtLongInt, @cTemplateFilter, false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   613
    RegisterVariable('mapgen'  , vtLongInt, @cMapGen        , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   614
    RegisterVariable('maze_size',vtLongInt, @cMazeSize      , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   615
    RegisterVariable('delay'   , vtLongInt, @cInactDelay    , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   616
    RegisterVariable('ready'   , vtLongInt, @cReadyDelay    , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   617
    RegisterVariable('casefreq', vtLongInt, @cCaseFactor    , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   618
    RegisterVariable('healthprob', vtLongInt, @cHealthCaseProb, false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   619
    RegisterVariable('hcaseamount', vtLongInt, @cHealthCaseAmount, false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   620
    RegisterVariable('sd_turns', vtLongInt, @cSuddenDTurns  , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   621
    RegisterVariable('waterrise', vtLongInt, @cWaterRise    , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   622
    RegisterVariable('healthdec', vtLongInt, @cHealthDecrease, false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   623
    RegisterVariable('damagepct',vtLongInt, @cDamagePercent , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   624
    RegisterVariable('ropepct' , vtLongInt, @cRopePercent   , false);
5026
e83d4552625f percentage modifier for get away time
nikin
parents: 4976
diff changeset
   625
    RegisterVariable('getawaytime' , vtLongInt, @cGetAwayTime , false);
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   626
    RegisterVariable('minedudpct',vtLongInt,@cMineDudPercent, false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   627
    RegisterVariable('minesnum', vtLongInt, @cLandMines     , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   628
    RegisterVariable('explosives',vtLongInt,@cExplosives    , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   629
    RegisterVariable('gmflags' , vtLongInt, @GameFlags      , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   630
    RegisterVariable('turntime', vtLongInt, @cHedgehogTurnTime, false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   631
    RegisterVariable('minestime',vtLongInt, @cMinesTime     , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   632
    RegisterVariable('fort'    , vtCommand, @chFort         , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   633
    RegisterVariable('grave'   , vtCommand, @chGrave        , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   634
    RegisterVariable('hat'     , vtCommand, @chSetHat       , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   635
    RegisterVariable('quit'    , vtCommand, @chQuit         , true );
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4661
diff changeset
   636
    RegisterVariable('forcequit', vtCommand, @chForceQuit   , true );
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   637
    RegisterVariable('confirm' , vtCommand, @chConfirm      , true );
4751
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
   638
    RegisterVariable('halt',     vtCommand, @chHalt         , true );
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   639
    RegisterVariable('+speedup', vtCommand, @chSpeedup_p    , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   640
    RegisterVariable('-speedup', vtCommand, @chSpeedup_m    , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   641
    RegisterVariable('zoomin'  , vtCommand, @chZoomIn       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   642
    RegisterVariable('zoomout' , vtCommand, @chZoomOut      , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   643
    RegisterVariable('zoomreset',vtCommand, @chZoomReset    , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   644
    RegisterVariable('ammomenu', vtCommand, @chAmmoMenu     , true);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   645
    RegisterVariable('+precise', vtCommand, @chPrecise_p    , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   646
    RegisterVariable('-precise', vtCommand, @chPrecise_m    , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   647
    RegisterVariable('switch'  , vtCommand, @chSwitch       , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   648
    RegisterVariable('timer'   , vtCommand, @chTimer        , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   649
    RegisterVariable('taunt'   , vtCommand, @chTaunt        , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   650
    RegisterVariable('put'     , vtCommand, @chPut          , false);
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   651
    RegisterVariable('+volup'  , vtCommand, @chVol_p        , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   652
    RegisterVariable('-volup'  , vtCommand, @chVol_m        , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   653
    RegisterVariable('+voldown', vtCommand, @chVol_m        , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   654
    RegisterVariable('-voldown', vtCommand, @chVol_p        , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   655
    RegisterVariable('findhh'  , vtCommand, @chFindhh       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   656
    RegisterVariable('pause'   , vtCommand, @chPause        , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   657
    RegisterVariable('+cur_u'  , vtCommand, @chCurU_p       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   658
    RegisterVariable('-cur_u'  , vtCommand, @chCurU_m       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   659
    RegisterVariable('+cur_d'  , vtCommand, @chCurD_p       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   660
    RegisterVariable('-cur_d'  , vtCommand, @chCurD_m       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   661
    RegisterVariable('+cur_l'  , vtCommand, @chCurL_p       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   662
    RegisterVariable('-cur_l'  , vtCommand, @chCurL_m       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   663
    RegisterVariable('+cur_r'  , vtCommand, @chCurR_p       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   664
    RegisterVariable('-cur_r'  , vtCommand, @chCurR_m       , true );
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   665
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   666
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   667
procedure freeModule;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   668
begin
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   669
end;
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   670
46caab3a8f84 uCommandHandlers
unc0rr
parents:
diff changeset
   671
end.