added reading settings for busy animation from custom artwork config
[rocksndiamonds.git] / src / init.c
index 079ece2f796b6f6071b82fb5e413329393cf90ab..66ba68ac1d4726d1f1eca081eee2bddf44750e23 100644 (file)
@@ -5600,6 +5600,8 @@ static void InitGfx(void)
 
   DrawInitTextHead("Loading graphics");
 
+  InitMenuDesignSettings_Static();
+
   // initialize settings for busy animation with default values
   int parameter[NUM_GFX_ARGS];
   for (i = 0; i < NUM_GFX_ARGS; i++)
@@ -5641,6 +5643,9 @@ static void InitGfx(void)
        }
       }
 
+      // read values from custom graphics config file
+      InitMenuDesignSettings_FromHash(setup_file_hash, FALSE);
+
       freeSetupFileHash(setup_file_hash);
     }
   }
@@ -5688,8 +5693,6 @@ static void InitGfx(void)
   init.busy.width  = anim_initial.width;
   init.busy.height = anim_initial.height;
 
-  InitMenuDesignSettings_Static();
-
   InitGfxDrawBusyAnimFunction(DrawInitAnim);
   InitGfxDrawGlobalAnimFunction(DrawGlobalAnimations);
   InitGfxDrawGlobalBorderFunction(DrawMaskedBorderToTarget);
@@ -6021,10 +6024,8 @@ static void InitOverrideArtwork(void)
 
 static char *getNewArtworkIdentifier(int type)
 {
-  static char *last_leveldir_identifier[3] = { NULL, NULL, NULL };
   static char *last_artwork_identifier[3] = { NULL, NULL, NULL };
   static boolean last_override_level_artwork[3] = { FALSE, FALSE, FALSE };
-  static boolean last_has_level_artwork_set[3] = { FALSE, FALSE, FALSE };
   static boolean initialized[3] = { FALSE, FALSE, FALSE };
   TreeInfo *artwork_first_node = ARTWORK_FIRST_NODE(artwork, type);
   boolean setup_override_artwork = GFX_OVERRIDE_ARTWORK(type);
@@ -6032,7 +6033,6 @@ static char *getNewArtworkIdentifier(int type)
   char *leveldir_identifier = leveldir_current->identifier;
   // !!! setLevelArtworkDir() should be moved to an earlier stage !!!
   char *leveldir_artwork_set = setLevelArtworkDir(artwork_first_node);
-  boolean has_level_artwork_set = (leveldir_artwork_set != NULL);
   char *artwork_current_identifier;
   char *artwork_new_identifier = NULL; // default: nothing has changed
 
@@ -6060,14 +6060,6 @@ static char *getNewArtworkIdentifier(int type)
   /* 2nd step: check if it is really needed to reload artwork set
      ------------------------------------------------------------ */
 
-  // ---------- reload if level set and also artwork set has changed ----------
-  if (last_leveldir_identifier[type] != leveldir_identifier &&
-      (last_has_level_artwork_set[type] || has_level_artwork_set))
-    artwork_new_identifier = artwork_current_identifier;
-
-  last_leveldir_identifier[type] = leveldir_identifier;
-  last_has_level_artwork_set[type] = has_level_artwork_set;
-
   // ---------- reload if "override artwork" setting has changed --------------
   if (last_override_level_artwork[type] != setup_override_artwork)
     artwork_new_identifier = artwork_current_identifier;