projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
changed listing all invalid SP level file elements only in debug mode
[rocksndiamonds.git]
/
src
/
events.c
diff --git
a/src/events.c
b/src/events.c
index aa20e2d056999b116d555048a73ad704b2a0a564..b51839817a0e480b37be24bc8fb26bab2aee0aca 100644
(file)
--- a/
src/events.c
+++ b/
src/events.c
@@
-128,6
+128,19
@@
static boolean SkipPressedMouseMotionEvent(const Event *event)
return FALSE;
}
return FALSE;
}
+static boolean WaitValidEvent(Event *event)
+{
+ WaitEvent(event);
+
+ if (!FilterEvents(event))
+ return FALSE;
+
+ if (SkipPressedMouseMotionEvent(event))
+ return FALSE;
+
+ return TRUE;
+}
+
/* this is especially needed for event modifications for the Android target:
if mouse coordinates should be modified in the event filter function,
using a properly installed SDL event filter does not work, because in
/* this is especially needed for event modifications for the Android target:
if mouse coordinates should be modified in the event filter function,
using a properly installed SDL event filter does not work, because in
@@
-139,20
+152,8
@@
static boolean SkipPressedMouseMotionEvent(const Event *event)
boolean NextValidEvent(Event *event)
{
while (PendingEvent())
boolean NextValidEvent(Event *event)
{
while (PendingEvent())
- {
- boolean handle_this_event = FALSE;
-
- NextEvent(event);
-
- if (FilterEvents(event))
- handle_this_event = TRUE;
-
- if (SkipPressedMouseMotionEvent(event))
- handle_this_event = FALSE;
-
- if (handle_this_event)
+ if (WaitValidEvent(event))
return TRUE;
return TRUE;
- }
return FALSE;
}
return FALSE;
}
@@
-340,12
+341,10
@@
void EventLoop(void)
void ClearEventQueue()
{
void ClearEventQueue()
{
- while (PendingEvent())
- {
- Event event;
-
- NextEvent(&event);
+ Event event;
+ while (NextValidEvent(&event))
+ {
switch (event.type)
{
case EVENT_BUTTONRELEASE:
switch (event.type)
{
case EVENT_BUTTONRELEASE:
@@
-392,7
+391,8
@@
void SleepWhileUnmapped()
{
Event event;
{
Event event;
- NextEvent(&event);
+ if (!WaitValidEvent(&event))
+ continue;
switch (event.type)
{
switch (event.type)
{
@@
-1275,7
+1275,7
@@
void HandleButton(int mx, int my, int button, int button_nr)
if (HandleGlobalAnimClicks(mx, my, button))
{
/* do not handle this button event anymore */
if (HandleGlobalAnimClicks(mx, my, button))
{
/* do not handle this button event anymore */
-
mx = my = -32; /* force mouse event to be outside screen tiles
*/
+
return; /* force mouse event not to be handled at all
*/
}
if (button_hold && game_status == GAME_MODE_PLAYING && tape.pausing)
}
if (button_hold && game_status == GAME_MODE_PLAYING && tape.pausing)
@@
-1441,6
+1441,11
@@
static void HandleKeysSpecial(Key key)
{
SaveNativeLevel(&level);
}
{
SaveNativeLevel(&level);
}
+ else if (is_string_suffix(cheat_input, ":frames-per-second") ||
+ is_string_suffix(cheat_input, ":fps"))
+ {
+ global.show_frames_per_second = !global.show_frames_per_second;
+ }
}
else if (game_status == GAME_MODE_PLAYING)
{
}
else if (game_status == GAME_MODE_PLAYING)
{