mirror of
https://github.com/zoriya/Quadtree.git
synced 2026-05-27 16:43:16 +00:00
Adding a qt_destroy
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
SRC = src/quadtree.c \
|
||||
src/qt_split.c \
|
||||
src/qt_getcollide.c \
|
||||
src/qt_destroy.c \
|
||||
src/utility/calloc.c
|
||||
|
||||
OBJ = $(SRC:%.c=%.o)
|
||||
|
||||
+2
-1
@@ -47,4 +47,5 @@ int qt_add(quadtree *tree, qt_object obj);
|
||||
qt_collision collision_get_info(quadtree *tree, int entity_id);
|
||||
bool qt_collide(qt_intrect r1, qt_intrect r2);
|
||||
qt_object *qt_getobj(quadtree *tree, int id);
|
||||
int qt_update(quadtree *tree, qt_object obj);
|
||||
int qt_update(quadtree *tree, qt_object obj);
|
||||
void qt_destroy(quadtree *tree);
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
** EPITECH PROJECT, 2019
|
||||
** MUL_my_runner_2019
|
||||
** File description:
|
||||
** qt_destroy
|
||||
*/
|
||||
|
||||
#include "quadtree.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void qt_child_destroy(quadtree *tree)
|
||||
{
|
||||
if (tree->capacity < 0) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
qt_child_destroy(&((quadtree *)tree->objects)[i]);
|
||||
}
|
||||
}
|
||||
free(tree->objects);
|
||||
}
|
||||
|
||||
void qt_destroy(quadtree *tree)
|
||||
{
|
||||
qt_child_destroy(tree);
|
||||
free(tree);
|
||||
}
|
||||
@@ -49,6 +49,7 @@ quadtree *qt_split(quadtree *tree)
|
||||
ret[i].objects = (void *)qt_filter_objects(tree, ret[i].rect);
|
||||
}
|
||||
tree->capacity = -1;
|
||||
free(tree->objects);
|
||||
tree->objects = (void *)ret;
|
||||
return (ret);
|
||||
}
|
||||
Reference in New Issue
Block a user