diff --git a/src/config.c b/src/config.c index c19e9495..54cd9e2d 100644 --- a/src/config.c +++ b/src/config.c @@ -28,6 +28,7 @@ ConfigEntry configdefs[] = { {CFGT_KEYBINDING, KEY_SKIP, "key_skip"}, {CFGT_KEYBINDING, KEY_IDDQD, "key_iddqd"}, + {CFGT_KEYBINDING, KEY_HAHAIWIN, "key_skipstage"}, {CFGT_INT, FULLSCREEN, "fullscreen"}, {CFGT_INT, NO_SHADER, "disable_shader"}, @@ -100,6 +101,7 @@ void config_preset(void) { tconfig.intval[KEY_SKIP] = SDL_SCANCODE_LCTRL; tconfig.intval[KEY_IDDQD] = SDL_SCANCODE_Q; + tconfig.intval[KEY_HAHAIWIN] = SDL_SCANCODE_E; tconfig.intval[FULLSCREEN] = 0; diff --git a/src/config.h b/src/config.h index 778d0f9a..7077566d 100644 --- a/src/config.h +++ b/src/config.h @@ -39,6 +39,7 @@ typedef enum ConfigKey { KEY_SKIP, KEY_IDDQD, // must be present even without DEBUG! + KEY_HAHAIWIN, FULLSCREEN, @@ -99,7 +100,7 @@ extern ConfigEntry configdefs[]; Config tconfig; #define CONFIG_KEY_FIRST KEY_UP -#define CONFIG_KEY_LAST KEY_IDDQD +#define CONFIG_KEY_LAST KEY_HAHAIWIN #define CONFIG_GPKEY_FIRST GP_UP #define CONFIG_GPKEY_LAST GP_PAUSE diff --git a/src/menu/options.c b/src/menu/options.c index 61abdcf0..06d67713 100644 --- a/src/menu/options.c +++ b/src/menu/options.c @@ -584,6 +584,10 @@ void options_sub_controls(void *arg) { add_menu_entry(m, "Toggle God mode", do_nothing, bind_keybinding(KEY_IDDQD) ); + + add_menu_entry(m, "Skip stage", do_nothing, + bind_keybinding(KEY_HAHAIWIN) + ); #endif add_menu_separator(m); diff --git a/src/stage.c b/src/stage.c index 42a421a5..35021b22 100644 --- a/src/stage.c +++ b/src/stage.c @@ -75,6 +75,13 @@ void stage_gameover(void) { void stage_input_event(EventType type, int key, void *arg) { switch(type) { case E_PlrKeyDown: + if(key == KEY_HAHAIWIN) { +#ifdef DEBUG + global.game_over = GAMEOVER_WIN; +#endif + break; + } + if(global.dialog && (key == KEY_SHOT || key == KEY_BOMB)) { page_dialog(&global.dialog); replay_stage_event(global.replay_stage, global.frames, EV_PRESS, key);