X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ffiles.c;h=4cdb8199bae0f5ecf8cb21eba1a953a3dc0f3263;hp=d7f59a722369cc7e0e82bfa2d46ed293fe8527b8;hb=6fe1eea30256f13a8ac86e982cf14f54f26ec3cc;hpb=2adec83bef3e75ccb9af305cb44693c467c4d665 diff --git a/src/files.c b/src/files.c index d7f59a72..4cdb8199 100644 --- a/src/files.c +++ b/src/files.c @@ -7062,7 +7062,8 @@ static int SaveLevel_GRPX(FILE *file, struct LevelInfo *level, int element) return chunk_size; } -static void SaveLevelFromFilename(struct LevelInfo *level, char *filename) +static void SaveLevelFromFilename(struct LevelInfo *level, char *filename, + boolean save_as_template) { int chunk_size; int i; @@ -7126,7 +7127,7 @@ static void SaveLevelFromFilename(struct LevelInfo *level, char *filename) } /* if not using template level, check for non-default custom/group elements */ - if (!level->use_custom_template) + if (!level->use_custom_template || save_as_template) { for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++) { @@ -7162,14 +7163,14 @@ void SaveLevel(int nr) { char *filename = getDefaultLevelFilename(nr); - SaveLevelFromFilename(&level, filename); + SaveLevelFromFilename(&level, filename, FALSE); } void SaveLevelTemplate() { char *filename = getLocalLevelTemplateFilename(); - SaveLevelFromFilename(&level, filename); + SaveLevelFromFilename(&level, filename, TRUE); } boolean SaveLevelChecked(int nr) @@ -7944,41 +7945,42 @@ void SaveScore(int nr) #define SETUP_TOKEN_TEAM_MODE 14 #define SETUP_TOKEN_HANDICAP 15 #define SETUP_TOKEN_SKIP_LEVELS 16 -#define SETUP_TOKEN_TIME_LIMIT 17 -#define SETUP_TOKEN_FULLSCREEN 18 -#define SETUP_TOKEN_WINDOW_SCALING_PERCENT 19 -#define SETUP_TOKEN_WINDOW_SCALING_QUALITY 20 -#define SETUP_TOKEN_SCREEN_RENDERING_MODE 21 -#define SETUP_TOKEN_ASK_ON_ESCAPE 22 -#define SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR 23 -#define SETUP_TOKEN_QUICK_SWITCH 24 -#define SETUP_TOKEN_INPUT_ON_FOCUS 25 -#define SETUP_TOKEN_PREFER_AGA_GRAPHICS 26 -#define SETUP_TOKEN_GAME_FRAME_DELAY 27 -#define SETUP_TOKEN_SP_SHOW_BORDER_ELEMENTS 28 -#define SETUP_TOKEN_SMALL_GAME_GRAPHICS 29 -#define SETUP_TOKEN_SHOW_SNAPSHOT_BUTTONS 30 -#define SETUP_TOKEN_GRAPHICS_SET 31 -#define SETUP_TOKEN_SOUNDS_SET 32 -#define SETUP_TOKEN_MUSIC_SET 33 -#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 34 -#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 35 -#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 36 -#define SETUP_TOKEN_VOLUME_SIMPLE 37 -#define SETUP_TOKEN_VOLUME_LOOPS 38 -#define SETUP_TOKEN_VOLUME_MUSIC 39 -#define SETUP_TOKEN_TOUCH_CONTROL_TYPE 40 -#define SETUP_TOKEN_TOUCH_MOVE_DISTANCE 41 -#define SETUP_TOKEN_TOUCH_DROP_DISTANCE 42 - -#define NUM_GLOBAL_SETUP_TOKENS 43 +#define SETUP_TOKEN_INCREMENT_LEVELS 17 +#define SETUP_TOKEN_TIME_LIMIT 18 +#define SETUP_TOKEN_FULLSCREEN 19 +#define SETUP_TOKEN_WINDOW_SCALING_PERCENT 20 +#define SETUP_TOKEN_WINDOW_SCALING_QUALITY 21 +#define SETUP_TOKEN_SCREEN_RENDERING_MODE 22 +#define SETUP_TOKEN_ASK_ON_ESCAPE 23 +#define SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR 24 +#define SETUP_TOKEN_QUICK_SWITCH 25 +#define SETUP_TOKEN_INPUT_ON_FOCUS 26 +#define SETUP_TOKEN_PREFER_AGA_GRAPHICS 27 +#define SETUP_TOKEN_GAME_FRAME_DELAY 28 +#define SETUP_TOKEN_SP_SHOW_BORDER_ELEMENTS 29 +#define SETUP_TOKEN_SMALL_GAME_GRAPHICS 30 +#define SETUP_TOKEN_SHOW_SNAPSHOT_BUTTONS 31 +#define SETUP_TOKEN_GRAPHICS_SET 32 +#define SETUP_TOKEN_SOUNDS_SET 33 +#define SETUP_TOKEN_MUSIC_SET 34 +#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 35 +#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 36 +#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 37 +#define SETUP_TOKEN_VOLUME_SIMPLE 38 +#define SETUP_TOKEN_VOLUME_LOOPS 39 +#define SETUP_TOKEN_VOLUME_MUSIC 40 +#define SETUP_TOKEN_TOUCH_CONTROL_TYPE 41 +#define SETUP_TOKEN_TOUCH_MOVE_DISTANCE 42 +#define SETUP_TOKEN_TOUCH_DROP_DISTANCE 43 + +#define NUM_GLOBAL_SETUP_TOKENS 44 /* editor setup */ -#define SETUP_TOKEN_EDITOR_EL_CHARS 0 -#define SETUP_TOKEN_EDITOR_EL_STEEL_CHARS 1 -#define SETUP_TOKEN_EDITOR_EL_CUSTOM 2 -#define SETUP_TOKEN_EDITOR_EL_USER_DEFINED 3 -#define SETUP_TOKEN_EDITOR_EL_DYNAMIC 4 +#define SETUP_TOKEN_EDITOR_EL_CLASSIC 0 +#define SETUP_TOKEN_EDITOR_EL_CUSTOM 1 +#define SETUP_TOKEN_EDITOR_EL_USER_DEFINED 2 +#define SETUP_TOKEN_EDITOR_EL_DYNAMIC 3 +#define SETUP_TOKEN_EDITOR_EL_HEADLINES 4 #define SETUP_TOKEN_EDITOR_SHOW_ELEMENT_TOKEN 5 #define NUM_EDITOR_SETUP_TOKENS 6 @@ -8136,6 +8138,7 @@ static struct TokenInfo global_setup_tokens[] = { TYPE_SWITCH, &si.team_mode, "team_mode" }, { TYPE_SWITCH, &si.handicap, "handicap" }, { TYPE_SWITCH, &si.skip_levels, "skip_levels" }, + { TYPE_SWITCH, &si.increment_levels, "increment_levels" }, { TYPE_SWITCH, &si.time_limit, "time_limit" }, { TYPE_SWITCH, &si.fullscreen, "fullscreen" }, { TYPE_INTEGER,&si.window_scaling_percent, "window_scaling_percent" }, @@ -8166,11 +8169,11 @@ static struct TokenInfo global_setup_tokens[] = static struct TokenInfo editor_setup_tokens[] = { - { TYPE_SWITCH, &sei.el_chars, "editor.el_chars" }, - { TYPE_SWITCH, &sei.el_steel_chars, "editor.el_steel_chars" }, + { TYPE_SWITCH, &sei.el_classic, "editor.el_classic" }, { TYPE_SWITCH, &sei.el_custom, "editor.el_custom" }, { TYPE_SWITCH, &sei.el_user_defined, "editor.el_user_defined" }, { TYPE_SWITCH, &sei.el_dynamic, "editor.el_dynamic" }, + { TYPE_SWITCH, &sei.el_headlines, "editor.el_headlines" }, { TYPE_SWITCH, &sei.show_element_token,"editor.show_element_token" }, }; @@ -8334,6 +8337,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->team_mode = FALSE; si->handicap = TRUE; si->skip_levels = TRUE; + si->increment_levels = TRUE; si->time_limit = TRUE; si->fullscreen = FALSE; si->window_scaling_percent = STD_WINDOW_SCALING_PERCENT; @@ -8375,13 +8379,16 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->editor.el_dx_boulderdash = TRUE; si->editor.el_chars = TRUE; si->editor.el_steel_chars = TRUE; + + si->editor.el_classic = TRUE; si->editor.el_custom = TRUE; - si->editor.el_headlines = TRUE; - si->editor.el_user_defined = FALSE; - si->editor.el_dynamic = TRUE; + si->editor.el_user_defined = FALSE; + si->editor.el_dynamic = TRUE; + + si->editor.el_headlines = TRUE; - si->editor.show_element_token = FALSE; + si->editor.show_element_token = FALSE; si->shortcut.save_game = DEFAULT_KEY_SAVE_GAME; si->shortcut.load_game = DEFAULT_KEY_LOAD_GAME;