author | koda |
Sat, 03 Dec 2011 15:22:07 +0100 | |
changeset 6484 | 617e9d606e28 |
parent 6344 | cba81e10235c |
child 6580 | 6155187bf599 |
permissions | -rw-r--r-- |
5621 | 1 |
(* |
2 |
* Hedgewars, a free turn based strategy game |
|
3 |
* Copyright (c) 2011 Richard Deurwaarder <xeli@xelification.com> |
|
4 |
* |
|
5 |
* This program is free software; you can redistribute it and/or modify |
|
6 |
* it under the terms of the GNU General Public License as published by |
|
7 |
* the Free Software Foundation; version 2 of the License |
|
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU General Public License |
|
15 |
* along with this program; if not, write to the Free Software |
|
16 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
|
17 |
*) |
|
18 |
||
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
19 |
{$INCLUDE "options.inc"} |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
20 |
|
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
21 |
unit uTouch; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
22 |
|
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
23 |
interface |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
24 |
|
6029
5073285b6599
changed Game arguments to accept data path on 9th array element (like planned)
koda
parents:
5938
diff
changeset
|
25 |
uses sysutils, math, uConsole, uVariables, SDLh, uTypes, uFloat, uConsts, uIO, uCommands, GLUnit; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
26 |
|
6344 | 27 |
// TODO: this type should be Int64 |
28 |
// TODO: this type should be named TSDL_FingerId |
|
29 |
type SDL_FingerId = LongInt; |
|
30 |
||
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
31 |
type |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
32 |
PTouch_Finger = ^Touch_Finger; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
33 |
Touch_Finger = record |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
34 |
id : SDL_FingerId; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
35 |
x,y : LongInt; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
36 |
historicalX, historicalY : LongInt; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
37 |
timeSinceDown : Longword; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
38 |
end; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
39 |
|
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
40 |
procedure initModule; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
41 |
|
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
42 |
procedure ProcessTouch; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
43 |
procedure onTouchDown(x,y: Longword; pointerId: SDL_FingerId); |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
44 |
procedure onTouchMotion(x,y: Longword; dx,dy: LongInt; pointerId: SDL_FingerId); |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
45 |
procedure onTouchUp(x,y: Longword; pointerId: SDL_FingerId); |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
46 |
function convertToCursor(scale: LongInt; xy: LongInt): LongInt; |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
47 |
function addFinger(x,y: Longword; id: SDL_FingerId): PTouch_Finger; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
48 |
procedure deleteFinger(id: SDL_FingerId); |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
49 |
procedure onTouchClick(finger: Touch_Finger); |
5617
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
50 |
procedure onTouchDoubleClick(finger: Touch_Finger); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
51 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
52 |
function findFinger(id: SDL_FingerId): PTouch_Finger; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
53 |
procedure aim(finger: Touch_Finger); |
5615
104f69e798bb
changed aiming to be triggered when touching the crosshair
Xeli
parents:
5609
diff
changeset
|
54 |
function isOnCrosshair(finger: Touch_Finger): boolean; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
55 |
function isOnCurrentHog(finger: Touch_Finger): boolean; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
56 |
function isOnFireButton(finger: Touch_Finger): boolean; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
57 |
procedure convertToWorldCoord(var x,y: hwFloat; finger: Touch_Finger); |
5938
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
58 |
procedure convertToFingerCoord(var x,y: hwFloat; oldX, oldY: hwFloat); |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
59 |
function fingerHasMoved(finger: Touch_Finger): boolean; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
60 |
function calculateDelta(finger1, finger2: Touch_Finger): hwFloat; |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
61 |
function getSecondFinger(finger: Touch_Finger): PTouch_Finger; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
62 |
procedure printFinger(finger: Touch_Finger); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
63 |
implementation |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
64 |
|
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
65 |
const |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
66 |
clicktime = 200; |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
67 |
nilFingerId = High(SDL_FingerId); |
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
68 |
|
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
69 |
var |
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
70 |
fireButtonLeft, fireButtonRight, fireButtonTop, fireButtonBottom : LongInt; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
71 |
|
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
72 |
|
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
73 |
|
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
74 |
leftButtonBoundary : LongInt; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
75 |
rightButtonBoundary : LongInt; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
76 |
topButtonBoundary : LongInt; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
77 |
|
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
78 |
pointerCount : Longword; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
79 |
fingers: array of Touch_Finger; |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
80 |
moveCursor : boolean; |
5617
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
81 |
invertCursor : boolean; |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
82 |
|
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
83 |
xTouchClick,yTouchClick : LongInt; |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
84 |
timeSinceClick : Longword; |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
85 |
|
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
86 |
//Pinch to zoom |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
87 |
pinchSize : hwFloat; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
88 |
baseZoomValue: GLFloat; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
89 |
|
5589 | 90 |
|
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
91 |
//aiming |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
92 |
aiming, movingCrosshair: boolean; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
93 |
crosshairCommand: ShortString; |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
94 |
targetAngle: LongInt; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
95 |
stopFiring: boolean; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
96 |
|
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
97 |
//moving |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
98 |
stopLeft, stopRight, walkingLeft, walkingRight : boolean; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
99 |
|
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
100 |
|
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
101 |
procedure onTouchDown(x,y: Longword; pointerId: SDL_FingerId); |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
102 |
var |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
103 |
finger: PTouch_Finger; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
104 |
begin |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
105 |
finger := addFinger(x,y,pointerId); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
106 |
case pointerCount of |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
107 |
1: |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
108 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
109 |
moveCursor:= false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
110 |
if bShowAmmoMenu then |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
111 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
112 |
moveCursor := true; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
113 |
exit; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
114 |
end; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
115 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
116 |
if isOnCrosshair(finger^) then |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
117 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
118 |
aiming:= true; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
119 |
exit; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
120 |
end; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
121 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
122 |
if isOnFireButton(finger^) then |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
123 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
124 |
stopFiring:= false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
125 |
ParseCommand('+attack', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
126 |
exit; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
127 |
end; |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
128 |
if (finger^.x < leftButtonBoundary) and (finger^.y < 390) then |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
129 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
130 |
ParseCommand('+left', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
131 |
walkingLeft := true; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
132 |
exit; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
133 |
end; |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
134 |
if finger^.x > rightButtonBoundary then |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
135 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
136 |
ParseCommand('+right', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
137 |
walkingRight:= true; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
138 |
exit; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
139 |
end; |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
140 |
if finger^.y < topButtonBoundary then |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
141 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
142 |
ParseCommand('hjump', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
143 |
exit; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
144 |
end; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
145 |
moveCursor:= true; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
146 |
end; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
147 |
2: |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
148 |
begin |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
149 |
aiming:= false; |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
150 |
stopFiring:= true; |
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
151 |
moveCursor:= false; |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
152 |
pinchSize := calculateDelta(finger^, getSecondFinger(finger^)^); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
153 |
baseZoomValue := ZoomValue |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
154 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
155 |
end;//end case pointerCount of |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
156 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
157 |
|
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
158 |
procedure onTouchMotion(x,y: Longword;dx,dy: LongInt; pointerId: SDL_FingerId); |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
159 |
var |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
160 |
finger, secondFinger: PTouch_Finger; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
161 |
currentPinchDelta, zoom : hwFloat; |
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
162 |
tmpX, tmpY: LongInt; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
163 |
begin |
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
164 |
x := x; |
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
165 |
y := y; |
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
166 |
dx := dx; |
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
167 |
dy := dy; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
168 |
finger:= findFinger(pointerId); |
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
169 |
tmpX := convertToCursor(cScreenWidth, x); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
170 |
tmpY := convertToCursor(cScreenHeight, y); |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
171 |
|
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
172 |
if moveCursor then |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
173 |
begin |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
174 |
if invertCursor then |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
175 |
begin |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
176 |
CursorPoint.X := CursorPoint.X + (finger^.x - tmpX); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
177 |
CursorPoint.Y := CursorPoint.Y - (finger^.y - tmpY); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
178 |
end |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
179 |
else |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
180 |
begin |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
181 |
CursorPoint.X := CursorPoint.X - (finger^.x - tmpX); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
182 |
CursorPoint.Y := CursorPoint.Y + (finger^.y - tmpY); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
183 |
end; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
184 |
finger^.x := tmpX; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
185 |
finger^.y := tmpY; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
186 |
exit //todo change into switch rather than ugly ifs |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
187 |
end; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
188 |
|
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
189 |
finger^.x := tmpX; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
190 |
finger^.y := tmpY; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
191 |
|
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
192 |
if aiming then |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
193 |
begin |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
194 |
aim(finger^); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
195 |
exit |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
196 |
end; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
197 |
if pointerCount = 2 then |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
198 |
begin |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
199 |
secondFinger := getSecondFinger(finger^); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
200 |
currentPinchDelta := calculateDelta(finger^, secondFinger^) - pinchSize; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
201 |
zoom := currentPinchDelta/cScreenWidth; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
202 |
ZoomValue := baseZoomValue - ((hwFloat2Float(zoom) * cMinMaxZoomLevelDelta)); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
203 |
if ZoomValue < cMaxZoomLevel then ZoomValue := cMaxZoomLevel; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
204 |
if ZoomValue > cMinZoomLevel then ZoomValue := cMinZoomLevel; |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
205 |
end; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
206 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
207 |
|
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
208 |
procedure onTouchUp(x,y: Longword; pointerId: SDL_FingerId); |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
209 |
begin |
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
210 |
x := x; |
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
211 |
y := y; |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
212 |
aiming:= false; |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
213 |
stopFiring:= true; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
214 |
deleteFinger(pointerId); |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
215 |
|
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
216 |
if walkingLeft then |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
217 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
218 |
ParseCommand('-left', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
219 |
walkingLeft := false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
220 |
end; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
221 |
|
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
222 |
if walkingRight then |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
223 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
224 |
ParseCommand('-right', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
225 |
walkingRight := false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
226 |
end; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
227 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
228 |
|
5617
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
229 |
procedure onTouchDoubleClick(finger: Touch_Finger); |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
230 |
begin |
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
231 |
finger := finger;//avoid compiler hint |
5617
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
232 |
ParseCommand('ljump', true); |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
233 |
end; |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
234 |
|
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
235 |
procedure onTouchClick(finger: Touch_Finger); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
236 |
begin |
5617
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
237 |
if (SDL_GetTicks - timeSinceClick < 300) and (DistanceI(finger.X-xTouchClick, finger.Y-yTouchClick) < _30) then |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
238 |
begin |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
239 |
onTouchDoubleClick(finger); |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
240 |
exit; |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
241 |
end |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
242 |
else |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
243 |
begin |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
244 |
xTouchClick := finger.x; |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
245 |
yTouchClick := finger.y; |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
246 |
timeSinceClick := SDL_GetTicks; |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
247 |
end; |
88f43becefe3
added low jump, you can low-jump by double tapping the right or left side of the screen
Xeli
parents:
5615
diff
changeset
|
248 |
|
5589 | 249 |
if bShowAmmoMenu then |
250 |
begin |
|
251 |
doPut(CursorPoint.X, CursorPoint.Y, false); |
|
252 |
exit |
|
253 |
end; |
|
254 |
||
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
255 |
if isOnCurrentHog(finger) then |
5595 | 256 |
begin |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
257 |
bShowAmmoMenu := true; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
258 |
exit; |
5595 | 259 |
end; |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
260 |
|
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
261 |
if finger.y < topButtonBoundary then |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
262 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
263 |
ParseCommand('hjump', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
264 |
exit; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
265 |
end; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
266 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
267 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
268 |
function addFinger(x,y: Longword; id: SDL_FingerId): PTouch_Finger; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
269 |
var |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
270 |
xCursor, yCursor, index : LongInt; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
271 |
begin |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
272 |
//Check array sizes |
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
273 |
if length(fingers) < Integer(pointerCount) then |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
274 |
begin |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
275 |
setLength(fingers, length(fingers)*2); |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
276 |
for index := length(fingers) div 2 to length(fingers) do fingers[index].id := nilFingerId; |
5589 | 277 |
end; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
278 |
|
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
279 |
|
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
280 |
xCursor := convertToCursor(cScreenWidth, x); |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
281 |
yCursor := convertToCursor(cScreenHeight, y); |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
282 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
283 |
//on removing fingers, all fingers are moved to the left |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
284 |
//with dynamic arrays being zero based, the new position of the finger is the old pointerCount |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
285 |
fingers[pointerCount].id := id; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
286 |
fingers[pointerCount].historicalX := xCursor; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
287 |
fingers[pointerCount].historicalY := yCursor; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
288 |
fingers[pointerCount].x := xCursor; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
289 |
fingers[pointerCount].y := yCursor; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
290 |
fingers[pointerCount].timeSinceDown:= SDL_GetTicks; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
291 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
292 |
addFinger:= @fingers[pointerCount]; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
293 |
inc(pointerCount); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
294 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
295 |
|
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
296 |
procedure deleteFinger(id: SDL_FingerId); |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
297 |
var |
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
298 |
index : Longword; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
299 |
begin |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
300 |
|
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
301 |
dec(pointerCount); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
302 |
for index := 0 to pointerCount do |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
303 |
begin |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
304 |
if fingers[index].id = id then |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
305 |
begin |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
306 |
//Check for onTouchClick event |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
307 |
if ((SDL_GetTicks - fingers[index].timeSinceDown) < clickTime) AND |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
308 |
not(fingerHasMoved(fingers[index])) then onTouchClick(fingers[index]); |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
309 |
|
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
310 |
//put the last finger into the spot of the finger to be removed, |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
311 |
//so that all fingers are packed to the far left |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
312 |
if pointerCount <> index then |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
313 |
begin |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
314 |
fingers[index].id := fingers[pointerCount].id; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
315 |
fingers[index].x := fingers[pointerCount].x; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
316 |
fingers[index].y := fingers[pointerCount].y; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
317 |
fingers[index].historicalX := fingers[pointerCount].historicalX; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
318 |
fingers[index].historicalY := fingers[pointerCount].historicalY; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
319 |
fingers[index].timeSinceDown := fingers[pointerCount].timeSinceDown; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
320 |
|
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
321 |
fingers[pointerCount].id := nilFingerId; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
322 |
end |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
323 |
else fingers[index].id := nilFingerId; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
324 |
break; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
325 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
326 |
end; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
327 |
|
5589 | 328 |
end; |
329 |
||
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
330 |
procedure ProcessTouch; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
331 |
var |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
332 |
deltaAngle: LongInt; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
333 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
334 |
invertCursor := not(bShowAmmoMenu); |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
335 |
if aiming then |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
336 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
337 |
if CurrentHedgehog^.Gear <> nil then |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
338 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
339 |
deltaAngle:= CurrentHedgehog^.Gear^.Angle - targetAngle; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
340 |
if (deltaAngle <> 0) and not(movingCrosshair) then |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
341 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
342 |
ParseCommand('+' + crosshairCommand, true); |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
343 |
movingCrosshair := true; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
344 |
end |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
345 |
else |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
346 |
if movingCrosshair then |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
347 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
348 |
ParseCommand('-' + crosshairCommand, true); |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
349 |
movingCrosshair:= false; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
350 |
end; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
351 |
end; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
352 |
end |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
353 |
else if movingCrosshair then |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
354 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
355 |
ParseCommand('-' + crosshairCommand, true); |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
356 |
movingCrosshair := false; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
357 |
end; |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
358 |
|
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
359 |
if stopFiring then |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
360 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
361 |
ParseCommand('-attack', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
362 |
stopFiring:= false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
363 |
end; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
364 |
|
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
365 |
if stopRight then |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
366 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
367 |
stopRight := false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
368 |
ParseCommand('-right', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
369 |
end; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
370 |
|
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
371 |
if stopLeft then |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
372 |
begin |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
373 |
stopLeft := false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
374 |
ParseCommand('-left', true); |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
375 |
end; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
376 |
|
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
377 |
end; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
378 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
379 |
function findFinger(id: SDL_FingerId): PTouch_Finger; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
380 |
var |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
381 |
index: LongWord; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
382 |
begin |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
383 |
for index := 0 to High(fingers) do |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
384 |
if fingers[index].id = id then |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
385 |
begin |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
386 |
findFinger := @fingers[index]; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
387 |
break; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
388 |
end; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
389 |
end; |
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
390 |
|
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
391 |
procedure aim(finger: Touch_Finger); |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
392 |
var |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
393 |
hogX, hogY, touchX, touchY, deltaX, deltaY, tmpAngle: hwFloat; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
394 |
tmp: ShortString; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
395 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
396 |
if CurrentHedgehog^.Gear <> nil then |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
397 |
begin |
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
398 |
touchX := _0;//avoid compiler hint |
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
399 |
touchY := _0; |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
400 |
hogX := CurrentHedgehog^.Gear^.X; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
401 |
hogY := CurrentHedgehog^.Gear^.Y; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
402 |
|
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
403 |
convertToWorldCoord(touchX, touchY, finger); |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
404 |
deltaX := hwAbs(TouchX-HogX); |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
405 |
deltaY := (TouchY-HogY); |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
406 |
|
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
407 |
tmpAngle:= DeltaY / Distance(deltaX, deltaY) *_2048; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
408 |
targetAngle:= (hwRound(tmpAngle) + 2048) div 2; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
409 |
|
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
410 |
tmp := crosshairCommand; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
411 |
if CurrentHedgehog^.Gear^.Angle - targetAngle < 0 then crosshairCommand := 'down' |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
412 |
else crosshairCommand:= 'up'; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
413 |
if movingCrosshair and (tmp <> crosshairCommand) then |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
414 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
415 |
ParseCommand('-' + tmp, true); |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
416 |
movingCrosshair := false; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
417 |
end; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
418 |
|
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
419 |
end; //if CurrentHedgehog^.Gear <> nil |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
420 |
end; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
421 |
|
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
422 |
function convertToCursor(scale: LongInt; xy: LongInt): LongInt; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
423 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
424 |
convertToCursor := round(xy/32768*scale) |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
425 |
end; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
426 |
|
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
427 |
function isOnFireButton(finger: Touch_Finger): boolean; |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
428 |
begin |
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
429 |
isOnFireButton:= (finger.x <= fireButtonRight) and (finger.x >= fireButtonLeft) and (finger.y <= fireButtonBottom) and (finger.y >= fireButtonTop); |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
430 |
end; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
431 |
|
5615
104f69e798bb
changed aiming to be triggered when touching the crosshair
Xeli
parents:
5609
diff
changeset
|
432 |
function isOnCrosshair(finger: Touch_Finger): boolean; |
104f69e798bb
changed aiming to be triggered when touching the crosshair
Xeli
parents:
5609
diff
changeset
|
433 |
var |
5938
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
434 |
x,y : hwFloat; |
5615
104f69e798bb
changed aiming to be triggered when touching the crosshair
Xeli
parents:
5609
diff
changeset
|
435 |
begin |
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
436 |
x := _0;//avoid compiler hint |
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
437 |
y := _0; |
5938
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
438 |
convertToFingerCoord(x, y, int2hwFloat(CrosshairX), int2hwFloat(CrosshairY)); |
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
439 |
isOnCrosshair:= Distance(int2hwFloat(finger.x)-x, int2hwFloat(finger.y)-y) < _50; |
5615
104f69e798bb
changed aiming to be triggered when touching the crosshair
Xeli
parents:
5609
diff
changeset
|
440 |
end; |
104f69e798bb
changed aiming to be triggered when touching the crosshair
Xeli
parents:
5609
diff
changeset
|
441 |
|
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
442 |
function isOnCurrentHog(finger: Touch_Finger): boolean; |
5595 | 443 |
var |
5938
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
444 |
x,y : hwFloat; |
5595 | 445 |
begin |
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
446 |
x := _0; |
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
447 |
y := _0; |
5938
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
448 |
convertToFingerCoord(x, y, CurrentHedgehog^.Gear^.X, CurrentHedgehog^.Gear^.Y); |
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
449 |
isOnCurrentHog := Distance(int2hwFloat(finger.X)-x, int2hwFloat(finger.Y)-y) < _50; |
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
450 |
end; |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
451 |
|
5938
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
452 |
procedure convertToFingerCoord(var x,y : hwFloat; oldX, oldY: hwFloat); |
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
453 |
begin |
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
454 |
x := oldX + int2hwFloat(WorldDx + (cScreenWidth div 2)); |
c186c454779d
isOnCurrentHog and isOnCrosshair now look at the distance relative to the screen rather than world coords, this means that zooming out doesn't make it harder to touch the hog or crosshair
Xeli
parents:
5828
diff
changeset
|
455 |
y := oldY + int2hwFloat(WorldDy); |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
456 |
end; |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
457 |
|
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
458 |
procedure convertToWorldCoord(var x,y: hwFloat; finger: Touch_Finger); |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
459 |
begin |
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
460 |
//if x <> nil then |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
461 |
x := int2hwFloat((finger.x-WorldDx) - (cScreenWidth div 2)); |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
462 |
//if y <> nil then |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
463 |
y := int2hwFloat(finger.y-WorldDy); |
5595 | 464 |
end; |
465 |
||
5589 | 466 |
//Method to calculate the distance this finger has moved since the downEvent |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
467 |
function fingerHasMoved(finger: Touch_Finger): boolean; |
5589 | 468 |
begin |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
469 |
fingerHasMoved := trunc(sqrt(Power(finger.X-finger.historicalX,2) + Power(finger.y-finger.historicalY, 2))) > 330; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
470 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
471 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
472 |
function calculateDelta(finger1, finger2: Touch_Finger): hwFloat; inline; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
473 |
begin |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
474 |
calculateDelta := DistanceI(finger2.x-finger1.x, finger2.y-finger1.y); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
475 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
476 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
477 |
// Under the premise that all pointer ids in pointerIds:SDL_FingerId are packed to the far left. |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
478 |
// If the pointer to be ignored is not pointerIds[0] the second must be there |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
479 |
function getSecondFinger(finger: Touch_Finger): PTouch_Finger; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
480 |
begin |
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
481 |
if fingers[0].id = finger.id then getSecondFinger := @fingers[1] |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
482 |
else getSecondFinger := @fingers[0]; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
483 |
end; |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
484 |
|
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
485 |
procedure printFinger(finger: Touch_Finger); |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
486 |
begin |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
487 |
WriteToConsole(Format('id:%d, (%d,%d), (%d,%d), time: %d', [finger.id, finger.x, finger.y, finger.historicalX, finger.historicalY, finger.timeSinceDown])); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
488 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
489 |
|
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
490 |
procedure initModule; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
491 |
var |
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
492 |
index: Longword; |
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
493 |
//uRenderCoordScaleX, uRenderCoordScaleY: Longword; |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
494 |
begin |
5599
2e4b90f33a83
aiming fixed, inverted cursor on ammo menu, added equal and isZero function to uFloat, changed the way ammo menu opens, you must now click on the hog rather than anywhere on the screen
Xeli
parents:
5595
diff
changeset
|
495 |
movingCrosshair := false; |
5605
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
496 |
stopFiring:= false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
497 |
walkingLeft := false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
498 |
walkingRight := false; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
499 |
|
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
500 |
leftButtonBoundary := cScreenWidth div 4; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
501 |
rightButtonBoundary := cScreenWidth div 4*3; |
31bd6e30df02
Added a hook to uGame which now allows uTouch to take action outside of SDL_Finger* events
Xeli
parents:
5599
diff
changeset
|
502 |
topButtonBoundary := cScreenHeight div 6; |
5609
9d66611e4d0a
Introduced a Touch_Finger type to replace the arrays with coords, makes cleaner code
Xeli
parents:
5605
diff
changeset
|
503 |
|
5733
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
504 |
setLength(fingers, 4); |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
505 |
for index := 0 to High(fingers) do |
5ab22736bdb6
Fixed a major bug (related to pointers) which also solves the stuttering when zooming in and out
Xeli
parents:
5621
diff
changeset
|
506 |
fingers[index].id := nilFingerId; |
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
507 |
|
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
508 |
|
6228
1b7d4d7d162b
added lines to avoid compiler hints, is this really the way we want to do it though? ;/
Xeli
parents:
6029
diff
changeset
|
509 |
//uRenderCoordScaleX := Round(cScreenWidth/0.8 * 2); |
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
510 |
fireButtonLeft := Round(cScreenWidth*0.01); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
511 |
fireButtonRight := Round(fireButtonLeft + (spritesData[sprFireButton].Width*0.4)); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
512 |
fireButtonBottom := Round(cScreenHeight*0.99); |
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5733
diff
changeset
|
513 |
fireButtonTop := fireButtonBottom - Round(spritesData[sprFireButton].Height*0.4); |
5579
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
514 |
end; |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
515 |
|
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
516 |
begin |
3176ee8a9d94
uTouch, has cursor move, zoom and click or tap to open the ammo menu
Xeli
parents:
diff
changeset
|
517 |
end. |