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));