#include "TZR_events.h" #include "TZR_globals.h" #include int TZR_PollEvent(TZR_Event *e) { TZR_Event discard; if (e == NULL) e = &discard; SDL_Event se; while (SDL_PollEvent(&se)) switch (se.type) { case SDL_QUIT: e->type = TZR_EV_QUIT; ___tzr_should_quit = 1; return 1; case SDL_KEYDOWN: if (se.key.repeat) break; e->type = TZR_EV_KEYDOWN; e->button = se.key.keysym.scancode; ___tzr_keystates[e->button] = TZR_KEYSTATE_PRESS; break; case SDL_KEYUP: e->type = TZR_EV_KEYUP; e->button = se.key.keysym.scancode; ___tzr_keystates[e->button] = TZR_KEYSTATE_RELEASE; break; case SDL_MOUSEBUTTONDOWN: ___tzr_mouse_x = se.button.x; ___tzr_mouse_y = se.button.y; ___tzr_mousestates[se.button.button] = TZR_KEYSTATE_PRESS; break; case SDL_MOUSEBUTTONUP: ___tzr_mouse_x = se.button.x; ___tzr_mouse_y = se.button.y; ___tzr_mousestates[se.button.button] = TZR_KEYSTATE_RELEASE; break; case SDL_MOUSEMOTION: ___tzr_mouse_x = se.motion.x; ___tzr_mouse_y = se.motion.y; break; default: break; } return 0; }