From c784b5e5f7be75de9ed341cb8d2db4a23ed96599 Mon Sep 17 00:00:00 2001 From: Quinten Mennen Date: Wed, 11 Jun 2025 15:02:50 +0200 Subject: [PATCH] Refactor game_manager_destroy function to accept a generic parameter --- inc/game_manager.h | 4 ++-- src/main.c | 15 ++++++++------- src/manager/game_manager.c | 19 +++++++++++-------- src/menu/menu.c | 7 +++++-- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/inc/game_manager.h b/inc/game_manager.h index 66b7801..0372617 100644 --- a/inc/game_manager.h +++ b/inc/game_manager.h @@ -6,7 +6,7 @@ /* By: qmennen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/27 13:40:20 by qmennen #+# #+# */ -/* Updated: 2025/06/04 18:52:58 by qmennen ### ########.fr */ +/* Updated: 2025/06/11 15:00:14 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,6 +20,6 @@ void game_manager_display(t_game_manager *manager); void game_manager_update(void *param); void game_manager_select(t_game_manager *manager); void game_manager_handle_input(t_game_manager *manager); -void game_manager_destroy(t_game_manager *manager); +void game_manager_destroy(void *param); #endif \ No newline at end of file diff --git a/src/main.c b/src/main.c index 08d7ce7..702f08e 100644 --- a/src/main.c +++ b/src/main.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ -/* :::::::: */ -/* main.c :+: :+: */ -/* +:+ */ -/* By: qmennen +#+ */ -/* +#+ */ -/* Created: 2025/04/15 16:01:29 by qmennen #+# #+# */ -/* Updated: 2025/06/10 19:13:38 by whaffman ######## odam.nl */ +/* ::: :::::::: */ +/* main.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: qmennen +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/15 16:01:29 by qmennen #+# #+# */ +/* Updated: 2025/06/11 14:58:56 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,6 +29,7 @@ int main(int argc, char **argv) manager->active_menu = &manager->menu; mlx_key_hook(game->screen->mlx, keyhandle, manager); mlx_loop_hook(game->screen->mlx, game_manager_update, manager); + mlx_close_hook(game->screen->mlx, game_manager_destroy, manager); mlx_loop(game->screen->mlx); game_manager_destroy(manager); return (EXIT_SUCCESS); diff --git a/src/manager/game_manager.c b/src/manager/game_manager.c index 0755096..f941eb9 100644 --- a/src/manager/game_manager.c +++ b/src/manager/game_manager.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ -/* :::::::: */ -/* game_manager.c :+: :+: */ -/* +:+ */ -/* By: qmennen +#+ */ -/* +#+ */ -/* Created: 2025/05/27 13:48:18 by qmennen #+# #+# */ -/* Updated: 2025/06/10 20:24:00 by whaffman ######## odam.nl */ +/* ::: :::::::: */ +/* game_manager.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: qmennen +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/05/27 13:48:18 by qmennen #+# #+# */ +/* Updated: 2025/06/11 15:00:38 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,8 +51,11 @@ void game_manager_update(void *param) keyboard_update(manager->game); } -void game_manager_destroy(t_game_manager *manager) +void game_manager_destroy(void *param) { + t_game_manager *manager; + + manager = (t_game_manager *)param; if (!manager) return ; if (manager->menu) diff --git a/src/menu/menu.c b/src/menu/menu.c index 814de6a..fca9274 100644 --- a/src/menu/menu.c +++ b/src/menu/menu.c @@ -6,7 +6,7 @@ /* By: qmennen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/27 14:31:53 by qmennen #+# #+# */ -/* Updated: 2025/06/11 14:54:39 by qmennen ### ########.fr */ +/* Updated: 2025/06/11 15:02:35 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -79,7 +79,10 @@ void menu_free(t_menu *menu, t_screen *screen) i = 0; if (!menu) return ; - while ((i++) < menu->num_options) + while (i < menu->num_options) + { free(menu->items[i]); + i++; + } free(menu); }