From 75a50d5eed08fca001694351efe0572fcb3707ac Mon Sep 17 00:00:00 2001 From: Demur Rumed Date: Thu, 3 Jul 2025 05:01:55 +0000 Subject: [PATCH] don't jail from TH in mixed gerudo entrance shuffle --- .../randomizer/randomizer_entrance.c | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/soh/soh/Enhancements/randomizer/randomizer_entrance.c b/soh/soh/Enhancements/randomizer/randomizer_entrance.c index 2ed8a6c0e..d36451049 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_entrance.c +++ b/soh/soh/Enhancements/randomizer/randomizer_entrance.c @@ -674,14 +674,20 @@ void Entrance_OverrideWeatherState() { // instead of being thrown in the valley Child should always be thrown in the stream when caught in the valley, and // placed at the fortress entrance from valley when caught in the fortress void Entrance_OverrideGerudoGuardCapture(void) { - if (LINK_IS_CHILD) { - gPlayState->nextEntranceIndex = ENTR_GERUDO_VALLEY_1; // Gerudo Valley thrown out - } + if (gPlayState->sceneNum == SCENE_THIEVES_HIDEOUT && + Randomizer_GetSettingValue(RSK_MIX_GERUDO_FORTRESS_ENTRANCES)) { + // If GF entrances in mixed shuffle, TH captures stay in TH + gPlayState->nextEntranceIndex = gSaveContext.entranceIndex; + } else { + if (LINK_IS_CHILD) { + gPlayState->nextEntranceIndex = ENTR_GERUDO_VALLEY_1; // Gerudo Valley thrown out + } - if ((LINK_IS_CHILD || Randomizer_GetSettingValue(RSK_SHUFFLE_OVERWORLD_ENTRANCES)) && - gPlayState->nextEntranceIndex == ENTR_GERUDO_VALLEY_1) { // Gerudo Valley thrown out - if (gPlayState->sceneNum != SCENE_GERUDO_VALLEY) { // Gerudo Valley - gPlayState->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_EAST_EXIT; // Gerudo Fortress + if ((LINK_IS_CHILD || Randomizer_GetSettingValue(RSK_SHUFFLE_OVERWORLD_ENTRANCES)) && + gPlayState->nextEntranceIndex == ENTR_GERUDO_VALLEY_1) { // Gerudo Valley thrown out + if (gPlayState->sceneNum != SCENE_GERUDO_VALLEY) { // Gerudo Valley + gPlayState->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_EAST_EXIT; // Gerudo Fortress + } } } }