From a118434393ffddcfae8969bc4cec80c368cfe2d5 Mon Sep 17 00:00:00 2001 From: Andrew Kesterson Date: Wed, 6 May 2026 12:03:25 -0400 Subject: [PATCH] Transition to using the default config map, and pushing custom controls with SDL3G_controller_pushmaP --- src/sdl3-gametest.c | 50 +++++++++++---------------------------------- 1 file changed, 12 insertions(+), 38 deletions(-) diff --git a/src/sdl3-gametest.c b/src/sdl3-gametest.c index 7219535..c1ce6fa 100644 --- a/src/sdl3-gametest.c +++ b/src/sdl3-gametest.c @@ -64,7 +64,7 @@ akerr_ErrorContext AKERR_NOIGNORE *user_breakpoint(actor *obj, SDL_Event *event) SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]) { - SDL3GControlMap *controlmap; + SDL3GControl control; actor *actorptr = NULL; *appstate = (void *)&game.state; PREPARE_ERROR(errctx); @@ -104,48 +104,22 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]) strcpy((char *)&dirnamebuf, "assets/tilemap.tmj"); CATCH(errctx, tilemap_load((char *)&dirnamebuf, (tilemap *)&gamemap)); - // set up the control map - controlmap = &GAME_ControlMaps[0]; - controlmap->kbid = 0; - controlmap->target = SDL_GetPointerProperty(REGISTRY_ACTOR, "player", NULL); - - // Move down - controlmap->controls[0].key = SDLK_DOWN; - controlmap->controls[0].event_on = SDL_EVENT_KEY_DOWN; - controlmap->controls[0].event_off = SDL_EVENT_KEY_UP; - controlmap->controls[0].handler_on = &SDL3GActor_cmhf_down_on; - controlmap->controls[0].handler_off = &SDL3GActor_cmhf_down_off; - - // Move up - controlmap->controls[1].key = SDLK_UP; - controlmap->controls[1].event_on = SDL_EVENT_KEY_DOWN; - controlmap->controls[1].event_off = SDL_EVENT_KEY_UP; - controlmap->controls[1].handler_on = &SDL3GActor_cmhf_up_on; - controlmap->controls[1].handler_off = &SDL3GActor_cmhf_up_off; + CATCH(errctx, SDL3G_controller_default(0, "player", 0, 0)); - // Move left - controlmap->controls[2].key = SDLK_LEFT; - controlmap->controls[2].event_on = SDL_EVENT_KEY_DOWN; - controlmap->controls[2].event_off = SDL_EVENT_KEY_UP; - controlmap->controls[2].handler_on = &SDL3GActor_cmhf_left_on; - controlmap->controls[2].handler_off = &SDL3GActor_cmhf_left_off; - - // Move right - controlmap->controls[3].key = SDLK_RIGHT; - controlmap->controls[3].event_on = SDL_EVENT_KEY_DOWN; - controlmap->controls[3].event_off = SDL_EVENT_KEY_UP; - controlmap->controls[3].handler_on = &SDL3GActor_cmhf_right_on; - controlmap->controls[3].handler_off = &SDL3GActor_cmhf_right_off; + // set custom control maps */ + memset((void *)&control, 0x00, sizeof(SDL3GControl)); // Breakpoint - controlmap->controls[4].key = SDLK_ESCAPE; - controlmap->controls[4].event_on = SDL_EVENT_KEY_DOWN; - controlmap->controls[4].handler_on = &user_breakpoint; + control.key = SDLK_ESCAPE; + control.event_on = SDL_EVENT_KEY_DOWN; + control.handler_on = &user_breakpoint; + CATCH(errctx, SDL3G_controller_pushmap(0, &control)); // Toggle the music - controlmap->controls[5].key = SDLK_M; - controlmap->controls[5].event_on = SDL_EVENT_KEY_DOWN; - controlmap->controls[5].handler_on = &music_toggle; + control.key = SDLK_M; + control.event_on = SDL_EVENT_KEY_DOWN; + control.handler_on = &music_toggle; + CATCH(errctx, SDL3G_controller_pushmap(0, &control)); CATCH(errctx, text_loadFont("C64Pro", "assets/C64_Pro-STYLE.ttf", 18));