rnd-20060319-1-src
[rocksndiamonds.git] / src / files.c
index a99ca6baae9bae3e9a5a8f8fc48ae18d80e2fc79..0a514169af088775ddd38262b3df6a25f10ac617 100644 (file)
@@ -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);