aboutsummaryrefslogtreecommitdiff
path: root/sources/TZR_CycleEvents.c
diff options
context:
space:
mode:
Diffstat (limited to 'sources/TZR_CycleEvents.c')
-rw-r--r--sources/TZR_CycleEvents.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/sources/TZR_CycleEvents.c b/sources/TZR_CycleEvents.c
index f9f9945..67c2956 100644
--- a/sources/TZR_CycleEvents.c
+++ b/sources/TZR_CycleEvents.c
@@ -2,7 +2,6 @@
#include "TZR_resource.h"
#include "TZR_globals.h"
#include <SDL2/SDL_scancode.h>
-#include <limits.h>
void
next_state(TZR_KeyState *keystate)
@@ -34,6 +33,7 @@ get_axis(SDL_GameController *gc, float *out, SDL_GameControllerAxis axis)
void
TZR_CycleEvents(void)
{
+ ___tzr_latest_input.type = TZR_EV_NONE;
TZR_ResourcesWatch();
for (int i = 0; i < SDL_NUM_SCANCODES; i++)
next_state(&___tzr_keystates[i]);
@@ -45,7 +45,13 @@ TZR_CycleEvents(void)
___tzr_scroll_y = 0;
TZR_Event e;
while (TZR_PollEvent(&e))
- ;
+ switch (e.type) {
+ case TZR_EV_KEYDOWN:
+ case TZR_EV_MOUSEDOWN:
+ ___tzr_latest_input = e;
+ default:
+ break;
+ }
for (size_t i = 0; i < ___tzr_joysticks_size; i++) {
TZR_Joystick *const jstick = &___tzr_joysticks[i];
@@ -53,8 +59,11 @@ TZR_CycleEvents(void)
continue;
for (int k = 0; k < SDL_CONTROLLER_BUTTON_MAX; k++) {
if (SDL_GameControllerGetButton(jstick->ptr, k)) {
- if (___tzr_joystates[k] != TZR_KEYSTATE_DOWN)
+ if (___tzr_joystates[k] != TZR_KEYSTATE_DOWN) {
___tzr_joystates[k] = TZR_KEYSTATE_PRESS;
+ ___tzr_latest_input.type = TZR_EV_GAMECONTROLLERDOWN;
+ ___tzr_latest_input.button = k;
+ }
} else {
if (___tzr_joystates[k] != TZR_KEYSTATE_UP)
___tzr_joystates[k] = TZR_KEYSTATE_RELEASE;