diff --git a/soh/soh/SaveManager.cpp b/soh/soh/SaveManager.cpp index 1fea00767..1fef30214 100644 --- a/soh/soh/SaveManager.cpp +++ b/soh/soh/SaveManager.cpp @@ -94,7 +94,13 @@ void SaveManager::LoadRandomizerVersion1() { std::shared_ptr randomizer = OTRGlobals::Instance->gRandomizer; - SaveManager::Instance->LoadArray("merchantPrices", NUM_SCRUBS, [&](size_t i) { + size_t merchantPricesSize = 0; + if (randomizer->GetRandoSettingValue(RSK_SHUFFLE_SCRUBS) > 0) { + merchantPricesSize += NUM_SCRUBS; + } + // TODO: Add shop item count when shopsanity is enabled + + SaveManager::Instance->LoadArray("merchantPrices", merchantPricesSize, [&](size_t i) { SaveManager::Instance->LoadStruct("", [&]() { RandomizerCheck rc; SaveManager::Instance->LoadData("check", rc); @@ -155,7 +161,7 @@ void SaveManager::SaveRandomizer() { merchantPrices.push_back(std::make_pair(check, price)); } - SaveManager::Instance->SaveArray("merchantPrices", NUM_SCRUBS, [&](size_t i) { + SaveManager::Instance->SaveArray("merchantPrices", merchantPrices.size(), [&](size_t i) { SaveManager::Instance->SaveStruct("", [&]() { SaveManager::Instance->SaveData("check", merchantPrices[i].first); SaveManager::Instance->SaveData("price", merchantPrices[i].second); diff --git a/soh/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/soh/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index a6ddb5844..c6709e144 100644 --- a/soh/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/soh/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -349,6 +349,7 @@ void EnSyatekiMan_EndGame(EnSyatekiMan* this, GlobalContext* globalCtx) { this->getItemId = GI_BULLET_BAG_50; } } else { + this->getItemEntry = (GetItemEntry)GET_ITEM_NONE; this->getItemId = GI_RUPEE_PURPLE; } } else { @@ -371,6 +372,7 @@ void EnSyatekiMan_EndGame(EnSyatekiMan* this, GlobalContext* globalCtx) { break; } } else { + this->getItemEntry = (GetItemEntry)GET_ITEM_NONE; this->getItemId = GI_RUPEE_PURPLE; } }