From d17bd0668352f832ff52b94817527414f25f74e9 Mon Sep 17 00:00:00 2001 From: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com> Date: Sun, 29 Jun 2025 22:36:55 +0100 Subject: [PATCH] remove bombchu edge case --- soh/soh/Enhancements/randomizer/location_access.h | 12 +++++------- soh/soh/Enhancements/randomizer/logic.cpp | 14 ++++++-------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/soh/soh/Enhancements/randomizer/location_access.h b/soh/soh/Enhancements/randomizer/location_access.h index eeb0c9e4a..4e4cf1215 100644 --- a/soh/soh/Enhancements/randomizer/location_access.h +++ b/soh/soh/Enhancements/randomizer/location_access.h @@ -116,15 +116,13 @@ enum class EntranceType; } // namespace Rando struct SpiritLogicData { - uint8_t childKeys; // the number of keys that guarantees Child can reach this region - // The number of keys that guarantees Child can reach this region if they have reverse access - // 9 means MQ broken wall room, as the first child lock can only be opened by Child - // without opening the lock to Statue room, guaranteeing access with 6 keys if you can hit a switch + // the minimum number of keys that guarantees Child can reach this region + uint8_t childKeys; + // The minimum number of keys that guarantees Child can reach this region if they have reverse access uint8_t childRevKeys; - // the number of keys that guarantees Adult can reach this region - // if it is 9, that means the bombchu edge case is to be checked. + // the minimum number of keys that guarantees Adult can reach this region uint8_t adultKeys; - // the number of keys that guarantees Adult can reach this region with reverse entry + // the minimum number of keys that guarantees Adult can reach this region with reverse entry uint8_t adultRevKeys; // The area access condition to reach this region as Child, from the first lock, // including the minimum number of keys for ambiguous access diff --git a/soh/soh/Enhancements/randomizer/logic.cpp b/soh/soh/Enhancements/randomizer/logic.cpp index 36d9610f3..a8b8cb52a 100644 --- a/soh/soh/Enhancements/randomizer/logic.cpp +++ b/soh/soh/Enhancements/randomizer/logic.cpp @@ -2386,9 +2386,7 @@ bool Logic::SpiritSunOnFloorToStatue() { } bool Logic::SpiritExplosiveKeyLogic() { - return SmallKeys(RR_SPIRIT_TEMPLE, HasExplosives() ? 1 - : ctx->GetOption(RSK_BOMBCHU_BAG) && BombchuRefill() ? 2 - : 3); + return SmallKeys(RR_SPIRIT_TEMPLE, HasExplosives() ? 1 : 2); } bool Logic::SpiritWestToSkull() { @@ -2410,7 +2408,6 @@ bool Logic::SpiritEastToSwitch() { (CanUse(RG_ZELDAS_LULLABY) && CanUse(RG_HOOKSHOT)); } - // Combines crossing the ledge directly and the jump from the hand bool Logic::MQSpiritWestToPots() { return (IsAdult && ctx->GetTrickOption(RT_SPIRIT_STATUE_JUMP)) || CanUse(RG_HOVER_BOOTS) || CanUse(RG_SONG_OF_TIME); @@ -2428,9 +2425,9 @@ bool Logic::MQSpiritStatueSouthDoor() { bool Logic::MQSpirit4KeyColossus() { // !QUANTUM LOGIC! - // We only need 4 keys and the ability to reach both hands for adult to logically be able to drop down onto Desert Colossus - // This is because there are only 3 keys that can be wasted without opening up either this lock to East hand, or the West Hand lock through Sun Block Room - // and both directions allow you to drop onto colossus + // We only need 4 keys and the ability to reach both hands for adult to logically be able to drop down onto Desert + // Colossus This is because there are only 3 keys that can be wasted without opening up either this lock to East + // hand, or the West Hand lock through Sun Block Room and both directions allow you to drop onto colossus // logic->CanKillEnemy(RE_FLOORMASTER) is implied return CanAvoidEnemy(RE_BEAMOS, true, 4) && CanUse(RG_SONG_OF_TIME) && CanJumpslash() && /*(str0 || SunlightArrows) &&*/ @@ -2440,7 +2437,8 @@ bool Logic::MQSpirit4KeyColossus() { bool Logic::MQSpirit4KeyWestHand() { // !QUANTUM LOGIC! - // Continuing from MQSpirit4KeyColossus, if we also have a longshot, we can go from the East hand to the West hand, meaning we always have access to East Hand + // Continuing from MQSpirit4KeyColossus, if we also have a longshot, we can go from the East hand to the West hand, + // meaning we always have access to East Hand return CanUse(RG_LONGSHOT) && MQSpirit4KeyColossus(); } // This version of the function handles Shared Access for child, based on what adult could do if they existed