X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=2a72397139931fb4d9c735428353d0925c65e1cb;hb=2443a8a09966a9940e1420c91d24a297325c2a00;hp=d5ad588bc7c111607d88aafaf6182284efa16caf;hpb=8c6f354ceb0f49857489ef2df0303e155e7f6846;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index d5ad588b..2a723971 100644 --- a/src/files.c +++ b/src/files.c @@ -1180,8 +1180,15 @@ void SaveScore(int level_nr) #define SETUP_TOKEN_HANDICAP 12 #define SETUP_TOKEN_TIME_LIMIT 13 #define SETUP_TOKEN_FULLSCREEN 14 +#define SETUP_TOKEN_ASK_ON_ESCAPE 15 -#define NUM_GLOBAL_SETUP_TOKENS 15 +#define NUM_GLOBAL_SETUP_TOKENS 16 + +/* shortcut setup */ +#define SETUP_TOKEN_SAVE_GAME 0 +#define SETUP_TOKEN_LOAD_GAME 1 + +#define NUM_SHORTCUT_SETUP_TOKENS 2 /* player setup */ #define SETUP_TOKEN_USE_JOYSTICK 0 @@ -1204,26 +1211,35 @@ void SaveScore(int level_nr) #define NUM_PLAYER_SETUP_TOKENS 16 static struct SetupInfo si; +static struct SetupShortcutInfo ssi; static struct SetupInputInfo sii; static struct TokenInfo global_setup_tokens[] = { /* global setup */ - { TYPE_STRING, &si.player_name, "player_name" }, - { TYPE_SWITCH, &si.sound, "sound" }, - { TYPE_SWITCH, &si.sound_loops, "repeating_sound_loops" }, - { TYPE_SWITCH, &si.sound_music, "background_music" }, - { TYPE_SWITCH, &si.sound_simple, "simple_sound_effects" }, - { TYPE_SWITCH, &si.toons, "toons" }, - { TYPE_SWITCH, &si.scroll_delay, "scroll_delay" }, - { TYPE_SWITCH, &si.soft_scrolling, "soft_scrolling" }, - { TYPE_SWITCH, &si.fading, "screen_fading" }, - { TYPE_SWITCH, &si.autorecord, "automatic_tape_recording" }, - { TYPE_SWITCH, &si.quick_doors, "quick_doors" }, - { TYPE_SWITCH, &si.team_mode, "team_mode" }, - { TYPE_SWITCH, &si.handicap, "handicap" }, - { TYPE_SWITCH, &si.time_limit, "time_limit" }, - { TYPE_SWITCH, &si.fullscreen, "fullscreen" } + { TYPE_STRING, &si.player_name, "player_name" }, + { TYPE_SWITCH, &si.sound, "sound" }, + { TYPE_SWITCH, &si.sound_loops, "repeating_sound_loops" }, + { TYPE_SWITCH, &si.sound_music, "background_music" }, + { TYPE_SWITCH, &si.sound_simple, "simple_sound_effects" }, + { TYPE_SWITCH, &si.toons, "toons" }, + { TYPE_SWITCH, &si.scroll_delay, "scroll_delay" }, + { TYPE_SWITCH, &si.soft_scrolling, "soft_scrolling" }, + { TYPE_SWITCH, &si.fading, "screen_fading" }, + { TYPE_SWITCH, &si.autorecord, "automatic_tape_recording" }, + { TYPE_SWITCH, &si.quick_doors, "quick_doors" }, + { TYPE_SWITCH, &si.team_mode, "team_mode" }, + { TYPE_SWITCH, &si.handicap, "handicap" }, + { TYPE_SWITCH, &si.time_limit, "time_limit" }, + { TYPE_SWITCH, &si.ask_on_escape, "ask_on_escape" }, + { TYPE_SWITCH, &si.fullscreen, "fullscreen" } +}; + +static struct TokenInfo shortcut_setup_tokens[] = +{ + /* shortcut setup */ + { TYPE_KEY_X11, &ssi.save_game, "shortcut.save_game" }, + { TYPE_KEY_X11, &ssi.load_game, "shortcut.load_game" } }; static struct TokenInfo player_setup_tokens[] = @@ -1239,12 +1255,12 @@ static struct TokenInfo player_setup_tokens[] = { TYPE_INTEGER, &sii.joy.ylower, ".joy.ylower" }, { TYPE_INTEGER, &sii.joy.snap, ".joy.snap_field" }, { TYPE_INTEGER, &sii.joy.bomb, ".joy.place_bomb" }, - { TYPE_KEY, &sii.key.left, ".key.move_left" }, - { TYPE_KEY, &sii.key.right, ".key.move_right" }, - { TYPE_KEY, &sii.key.up, ".key.move_up" }, - { TYPE_KEY, &sii.key.down, ".key.move_down" }, - { TYPE_KEY, &sii.key.snap, ".key.snap_field" }, - { TYPE_KEY, &sii.key.bomb, ".key.place_bomb" } + { TYPE_KEY_X11, &sii.key.left, ".key.move_left" }, + { TYPE_KEY_X11, &sii.key.right, ".key.move_right" }, + { TYPE_KEY_X11, &sii.key.up, ".key.move_up" }, + { TYPE_KEY_X11, &sii.key.down, ".key.move_down" }, + { TYPE_KEY_X11, &sii.key.snap, ".key.snap_field" }, + { TYPE_KEY_X11, &sii.key.bomb, ".key.place_bomb" } }; static void setSetupInfoToDefaults(struct SetupInfo *si) @@ -1269,6 +1285,10 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->handicap = TRUE; si->time_limit = TRUE; si->fullscreen = FALSE; + si->ask_on_escape = TRUE; + + si->shortcut.save_game = DEFAULT_KEY_SAVE_GAME; + si->shortcut.load_game = DEFAULT_KEY_LOAD_GAME; for (i=0; i