completed options for vertical text spacing on info and setup screens
[rocksndiamonds.git] / src / files.c
index 649bf1b746fa1e4ed143bb2022afdc65586e1a0b..a07ee8af5458f10b60cfe66d431ac2372be1e4a1 100644 (file)
@@ -839,9 +839,29 @@ 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,
+    TYPE_INTEGER,                      CONF_VALUE_16_BIT(1),
+    &li.score[SC_ELEM_BONUS],          10
   },
 
   /* ---------- unused values ----------------------------------------------- */
@@ -849,11 +869,6 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] =
   {
     EL_UNKNOWN,                                SAVE_CONF_NEVER,
     TYPE_INTEGER,                      CONF_VALUE_16_BIT(1),
-    &li.score[SC_UNKNOWN_14],          10
-  },
-  {
-    EL_UNKNOWN,                                SAVE_CONF_NEVER,
-    TYPE_INTEGER,                      CONF_VALUE_16_BIT(2),
     &li.score[SC_UNKNOWN_15],          10
   },
 
@@ -3990,12 +4005,17 @@ void CopyNativeLevel_RND_to_MM(struct LevelInfo *level)
   strcpy(level_mm->name, level->name);
   strcpy(level_mm->author, level->author);
 
+  level_mm->score[SC_EMERALD]    = level->score[SC_EMERALD];
   level_mm->score[SC_PACMAN]     = level->score[SC_PACMAN];
   level_mm->score[SC_KEY]        = level->score[SC_KEY];
   level_mm->score[SC_TIME_BONUS] = level->score[SC_TIME_BONUS];
+  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++)
@@ -4025,12 +4045,17 @@ void CopyNativeLevel_MM_to_RND(struct LevelInfo *level)
   if (!strEqual(level_mm->author, ANONYMOUS_NAME))
     strcpy(level->author, level_mm->author);
 
+  level->score[SC_EMERALD]    = level_mm->score[SC_EMERALD];
   level->score[SC_PACMAN]     = level_mm->score[SC_PACMAN];
   level->score[SC_KEY]        = level_mm->score[SC_KEY];
   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++)
@@ -9723,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++)