Refactor memory management in game_free and game_manager_destroy;
This commit is contained in:
parent
b965b9e5f5
commit
e023ba20b6
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */
|
/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/06/10 19:12:41 by whaffman ######## odam.nl */
|
/* Updated: 2025/06/10 20:22:34 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -86,6 +86,10 @@ static void free_scoreboard(mlx_t *mlx, t_scoreboard *scoreboard)
|
|||||||
|
|
||||||
void game_free(t_game *game)
|
void game_free(t_game *game)
|
||||||
{
|
{
|
||||||
|
if (game->scoreboard && game->screen && game->screen->mlx)
|
||||||
|
free_scoreboard(game->screen->mlx, game->scoreboard);
|
||||||
|
else if (game->scoreboard)
|
||||||
|
free(game->scoreboard);
|
||||||
if (game->screen)
|
if (game->screen)
|
||||||
{
|
{
|
||||||
if (game->screen->hud)
|
if (game->screen->hud)
|
||||||
@ -94,6 +98,7 @@ void game_free(t_game *game)
|
|||||||
game->screen->hud = NULL;
|
game->screen->hud = NULL;
|
||||||
}
|
}
|
||||||
mlx_delete_image(game->screen->mlx, game->screen->img);
|
mlx_delete_image(game->screen->mlx, game->screen->img);
|
||||||
|
free(game->screen);
|
||||||
}
|
}
|
||||||
if (game->player)
|
if (game->player)
|
||||||
free(game->player);
|
free(game->player);
|
||||||
@ -101,9 +106,6 @@ void game_free(t_game *game)
|
|||||||
map_free(game->map);
|
map_free(game->map);
|
||||||
if (game->keyboard)
|
if (game->keyboard)
|
||||||
free(game->keyboard);
|
free(game->keyboard);
|
||||||
if (game->scoreboard && game->screen && game->screen->mlx)
|
|
||||||
free_scoreboard(game->screen->mlx, game->scoreboard);
|
|
||||||
else if (game->scoreboard)
|
|
||||||
free(game->scoreboard);
|
|
||||||
game->scoreboard = NULL;
|
game->scoreboard = NULL;
|
||||||
|
free(game);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/05/27 13:48:18 by qmennen #+# #+# */
|
/* Created: 2025/05/27 13:48:18 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/06/10 19:16:24 by whaffman ######## odam.nl */
|
/* Updated: 2025/06/10 20:24:00 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -59,12 +59,10 @@ void game_manager_destroy(t_game_manager *manager)
|
|||||||
menu_free(manager->menu, manager->game->screen);
|
menu_free(manager->menu, manager->game->screen);
|
||||||
if (manager->end_screen)
|
if (manager->end_screen)
|
||||||
menu_free(manager->end_screen, manager->game->screen);
|
menu_free(manager->end_screen, manager->game->screen);
|
||||||
if (manager->game)
|
|
||||||
game_free(manager->game);
|
|
||||||
mlx_close_window(manager->game->screen->mlx);
|
mlx_close_window(manager->game->screen->mlx);
|
||||||
mlx_terminate(manager->game->screen->mlx);
|
mlx_terminate(manager->game->screen->mlx);
|
||||||
free(manager->game->screen);
|
if (manager->game)
|
||||||
free(manager->game);
|
game_free(manager->game);
|
||||||
free(manager);
|
free(manager);
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/04/23 12:22:28 by whaffman #+# #+# */
|
/* Created: 2025/04/23 12:22:28 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/06/03 13:28:30 by whaffman ######## odam.nl */
|
/* Updated: 2025/06/10 19:42:36 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ void map_free(t_map *map)
|
|||||||
{
|
{
|
||||||
if (map->sprite_lib[i].texture)
|
if (map->sprite_lib[i].texture)
|
||||||
mlx_delete_texture(map->sprite_lib[i].texture);
|
mlx_delete_texture(map->sprite_lib[i].texture);
|
||||||
if (i < 4)
|
if (i < 5)
|
||||||
{
|
{
|
||||||
if (map->textures[i])
|
if (map->textures[i])
|
||||||
mlx_delete_texture(map->textures[i]);
|
mlx_delete_texture(map->textures[i]);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user