Wrap SDL event type enum (partially)

This commit is contained in:
Lexi / Zoe 2025-11-26 02:07:27 +01:00
parent b8bd56392c
commit d4c91450d9
Signed by: binaryDiv
GPG Key ID: F8D4956E224DA232
3 changed files with 22 additions and 3 deletions

View File

@ -83,7 +83,7 @@ export namespace core
// Handles an SDL event. Returns true if the event has been handled.
bool handle_event(const sdl::Event* event)
{
if (event->type == SDL_EVENT_QUIT) {
if (event->type == sdl::EventType::Quit) {
// Exit the application
keep_running_ = false;
return true;

View File

@ -62,7 +62,7 @@ export namespace game
// Handles an SDL event. Returns true if the event has been handled.
bool handle_event(const sdl::Event* event)
{
if (event->type == SDL_EVENT_MOUSE_MOTION) {
if (event->type == sdl::EventType::MouseMotion) {
player_sprite_.move(
event->motion.x - 50,
event->motion.y - 50
@ -70,7 +70,7 @@ export namespace game
return true;
}
if (event->type == SDL_EVENT_MOUSE_BUTTON_UP) {
if (event->type == sdl::EventType::MouseButtonUp) {
sprites_.emplace_back(
engine_.get_render_server().load_texture("assets/neofox.png"),
sdl::FRect{

View File

@ -8,4 +8,23 @@ export namespace sdl
{
// Simple alias for SDL_Event union
using Event = SDL_Event;
// Alias for EventType enum
using EventType_t = SDL_EventType;
/**
* Wrapper for the SDL_EventType enum.
*
* We're using a namespace here to emulate an enum-like interface, without having to copy the entire enum.
* More constants can be added on demand.
*/
namespace EventType
{
constexpr EventType_t Quit = SDL_EVENT_QUIT;
constexpr EventType_t KeyDown = SDL_EVENT_KEY_DOWN;
constexpr EventType_t KeyUp = SDL_EVENT_KEY_UP;
constexpr EventType_t MouseMotion = SDL_EVENT_MOUSE_MOTION;
constexpr EventType_t MouseButtonUp = SDL_EVENT_MOUSE_BUTTON_UP;
constexpr EventType_t MouseButtonDown = SDL_EVENT_MOUSE_BUTTON_DOWN;
}
}