fixed fading complete screen if playfield viewport has changed
[rocksndiamonds.git] / src / files.c
index d42a2cd55e9effbcbdbb942dd06a167749b9354c..a07ee8af5458f10b60cfe66d431ac2372be1e4a1 100644 (file)
@@ -839,9 +839,24 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] =
   },
 
   {
-    EL_MM_FUSE,                                -1,
+    EL_MM_FUSE_ACTIVE,                 -1,
     TYPE_INTEGER,                      CONF_VALUE_16_BIT(1),
-    &li.mm_time_fuse,                  0
+    &li.mm_time_fuse,                  25
+  },
+  {
+    EL_MM_BOMB,                                -1,
+    TYPE_INTEGER,                      CONF_VALUE_16_BIT(1),
+    &li.mm_time_bomb,                  75
+  },
+  {
+    EL_MM_GRAY_BALL,                   -1,
+    TYPE_INTEGER,                      CONF_VALUE_16_BIT(1),
+    &li.mm_time_ball,                  75
+  },
+  {
+    EL_MM_STEEL_BLOCK,                 -1,
+    TYPE_INTEGER,                      CONF_VALUE_16_BIT(1),
+    &li.mm_time_block,                 75
   },
   {
     EL_MM_LIGHTBALL,                   -1,
@@ -3997,7 +4012,10 @@ void CopyNativeLevel_RND_to_MM(struct LevelInfo *level)
   level_mm->score[SC_ELEM_BONUS] = level->score[SC_ELEM_BONUS];
 
   level_mm->amoeba_speed = level->amoeba_speed;
-  level_mm->time_fuse = level->mm_time_fuse;
+  level_mm->time_fuse    = level->mm_time_fuse;
+  level_mm->time_bomb    = level->mm_time_bomb;
+  level_mm->time_ball    = level->mm_time_ball;
+  level_mm->time_block   = level->mm_time_block;
 
   for (x = 0; x < level->fieldx; x++)
     for (y = 0; y < level->fieldy; y++)
@@ -4033,8 +4051,11 @@ void CopyNativeLevel_MM_to_RND(struct LevelInfo *level)
   level->score[SC_TIME_BONUS] = level_mm->score[SC_TIME_BONUS];
   level->score[SC_ELEM_BONUS] = level_mm->score[SC_ELEM_BONUS];
 
-  level->amoeba_speed = level_mm->amoeba_speed;
-  level->mm_time_fuse = level_mm->time_fuse;
+  level->amoeba_speed  = level_mm->amoeba_speed;
+  level->mm_time_fuse  = level_mm->time_fuse;
+  level->mm_time_bomb  = level_mm->time_bomb;
+  level->mm_time_ball  = level_mm->time_ball;
+  level->mm_time_block = level_mm->time_block;
 
   for (x = 0; x < level->fieldx; x++)
     for (y = 0; y < level->fieldy; y++)
@@ -9727,6 +9748,28 @@ static void LoadMenuDesignSettingsFromFilename(char *filename)
       menu.draw_yoffset_setup[i] = get_integer_from_string(value_2);
   }
 
+  /* special case: initialize with default values that may be overwritten */
+  /* (eg, init "menu.line_spacing.INFO[XXX]" from "menu.line_spacing.INFO") */
+  for (i = 0; i < NUM_SPECIAL_GFX_INFO_ARGS; i++)
+  {
+    char *value_1 = getHashEntry(setup_file_hash,"menu.paragraph_spacing.INFO");
+    char *value_2 = getHashEntry(setup_file_hash,"menu.headline1_spacing.INFO");
+    char *value_3 = getHashEntry(setup_file_hash,"menu.headline2_spacing.INFO");
+    char *value_4 = getHashEntry(setup_file_hash,"menu.line_spacing.INFO");
+    char *value_5 = getHashEntry(setup_file_hash,"menu.extra_spacing.INFO");
+
+    if (value_1 != NULL)
+      menu.paragraph_spacing_info[i] = get_integer_from_string(value_1);
+    if (value_2 != NULL)
+      menu.headline1_spacing_info[i] = get_integer_from_string(value_2);
+    if (value_3 != NULL)
+      menu.headline2_spacing_info[i] = get_integer_from_string(value_3);
+    if (value_4 != NULL)
+      menu.line_spacing_info[i] = get_integer_from_string(value_4);
+    if (value_5 != NULL)
+      menu.extra_spacing_info[i] = get_integer_from_string(value_5);
+  }
+
   /* special case: initialize with default values that may be overwritten */
   /* (eg, init "menu.enter_screen.SCORES.xyz" from "menu.enter_screen.xyz") */
   for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++)