rnd-20100416-1-src
[rocksndiamonds.git] / src / files.c
index 91e597b1fb680e5367cb6ce4700311321b2bf6b0..9f92ad68cb84300f0e09883ac808a6803a4b153a 100644 (file)
@@ -9807,6 +9807,15 @@ static void InitMenuDesignSettings_SpecialPreProcessing()
     menu.enter_screen[i] = menu.enter_screen[GFX_SPECIAL_ARG_DEFAULT];
     menu.leave_screen[i] = menu.leave_screen[GFX_SPECIAL_ARG_DEFAULT];
   }
+
+  /* special case: initialize "ARG_DEFAULT" values in static default config */
+  /* (eg, init "viewport.door_1.MAIN.xyz" from "viewport.door_1.xyz") */
+  for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++)
+  {
+    viewport.playfield[i] = viewport.playfield[GFX_SPECIAL_ARG_DEFAULT];
+    viewport.door_1[i] = viewport.door_1[GFX_SPECIAL_ARG_DEFAULT];
+    viewport.door_2[i] = viewport.door_2[GFX_SPECIAL_ARG_DEFAULT];
+  }
 }
 
 static void InitMenuDesignSettings_SpecialPostProcessing()
@@ -9944,6 +9953,37 @@ static void LoadMenuDesignSettingsFromFilename(char *filename)
                                                                  value_6);
   }
 
+  /* special case: initialize with default values that may be overwritten */
+  /* (eg, init "viewport.door_1.MAIN.xyz" from "viewport.door_1.xyz") */
+  for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++)
+  {
+    char *token_1 = "viewport.playfield.width";
+    char *token_2 = "viewport.playfield.height";
+    char *token_3 = "viewport.door_1.x";
+    char *token_4 = "viewport.door_1.y";
+    char *token_5 = "viewport.door_2.x";
+    char *token_6 = "viewport.door_2.y";
+    char *value_1 = getHashEntry(setup_file_hash, token_1);
+    char *value_2 = getHashEntry(setup_file_hash, token_2);
+    char *value_3 = getHashEntry(setup_file_hash, token_3);
+    char *value_4 = getHashEntry(setup_file_hash, token_4);
+    char *value_5 = getHashEntry(setup_file_hash, token_5);
+    char *value_6 = getHashEntry(setup_file_hash, token_6);
+
+    if (value_1 != NULL)
+      viewport.playfield[i].width = get_token_parameter_value(token_1,value_1);
+    if (value_2 != NULL)
+      viewport.playfield[i].height = get_token_parameter_value(token_2,value_2);
+    if (value_3 != NULL)
+      viewport.door_1[i].x = get_token_parameter_value(token_3, value_3);
+    if (value_4 != NULL)
+      viewport.door_1[i].y = get_token_parameter_value(token_4, value_4);
+    if (value_5 != NULL)
+      viewport.door_2[i].x = get_token_parameter_value(token_5, value_5);
+    if (value_6 != NULL)
+      viewport.door_2[i].y = get_token_parameter_value(token_6, value_6);
+  }
+
   /* special case: initialize with default values that may be overwritten */
   /* (e.g., init "titlemessage_1.fade_mode" from "[titlemessage].fade_mode") */
   for (i = 0; titlemessage_arrays[i].array != NULL; i++)