projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added option 'off' for touch controls (for non-Android platforms)
[rocksndiamonds.git]
/
src
/
events.c
diff --git
a/src/events.c
b/src/events.c
index 18898fb2c8e1401c1a97d76580b6ddfc1a849914..c7707c2f6f9fcc7c3904003cac863a518fd66243 100644
(file)
--- a/
src/events.c
+++ b/
src/events.c
@@
-39,6
+39,12
@@
static int cursor_mode_last = CURSOR_DEFAULT;
static unsigned int special_cursor_delay = 0;
static unsigned int special_cursor_delay_value = 1000;
static unsigned int special_cursor_delay = 0;
static unsigned int special_cursor_delay_value = 1000;
+
+/* forward declarations for internal use */
+static void HandleNoEvent(void);
+static void HandleEventActions(void);
+
+
/* event filter especially needed for SDL event filtering due to
delay problems with lots of mouse motion events when mouse button
not pressed (X11 can handle this with 'PointerMotionHintMask') */
/* event filter especially needed for SDL event filtering due to
delay problems with lots of mouse motion events when mouse button
not pressed (X11 can handle this with 'PointerMotionHintMask') */
@@
-318,10
+324,10
@@
void EventLoop(void)
if (PendingEvent())
HandleEvents();
else
if (PendingEvent())
HandleEvents();
else
- Handle
MouseCursor
();
+ Handle
NoEvent
();
- /*
also execute after pending events have been processed before
*/
- Handle
NoEvent
();
+ /*
execute event related actions after pending events have been processed
*/
+ Handle
EventActions
();
/* don't use all CPU time when idle; the main loop while playing
has its own synchronization and is CPU friendly, too */
/* don't use all CPU time when idle; the main loop while playing
has its own synchronization and is CPU friendly, too */
@@
-670,7
+676,7
@@
void HandleFingerEvent(FingerEvent *event)
if (game_status != GAME_MODE_PLAYING)
return;
if (game_status != GAME_MODE_PLAYING)
return;
- if (strEqual(setup.touch.control_type, TOUCH_CONTROL_
FOLLOW_FINGER
))
+ if (strEqual(setup.touch.control_type, TOUCH_CONTROL_
OFF
))
return;
if (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS))
return;
if (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS))
@@
-818,6
+824,9
@@
void HandleFingerEvent(FingerEvent *event)
return;
}
return;
}
+ if (!strEqual(setup.touch.control_type, TOUCH_CONTROL_WIPE_GESTURES))
+ return;
+
// use touch direction control
if (event->type == EVENT_FINGERPRESS)
// use touch direction control
if (event->type == EVENT_FINGERPRESS)
@@
-1923,6
+1932,20
@@
void HandleKey(Key key, int key_status)
}
void HandleNoEvent()
}
void HandleNoEvent()
+{
+ HandleMouseCursor();
+
+ switch (game_status)
+ {
+#if defined(TARGET_SDL2)
+ case GAME_MODE_PLAYING:
+ HandleFollowFinger(-1, -1, -1);
+ break;
+#endif
+ }
+}
+
+void HandleEventActions()
{
// if (button_status && game_status != GAME_MODE_PLAYING)
if (button_status && (game_status != GAME_MODE_PLAYING ||
{
// if (button_status && game_status != GAME_MODE_PLAYING)
if (button_status && (game_status != GAME_MODE_PLAYING ||
@@
-1951,12
+1974,6
@@
void HandleNoEvent()
HandleLevelEditorIdle();
break;
HandleLevelEditorIdle();
break;
-#if defined(TARGET_SDL2)
- case GAME_MODE_PLAYING:
- HandleFollowFinger(-1, -1, -1);
- break;
-#endif
-
default:
break;
}
default:
break;
}