added leaf node count to level/artwork tree info dump
authorHolger Schemel <info@artsoft.org>
Fri, 3 Sep 2021 12:55:32 +0000 (14:55 +0200)
committerHolger Schemel <info@artsoft.org>
Fri, 3 Sep 2021 12:55:32 +0000 (14:55 +0200)
src/libgame/setup.c
src/libgame/setup.h

index bda89ee3222c63f3c747f244144f2a43ecef89e0..9c6ddfe6cabd8fd202c43761aec225d951cf9e43 100644 (file)
@@ -1491,9 +1491,10 @@ static boolean adjustTreeSoundsForEMC(TreeInfo *node)
   return settings_changed;
 }
 
-void dumpTreeInfo(TreeInfo *node, int depth)
+int dumpTreeInfo(TreeInfo *node, int depth)
 {
   char bullet_list[] = { '-', '*', 'o' };
+  int num_leaf_nodes = 0;
   int i;
 
   if (depth == 0)
@@ -1511,6 +1512,9 @@ void dumpTreeInfo(TreeInfo *node, int depth)
                   (node->node_parent ? node->node_parent->identifier : "-"),
                   (node->node_group ? "[GROUP]" : ""));
 
+    if (!node->node_group && !node->parent_link)
+      num_leaf_nodes++;
+
     /*
     // use for dumping artwork info tree
     Debug("tree", "subdir == '%s' ['%s', '%s'] [%d])",
@@ -1518,10 +1522,15 @@ void dumpTreeInfo(TreeInfo *node, int depth)
     */
 
     if (node->node_group != NULL)
-      dumpTreeInfo(node->node_group, depth + 1);
+      num_leaf_nodes += dumpTreeInfo(node->node_group, depth + 1);
 
     node = node->next;
   }
+
+  if (depth == 0)
+    Debug("tree", "Summary: %d leaf nodes found", num_leaf_nodes);
+
+  return num_leaf_nodes;
 }
 
 void sortTreeInfoBySortFunction(TreeInfo **node_first,
index 4e68c5969785e0323d4b401efea1daf8bac026ad..b312caac17b15ffd0c085dce8cba7739b4ffe109 100644 (file)
@@ -309,7 +309,7 @@ int numTreeInfoInGroup(TreeInfo *);
 int getPosFromTreeInfo(TreeInfo *);
 TreeInfo *getTreeInfoFromPos(TreeInfo *, int);
 TreeInfo *getTreeInfoFromIdentifier(TreeInfo *, char *);
-void dumpTreeInfo(TreeInfo *, int);
+int dumpTreeInfo(TreeInfo *, int);
 void sortTreeInfoBySortFunction(TreeInfo **,
                                int (*compare_function)(const void *,
                                                        const void *));