projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bb8e355
)
improved synchronization of main game loop
author
Holger Schemel
<info@artsoft.org>
Sat, 19 Mar 2016 14:24:20 +0000
(15:24 +0100)
committer
Holger Schemel
<info@artsoft.org>
Sat, 19 Mar 2016 14:24:20 +0000
(15:24 +0100)
src/events.c
patch
|
blob
|
history
diff --git
a/src/events.c
b/src/events.c
index 7a03f33ffd88cb2f6be5d0e7dad8332332ecc55f..4c71dca04ece48c1d1e0b436656b51234f4c5c90 100644
(file)
--- a/
src/events.c
+++ b/
src/events.c
@@
-161,8
+161,13
@@
void EventLoop(void)
{
if (PendingEvent()) /* got event */
{
{
if (PendingEvent()) /* got event */
{
+ // use separate frame delay counter to not reset main delay counter
+ unsigned int sync_frame_delay2 = 0;
+ unsigned int sync_frame_delay_value2 = sync_frame_delay_value;
Event event;
Event event;
+ ResetDelayCounter(&sync_frame_delay2);
+
while (NextValidEvent(&event))
{
switch (event.type)
while (NextValidEvent(&event))
{
switch (event.type)
@@
-209,11
+214,13
@@
void EventLoop(void)
break;
}
break;
}
- if (DelayReached(&sync_frame_delay, sync_frame_delay_value))
- BackToFront();
+ // do not handle events for longer than standard frame delay period
+ if (DelayReached(&sync_frame_delay2, sync_frame_delay_value2))
+ break;
}
}
}
}
- else
+
+ // always handle non-event game actions for every game frame interval
{
if (game_status == GAME_MODE_TITLE)
{
{
if (game_status == GAME_MODE_TITLE)
{