X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=0a514169af088775ddd38262b3df6a25f10ac617;hb=c74a890afba46c41f6ba6ef691bc89da0dd0135c;hp=a99ca6baae9bae3e9a5a8f8fc48ae18d80e2fc79;hpb=fa628a204ea4662806244b0ed994a48b40ece2ca;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index a99ca6ba..0a514169 100644 --- a/src/files.c +++ b/src/files.c @@ -290,6 +290,10 @@ static struct EL_PLAYER_4, CONF_VALUE_BOOLEAN_4, &li.use_explosion_element[3], FALSE }, + { + EL_PLAYER_1, CONF_VALUE_BOOLEAN_5, + &li.continuous_snapping, TRUE + }, { EL_PLAYER_1, CONF_VALUE_INTEGER_1, &li.initial_player_stepsize, STEPSIZE_NORMAL @@ -572,7 +576,9 @@ static void setLevelInfoToDefaults(struct LevelInfo *level) level->can_pass_to_walkable = FALSE; level->grow_into_diggable = TRUE; +#if 0 level->block_snap_field = TRUE; +#endif level->block_last_field = FALSE; /* EM does not block by default */ level->sp_block_last_field = TRUE; /* SP blocks the last field */ @@ -2974,8 +2980,12 @@ static void LoadLevelFromFileStream_SP(FILE *file, struct LevelInfo *level, level->time_wheel = 0; level->amoeba_content = EL_EMPTY; +#if 1 + /* original Supaplex does not use score values -- use default values */ +#else for (i = 0; i < LEVEL_SCORE_ELEMENTS; i++) level->score[i] = 0; /* !!! CORRECT THIS !!! */ +#endif /* there are no yamyams in supaplex levels */ for (i = 0; i < level->num_yamyam_contents; i++) @@ -3239,6 +3249,10 @@ static void LoadLevel_InitVersion(struct LevelInfo *level, char *filename) } #endif +#if 0 + leveldir_current->latest_engine = TRUE; /* !!! TEST ONLY !!! */ +#endif + if (leveldir_current->latest_engine) { /* ---------- use latest game engine ----------------------------------- */ @@ -3307,6 +3321,12 @@ static void LoadLevel_InitVersion(struct LevelInfo *level, char *filename) #endif } + if (level->game_version < VERSION_IDENT(3,2,0,7)) + { + /* default behaviour for snapping was "not continuous" before 3.2.0-7 */ + level->continuous_snapping = FALSE; + } + /* only few elements were able to actively move into acid before 3.1.0 */ /* trigger settings did not exist before 3.1.0; set to default "any" */ if (level->game_version < VERSION_IDENT(3,1,0,0)) @@ -4931,14 +4951,15 @@ void SaveScore(int nr) #define SETUP_TOKEN_ASK_ON_ESCAPE 16 #define SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR 17 #define SETUP_TOKEN_QUICK_SWITCH 18 -#define SETUP_TOKEN_GRAPHICS_SET 19 -#define SETUP_TOKEN_SOUNDS_SET 20 -#define SETUP_TOKEN_MUSIC_SET 21 -#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 22 -#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 23 -#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 24 +#define SETUP_TOKEN_INPUT_ON_FOCUS 19 +#define SETUP_TOKEN_GRAPHICS_SET 20 +#define SETUP_TOKEN_SOUNDS_SET 21 +#define SETUP_TOKEN_MUSIC_SET 22 +#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 23 +#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 24 +#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 25 -#define NUM_GLOBAL_SETUP_TOKENS 25 +#define NUM_GLOBAL_SETUP_TOKENS 26 /* editor setup */ #define SETUP_TOKEN_EDITOR_EL_BOULDERDASH 0 @@ -5048,6 +5069,7 @@ static struct TokenInfo global_setup_tokens[] = { TYPE_SWITCH, &si.ask_on_escape, "ask_on_escape" }, { TYPE_SWITCH, &si.ask_on_escape_editor, "ask_on_escape_editor" }, { TYPE_SWITCH, &si.quick_switch, "quick_player_switch" }, + { TYPE_SWITCH, &si.input_on_focus, "input_on_focus" }, { TYPE_STRING, &si.graphics_set, "graphics_set" }, { TYPE_STRING, &si.sounds_set, "sounds_set" }, { TYPE_STRING, &si.music_set, "music_set" }, @@ -5174,6 +5196,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->ask_on_escape = TRUE; si->ask_on_escape_editor = TRUE; si->quick_switch = FALSE; + si->input_on_focus = FALSE; si->graphics_set = getStringCopy(GFX_CLASSIC_SUBDIR); si->sounds_set = getStringCopy(SND_CLASSIC_SUBDIR);