rnd-20060112-1-src
[rocksndiamonds.git] / src / files.c
index b11e7a9cfbfb957a8e2989b9cb87aefc4315f6fa..39ecf24b895c5143c1960a50d3212800785eab2c 100644 (file)
@@ -286,6 +286,10 @@ static struct
     EL_PLAYER_4,                       CONF_VALUE_BOOLEAN_4,
     &li.use_explosion_element[3],      FALSE
   },
+  {
+    EL_PLAYER_1,                       CONF_VALUE_INTEGER_1,
+    &li.initial_player_stepsize,       STEPSIZE_NORMAL
+  },
   {
     EL_EMC_MAGIC_BALL,                 CONF_VALUE_INTEGER_1,
     &li.ball_time,                     10
@@ -555,7 +559,9 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
   level->biomaze[2] = 3;
   level->biomaze[3] = 3;
 
+#if 0
   level->double_speed = FALSE;
+#endif
   level->initial_gravity = FALSE;
   level->em_slippery_gems = FALSE;
   level->instant_relocation = FALSE;
@@ -1173,7 +1179,10 @@ static int LoadLevel_HEAD(FILE *file, int chunk_size, struct LevelInfo *level)
   level->time_magic_wall       = getFile8Bit(file);
   level->time_wheel            = getFile8Bit(file);
   level->amoeba_content                = getMappedElement(getFile8Bit(file));
-  level->double_speed          = (getFile8Bit(file) == 1 ? TRUE : FALSE);
+
+  level->initial_player_stepsize = (getFile8Bit(file) == 1 ? STEPSIZE_FAST :
+                                   STEPSIZE_NORMAL);
+
   level->initial_gravity       = (getFile8Bit(file) == 1 ? TRUE : FALSE);
   level->encoding_16bit_field  = (getFile8Bit(file) == 1 ? TRUE : FALSE);
   level->em_slippery_gems      = (getFile8Bit(file) == 1 ? TRUE : FALSE);
@@ -3056,7 +3065,7 @@ static void LoadLevel_InitVersion(struct LevelInfo *level, char *filename)
 
   /* player was faster than enemies in 1.0.0 and before */
   if (level->file_version == FILE_VERSION_1_0)
-    level->double_speed = TRUE;
+    level->initial_player_stepsize = STEPSIZE_FAST;
 
   /* default behaviour for EM style gems was "slippery" only in 2.0.1 */
   if (level->game_version == VERSION_IDENT(2,0,1,0))
@@ -3345,7 +3354,7 @@ static void SaveLevel_HEAD(FILE *file, struct LevelInfo *level)
   putFile8Bit(file, level->time_wheel);
   putFile8Bit(file, (level->encoding_16bit_amoeba ? EL_EMPTY :
                     level->amoeba_content));
-  putFile8Bit(file, (level->double_speed ? 1 : 0));
+  putFile8Bit(file, (level->initial_player_stepsize == STEPSIZE_FAST ? 1 : 0));
   putFile8Bit(file, (level->initial_gravity ? 1 : 0));
   putFile8Bit(file, (level->encoding_16bit_field ? 1 : 0));
   putFile8Bit(file, (level->em_slippery_gems ? 1 : 0));
@@ -4045,7 +4054,7 @@ void DumpLevel(struct LevelInfo *level)
   printf("Amoeba speed: %d\n", level->amoeba_speed);
   printf("\n");
   printf("Initial gravity:             %s\n", (level->initial_gravity ? "yes" : "no"));
-  printf("Double speed movement:       %s\n", (level->double_speed ? "yes" : "no"));
+  printf("Initial player stepsize:     %d\n", level->initial_player_stepsize);
   printf("EM style slippery gems:      %s\n", (level->em_slippery_gems ? "yes" : "no"));
   printf("Player blocks last field:    %s\n", (level->block_last_field ? "yes" : "no"));
   printf("SP player blocks last field: %s\n", (level->sp_block_last_field ? "yes" : "no"));