orton_runner/src/memory/free_game.c

60 lines
1.0 KiB
C

/*
** EPITECH PROJECT, 2018
** task01
** File description:
** I do task
*/
#include <stdlib.h>
#include "lib/my_memory.h"
#include "game/memory.h"
#include "game/core.h"
static void free_thrower(thrower_t **thrower, int thrower_counter)
{
int i;
if (thrower == NULL)
return;
i = -1;
while (++i < thrower_counter){
if (thrower[i]->object)
free(thrower[i]->object);
free(thrower[i]);
}
free(thrower);
}
static void free_message(message_t **message, int nb_message)
{
int i;
if (message == NULL)
return;
i = -1;
while (++i < nb_message)
if (message[i])
free(message[i]);
free(message);
}
void free_scene(scene_t *scene)
{
if (scene == NULL)
return;
if (scene->thrower)
free_thrower(scene->thrower, scene->level->thrower_counter);
if (scene->level){
if (scene->level->map)
free(scene->level->map);
free(scene->level);
}
if (scene->message)
free_message(scene->message, scene->nb_message);
if (scene->player)
free(scene->player);
if (scene->camera)
free(scene->camera);
if (scene->wall)
free(scene->wall);
}