From 25bd7a85a146c59e165180f232c2f0136eadc6a2 Mon Sep 17 00:00:00 2001 From: Jason Hilder Date: Thu, 8 Oct 2026 07:41:44 +0200 Subject: [PATCH] Better clean up funcs for managers. --- src/event_manager.odin | 6 +++++- src/game.odin | 5 ++--- src/scene_manager.odin | 7 +++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/event_manager.odin b/src/event_manager.odin index 7ca4c74..e07284e 100644 --- a/src/event_manager.odin +++ b/src/event_manager.odin @@ -97,4 +97,8 @@ process_events :: proc(game: ^Game) { } } } -} \ No newline at end of file +} + +event_manager_quit :: proc(game: ^Game) { + delete(GLOBAL_EVENTS) +} diff --git a/src/game.odin b/src/game.odin index 83b9019..9b9e135 100644 --- a/src/game.odin +++ b/src/game.odin @@ -160,13 +160,12 @@ game_render :: proc(game: ^Game) { game_quit :: proc(game: ^Game) { audio_manager_quit(&game.audio) + scene_manager_quit(game) + event_manager_quit(game) rl.UnloadShader(game.crt_shader) rl.UnloadTexture(game.bg_texture) rl.UnloadRenderTexture(game.viewport) - delete(GLOBAL_EVENTS) - delete(game.scene_stack) - rl.CloseWindow() } diff --git a/src/scene_manager.odin b/src/scene_manager.odin index b1dd42c..eeb4106 100644 --- a/src/scene_manager.odin +++ b/src/scene_manager.odin @@ -101,6 +101,13 @@ scene_render :: proc(scene: ^Scene) { } } +scene_manager_quit :: proc(game: ^Game) { + for &scene in game.scene_stack { + destroy_scene(&scene) + } + delete(game.scene_stack) +} + // ------------------------------------------------------------------------------ // UI Layout & Styling Constants // ------------------------------------------------------------------------------