removed unnecessary "else if" structure
[rocksndiamonds.git] / src / libgame / setup.c
index 48f967c3b03ee2ff5688501294efc178d3174e25..715464ab13da9140fec5b6cc3e29a9aec93f3774 100644 (file)
@@ -582,6 +582,19 @@ char *getTapeFilename(int nr)
   return filename;
 }
 
+char *getTemporaryTapeFilename(void)
+{
+  static char *filename = NULL;
+  char basename[MAX_FILENAME_LEN];
+
+  checked_free(filename);
+
+  sprintf(basename, "tmp.%s", TAPEFILE_EXTENSION);
+  filename = getPath2(getTapeDir(NULL), basename);
+
+  return filename;
+}
+
 char *getDefaultSolutionTapeFilename(int nr)
 {
   static char *filename = NULL;
@@ -1284,15 +1297,17 @@ TreeInfo *getFirstValidTreeInfoEntry(TreeInfo *node)
 
   if (node->node_group)                // enter level group (step down into tree)
     return getFirstValidTreeInfoEntry(node->node_group);
-  else if (node->parent_link)  // skip start entry of level group
+
+  if (node->parent_link)       // skip start entry of level group
   {
     if (node->next)            // get first real level series entry
       return getFirstValidTreeInfoEntry(node->next);
     else                       // leave empty level group and go on
       return getFirstValidTreeInfoEntry(node->node_parent->next);
   }
-  else                         // this seems to be a regular level series
-    return node;
+
+  // this seems to be a regular level series
+  return node;
 }
 
 TreeInfo *getTreeInfoFirstGroupEntry(TreeInfo *node)
@@ -1478,9 +1493,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)
@@ -1498,6 +1514,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])",
@@ -1505,10 +1524,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,