diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index e050a1363..2f47c220d 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -431,7 +431,12 @@ void Randomizer::LoadMerchantMessages(const char* spoilerFileName) { for (int index = 0; index < shopItemRandomizerChecks.size(); ++index) { RandomizerCheck shopItemCheck = shopItemRandomizerChecks[index]; - std::vector shopItemName = EnumToSpoilerfileGetName[this->itemLocations[shopItemCheck]]; + RandomizerGet shopItemGet = this->itemLocations[shopItemCheck]; + // TODO: This should eventually be replaced with a full fledged trick model & trick name system + if (shopItemGet == RG_ICE_TRAP) { + shopItemGet = RG_HUGE_RUPEE; + } + std::vector shopItemName = EnumToSpoilerfileGetName[shopItemGet]; u16 shopItemPrice = merchantPrices[shopItemCheck]; // TODO: Magic number 100, we don't to overwrite deku scrub messages CustomMessageManager::Instance->CreateMessage( diff --git a/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index dacf524c3..39e9a832c 100644 --- a/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -1705,8 +1705,9 @@ void EnOssan_State_GiveItemWithFanfare(EnOssan* this, GlobalContext* globalCtx, void EnOssan_State_ItemPurchased(EnOssan* this, GlobalContext* globalCtx, Player* player) { EnGirlA* item; EnGirlA* itemTemp; + ShopItemIdentity shopItemIdentity = Randomizer_IdentifyShopItem(globalCtx->sceneNum, this->cursorIndex); - if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx) || (gSaveContext.n64ddFlag && Randomizer_ItemIsIceTrap(shopItemIdentity.randomizerCheck, GI_NONE))) { if (this->actor.params == OSSAN_TYPE_MASK) { itemTemp = this->shelfSlots[this->cursorIndex]; EnOssan_ResetItemPosition(this);