changed saving artwork info cache only if it has changed
authorHolger Schemel <info@artsoft.org>
Thu, 4 Feb 2021 00:00:29 +0000 (01:00 +0100)
committerHolger Schemel <info@artsoft.org>
Thu, 4 Feb 2021 00:00:29 +0000 (01:00 +0100)
src/libgame/setup.c

index 7c864576780e2164c0e50019ff96be61ace4c42e..bfe8d94b2bf0aa5d3f6eb843f73bc376c434700a 100644 (file)
@@ -96,6 +96,7 @@ static SetupFileHash *artworkinfo_cache_old = NULL;
 static SetupFileHash *artworkinfo_cache_new = NULL;
 static SetupFileHash *optional_tokens_hash = NULL;
 static boolean use_artworkinfo_cache = TRUE;
+static boolean update_artworkinfo_cache = FALSE;
 
 
 // ----------------------------------------------------------------------------
@@ -2972,10 +2973,15 @@ static void LoadArtworkInfoCache(void)
 
   if (artworkinfo_cache_new == NULL)
     artworkinfo_cache_new = newSetupFileHash();
+
+  update_artworkinfo_cache = FALSE;
 }
 
 static void SaveArtworkInfoCache(void)
 {
+  if (!update_artworkinfo_cache)
+    return;
+
   char *filename = getPath2(getCacheDir(), ARTWORKINFO_CACHE_FILE);
 
   InitCacheDirectory();
@@ -4000,6 +4006,8 @@ static void LoadArtworkInfoFromLevelInfoExt(ArtworkDirTree **artwork_node,
 
          artwork_new->sort_priority = level_node->sort_priority;
          artwork_new->color = LEVELCOLOR(artwork_new);
+
+         update_artworkinfo_cache = TRUE;
        }
 
        free(path);