added function to add top tree node with back link
authorHolger Schemel <info@artsoft.org>
Tue, 15 Feb 2022 16:50:36 +0000 (17:50 +0100)
committerHolger Schemel <info@artsoft.org>
Tue, 15 Feb 2022 16:50:36 +0000 (17:50 +0100)
src/libgame/setup.c
src/libgame/setup.h

index d81cb8b55bdf6e66d1087b13c1c538caa9d75ad9..88762de495db29775fd6b422502ce144fd9e5071 100644 (file)
@@ -3080,6 +3080,17 @@ static void setTreeInfoParentNodes(TreeInfo *node, TreeInfo *node_parent)
   }
 }
 
+TreeInfo *addTopTreeInfoNode(TreeInfo *node_first)
+{
+  // add top tree node with back link node in previous tree
+  node_first = createTopTreeInfoNode(node_first);
+
+  // set all parent links (back links) in complete tree
+  setTreeInfoParentNodes(node_first, NULL);
+
+  return node_first;
+}
+
 
 // ----------------------------------------------------------------------------
 // functions for handling level and custom artwork info cache
@@ -4214,11 +4225,8 @@ static void LoadArtworkInfoFromLevelInfo(ArtworkDirTree **artwork_node)
   LoadArtworkInfoFromLevelInfoExt(artwork_node, NULL, leveldir_first_all, TRUE);
   LoadArtworkInfoFromLevelInfoExt(artwork_node, NULL, leveldir_first_all, FALSE);
 
-  // add top tree node over all three separate sub-trees
-  *artwork_node = createTopTreeInfoNode(*artwork_node);
-
-  // set all parent links (back links) in complete artwork tree
-  setTreeInfoParentNodes(*artwork_node, NULL);
+  // add top tree node over all sub-trees and set parent links
+  *artwork_node = addTopTreeInfoNode(*artwork_node);
 }
 
 void LoadLevelArtworkInfo(void)
index 4a779440b337b26cbb11e63e0b1474cde12366ec..36df605ed67b63983b9bf95d3f995321be9f87e2 100644 (file)
@@ -320,6 +320,7 @@ void sortTreeInfoBySortFunction(TreeInfo **,
                                                        const void *));
 void sortTreeInfo(TreeInfo **);
 void freeTreeInfo(TreeInfo *);
+TreeInfo *addTopTreeInfoNode(TreeInfo *);
 
 char *getHomeDir(void);
 char *getPersonalDataDir(void);