From 52c6d029d9aa5912a71d96fa5fe73f177fb4f3ad Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Sun, 31 Mar 2024 16:19:22 +0200 Subject: [PATCH] Call queue_free() on scenes during removal --- src/sms.gd | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/sms.gd b/src/sms.gd index 66fa50c..4ec2feb 100644 --- a/src/sms.gd +++ b/src/sms.gd @@ -77,11 +77,21 @@ func remove_scene(sname: String, force_remove: bool = false) -> bool: if force_remove: await logger.crashf("Sms", "force_remove = true is not allowed", true) logger.verbf("Sms", "Removing scene \"" + sname + "\"") match(exists(sname)): - CoreTypes.SceneType.DEBUG: scenes_debug.remove_child(scenes[sname]["class"]) - CoreTypes.SceneType.CUTSCENE: scenes_cutscene.remove_child(scenes[sname]["class"]) - CoreTypes.SceneType.MENU: scenes_menu.remove_child(scenes[sname]["class"]) - CoreTypes.SceneType.MAIN: scenes_main.remove_child(scenes[sname]["class"]) - CoreTypes.SceneType.BACKGROUND: scenes_background.remove_child(scenes[sname]["class"]) + CoreTypes.SceneType.DEBUG: + scenes_debug.remove_child(scenes[sname]["class"]) + scenes[sname]["class"].queue_free() + CoreTypes.SceneType.CUTSCENE: + scenes_cutscene.remove_child(scenes[sname]["class"]) + scenes[sname]["class"].queue_free() + CoreTypes.SceneType.MENU: + scenes_menu.remove_child(scenes[sname]["class"]) + scenes[sname]["class"].queue_free() + CoreTypes.SceneType.MAIN: + scenes_main.remove_child(scenes[sname]["class"]) + scenes[sname]["class"].queue_free() + CoreTypes.SceneType.BACKGROUND: + scenes_background.remove_child(scenes[sname]["class"]) + scenes[sname]["class"].queue_free() CoreTypes.SceneType.NONE: logger.errorf("Sms", "Scene \"" + sname + "\" does not exist") return false