projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added function to get next valid tree node
[rocksndiamonds.git]
/
src
/
libgame
/
setup.c
diff --git
a/src/libgame/setup.c
b/src/libgame/setup.c
index 403d0dae558baa641d5ebf618fb45a8e514fe9c3..60ec59f307cc83e9aaf332a86c5b85f16b13e73d 100644
(file)
--- a/
src/libgame/setup.c
+++ b/
src/libgame/setup.c
@@
-1290,7
+1290,7
@@
TreeInfo *getValidLevelSeries(TreeInfo *node, TreeInfo *default_node)
return getFirstValidTreeInfoEntry(default_node);
}
return getFirstValidTreeInfoEntry(default_node);
}
-
TreeInfo *getFirstValidTreeInfoEntry(TreeInfo *
node)
+
static TreeInfo *getValidTreeInfoEntryExt(TreeInfo *node, boolean get_next_
node)
{
if (node == NULL)
return NULL;
{
if (node == NULL)
return NULL;
@@
-1299,6
+1299,9
@@
TreeInfo *getFirstValidTreeInfoEntry(TreeInfo *node)
return getFirstValidTreeInfoEntry(node->node_group);
if (node->parent_link) // skip first node (back link) of node group
return getFirstValidTreeInfoEntry(node->node_group);
if (node->parent_link) // skip first node (back link) of node group
+ get_next_node = TRUE;
+
+ if (get_next_node)
{
// get next regular tree node, or step up until one is found
while (node->next == NULL && node->node_parent != NULL)
{
// get next regular tree node, or step up until one is found
while (node->next == NULL && node->node_parent != NULL)
@@
-1311,6
+1314,16
@@
TreeInfo *getFirstValidTreeInfoEntry(TreeInfo *node)
return node;
}
return node;
}
+TreeInfo *getFirstValidTreeInfoEntry(TreeInfo *node)
+{
+ return getValidTreeInfoEntryExt(node, FALSE);
+}
+
+TreeInfo *getNextValidTreeInfoEntry(TreeInfo *node)
+{
+ return getValidTreeInfoEntryExt(node, TRUE);
+}
+
TreeInfo *getTreeInfoFirstGroupEntry(TreeInfo *node)
{
if (node == NULL)
TreeInfo *getTreeInfoFirstGroupEntry(TreeInfo *node)
{
if (node == NULL)