diff --git a/soh/soh/Enhancements/randomizer/3drando/fill.cpp b/soh/soh/Enhancements/randomizer/3drando/fill.cpp index 3267ab61e6..b896aff5cd 100644 --- a/soh/soh/Enhancements/randomizer/3drando/fill.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/fill.cpp @@ -423,7 +423,7 @@ bool AddCheckToLogic(LocationAccess& locPair, GetAccessibleLocationsStruct& gals ApplyOrStoreItem(location, gals, addToPlaythrough); } // If we want to ignore bombchus, only add if bombchu is not in the name - else if (IsBombchus(ignore) && IsBombchus(locItem, true)) { + else if (IsBombchus(ignore) && !IsBombchus(locItem, true)) { ApplyOrStoreItem(location, gals, addToPlaythrough); } // We want to ignore a specific Buy item. Buy items with different RandomizerGets are recognised by a diff --git a/soh/soh/Enhancements/randomizer/logic.cpp b/soh/soh/Enhancements/randomizer/logic.cpp index 55ad3ce09d..032d0c9f47 100644 --- a/soh/soh/Enhancements/randomizer/logic.cpp +++ b/soh/soh/Enhancements/randomizer/logic.cpp @@ -2462,7 +2462,9 @@ void Logic::ApplyItemEffect(Item& item, bool state) { case RG_BOMBCHU_5: case RG_BOMBCHU_10: case RG_BOMBCHU_20: - SetInventory(ITEM_BOMBCHU, (!state ? ITEM_NONE : ITEM_BOMBCHU)); + if (ctx->GetOption(RSK_BOMBCHU_BAG).IsNot(RO_BOMBCHU_BAG_PROGRESSIVE)) { + SetInventory(ITEM_BOMBCHU, (!state ? ITEM_NONE : ITEM_BOMBCHU)); + } break; default: break; @@ -2583,14 +2585,13 @@ void Logic::ApplyItemEffect(Item& item, bool state) { break; case RG_DEKU_STICK_1: case RG_BUY_DEKU_STICK_1: - case RG_STICKS: SetInventory(ITEM_STICK, (!state ? ITEM_NONE : ITEM_STICK)); break; - case RG_BOMBCHU_5: - case RG_BOMBCHU_10: - case RG_BOMBCHU_20: - SetInventory(ITEM_BOMBCHU, (!state ? ITEM_NONE : ITEM_BOMBCHU)); - break; + case RG_BUY_BOMBCHUS_10: + case RG_BUY_BOMBCHUS_20: + if (ctx->GetOption(RSK_BOMBCHU_BAG).Is(RO_BOMBCHU_BAG_NONE)) { + SetInventory(ITEM_BOMBCHU, (!state ? ITEM_NONE : ITEM_BOMBCHU)); + } default: break; }