]> git.itanic.dy.fi Git - sdl-planets/commitdiff
Quadtree: Recalculate tree statistics after a node has been moved
authorTimo Kokkonen <kaapeli@itanic.dy.fi>
Sat, 9 Jul 2011 07:24:28 +0000 (10:24 +0300)
committerTimo Kokkonen <kaapeli@itanic.dy.fi>
Sat, 9 Jul 2011 09:00:13 +0000 (12:00 +0300)
This is needed in order to ensure tree corner statistics are always up
to date.

Signed-off-by: Timo Kokkonen <kaapeli@itanic.dy.fi>
quadtree.c

index 5edee753abaff4a33b93f6fed86da149944169e9..0515dc6ed5ebcd7edf4d560c799e2743869e6e60 100644 (file)
@@ -873,6 +873,7 @@ struct quadtree *quadtree_move(struct quadtree *node, struct vector new_pos,
                tree_parent = quadtree_del(node, ops);
                node->pos = new_pos;
                quadtree_add(tree_parent, node, ops);
+               quadtree_recalculate_parent_stats(node, ops);
                return tree_parent;
        }
 
@@ -892,6 +893,7 @@ struct quadtree *quadtree_move(struct quadtree *node, struct vector new_pos,
                check_for_crossed_subnodes(node, limit, ops);
        }
 
+       quadtree_recalculate_parent_stats(node, ops);
        return quadtree_find_parent(node);
 
 }