removed reloading artwork set for changed level set if not required
authorHolger Schemel <info@artsoft.org>
Fri, 11 Mar 2022 11:35:27 +0000 (12:35 +0100)
committerHolger Schemel <info@artsoft.org>
Fri, 11 Mar 2022 11:45:13 +0000 (12:45 +0100)
The code that was removed here did the following: Trigger reloading
artwork set after a different level set was selected if either the
previous or the current level set has custom artwork configured in
the file "levelinfo.conf". But this caused an attempt to reload new
artwork even if both the previous and current artwork are identical.

Now it is only checked if overriding artwork has changed, or if the
identifiers of the previous and current artwork have changed.

src/init.c

index 079ece2f796b6f6071b82fb5e413329393cf90ab..020b4d1d5e7607c044f72fc7c851bafcdaad0e16 100644 (file)
@@ -6021,10 +6021,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 +6030,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 +6057,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;