diff --git a/soh/soh/Enhancements/randomizer.cpp b/soh/soh/Enhancements/randomizer.cpp index 6d7d5ce72..c41eeee0a 100644 --- a/soh/soh/Enhancements/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer.cpp @@ -1249,7 +1249,11 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) case PIECE_OF_HEART: return GI_HEART_PIECE; case BOMBS_5: - return GI_BOMBS_5; + return CUR_UPG_VALUE(UPG_BOMB_BAG) ? GI_BOMBS_5 : GI_RUPEE_BLUE; + case BOMBS_10: + return CUR_UPG_VALUE(UPG_BOMB_BAG) ? GI_BOMBS_10 : GI_RUPEE_BLUE; + case BOMBS_20: + return CUR_UPG_VALUE(UPG_BOMB_BAG) ? GI_BOMBS_20 : GI_RUPEE_BLUE; case DEKU_NUTS_5: return GI_NUTS_5; case BOMBCHUS_10: @@ -1303,12 +1307,14 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) return GI_BOOTS_HOVER; case BOMB_BAG: switch (CUR_UPG_VALUE(UPG_BOMB_BAG)) { - case ITEM_NONE: + case 0: return GI_BOMB_BAG_20; - case ITEM_BOMB_BAG_20: + case 1: return GI_BOMB_BAG_30; - case ITEM_BOMB_BAG_30: + case 2: return GI_BOMB_BAG_40; + case 3: + return GI_RUPEE_BLUE; } case PROGRESSIVE_STRENGTH_UPGRADE: switch (CUR_UPG_VALUE(UPG_STRENGTH)) { @@ -1416,10 +1422,6 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) return GI_NAYRUS_LOVE; case DEKU_NUTS_10: return GI_NUTS_10; - case BOMBS_10: - return GI_BOMBS_10; - case BOMBS_20: - return GI_BOMBS_20; case DEKU_SEEDS_30: return GI_SEEDS_30; case BOTTLE_WITH_BIG_POE: diff --git a/soh/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/soh/src/overlays/actors/ovl_En_Go2/z_en_go2.c index b9603e246..bc4b9673b 100644 --- a/soh/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/soh/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -324,7 +324,7 @@ u16 EnGo2_GoronFireGenericGetTextId(EnGo2* this) { u16 EnGo2_GetTextIdGoronCityRollingBig(GlobalContext* globalCtx, EnGo2* this) { if (gSaveContext.infTable[17] & 0x4000) { return 0x3013; - } else if (CUR_CAPACITY(UPG_BOMB_BAG) >= 20 && this->waypoint > 7 && this->waypoint < 12) { + } else if ((CUR_CAPACITY(UPG_BOMB_BAG) >= 20 || gSaveContext.n64ddFlag) && this->waypoint > 7 && this->waypoint < 12) { return 0x3012; } else { return 0x3011; @@ -341,7 +341,11 @@ s16 EnGo2_GetStateGoronCityRollingBig(GlobalContext* globalCtx, EnGo2* this) { if (Message_ShouldAdvance(globalCtx)) { if (this->actor.textId == 0x3012) { this->actionFunc = EnGo2_SetupGetItem; - bombBagUpgrade = CUR_CAPACITY(UPG_BOMB_BAG) == 30 ? GI_BOMB_BAG_40 : GI_BOMB_BAG_30; + if(!gSaveContext.n64ddFlag) { + bombBagUpgrade = CUR_CAPACITY(UPG_BOMB_BAG) == 30 ? GI_BOMB_BAG_40 : GI_BOMB_BAG_30; + } else { + bombBagUpgrade = GetRandomizedItemIdFromKnownCheck(GC_ROLLING_GORON_AS_CHILD, GI_BOMB_BAG_40); + } EnGo2_GetItem(this, globalCtx, bombBagUpgrade); Message_CloseTextbox(globalCtx); gSaveContext.infTable[17] |= 0x4000; @@ -509,7 +513,7 @@ s16 EnGo2_GetStateGoronCityLink(GlobalContext* globalCtx, EnGo2* this) { case TEXT_STATE_CLOSING: switch (this->actor.textId) { case 0x3036: - EnGo2_GetItem(this, globalCtx, GI_TUNIC_GORON); + EnGo2_GetItem(this, globalCtx, gSaveContext.n64ddFlag ? GetRandomizedItemIdFromKnownCheck(GC_ROLLING_GORON_AS_ADULT, GI_TUNIC_GORON) : GI_TUNIC_GORON); this->actionFunc = EnGo2_SetupGetItem; return 2; case 0x3037: