Transition to using the default config map, and pushing custom controls with SDL3G_controller_pushmaP
This commit is contained in:
@@ -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);
|
||||
CATCH(errctx, SDL3G_controller_default(0, "player", 0, 0));
|
||||
|
||||
// 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;
|
||||
|
||||
// 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));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user