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[])
|
SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
SDL3GControlMap *controlmap;
|
SDL3GControl control;
|
||||||
actor *actorptr = NULL;
|
actor *actorptr = NULL;
|
||||||
*appstate = (void *)&game.state;
|
*appstate = (void *)&game.state;
|
||||||
PREPARE_ERROR(errctx);
|
PREPARE_ERROR(errctx);
|
||||||
@@ -104,48 +104,22 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
|
|||||||
strcpy((char *)&dirnamebuf, "assets/tilemap.tmj");
|
strcpy((char *)&dirnamebuf, "assets/tilemap.tmj");
|
||||||
CATCH(errctx, tilemap_load((char *)&dirnamebuf, (tilemap *)&gamemap));
|
CATCH(errctx, tilemap_load((char *)&dirnamebuf, (tilemap *)&gamemap));
|
||||||
|
|
||||||
// set up the control map
|
CATCH(errctx, SDL3G_controller_default(0, "player", 0, 0));
|
||||||
controlmap = &GAME_ControlMaps[0];
|
|
||||||
controlmap->kbid = 0;
|
|
||||||
controlmap->target = SDL_GetPointerProperty(REGISTRY_ACTOR, "player", NULL);
|
|
||||||
|
|
||||||
// Move down
|
// set custom control maps */
|
||||||
controlmap->controls[0].key = SDLK_DOWN;
|
memset((void *)&control, 0x00, sizeof(SDL3GControl));
|
||||||
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;
|
|
||||||
|
|
||||||
// Breakpoint
|
// Breakpoint
|
||||||
controlmap->controls[4].key = SDLK_ESCAPE;
|
control.key = SDLK_ESCAPE;
|
||||||
controlmap->controls[4].event_on = SDL_EVENT_KEY_DOWN;
|
control.event_on = SDL_EVENT_KEY_DOWN;
|
||||||
controlmap->controls[4].handler_on = &user_breakpoint;
|
control.handler_on = &user_breakpoint;
|
||||||
|
CATCH(errctx, SDL3G_controller_pushmap(0, &control));
|
||||||
|
|
||||||
// Toggle the music
|
// Toggle the music
|
||||||
controlmap->controls[5].key = SDLK_M;
|
control.key = SDLK_M;
|
||||||
controlmap->controls[5].event_on = SDL_EVENT_KEY_DOWN;
|
control.event_on = SDL_EVENT_KEY_DOWN;
|
||||||
controlmap->controls[5].handler_on = &music_toggle;
|
control.handler_on = &music_toggle;
|
||||||
|
CATCH(errctx, SDL3G_controller_pushmap(0, &control));
|
||||||
|
|
||||||
CATCH(errctx, text_loadFont("C64Pro", "assets/C64_Pro-STYLE.ttf", 18));
|
CATCH(errctx, text_loadFont("C64Pro", "assets/C64_Pro-STYLE.ttf", 18));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user