"skip stage" button

This commit is contained in:
Andrei "Akari" Alexeyev 2017-02-15 19:10:56 +02:00
parent 1380015e70
commit 61b2488b50
4 changed files with 15 additions and 1 deletions

View file

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

View file

@ -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

View file

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

View file

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