rnd-20080802-1-src
[rocksndiamonds.git] / src / files.c
index dd9a274db79e574f7cdcc42d2b975d3fa92c585d..c32777225a076a5a2477b678b15150dbe8b2a627 100644 (file)
@@ -182,6 +182,12 @@ static struct LevelFileConfigInfo chunk_config_INFO[] =
     &li.gems_needed,                   0
   },
 
+  {
+    -1,                                        -1,
+    TYPE_INTEGER,                      CONF_VALUE_32_BIT(2),
+    &li.random_seed,                   0
+  },
+
   {
     -1,                                        -1,
     TYPE_BOOLEAN,                      CONF_VALUE_8_BIT(2),
@@ -218,6 +224,12 @@ static struct LevelFileConfigInfo chunk_config_INFO[] =
     &li.dont_collide_with_bits,                ~0      /* default: always deadly */
   },
 
+  {
+    -1,                                        -1,
+    TYPE_BOOLEAN,                      CONF_VALUE_8_BIT(8),
+    &li.em_explodes_by_fire,           FALSE
+  },
+
   {
     -1,                                        -1,
     TYPE_INTEGER,                      CONF_VALUE_16_BIT(5),
@@ -2023,6 +2035,7 @@ int getMappedElement(int element)
 
     case EL_KEY_OBSOLETE:
       element = EL_KEY_1;
+      break;
 
     case EL_EM_KEY_1_FILE_OBSOLETE:
       element = EL_EM_KEY_1;
@@ -6362,6 +6375,10 @@ static void LoadLevel_InitVersion(struct LevelInfo *level, char *filename)
   /* not centering level after relocating player was default only in 3.2.3 */
   if (level->game_version == VERSION_IDENT(3,2,3,0))   /* (no pre-releases) */
     level->shifted_relocation = TRUE;
+
+  /* EM style elements always chain-exploded in R'n'D engine before 3.2.6 */
+  if (level->game_version < VERSION_IDENT(3,2,6,0))
+    level->em_explodes_by_fire = TRUE;
 }
 
 static void LoadLevel_InitElements(struct LevelInfo *level, char *filename)
@@ -9851,6 +9868,8 @@ void CreateLevelSketchImages()
   Bitmap *bitmap2;
   int i;
 
+  InitElementPropertiesGfxElement();
+
   bitmap1 = CreateBitmap(TILEX, TILEY, DEFAULT_DEPTH);
   bitmap2 = CreateBitmap(MINI_TILEX, MINI_TILEY, DEFAULT_DEPTH);
 
@@ -9858,7 +9877,8 @@ void CreateLevelSketchImages()
   {
     Bitmap *src_bitmap;
     int src_x, src_y;
-    int graphic = el2edimg(i);
+    int element = getMappedElement(i);
+    int graphic = el2edimg(element);
     char basename1[16];
     char basename2[16];
     char *filename1;