diff --git a/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp b/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp index 1a931b47a..9d6023d3c 100644 --- a/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp @@ -535,8 +535,6 @@ static void PlaceVanillaDekuScrubItems(bool junkOneTimeScrubs) { ctx->PlaceItemInLocation(RC_GANONS_CASTLE_DEKU_SCRUB_RIGHT, RG_RED_POTION_REFILL, false, true); ctx->PlaceItemInLocation(RC_GANONS_CASTLE_DEKU_SCRUB_LEFT, RG_GREEN_POTION_REFILL, false, true); } - - } static void PlaceVanillaMapsAndCompasses() { @@ -1251,7 +1249,7 @@ void GenerateItemPool() { //Overworld Scrubs AddItemsToPool(ItemPool, dekuScrubItems); - //I'm not sure what this is for, but it was in ootr so I copied it + //Scrubs which sell seeds or arrows sell it based on age, this randomly assigns them for (uint8_t i = 0; i < 7; i++) { if (Random(0, 3)) { AddItemToMainPool(RG_ARROWS_30); diff --git a/soh/soh/Enhancements/randomizer/randomizer_check_objects.cpp b/soh/soh/Enhancements/randomizer/randomizer_check_objects.cpp index a3f727554..016e011ce 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_check_objects.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer_check_objects.cpp @@ -163,6 +163,12 @@ void RandomizerCheckObjects::UpdateImGuiVisibility() { RandomizerCheckObjects::AreaIsOverworld(location.GetArea())) || ((CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleTokens"), RO_TOKENSANITY_OFF) == RO_TOKENSANITY_DUNGEONS) && RandomizerCheckObjects::AreaIsDungeon(location.GetArea()))) && + (location.GetRCType() != RCTYPE_FREESTANDING || + (CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleFreestanding"), RO_FREESTANDING_OFF) == RO_FREESTANDING_ALL) || + ((CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleFreestanding"), RO_FREESTANDING_OFF) == RO_FREESTANDING_OVERWORLD) && + RandomizerCheckObjects::AreaIsOverworld(location.GetArea())) || + ((CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleFreestanding"), RO_FREESTANDING_OFF) == RO_FREESTANDING_DUNGEONS) && + RandomizerCheckObjects::AreaIsDungeon(location.GetArea()))) && (location.GetRCType() != RCTYPE_BEEHIVE || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleBeehives"), RO_GENERIC_NO)) && (location.GetRCType() != RCTYPE_COW || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleCows"), RO_GENERIC_NO)) && (location.GetRCType() != RCTYPE_POT || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShufflePots"), RO_GENERIC_NO)) &&