diff --git a/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp b/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp index 51abc0db1..bbad0a643 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp @@ -543,13 +543,39 @@ void CheckTrackerTransition(uint32_t sceneNum) { currentArea = GetCheckArea(); switch (sceneNum) { case SCENE_KOKIRI_SHOP: + if (Flags_GetRandomizerInf(RAND_INF_KOKIRI_SHOPKEEPER_SOUL)) { + SetShopSeen(sceneNum, false); + } + break; case SCENE_BAZAAR: + if (Flags_GetRandomizerInf(RAND_INF_BAZAAR_SHOPKEEPER_SOUL)) { + SetShopSeen(sceneNum, false); + } + break; case SCENE_POTION_SHOP_MARKET: + if (Flags_GetRandomizerInf(RAND_INF_POTION_SHOPKEEPER_SOUL)) { + SetShopSeen(sceneNum, false); + } + break; case SCENE_BOMBCHU_SHOP: + if (Flags_GetRandomizerInf(RAND_INF_BOMBCHU_SHOPKEEPER_SOUL)) { + SetShopSeen(sceneNum, false); + } + break; case SCENE_POTION_SHOP_KAKARIKO: + if (Flags_GetRandomizerInf(RAND_INF_POTION_SHOPKEEPER_SOUL)) { + SetShopSeen(sceneNum, false); + } + break; case SCENE_GORON_SHOP: + if (Flags_GetRandomizerInf(RAND_INF_GORON_SHOPKEEPER_SOUL)) { + SetShopSeen(sceneNum, false); + } + break; case SCENE_ZORA_SHOP: - SetShopSeen(sceneNum, false); + if (Flags_GetRandomizerInf(RAND_INF_ZORA_SHOPKEEPER_SOUL)) { + SetShopSeen(sceneNum, false); + } break; } if (!IsAreaSpoiled(currentArea) && (RandomizerCheckObjects::AreaIsOverworld(currentArea) || std::find(spoilingEntrances.begin(), spoilingEntrances.end(), gPlayState->nextEntranceIndex) != spoilingEntrances.end())) {