Adding a qt_destroy

This commit is contained in:
AnonymusRaccoon
2019-12-16 14:47:27 +01:00
parent 19cd1ba55e
commit 883328186b
4 changed files with 29 additions and 1 deletions
+1
View File
@@ -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
View File
@@ -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);
+25
View File
@@ -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);
}
+1
View File
@@ -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);
}