hedgewars/uKeys.pas
author koda
Tue, 07 Feb 2012 01:18:03 +0100
changeset 6636 4450e746dc34
parent 6580 6155187bf599
child 6654 120e95c10532
permissions -rw-r--r--
ios game configuration page rotation gliches fix
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
     1
(*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 1051
diff changeset
     2
 * Hedgewars, a free turn based strategy game
4976
088d40d8aba2 Happy 2011 :)
koda
parents: 4850
diff changeset
     3
 * Copyright (c) 2004-2011 Andrey Korotaev <unC0Rr@gmail.com>
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
     4
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
     8
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    12
 * GNU General Public License for more details.
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    13
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    14
 * You should have received a copy of the GNU General Public License
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    15
 * along with this program; if not, write to the Free Software
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    17
 *)
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    18
2630
079ef82eac75 revamped file access and debug display
koda
parents: 2613
diff changeset
    19
{$INCLUDE "options.inc"}
079ef82eac75 revamped file access and debug display
koda
parents: 2613
diff changeset
    20
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    21
unit uKeys;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    22
interface
4363
e944cc43f7a4 Remove uMisc dependency from uRandom
unc0rr
parents: 4361
diff changeset
    23
uses SDLh, uTypes;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    24
3038
4e48c276a468 In pascal unit is a namespace
unc0rr
parents: 2948
diff changeset
    25
procedure initModule;
4e48c276a468 In pascal unit is a namespace
unc0rr
parents: 2948
diff changeset
    26
procedure freeModule;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
    27
2905
f3c79f7193a9 Engine:
smxx
parents: 2805
diff changeset
    28
function  KeyNameToCode(name: shortstring): word;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    29
procedure ProcessKbd;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    30
procedure ResetKbd;
948
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
    31
procedure FreezeEnterKey;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    32
procedure InitKbdKeyTable;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    33
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    34
procedure SetBinds(var binds: TBinds);
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    35
procedure SetDefaultBinds;
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    36
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    37
procedure ControllerInit;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    38
procedure ControllerClose;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    39
procedure ControllerAxisEvent(joy, axis: Byte; value: Integer);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    40
procedure ControllerHatEvent(joy, hat, value: Byte);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    41
procedure ControllerButtonEvent(joy, button: Byte; pressed: Boolean);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    42
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
    43
{$IFDEF IPHONEOS}
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
    44
procedure setiPhoneBinds;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
    45
{$ENDIF}
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
    46
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    47
implementation
4403
unc0rr
parents: 4377
diff changeset
    48
uses uConsole, uCommands, uMisc, uVariables, uConsts, uUtils, uDebug;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    49
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    50
var tkbd, tkbdn: TKeyboardState;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    51
    KeyNames: array [0..cKeyMaxIndex] of string[15];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
    52
2905
f3c79f7193a9 Engine:
smxx
parents: 2805
diff changeset
    53
function KeyNameToCode(name: shortstring): word;
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    54
var code: Word;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    55
begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
    56
    code:= cKeyMaxIndex;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
    57
    while (code > 0) and (KeyNames[code] <> name) do dec(code);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
    58
    KeyNameToCode:= code;
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    59
end;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    60
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    61
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    62
procedure ProcessKbd;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    63
var  i, j, k: LongInt;
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    64
     s: shortstring;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    65
     Trusted: boolean;
3221
3e6586c1ab4f koda's changelog turn
koda
parents: 3038
diff changeset
    66
{$IFNDEF IPHONEOS}pkbd: PByteArray;{$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    67
begin
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    68
hideAmmoMenu:= false;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    69
Trusted:= (CurrentTeam <> nil)
351
29bc9c36ad5f Fixed-point arithmetics in engine.
unc0rr
parents: 345
diff changeset
    70
          and (not CurrentTeam^.ExtDriven)
846
08c3f0bc766c Fix bug with handling keys while it is AI's turn
unc0rr
parents: 626
diff changeset
    71
          and (CurrentHedgehog^.BotLevel = 0);
161
d8870bbf960e - AmmoMenu
unc0rr
parents: 109
diff changeset
    72
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    73
// move cursor/camera
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    74
// TODO: Scale on screen dimensions and/or axis value (game controller)?
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
    75
movecursor(5 * CursorMovementX, 5 * CursorMovementY);
2671
7e0f88013fe8 smaller patches, one missing Sky-lowres, IMG_Init and Mix_Init (might require newer libraries), updates to SDL bindings, code cleanup, new compile flags
koda
parents: 2630
diff changeset
    76
7e0f88013fe8 smaller patches, one missing Sky-lowres, IMG_Init and Mix_Init (might require newer libraries), updates to SDL bindings, code cleanup, new compile flags
koda
parents: 2630
diff changeset
    77
k:= SDL_GetMouseState(nil, nil);
3221
3e6586c1ab4f koda's changelog turn
koda
parents: 3038
diff changeset
    78
3e6586c1ab4f koda's changelog turn
koda
parents: 3038
diff changeset
    79
{$IFDEF IPHONEOS}
3e6586c1ab4f koda's changelog turn
koda
parents: 3038
diff changeset
    80
SDL_GetKeyState(@j);
3e6586c1ab4f koda's changelog turn
koda
parents: 3038
diff changeset
    81
{$ELSE}
2671
7e0f88013fe8 smaller patches, one missing Sky-lowres, IMG_Init and Mix_Init (might require newer libraries), updates to SDL bindings, code cleanup, new compile flags
koda
parents: 2630
diff changeset
    82
pkbd:= SDL_GetKeyState(@j);
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    83
for i:= 6 to pred(j) do // first 6 will be overwritten
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
    84
    tkbdn[i]:= pkbd^[i];
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
    85
{$ENDIF}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    86
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
    87
// mouse buttons
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
    88
{$IFDEF DARWIN}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    89
tkbdn[1]:= ((k and 1) and not (tkbdn[306] or tkbdn[305]));
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    90
tkbdn[3]:= ((k and 1) and (tkbdn[306] or tkbdn[305])) or (k and 4);
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
    91
{$ELSE}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    92
tkbdn[1]:= (k and 1);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    93
tkbdn[3]:= ((k shr 2) and 1);
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
    94
{$ENDIF}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    95
tkbdn[2]:= ((k shr 1) and 1);
2328
e74f2db28b21 improved fix for right click on mac
koda
parents: 2312
diff changeset
    96
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    97
// mouse wheels
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    98
tkbdn[4]:= ord(wheelDown);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
    99
tkbdn[5]:= ord(wheelUp);
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   100
wheelUp:= false;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   101
wheelDown:= false;
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   102
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   103
{$IFDEF IPHONEOS}
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   104
setiPhoneBinds();
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   105
{$ELSE}
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   106
// Controller(s)
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   107
k:= j; // should we test k for hitting the limit? sounds rather unlikely to ever reach it
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   108
for j:= 0 to Pred(ControllerNumControllers) do
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   109
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   110
    for i:= 0 to Pred(ControllerNumAxes[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   111
        begin
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   112
        if ControllerAxes[j][i] > 20000 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   113
            tkbdn[k + 0]:= 1
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   114
        else
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   115
            tkbdn[k + 0]:= 0;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   116
        if ControllerAxes[j][i] < -20000 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   117
            tkbdn[k + 1]:= 1
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   118
        else
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   119
            tkbdn[k + 1]:= 0;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   120
        inc(k, 2);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   121
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   122
    for i:= 0 to Pred(ControllerNumHats[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   123
        begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   124
        tkbdn[k + 0]:= ControllerHats[j][i] and SDL_HAT_UP;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   125
        tkbdn[k + 1]:= ControllerHats[j][i] and SDL_HAT_RIGHT;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   126
        tkbdn[k + 2]:= ControllerHats[j][i] and SDL_HAT_DOWN;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   127
        tkbdn[k + 3]:= ControllerHats[j][i] and SDL_HAT_LEFT;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   128
        inc(k, 4);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   129
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   130
    for i:= 0 to Pred(ControllerNumButtons[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   131
        begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   132
        tkbdn[k]:= ControllerButtons[j][i];
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   133
        inc(k, 1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   134
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   135
    end;
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   136
{$ENDIF}
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   137
6216
a6186a8ba90a having ctrl+w close the engine is just mean... many WASD players think the game crashes all the time because of that - since they close it by accident again and again...
sheepluva
parents: 5100
diff changeset
   138
// ctrl/cmd + q to close engine and frontend
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   139
{$IFDEF DARWIN}
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   140
    if ((tkbdn[KeyNameToCode('left_meta')] = 1) or (tkbdn[KeyNameToCode('right_meta')] = 1)) then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   141
        {$ELSE}
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   142
    if ((tkbdn[KeyNameToCode('left_ctrl')] = 1) or (tkbdn[KeyNameToCode('right_ctrl')] = 1)) then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   143
        {$ENDIF}
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   144
    begin
4751
849740a91d36 possible fix hanging server on ctlr+w
koda
parents: 4746
diff changeset
   145
        if tkbdn[KeyNameToCode('q')] = 1 then ParseCommand ('halt', true)
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   146
    end;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   147
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   148
// now process strokes
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   149
for i:= 0 to cKeyMaxIndex do
947
4e0c3ad89483 - 't' key for entering chat message
unc0rr
parents: 883
diff changeset
   150
if CurrentBinds[i][0] <> #0 then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   151
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   152
    if (i > 3) and (tkbdn[i] <> 0) and not ((CurrentBinds[i] = 'put') or (CurrentBinds[i] = 'ammomenu') or (CurrentBinds[i] = '+cur_u') or (CurrentBinds[i] = '+cur_d') or (CurrentBinds[i] = '+cur_l') or (CurrentBinds[i] = '+cur_r')) then hideAmmoMenu:= true;
4531
4ea193b0e378 Reenable ReadyTimer using a synced message NEEDS TESTING.
nemo
parents: 4403
diff changeset
   153
    if (tkbd[i] = 0) and (tkbdn[i] <> 0) then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   154
        begin
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   155
        ParseCommand(CurrentBinds[i], Trusted);
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   156
        if (CurrentTeam <> nil) and (not CurrentTeam^.ExtDriven) and (ReadyTimeLeft > 1) then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   157
            ParseCommand('gencmd R', true)
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   158
        end
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   159
    else if (CurrentBinds[i][1] = '+') and (tkbdn[i] = 0) and (tkbd[i] <> 0) then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   160
        begin
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   161
        s:= CurrentBinds[i];
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   162
        s[1]:= '-';
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   163
        ParseCommand(s, Trusted);
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   164
        if (CurrentTeam <> nil) and (not CurrentTeam^.ExtDriven) and (ReadyTimeLeft > 1) then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   165
            ParseCommand('gencmd R', true)
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   166
        end;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   167
    tkbd[i]:= tkbdn[i]
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   168
    end
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   169
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   170
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   171
procedure ResetKbd;
4850
434cd1284204 code cleanup
koda
parents: 4845
diff changeset
   172
var j, k, t: LongInt;
434cd1284204 code cleanup
koda
parents: 4845
diff changeset
   173
{$IFNDEF IPHONEOS}
434cd1284204 code cleanup
koda
parents: 4845
diff changeset
   174
    i: LongInt;
434cd1284204 code cleanup
koda
parents: 4845
diff changeset
   175
    pkbd: PByteArray;
434cd1284204 code cleanup
koda
parents: 4845
diff changeset
   176
{$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   177
begin
2171
8208946331ba Smaxx refactor of LoadImage to use flags, iphone changes by koda (mostly use of rgba instead of rgb)
nemo
parents: 2163
diff changeset
   178
2671
7e0f88013fe8 smaller patches, one missing Sky-lowres, IMG_Init and Mix_Init (might require newer libraries), updates to SDL bindings, code cleanup, new compile flags
koda
parents: 2630
diff changeset
   179
k:= SDL_GetMouseState(nil, nil);
3221
3e6586c1ab4f koda's changelog turn
koda
parents: 3038
diff changeset
   180
{$IFNDEF IPHONEOS}pkbd:={$ENDIF}SDL_GetKeyState(@j);
2714
c85ffe57d971 update iphone frontend to the new (silly) sdl api, code cleanups for other sections
koda
parents: 2699
diff changeset
   181
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   182
TryDo(j < cKeyMaxIndex, 'SDL keys number is more than expected (' + IntToStr(j) + ')', true);
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   183
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   184
{$IFNDEF IPHONEOS}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   185
for i:= 1 to pred(j) do
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   186
    tkbdn[i]:= pkbd^[i];
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   187
{$ENDIF}
2171
8208946331ba Smaxx refactor of LoadImage to use flags, iphone changes by koda (mostly use of rgba instead of rgb)
nemo
parents: 2163
diff changeset
   188
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   189
// mouse buttons
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   190
{$IFDEF DARWIN}
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   191
tkbdn[1]:= ((k and 1) and not (tkbdn[306] or tkbdn[305]));
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   192
tkbdn[3]:= ((k and 1) and (tkbdn[306] or tkbdn[305])) or (k and 4);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   193
{$ELSE}
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   194
tkbdn[1]:= (k and 1);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   195
tkbdn[3]:= ((k shr 2) and 1);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   196
{$ENDIF}
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   197
tkbdn[2]:= ((k shr 1) and 1);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   198
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   199
// mouse wheels
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   200
tkbdn[4]:= ord(wheelDown);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   201
tkbdn[5]:= ord(wheelUp);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   202
wheelUp:= false;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   203
wheelDown:= false;
2671
7e0f88013fe8 smaller patches, one missing Sky-lowres, IMG_Init and Mix_Init (might require newer libraries), updates to SDL bindings, code cleanup, new compile flags
koda
parents: 2630
diff changeset
   204
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   205
{$IFDEF IPHONEOS}
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   206
setiPhoneBinds();
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   207
{$ELSE}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   208
// Controller(s)
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   209
k:= j; // should we test k for hitting the limit? sounds rather unlikely to ever reach it
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   210
for j:= 0 to Pred(ControllerNumControllers) do
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   211
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   212
    for i:= 0 to Pred(ControllerNumAxes[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   213
        begin
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   214
        if ControllerAxes[j][i] > 20000 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   215
            tkbdn[k + 0]:= 1
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   216
        else
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   217
            tkbdn[k + 0]:= 0;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   218
        if ControllerAxes[j][i] < -20000 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   219
            tkbdn[k + 1]:= 1
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   220
        else
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   221
            tkbdn[k + 1]:= 0;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   222
        inc(k, 2);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   223
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   224
    for i:= 0 to Pred(ControllerNumHats[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   225
        begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   226
        tkbdn[k + 0]:= ControllerHats[j][i] and SDL_HAT_UP;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   227
        tkbdn[k + 1]:= ControllerHats[j][i] and SDL_HAT_RIGHT;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   228
        tkbdn[k + 2]:= ControllerHats[j][i] and SDL_HAT_DOWN;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   229
        tkbdn[k + 3]:= ControllerHats[j][i] and SDL_HAT_LEFT;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   230
        inc(k, 4);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   231
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   232
    for i:= 0 to Pred(ControllerNumButtons[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   233
        begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   234
        tkbdn[k]:= ControllerButtons[j][i];
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   235
        inc(k, 1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   236
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   237
    end;
4744
ecc2c757d0df general uKey refactor in preparaiton of two new shortcuts
koda
parents: 4531
diff changeset
   238
{$ENDIF}
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   239
4850
434cd1284204 code cleanup
koda
parents: 4845
diff changeset
   240
// what is this final loop for?
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   241
for t:= 0 to cKeyMaxIndex do
4850
434cd1284204 code cleanup
koda
parents: 4845
diff changeset
   242
    tkbd[t]:= tkbdn[t]
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   243
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   244
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   245
procedure InitKbdKeyTable;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   246
var i, j, k, t: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   247
    s: string[15];
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   248
begin
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   249
KeyNames[1]:= 'mousel';
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   250
KeyNames[2]:= 'mousem';
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   251
KeyNames[3]:= 'mouser';
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   252
KeyNames[4]:= 'wheelup';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   253
KeyNames[5]:= 'wheeldown';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   254
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   255
for i:= 6 to cKeyMaxIndex do
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   256
    begin
4046
cfdbddc4b385 making indentation consistent (noticed while debugging)
nemo
parents: 3971
diff changeset
   257
    s:= shortstring(sdl_getkeyname(i));
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   258
    //writeln(stdout,IntToStr(i) + ': ' + s);
4046
cfdbddc4b385 making indentation consistent (noticed while debugging)
nemo
parents: 3971
diff changeset
   259
    if s = 'unknown key' then KeyNames[i]:= ''
cfdbddc4b385 making indentation consistent (noticed while debugging)
nemo
parents: 3971
diff changeset
   260
    else 
cfdbddc4b385 making indentation consistent (noticed while debugging)
nemo
parents: 3971
diff changeset
   261
        begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   262
        for t:= 1 to Length(s) do
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   263
            if s[t] = ' ' then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   264
                s[t]:= '_';
4046
cfdbddc4b385 making indentation consistent (noticed while debugging)
nemo
parents: 3971
diff changeset
   265
        KeyNames[i]:= s
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   266
        end;
4046
cfdbddc4b385 making indentation consistent (noticed while debugging)
nemo
parents: 3971
diff changeset
   267
    end;
2613
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   268
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   269
//for i:= 0 to cKeyMaxIndex do writeln(stdout,IntToStr(i) + ': ' + KeyNames[i]);
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   270
2671
7e0f88013fe8 smaller patches, one missing Sky-lowres, IMG_Init and Mix_Init (might require newer libraries), updates to SDL bindings, code cleanup, new compile flags
koda
parents: 2630
diff changeset
   271
// get the size of keyboard array
7e0f88013fe8 smaller patches, one missing Sky-lowres, IMG_Init and Mix_Init (might require newer libraries), updates to SDL bindings, code cleanup, new compile flags
koda
parents: 2630
diff changeset
   272
SDL_GetKeyState(@k);
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   273
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   274
// Controller(s)
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   275
for j:= 0 to Pred(ControllerNumControllers) do
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   276
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   277
    for i:= 0 to Pred(ControllerNumAxes[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   278
        begin
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   279
        keynames[k + 0]:= 'j' + IntToStr(j) + 'a' + IntToStr(i) + 'u';
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   280
        keynames[k + 1]:= 'j' + IntToStr(j) + 'a' + IntToStr(i) + 'd';
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   281
        inc(k, 2);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   282
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   283
    for i:= 0 to Pred(ControllerNumHats[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   284
        begin
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   285
        keynames[k + 0]:= 'j' + IntToStr(j) + 'h' + IntToStr(i) + 'u';
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   286
        keynames[k + 1]:= 'j' + IntToStr(j) + 'h' + IntToStr(i) + 'r';
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   287
        keynames[k + 2]:= 'j' + IntToStr(j) + 'h' + IntToStr(i) + 'd';
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   288
        keynames[k + 3]:= 'j' + IntToStr(j) + 'h' + IntToStr(i) + 'l';
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   289
        inc(k, 4);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   290
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   291
    for i:= 0 to Pred(ControllerNumButtons[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   292
        begin
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   293
        keynames[k]:= 'j' + IntToStr(j) + 'b' + IntToStr(i);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   294
        inc(k, 1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   295
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   296
    end;
2581
10f03732ea60 convert 24 bits images to 32 (faster to manage)
koda
parents: 2580
diff changeset
   297
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   298
DefaultBinds[ 27]:= 'quit';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   299
DefaultBinds[ 96]:= 'history';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   300
DefaultBinds[127]:= 'rotmask';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   301
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2599
diff changeset
   302
//numpad
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2599
diff changeset
   303
//DefaultBinds[265]:= '+volup';
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2599
diff changeset
   304
//DefaultBinds[256]:= '+voldown';
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2599
diff changeset
   305
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   306
DefaultBinds[KeyNameToCode('0')]:= '+volup';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   307
DefaultBinds[KeyNameToCode('9')]:= '+voldown';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   308
DefaultBinds[KeyNameToCode('c')]:= 'capture';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   309
DefaultBinds[KeyNameToCode('h')]:= 'findhh';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   310
DefaultBinds[KeyNameToCode('p')]:= 'pause';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   311
DefaultBinds[KeyNameToCode('s')]:= '+speedup';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   312
DefaultBinds[KeyNameToCode('t')]:= 'chat';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   313
DefaultBinds[KeyNameToCode('y')]:= 'confirm';
1051
dfdd5dfe97d4 Enable fullscreen switching back, now it's bound on F12
unc0rr
parents: 1022
diff changeset
   314
2407
9f413bd5150e - Fix mouse cursor bugs in net game (still has a bug near water)
unc0rr
parents: 2379
diff changeset
   315
DefaultBinds[KeyNameToCode('mousem')]:= 'zoomreset';
9f413bd5150e - Fix mouse cursor bugs in net game (still has a bug near water)
unc0rr
parents: 2379
diff changeset
   316
DefaultBinds[KeyNameToCode('wheelup')]:= 'zoomout';
9f413bd5150e - Fix mouse cursor bugs in net game (still has a bug near water)
unc0rr
parents: 2379
diff changeset
   317
DefaultBinds[KeyNameToCode('wheeldown')]:= 'zoomin';
9f413bd5150e - Fix mouse cursor bugs in net game (still has a bug near water)
unc0rr
parents: 2379
diff changeset
   318
1051
dfdd5dfe97d4 Enable fullscreen switching back, now it's bound on F12
unc0rr
parents: 1022
diff changeset
   319
DefaultBinds[KeyNameToCode('f12')]:= 'fullscr';
dfdd5dfe97d4 Enable fullscreen switching back, now it's bound on F12
unc0rr
parents: 1022
diff changeset
   320
2786
85f6425a4d74 Engine:
smxx
parents: 2754
diff changeset
   321
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   322
DefaultBinds[ 1]:= '/put';
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   323
DefaultBinds[ 3]:= 'ammomenu';
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   324
DefaultBinds[ 8]:= 'hjump';
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   325
DefaultBinds[ 9]:= 'switch';
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   326
DefaultBinds[13]:= 'ljump';
2786
85f6425a4d74 Engine:
smxx
parents: 2754
diff changeset
   327
DefaultBinds[32]:= '+attack';
85f6425a4d74 Engine:
smxx
parents: 2754
diff changeset
   328
{$IFDEF IPHONEOS}
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   329
DefaultBinds[23]:= '+up';
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   330
DefaultBinds[24]:= '+down';
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   331
DefaultBinds[25]:= '+left';
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   332
DefaultBinds[26]:= '+right';
3649
bc35f8fee587 aim now starts slow and then moves faster
koda
parents: 3598
diff changeset
   333
DefaultBinds[27]:= '+precise';
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   334
DefaultBinds[44]:= 'chat';
2805
36a8cebb91e8 new menupage ingame for common actions
koda
parents: 2786
diff changeset
   335
DefaultBinds[55]:= 'pause';
2786
85f6425a4d74 Engine:
smxx
parents: 2754
diff changeset
   336
{$ELSE}
85f6425a4d74 Engine:
smxx
parents: 2754
diff changeset
   337
DefaultBinds[KeyNameToCode('up')]:= '+up';
85f6425a4d74 Engine:
smxx
parents: 2754
diff changeset
   338
DefaultBinds[KeyNameToCode('down')]:= '+down';
85f6425a4d74 Engine:
smxx
parents: 2754
diff changeset
   339
DefaultBinds[KeyNameToCode('left')]:= '+left';
85f6425a4d74 Engine:
smxx
parents: 2754
diff changeset
   340
DefaultBinds[KeyNameToCode('right')]:= '+right';
85f6425a4d74 Engine:
smxx
parents: 2754
diff changeset
   341
DefaultBinds[KeyNameToCode('left_shift')]:= '+precise';
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   342
{$ENDIF}
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   343
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   344
for i:= 1 to 10 do DefaultBinds[KeyNameToCode('f'+IntToStr(i))]:= 'slot '+IntToStr(i);
6497
2359798a8dce Bind 1-5 in defaults. Missions really need the option to pick a team though, using default team if none supplied.
nemo
parents: 6444
diff changeset
   345
for i:= 1 to 5  do DefaultBinds[KeyNameToCode(IntToStr(i))]:= 'timer '+IntToStr(i);
4131
e89d11f6361c add F1-F10 to the default binds to fix weapon selection in trainings/missions and such
nemo
parents: 4046
diff changeset
   346
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   347
SetDefaultBinds();
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   348
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   349
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   350
procedure SetBinds(var binds: TBinds);
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   351
begin
3663
8c28abf427f5 reduce the number of keywords used and switch to BMP format for screenshots
koda
parents: 3651
diff changeset
   352
{$IFDEF IPHONEOS}
3971
5c82ee165ed5 minor stuff
koda
parents: 3697
diff changeset
   353
    binds:= binds; // avoid hint
3663
8c28abf427f5 reduce the number of keywords used and switch to BMP format for screenshots
koda
parents: 3651
diff changeset
   354
    CurrentBinds:= DefaultBinds;
8c28abf427f5 reduce the number of keywords used and switch to BMP format for screenshots
koda
parents: 3651
diff changeset
   355
{$ELSE}
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   356
    CurrentBinds:= binds;
3663
8c28abf427f5 reduce the number of keywords used and switch to BMP format for screenshots
koda
parents: 3651
diff changeset
   357
{$ENDIF}
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   358
end;
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   359
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   360
procedure SetDefaultBinds;
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   361
begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   362
    CurrentBinds:= DefaultBinds;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   363
end;
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   364
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   365
{$IFDEF IPHONEOS}
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   366
procedure setiPhoneBinds;
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   367
begin
3523
6592fbb969da fix zoom smoothness
koda
parents: 3513
diff changeset
   368
    tkbdn[ 1]:= ord(leftClick);
6592fbb969da fix zoom smoothness
koda
parents: 3513
diff changeset
   369
    tkbdn[ 2]:= ord(middleClick);
6592fbb969da fix zoom smoothness
koda
parents: 3513
diff changeset
   370
    tkbdn[ 3]:= ord(rightClick);
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   371
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   372
    tkbdn[23]:= ord(upKey);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   373
    tkbdn[24]:= ord(downKey);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   374
    tkbdn[25]:= ord(leftKey);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   375
    tkbdn[26]:= ord(rightKey);
3649
bc35f8fee587 aim now starts slow and then moves faster
koda
parents: 3598
diff changeset
   376
    tkbdn[27]:= ord(preciseKey);
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   377
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   378
    tkbdn[ 8]:= ord(backspaceKey);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   379
    tkbdn[ 9]:= ord(tabKey);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   380
    tkbdn[13]:= ord(enterKey);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   381
    tkbdn[32]:= ord(spaceKey);
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   382
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   383
    tkbdn[44]:= ord(chatAction);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   384
    tkbdn[55]:= ord(pauseAction);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   385
3523
6592fbb969da fix zoom smoothness
koda
parents: 3513
diff changeset
   386
    // set to false the keys that only need one stoke
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   387
    leftClick:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   388
    middleClick:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   389
    rightClick:= false;
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   390
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   391
    tabKey:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   392
    enterKey:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   393
    backspaceKey:= false;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   394
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   395
    chatAction:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   396
    pauseAction:= false;
2754
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   397
end;
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   398
{$ENDIF}
ad4f81fbfb76 touchinput works, invisible buttons added and initial support for chat
koda
parents: 2716
diff changeset
   399
948
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
   400
procedure FreezeEnterKey;
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
   401
begin
5100
951767beffc8 you can use esc to exit chat when input is empty
koda
parents: 4976
diff changeset
   402
    tkbd[3]:= 1;
3598
a8aa06bae895 tiy new overlay graphics
koda
parents: 3523
diff changeset
   403
    tkbd[13]:= 1;
5100
951767beffc8 you can use esc to exit chat when input is empty
koda
parents: 4976
diff changeset
   404
    tkbd[27]:= 1;
3598
a8aa06bae895 tiy new overlay graphics
koda
parents: 3523
diff changeset
   405
    tkbd[271]:= 1;
948
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
   406
end;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   407
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   408
var Controller: array [0..5] of PSDL_Joystick;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   409
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   410
procedure ControllerInit;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   411
var i, j: Integer;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   412
begin
3663
8c28abf427f5 reduce the number of keywords used and switch to BMP format for screenshots
koda
parents: 3651
diff changeset
   413
ControllerEnabled:= 0;
8c28abf427f5 reduce the number of keywords used and switch to BMP format for screenshots
koda
parents: 3651
diff changeset
   414
{$IFDEF IPHONEOS}
8c28abf427f5 reduce the number of keywords used and switch to BMP format for screenshots
koda
parents: 3651
diff changeset
   415
exit; // joystick subsystem disabled on iPhone
3513
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3493
diff changeset
   416
{$ENDIF}
2674
2fce032f2f95 lupdate + Palewolf's updated spanish translation + other patches of mine
koda
parents: 2671
diff changeset
   417
3663
8c28abf427f5 reduce the number of keywords used and switch to BMP format for screenshots
koda
parents: 3651
diff changeset
   418
SDL_InitSubSystem(SDL_INIT_JOYSTICK);
2674
2fce032f2f95 lupdate + Palewolf's updated spanish translation + other patches of mine
koda
parents: 2671
diff changeset
   419
ControllerNumControllers:= SDL_NumJoysticks();
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   420
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   421
if ControllerNumControllers > 6 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   422
    ControllerNumControllers:= 6;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   423
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   424
WriteLnToConsole('Number of game controllers: ' + IntToStr(ControllerNumControllers));
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   425
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   426
if ControllerNumControllers > 0 then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   427
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   428
    for j:= 0 to pred(ControllerNumControllers) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   429
        begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   430
        WriteLnToConsole('Using game controller: ' + SDL_JoystickName(j));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   431
        Controller[j]:= SDL_JoystickOpen(j);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   432
        if Controller[j] = nil then
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   433
            WriteLnToConsole('* Failed to open game controller!')
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   434
        else
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   435
            begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   436
            ControllerNumAxes[j]:= SDL_JoystickNumAxes(Controller[j]);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   437
            //ControllerNumBalls[j]:= SDL_JoystickNumBalls(Controller[j]);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   438
            ControllerNumHats[j]:= SDL_JoystickNumHats(Controller[j]);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   439
            ControllerNumButtons[j]:= SDL_JoystickNumButtons(Controller[j]);
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   440
            WriteLnToConsole('* Number of axes: ' + IntToStr(ControllerNumAxes[j]));
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   441
            //WriteLnToConsole('* Number of balls: ' + IntToStr(ControllerNumBalls[j]));
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   442
            WriteLnToConsole('* Number of hats: ' + IntToStr(ControllerNumHats[j]));
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
   443
            WriteLnToConsole('* Number of buttons: ' + IntToStr(ControllerNumButtons[j]));
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   444
            ControllerEnabled:= 1;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   445
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   446
            if ControllerNumAxes[j] > 20 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   447
                ControllerNumAxes[j]:= 20;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   448
            //if ControllerNumBalls[j] > 20 then ControllerNumBalls[j]:= 20;
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   449
            
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   450
            if ControllerNumHats[j] > 20 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   451
                ControllerNumHats[j]:= 20;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   452
                
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   453
            if ControllerNumButtons[j] > 20 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   454
                ControllerNumButtons[j]:= 20;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   455
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   456
            // reset all buttons/axes
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   457
            for i:= 0 to pred(ControllerNumAxes[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   458
                ControllerAxes[j][i]:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   459
            (*for i:= 0 to pred(ControllerNumBalls[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   460
                begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   461
                ControllerBalls[j][i][0]:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   462
                ControllerBalls[j][i][1]:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   463
                end;*)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   464
            for i:= 0 to pred(ControllerNumHats[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   465
                ControllerHats[j][i]:= SDL_HAT_CENTERED;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   466
            for i:= 0 to pred(ControllerNumButtons[j]) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   467
                ControllerButtons[j][i]:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   468
            end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   469
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   470
    // enable event generation/controller updating
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   471
    SDL_JoystickEventState(1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   472
    end
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   473
else
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   474
    WriteLnToConsole('Not using any game controller');
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   475
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   476
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   477
procedure ControllerClose;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   478
var j: Integer;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   479
begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   480
    if ControllerEnabled > 0 then
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   481
        for j:= 0 to pred(ControllerNumControllers) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   482
            SDL_JoystickClose(Controller[j]);
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   483
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   484
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   485
procedure ControllerAxisEvent(joy, axis: Byte; value: Integer);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   486
begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   487
    ControllerAxes[joy][axis]:= value;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   488
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   489
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   490
procedure ControllerHatEvent(joy, hat, value: Byte);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   491
begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   492
    ControllerHats[joy][hat]:= value;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   493
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   494
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   495
procedure ControllerButtonEvent(joy, button: Byte; pressed: Boolean);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   496
begin
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   497
    if pressed then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   498
        ControllerButtons[joy][button]:= 1
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   499
    else
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6497
diff changeset
   500
        ControllerButtons[joy][button]:= 0;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   501
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   502
3038
4e48c276a468 In pascal unit is a namespace
unc0rr
parents: 2948
diff changeset
   503
procedure initModule;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   504
begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   505
    wheelUp:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   506
    wheelDown:= false;
3493
2adbae321127 fix iphone version for map preview
koda
parents: 3407
diff changeset
   507
{$IFDEF HWLIBRARY}
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   508
    // this function is called by HW_allKeysUp so be careful
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3663
diff changeset
   509
3347
5d0ac8197eb7 camera panning ftw
koda
parents: 3221
diff changeset
   510
    // mouse emulation
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   511
    leftClick:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   512
    middleClick:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   513
    rightClick:= false;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   514
3347
5d0ac8197eb7 camera panning ftw
koda
parents: 3221
diff changeset
   515
    // arrow key emulation
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   516
    upKey:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   517
    downKey:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   518
    rightKey:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   519
    leftKey:= false;
3649
bc35f8fee587 aim now starts slow and then moves faster
koda
parents: 3598
diff changeset
   520
    preciseKey:= false;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   521
3347
5d0ac8197eb7 camera panning ftw
koda
parents: 3221
diff changeset
   522
    // action key emulation
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   523
    backspaceKey:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   524
    spaceKey:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   525
    enterKey:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   526
    tabKey:= false;
3347
5d0ac8197eb7 camera panning ftw
koda
parents: 3221
diff changeset
   527
5d0ac8197eb7 camera panning ftw
koda
parents: 3221
diff changeset
   528
    // other key emulation
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   529
    chatAction:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2905
diff changeset
   530
    pauseAction:= false;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   531
{$ENDIF}
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   532
end;
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   533
3038
4e48c276a468 In pascal unit is a namespace
unc0rr
parents: 2948
diff changeset
   534
procedure freeModule;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   535
begin
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   536
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2714
diff changeset
   537
end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   538
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   539
end.