aboutsummaryrefslogtreecommitdiff
path: root/sources/TZR_CycleEvents.c
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2024-04-11 03:55:22 +0200
committerkdx <kikoodx@paranoici.org>2024-04-11 03:58:05 +0200
commit10526f2f4ecc8168f060bd8c4cf6cc3b111bd306 (patch)
treeefd1a0f09d829abd99505604efd8361118c8342e /sources/TZR_CycleEvents.c
parent690e41f34e1ee5b3afad0d6dd64c07a5eda7fc58 (diff)
downloadtzr-main.tar.gz
LatestInputEventHEADmain
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;