hedgewars/uKeys.pas
author koda
Thu, 07 Jan 2010 22:49:25 +0000
changeset 2683 bad2a30d5d6c
parent 2682 d4c395f25db2
child 2690 8e83c7e31720
permissions -rw-r--r--
touch input: reset zoom, attack button
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
883
07a568ba44e0 Update copyright info in source files headers
unc0rr
parents: 846
diff changeset
     3
 * Copyright (c) 2004-2008 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"}
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    20
{$IFDEF IPHONEOS} {$MODE OBJFPC} {$ENDIF}
2682
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
    21
// TODO: insert the above line in options.inc
2630
079ef82eac75 revamped file access and debug display
koda
parents: 2613
diff changeset
    22
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    23
unit uKeys;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    24
interface
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    25
uses uConsts, SDLh;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    26
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    27
type TBinds = array[0..cKeyMaxIndex] of shortstring;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
    28
type TKeyboardState = array[0..cKeyMaxIndex] of Byte;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    29
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
    30
function  KeyNameToCode(name: string): word;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    31
procedure ProcessKbd;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    32
procedure ResetKbd;
948
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
    33
procedure FreezeEnterKey;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    34
procedure InitKbdKeyTable;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    35
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    36
procedure SetBinds(var binds: TBinds);
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    37
procedure SetDefaultBinds;
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    38
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    39
procedure ControllerInit;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    40
procedure ControllerClose;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    41
procedure ControllerAxisEvent(joy, axis: Byte; value: Integer);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    42
procedure ControllerHatEvent(joy, hat, value: Byte);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    43
procedure ControllerButtonEvent(joy, button: Byte; pressed: Boolean);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    44
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    45
{$IFDEF IPHONEOS}
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    46
procedure HW_click; cdecl; export;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    47
procedure HW_zoomIn; cdecl; export;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    48
procedure HW_zoomOut; cdecl; export;
2683
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
    49
procedure HW_zoomReset; cdecl; export;
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    50
procedure HW_ammoMenu; cdecl; export;
2682
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
    51
procedure HW_allKeysUp; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
    52
procedure HW_walkLeft; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
    53
procedure HW_walkRight; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
    54
procedure HW_aimUp; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
    55
procedure HW_aimDown; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
    56
procedure HW_shoot; cdecl; export;
2683
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
    57
procedure HW_whereIsHog; cdecl; export;
2682
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
    58
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    59
{$ENDIF}
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    60
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    61
var	hideAmmoMenu: boolean;
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
    62
	wheelUp: boolean = false;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
    63
	wheelDown: boolean = false;
2586
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2581
diff changeset
    64
{$IFDEF TOUCHINPUT}
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    65
	leftClick: boolean = false;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    66
	middleClick: boolean = false;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
    67
	rightClick: boolean = false;
161
d8870bbf960e - AmmoMenu
unc0rr
parents: 109
diff changeset
    68
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    69
	upKey: boolean = false;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    70
	downKey: boolean = false;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    71
	rightKey: boolean = false;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    72
	leftKey: boolean = false;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
    73
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    74
	backspaceKey: boolean = false;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    75
	spaceKey: boolean = false;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    76
	enterKey: boolean = false;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    77
	tabKey: boolean = false;
2580
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
    78
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    79
	isAttacking: boolean = false;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    80
	isWalking: boolean = false;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    81
{$ENDIF}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    82
{$IFDEF IPHONEOS}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    83
	theJoystick: PSDL_Joystick;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
    84
{$ENDIF}
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    85
	ControllerNumControllers: Integer;
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    86
	ControllerEnabled: Integer;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    87
	ControllerNumAxes: array[0..5] of Integer;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    88
	//ControllerNumBalls: array[0..5] of Integer;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    89
	ControllerNumHats: array[0..5] of Integer;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    90
	ControllerNumButtons: array[0..5] of Integer;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    91
	ControllerAxes: array[0..5] of array[0..19] of Integer;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    92
	//ControllerBalls: array[0..5] of array[0..19] of array[0..1] of Integer;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    93
	ControllerHats: array[0..5] of array[0..19] of Byte;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    94
	ControllerButtons: array[0..5] of array[0..19] of Byte;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
    95
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    96
implementation
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    97
uses uTeams, uConsole, uMisc, uStore;
109
ab0340f580c2 - Initialize translations earlier
unc0rr
parents: 42
diff changeset
    98
const KeyNumber = 1024;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
    99
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   100
var tkbd, tkbdn: TKeyboardState;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   101
    KeyNames: array [0..cKeyMaxIndex] of string[15];
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   102
    DefaultBinds, CurrentBinds: TBinds;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   103
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   104
{$IFDEF IPHONEOS}
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   105
// these are called by the touch functions present in SDL_uikitview.m
2682
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   106
// they emulate user interaction from mouse or keyboard
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   107
procedure HW_click; cdecl; export;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   108
begin
2682
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   109
	WriteLnToConsole('HW - left click');
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   110
	leftClick:= true;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   111
	exit
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   112
end;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   113
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   114
procedure HW_zoomIn; cdecl; export;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   115
begin
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   116
	WriteLnToConsole('HW - zooming in');
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   117
	wheelUp:= true;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   118
	exit
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   119
end;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   120
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   121
procedure HW_zoomOut; cdecl; export;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   122
begin
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   123
	WriteLnToConsole('HW - zooming out');
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   124
	wheelDown:= true;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   125
	exit
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   126
end;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   127
2683
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   128
procedure HW_zoomReset; cdecl; export;
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   129
begin
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   130
	WriteLnToConsole('HW - reset zoom');
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   131
	middleClick:= true;
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   132
	exit
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   133
end;
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   134
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   135
procedure HW_ammoMenu; cdecl; export;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   136
begin
2682
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   137
	WriteLnToConsole('HW - right click');
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   138
	rightClick:= true;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   139
	exit
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   140
end;
2682
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   141
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   142
procedure HW_allKeysUp; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   143
begin
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   144
	WriteLnToConsole('HW - resetting keyboard');
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   145
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   146
	upKey:= false;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   147
	downKey:= false;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   148
	leftKey:= false;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   149
	rightKey:= false;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   150
	spaceKey:= false;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   151
	exit
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   152
end;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   153
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   154
procedure HW_walkLeft; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   155
begin
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   156
	WriteLnToConsole('HW - walking left');
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   157
	leftKey:= true;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   158
	exit
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   159
end;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   160
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   161
procedure HW_walkRight; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   162
begin
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   163
	WriteLnToConsole('HW - walking right');
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   164
	rightKey:= true;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   165
	exit
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   166
end;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   167
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   168
procedure HW_aimUp; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   169
begin
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   170
	WriteLnToConsole('HW - aiming upwards');
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   171
	upKey:= true;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   172
	exit
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   173
end;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   174
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   175
procedure HW_aimDown; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   176
begin
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   177
	WriteLnToConsole('HW - aiming downwards');
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   178
	downKey:= true;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   179
	exit
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   180
end;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   181
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   182
procedure HW_shoot; cdecl; export;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   183
begin
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   184
	WriteLnToConsole('HW - shooting');
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   185
	spaceKey:= true;
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   186
	exit
d4c395f25db2 additional modifications for touch input
koda
parents: 2678
diff changeset
   187
end;
2683
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   188
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   189
procedure HW_whereIsHog; cdecl; export;
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   190
var Xcoord, Ycoord: LongInt;
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   191
begin
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   192
	//Xcoord:= Gear^.dX + WorldDx;
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   193
	WriteLnToConsole('HW - hog is at x: ' + ' y:');
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   194
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   195
	exit
bad2a30d5d6c touch input: reset zoom, attack button
koda
parents: 2682
diff changeset
   196
end;
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   197
{$ENDIF}
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   198
	
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   199
function KeyNameToCode(name: string): word;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   200
var code: Word;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   201
begin
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   202
	code:= cKeyMaxIndex;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   203
	while (code > 0) and (KeyNames[code] <> name) do dec(code);
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   204
	KeyNameToCode:= code;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   205
end;
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   206
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   207
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   208
procedure ProcessKbd;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   209
var  i, j, k: LongInt;
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   210
     s: shortstring;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   211
     pkbd: PByteArray;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   212
     Trusted: boolean;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   213
begin
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   214
hideAmmoMenu:= false;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   215
Trusted:= (CurrentTeam <> nil)
351
29bc9c36ad5f Fixed-point arithmetics in engine.
unc0rr
parents: 345
diff changeset
   216
          and (not CurrentTeam^.ExtDriven)
846
08c3f0bc766c Fix bug with handling keys while it is AI's turn
unc0rr
parents: 626
diff changeset
   217
          and (CurrentHedgehog^.BotLevel = 0);
161
d8870bbf960e - AmmoMenu
unc0rr
parents: 109
diff changeset
   218
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   219
// move cursor/camera
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   220
// TODO: Scale on screen dimensions and/or axis value (game controller)?
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   221
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
   222
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
   223
k:= SDL_GetMouseState(nil, nil);
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
   224
{$IFDEF SDL13}
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
   225
pkbd:= SDL_GetKeyboardState(@j);
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
   226
{$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
   227
pkbd:= SDL_GetKeyState(@j);
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
   228
{$ENDIF}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   229
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   230
{$IFNDEF IPHONEOS}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   231
for i:= 6 to pred(j) do // first 6 will be overwritten
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   232
	tkbdn[i]:= pkbd^[i];
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   233
{$ENDIF}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   234
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   235
// mouse buttons
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
   236
{$IFDEF DARWIN}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   237
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
   238
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
   239
{$ELSE}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   240
tkbdn[1]:= (k and 1);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   241
tkbdn[3]:= ((k shr 2) and 1);
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
   242
{$ENDIF}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   243
tkbdn[2]:= ((k shr 1) and 1);
2328
e74f2db28b21 improved fix for right click on mac
koda
parents: 2312
diff changeset
   244
2678
334016e8d895 injection of custom code in SDL for iPhone in order to implement our frontend
koda
parents: 2674
diff changeset
   245
// mouse wheels
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   246
tkbdn[4]:= ord(wheelDown);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   247
tkbdn[5]:= ord(wheelUp);
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   248
wheelUp:= false;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   249
wheelDown:= false;
2586
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2581
diff changeset
   250
{$IFDEF TOUCHINPUT}
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   251
tkbdn[1]:= ord(leftClick);
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   252
tkbdn[2]:= ord(middleClick);
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   253
tkbdn[3]:= ord(rightClick);
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   254
leftClick:= false;
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   255
middleClick:= false;
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   256
rightClick:= false;
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   257
2580
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   258
tkbdn[23]:= ord(upKey);
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   259
tkbdn[24]:= ord(downKey);
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   260
tkbdn[25]:= ord(leftKey);
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   261
tkbdn[26]:= ord(rightKey);
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   262
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   263
tkbdn[ 8]:= ord(backspaceKey);
2590
e7e87e3c67db touch control completely revamped
koda
parents: 2586
diff changeset
   264
tkbdn[ 9]:= ord(tabKey);
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   265
tkbdn[13]:= ord(enterKey);
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   266
tkbdn[32]:= ord(spaceKey);
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   267
2590
e7e87e3c67db touch control completely revamped
koda
parents: 2586
diff changeset
   268
tabKey:= false;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   269
enterKey:= false;
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   270
backspaceKey:= false;
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   271
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   272
{$ENDIF}
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
   273
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   274
// Controller(s)
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   275
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
   276
for j:= 0 to Pred(ControllerNumControllers) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   277
	begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   278
	for i:= 0 to Pred(ControllerNumAxes[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   279
		begin
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   280
		if ControllerAxes[j][i] > 20000 then tkbdn[k + 0]:= 1 else tkbdn[k + 0]:= 0;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   281
		if ControllerAxes[j][i] < -20000 then tkbdn[k + 1]:= 1 else tkbdn[k + 1]:= 0;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   282
		inc(k, 2);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   283
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   284
	for i:= 0 to Pred(ControllerNumHats[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   285
		begin
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   286
		tkbdn[k + 0]:= ControllerHats[j][i] and SDL_HAT_UP;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   287
		tkbdn[k + 1]:= ControllerHats[j][i] and SDL_HAT_RIGHT;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   288
		tkbdn[k + 2]:= ControllerHats[j][i] and SDL_HAT_DOWN;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   289
		tkbdn[k + 3]:= ControllerHats[j][i] and SDL_HAT_LEFT;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   290
		inc(k, 4);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   291
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   292
	for i:= 0 to Pred(ControllerNumButtons[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   293
		begin
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   294
		tkbdn[k]:= ControllerButtons[j][i];
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   295
		inc(k, 1);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   296
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   297
	end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   298
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   299
// now process strokes
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   300
for i:= 0 to cKeyMaxIndex do
947
4e0c3ad89483 - 't' key for entering chat message
unc0rr
parents: 883
diff changeset
   301
if CurrentBinds[i][0] <> #0 then
4e0c3ad89483 - 't' key for entering chat message
unc0rr
parents: 883
diff changeset
   302
	begin
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   303
	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;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   304
	if (tkbd[i] = 0) and (tkbdn[i] <> 0) then ParseCommand(CurrentBinds[i], Trusted)
947
4e0c3ad89483 - 't' key for entering chat message
unc0rr
parents: 883
diff changeset
   305
	else if (CurrentBinds[i][1] = '+')
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   306
			and (tkbdn[i] = 0)
948
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
   307
			and (tkbd[i] <> 0) then
947
4e0c3ad89483 - 't' key for entering chat message
unc0rr
parents: 883
diff changeset
   308
			begin
4e0c3ad89483 - 't' key for entering chat message
unc0rr
parents: 883
diff changeset
   309
			s:= CurrentBinds[i];
4e0c3ad89483 - 't' key for entering chat message
unc0rr
parents: 883
diff changeset
   310
			s[1]:= '-';
4e0c3ad89483 - 't' key for entering chat message
unc0rr
parents: 883
diff changeset
   311
			ParseCommand(s, Trusted)
4e0c3ad89483 - 't' key for entering chat message
unc0rr
parents: 883
diff changeset
   312
			end;
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   313
	tkbd[i]:= tkbdn[i]
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   314
	end
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   315
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   316
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   317
procedure ResetKbd;
2590
e7e87e3c67db touch control completely revamped
koda
parents: 2586
diff changeset
   318
var i, j, k, t: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   319
    pkbd: PByteArray;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   320
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
   321
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
   322
k:= SDL_GetMouseState(nil, nil);
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
   323
{$IFDEF SDL13}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   324
pkbd:= SDL_GetKeyboardState(@j);
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
   325
{$ELSE}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   326
pkbd:= SDL_GetKeyState(@j);
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2008
diff changeset
   327
{$ENDIF}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   328
TryDo(j < cKeyMaxIndex, 'SDL keys number is more than expected (' + inttostr(j) + ')', true);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   329
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   330
{$IFNDEF IPHONEOS}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   331
for i:= 1 to pred(j) do
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   332
	tkbdn[i]:= pkbd^[i];
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   333
{$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
   334
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   335
// mouse buttons
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   336
{$IFDEF DARWIN}
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   337
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
   338
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
   339
{$ELSE}
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   340
tkbdn[1]:= (k and 1);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   341
tkbdn[3]:= ((k shr 2) and 1);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   342
{$ENDIF}
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   343
tkbdn[2]:= ((k shr 1) and 1);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   344
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   345
// mouse wheels (see event loop in project file)
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   346
tkbdn[4]:= ord(wheelDown);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   347
tkbdn[5]:= ord(wheelUp);
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   348
wheelUp:= false;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   349
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
   350
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   351
{$IFDEF IPHONEOS}
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   352
tkbdn[1]:= ord(leftClick);
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   353
tkbdn[2]:= ord(middleClick);
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   354
tkbdn[3]:= ord(rightClick);
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   355
leftClick:= false;
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   356
middleClick:= false;
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   357
rightClick:= false;
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   358
2580
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   359
tkbdn[23]:= ord(upKey);
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   360
tkbdn[24]:= ord(downKey);
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   361
tkbdn[25]:= ord(leftKey);
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   362
tkbdn[26]:= ord(rightKey);
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   363
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   364
tkbdn[ 8]:= ord(backspaceKey);
2590
e7e87e3c67db touch control completely revamped
koda
parents: 2586
diff changeset
   365
tkbdn[ 9]:= ord(tabKey);
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   366
tkbdn[13]:= ord(enterKey);
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   367
tkbdn[32]:= ord(spaceKey);
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   368
2590
e7e87e3c67db touch control completely revamped
koda
parents: 2586
diff changeset
   369
tabKey:= false;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   370
enterKey:= false;
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   371
backspaceKey:= false;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   372
{$ENDIF}
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   373
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   374
// Controller(s)
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   375
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
   376
for j:= 0 to Pred(ControllerNumControllers) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   377
	begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   378
	for i:= 0 to Pred(ControllerNumAxes[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   379
		begin
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   380
		if ControllerAxes[j][i] > 20000 then tkbdn[k + 0]:= 1 else tkbdn[k + 0]:= 0;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   381
		if ControllerAxes[j][i] < -20000 then tkbdn[k + 1]:= 1 else tkbdn[k + 1]:= 0;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   382
		inc(k, 2);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   383
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   384
	for i:= 0 to Pred(ControllerNumHats[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   385
		begin
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   386
		tkbdn[k + 0]:= ControllerHats[j][i] and SDL_HAT_UP;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   387
		tkbdn[k + 1]:= ControllerHats[j][i] and SDL_HAT_RIGHT;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   388
		tkbdn[k + 2]:= ControllerHats[j][i] and SDL_HAT_DOWN;
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   389
		tkbdn[k + 3]:= ControllerHats[j][i] and SDL_HAT_LEFT;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   390
		inc(k, 4);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   391
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   392
	for i:= 0 to Pred(ControllerNumButtons[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   393
		begin
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   394
		tkbdn[k]:= ControllerButtons[j][i];
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   395
		inc(k, 1);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   396
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   397
	end;
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   398
	
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   399
for t:= 0 to cKeyMaxIndex do
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   400
    tkbd[i]:= tkbdn[i]
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   401
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   402
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   403
procedure InitKbdKeyTable;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   404
var i, j, k, t: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   405
    s: string[15];
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   406
begin
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   407
KeyNames[1]:= 'mousel';
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   408
KeyNames[2]:= 'mousem';
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   409
KeyNames[3]:= 'mouser';
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   410
KeyNames[4]:= 'wheelup';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   411
KeyNames[5]:= 'wheeldown';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   412
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   413
for i:= 6 to cKeyMaxIndex do
2613
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   414
	begin
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   415
    	s:= string(sdl_getkeyname(i));
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   416
	//writeln(stdout,inttostr(i) + ': ' + s);
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   417
    	if s = 'unknown key' then KeyNames[i]:= ''
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   418
       	else begin
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   419
		for t:= 1 to Length(s) do
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   420
			if s[t] = ' ' then s[t]:= '_';
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   421
       		KeyNames[i]:= s
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   422
       	end;
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   423
end;
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   424
e873f4bfed09 fix keybindings in PPC
koda
parents: 2606
diff changeset
   425
//for i:= 0 to cKeyMaxIndex do writeln(stdout,inttostr(i) + ': ' + KeyNames[i]);
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   426
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
   427
// get the size of keyboard array
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   428
{$IFDEF SDL13}
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
   429
SDL_GetKeyboardState(@k);
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   430
{$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
   431
SDL_GetKeyState(@k);
2436
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   432
{$ENDIF}
246ef6271470 Smaxx fix to overwriting private sdl's memory
unc0rr
parents: 2428
diff changeset
   433
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   434
// Controller(s)
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   435
for j:= 0 to Pred(ControllerNumControllers) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   436
	begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   437
	for i:= 0 to Pred(ControllerNumAxes[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   438
		begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   439
		keynames[k + 0]:= 'j' + inttostr(j) + 'a' + inttostr(i) + 'u';
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   440
		keynames[k + 1]:= 'j' + inttostr(j) + 'a' + inttostr(i) + 'd';
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   441
		inc(k, 2);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   442
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   443
	for i:= 0 to Pred(ControllerNumHats[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   444
		begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   445
		keynames[k + 0]:= 'j' + inttostr(j) + 'h' + inttostr(i) + 'u';
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   446
		keynames[k + 1]:= 'j' + inttostr(j) + 'h' + inttostr(i) + 'r';
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   447
		keynames[k + 2]:= 'j' + inttostr(j) + 'h' + inttostr(i) + 'd';
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   448
		keynames[k + 3]:= 'j' + inttostr(j) + 'h' + inttostr(i) + 'l';
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   449
		inc(k, 4);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   450
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   451
	for i:= 0 to Pred(ControllerNumButtons[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   452
		begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   453
		keynames[k]:= 'j' + inttostr(j) + 'b' + inttostr(i);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   454
		inc(k, 1);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   455
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   456
	end;
2581
10f03732ea60 convert 24 bits images to 32 (faster to manage)
koda
parents: 2580
diff changeset
   457
2586
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2581
diff changeset
   458
{$IFDEF TOUCHINPUT}
2580
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   459
DefaultBinds[  1]:= '/put';
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   460
DefaultBinds[  3]:= 'ammomenu';
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   461
DefaultBinds[  8]:= 'hjump';
2590
e7e87e3c67db touch control completely revamped
koda
parents: 2586
diff changeset
   462
DefaultBinds[  9]:= 'switch';
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   463
DefaultBinds[ 13]:= 'ljump';
2580
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   464
DefaultBinds[ 23]:= '+up';
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   465
DefaultBinds[ 24]:= '+down';
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   466
DefaultBinds[ 25]:= '+left';
aeccc8f51d3f completes touch input/control (problems with moving camera)
koda
parents: 2579
diff changeset
   467
DefaultBinds[ 26]:= '+right';
2590
e7e87e3c67db touch control completely revamped
koda
parents: 2586
diff changeset
   468
DefaultBinds[ 32]:= '+attack';
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2567
diff changeset
   469
{$ENDIF}
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   470
	
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   471
DefaultBinds[ 27]:= 'quit';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   472
DefaultBinds[ 96]:= 'history';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   473
DefaultBinds[127]:= 'rotmask';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   474
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2599
diff changeset
   475
//numpad
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2599
diff changeset
   476
//DefaultBinds[265]:= '+volup';
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2599
diff changeset
   477
//DefaultBinds[256]:= '+voldown';
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2599
diff changeset
   478
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   479
DefaultBinds[KeyNameToCode('0')]:= '+volup';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   480
DefaultBinds[KeyNameToCode('9')]:= '+voldown';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   481
DefaultBinds[KeyNameToCode('c')]:= 'capture';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   482
DefaultBinds[KeyNameToCode('h')]:= 'findhh';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   483
DefaultBinds[KeyNameToCode('p')]:= 'pause';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   484
DefaultBinds[KeyNameToCode('s')]:= '+speedup';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   485
DefaultBinds[KeyNameToCode('t')]:= 'chat';
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2328
diff changeset
   486
DefaultBinds[KeyNameToCode('y')]:= 'confirm';
1051
dfdd5dfe97d4 Enable fullscreen switching back, now it's bound on F12
unc0rr
parents: 1022
diff changeset
   487
2407
9f413bd5150e - Fix mouse cursor bugs in net game (still has a bug near water)
unc0rr
parents: 2379
diff changeset
   488
DefaultBinds[KeyNameToCode('mousem')]:= 'zoomreset';
9f413bd5150e - Fix mouse cursor bugs in net game (still has a bug near water)
unc0rr
parents: 2379
diff changeset
   489
DefaultBinds[KeyNameToCode('wheelup')]:= 'zoomout';
9f413bd5150e - Fix mouse cursor bugs in net game (still has a bug near water)
unc0rr
parents: 2379
diff changeset
   490
DefaultBinds[KeyNameToCode('wheeldown')]:= 'zoomin';
9f413bd5150e - Fix mouse cursor bugs in net game (still has a bug near water)
unc0rr
parents: 2379
diff changeset
   491
1051
dfdd5dfe97d4 Enable fullscreen switching back, now it's bound on F12
unc0rr
parents: 1022
diff changeset
   492
DefaultBinds[KeyNameToCode('f12')]:= 'fullscr';
dfdd5dfe97d4 Enable fullscreen switching back, now it's bound on F12
unc0rr
parents: 1022
diff changeset
   493
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   494
SetDefaultBinds
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   495
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   496
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   497
procedure SetBinds(var binds: TBinds);
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   498
begin
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2599
diff changeset
   499
CurrentBinds:= binds;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   500
end;
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   501
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   502
procedure SetDefaultBinds;
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   503
begin
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   504
CurrentBinds:= DefaultBinds
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   505
end;
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   506
948
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
   507
procedure FreezeEnterKey;
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
   508
begin
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
   509
tkbd[13]:= 1;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2438
diff changeset
   510
tkbd[271]:= 1;
948
5d49a92c240a Fix chat behavior
unc0rr
parents: 947
diff changeset
   511
end;
167
805fa9a27e9e "Trusted" binds
unc0rr
parents: 161
diff changeset
   512
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   513
var Controller: array [0..5] of PSDL_Joystick;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   514
	
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   515
procedure ControllerInit;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   516
var i, j: Integer;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   517
begin
2674
2fce032f2f95 lupdate + Palewolf's updated spanish translation + other patches of mine
koda
parents: 2671
diff changeset
   518
SDL_InitSubSystem(SDL_INIT_JOYSTICK);
2fce032f2f95 lupdate + Palewolf's updated spanish translation + other patches of mine
koda
parents: 2671
diff changeset
   519
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   520
ControllerEnabled:= 0;
2674
2fce032f2f95 lupdate + Palewolf's updated spanish translation + other patches of mine
koda
parents: 2671
diff changeset
   521
ControllerNumControllers:= SDL_NumJoysticks();
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   522
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   523
if ControllerNumControllers > 6 then ControllerNumControllers:= 6;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   524
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   525
WriteLnToConsole('Number of game controllers: ' + inttostr(ControllerNumControllers));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   526
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   527
if ControllerNumControllers > 0 then
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   528
	begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   529
	for j:= 0 to pred(ControllerNumControllers) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   530
		begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   531
		WriteLnToConsole('Using game controller: ' + SDL_JoystickName(j));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   532
		Controller[j]:= SDL_JoystickOpen(j);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   533
		if Controller[j] = nil then
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   534
			WriteLnToConsole('* Failed to open game controller!')
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   535
		else
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   536
			begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   537
			ControllerNumAxes[j]:= SDL_JoystickNumAxes(Controller[j]);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   538
			//ControllerNumBalls[j]:= SDL_JoystickNumBalls(Controller[j]);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   539
			ControllerNumHats[j]:= SDL_JoystickNumHats(Controller[j]);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   540
			ControllerNumButtons[j]:= SDL_JoystickNumButtons(Controller[j]);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   541
			WriteLnToConsole('* Number of axes: ' + inttostr(ControllerNumAxes[j]));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   542
			//WriteLnToConsole('* Number of balls: ' + inttostr(ControllerNumBalls[j]));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   543
			WriteLnToConsole('* Number of hats: ' + inttostr(ControllerNumHats[j]));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   544
			WriteLnToConsole('* Number of buttons: ' + inttostr(ControllerNumButtons[j]));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   545
			ControllerEnabled:= 1;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   546
			
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   547
			if ControllerNumAxes[j] > 20 then ControllerNumAxes[j]:= 20;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   548
			//if ControllerNumBalls[j] > 20 then ControllerNumBalls[j]:= 20;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   549
			if ControllerNumHats[j] > 20 then ControllerNumHats[j]:= 20;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   550
			if ControllerNumButtons[j] > 20 then ControllerNumButtons[j]:= 20;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   551
			
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   552
			// reset all buttons/axes
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   553
			for i:= 0 to pred(ControllerNumAxes[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   554
				ControllerAxes[j][i]:= 0;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   555
			(*for i:= 0 to pred(ControllerNumBalls[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   556
				begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   557
				ControllerBalls[j][i][0]:= 0;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   558
				ControllerBalls[j][i][1]:= 0;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   559
				end;*)
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   560
			for i:= 0 to pred(ControllerNumHats[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   561
				ControllerHats[j][i]:= SDL_HAT_CENTERED;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   562
			for i:= 0 to pred(ControllerNumButtons[j]) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   563
				ControllerButtons[j][i]:= 0;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   564
			end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   565
		end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   566
	// enable event generation/controller updating
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   567
	SDL_JoystickEventState(1);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   568
	end
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   569
else	
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   570
	WriteLnToConsole('Not using any game controller');
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   571
{$IFDEF IPHONEOS}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   572
theJoystick:= Controller[0];
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   573
{$ENDIF}
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   574
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   575
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   576
procedure ControllerClose;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   577
var j: Integer;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   578
begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   579
if ControllerEnabled > 0 then
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   580
	for j:= 0 to pred(ControllerNumControllers) do
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   581
		SDL_JoystickClose(Controller[j]);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   582
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   583
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   584
procedure ControllerAxisEvent(joy, axis: Byte; value: Integer);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   585
begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   586
	ControllerAxes[joy][axis]:= value;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   587
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   588
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   589
procedure ControllerHatEvent(joy, hat, value: Byte);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   590
begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   591
	ControllerHats[joy][hat]:= value;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   592
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   593
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   594
procedure ControllerButtonEvent(joy, button: Byte; pressed: Boolean);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   595
begin
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   596
	if pressed then ControllerButtons[joy][button]:= 1 else ControllerButtons[joy][button]:= 0;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   597
end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2407
diff changeset
   598
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   599
initialization
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   600
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   601
end.