X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=715464ab13da9140fec5b6cc3e29a9aec93f3774;hb=360dc85deeb6b16c3923f629f3c6909a19823e3e;hp=48f967c3b03ee2ff5688501294efc178d3174e25;hpb=05ee9c39039a7329aa0e8ff747e30526c8c61260;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 48f967c3..715464ab 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -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,