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> +#+ */
|
||||
/* +#+ */
|
||||
/* 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)
|
||||
{
|
||||
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->hud)
|
||||
@ -94,6 +98,7 @@ void game_free(t_game *game)
|
||||
game->screen->hud = NULL;
|
||||
}
|
||||
mlx_delete_image(game->screen->mlx, game->screen->img);
|
||||
free(game->screen);
|
||||
}
|
||||
if (game->player)
|
||||
free(game->player);
|
||||
@ -101,9 +106,6 @@ void game_free(t_game *game)
|
||||
map_free(game->map);
|
||||
if (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;
|
||||
free(game);
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* 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);
|
||||
if (manager->end_screen)
|
||||
menu_free(manager->end_screen, manager->game->screen);
|
||||
if (manager->game)
|
||||
game_free(manager->game);
|
||||
mlx_close_window(manager->game->screen->mlx);
|
||||
mlx_terminate(manager->game->screen->mlx);
|
||||
free(manager->game->screen);
|
||||
free(manager->game);
|
||||
if (manager->game)
|
||||
game_free(manager->game);
|
||||
free(manager);
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* 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)
|
||||
mlx_delete_texture(map->sprite_lib[i].texture);
|
||||
if (i < 4)
|
||||
if (i < 5)
|
||||
{
|
||||
if (map->textures[i])
|
||||
mlx_delete_texture(map->textures[i]);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user