From 58aab05e41636f39f7ef7e2b13bffed9ef24aef2 Mon Sep 17 00:00:00 2001 From: Ralphie Morell Date: Tue, 31 Oct 2023 23:54:05 -0400 Subject: [PATCH] cleanup hook --- soh/soh/Enhancements/mods.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/soh/soh/Enhancements/mods.cpp b/soh/soh/Enhancements/mods.cpp index 84ccbe94a..212bdb587 100644 --- a/soh/soh/Enhancements/mods.cpp +++ b/soh/soh/Enhancements/mods.cpp @@ -1060,12 +1060,14 @@ void RegisterBossSouls() { default: break; } - //Deletes all actors in the boss category if the soul isn't found, with the exception of ToT since Zora's Sapphire becomes a boss for some reason. - //See `z_demo_effect.c` - if (!Flags_GetRandomizerInf(rand_inf) && actual->category == ACTORCAT_BOSS && gPlayState->sceneNum != SCENE_TEMPLE_OF_TIME) { - Actor_Delete(&gPlayState->actorCtx, actual, gPlayState); - } - }); + //Deletes all actors in the boss category if the soul isn't found. + //Some actors, like Dark Link, Arwings, and Zora's Sapphire...?, are in this category despite not being actual bosses, + //so ignore any "boss" if `rand_inf` doesn't change from RAND_INF_MAX. + if (rand_inf != RAND_INF_MAX) { + if (!Flags_GetRandomizerInf(rand_inf) && actual->category == ACTORCAT_BOSS) { + Actor_Delete(&gPlayState->actorCtx, actual, gPlayState); + } + }}); }