From 9b62fd5297cf5bf778ba26bd593c4728c9038be8 Mon Sep 17 00:00:00 2001 From: Anthony Stewart Date: Sun, 23 Mar 2025 23:06:19 -0500 Subject: [PATCH] Fixed Sleeping Waterfall timesaver. --- .../Enhancements/timesaver_hook_handlers.cpp | 24 ++++++------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/soh/soh/Enhancements/timesaver_hook_handlers.cpp b/soh/soh/Enhancements/timesaver_hook_handlers.cpp index 1db34b4f6..d238fe08f 100644 --- a/soh/soh/Enhancements/timesaver_hook_handlers.cpp +++ b/soh/soh/Enhancements/timesaver_hook_handlers.cpp @@ -880,23 +880,13 @@ void TimeSaverOnActorInitHandler(void* actorRef) { return; } - bool shouldKeepOpen; - switch (CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SleepingWaterfall"), 0)) { - case 1: - shouldKeepOpen = Flags_GetEventChkInf(EVENTCHKINF_OPENED_ZORAS_DOMAIN); - break; - case 2: - if (IS_RANDO && RAND_GET_OPTION(RSK_SLEEPING_WATERFALL) == RO_WATERFALL_OPEN) { - shouldKeepOpen = true; - } else { - shouldKeepOpen = CHECK_QUEST_ITEM(QUEST_SONG_LULLABY) && - (INV_CONTENT(ITEM_OCARINA_TIME) == ITEM_OCARINA_TIME || - INV_CONTENT(ITEM_OCARINA_FAIRY) == ITEM_OCARINA_FAIRY); - } - break; - default: - shouldKeepOpen = false; - break; + bool shouldKeepOpen = RAND_GET_OPTION(RSK_SLEEPING_WATERFALL) && IS_RANDO; + if (!shouldKeepOpen) { + int32_t enhancement = CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SleepingWaterfall"), 0); + shouldKeepOpen = + (enhancement == 2 && + ((CHECK_QUEST_ITEM(QUEST_SONG_LULLABY) && (INV_CONTENT(ITEM_OCARINA_TIME) != ITEM_NONE)))) || + (enhancement == 1 && Flags_GetEventChkInf(EVENTCHKINF_OPENED_ZORAS_DOMAIN)); } if (!shouldKeepOpen) {