From b9f5b8ad8e52dd9f76cb5637b72b2504a6749619 Mon Sep 17 00:00:00 2001 From: briaguya Date: Wed, 1 Jun 2022 04:30:57 -0400 Subject: [PATCH 1/4] big rolling goron (as child) --- soh/src/overlays/actors/ovl_En_Go2/z_en_go2.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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..7301ae910 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; From 13f84625e9463d02ece211437a2d5560300cc907 Mon Sep 17 00:00:00 2001 From: briaguya Date: Wed, 1 Jun 2022 11:44:48 -0400 Subject: [PATCH 2/4] goron link (rolling as adult) --- soh/src/overlays/actors/ovl_En_Go2/z_en_go2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7301ae910..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 @@ -513,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: From 16f4315d587ce8cc9031865949bd0faa6dce4b4c Mon Sep 17 00:00:00 2001 From: briaguya Date: Wed, 1 Jun 2022 12:19:44 -0400 Subject: [PATCH 3/4] todo --- soh/soh/Enhancements/randomizer.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/soh/soh/Enhancements/randomizer.cpp b/soh/soh/Enhancements/randomizer.cpp index 6d7d5ce72..32ac2a186 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: @@ -1302,8 +1306,10 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) case HOVER_BOOTS: return GI_BOOTS_HOVER; case BOMB_BAG: + // todo: test this, getting 0 from CUR_UPG_VALUE happens in the bomb checks + // i'm assuming it happens here (where it isn't handled). switch (CUR_UPG_VALUE(UPG_BOMB_BAG)) { - case ITEM_NONE: + case ITEM_NONE: return GI_BOMB_BAG_20; case ITEM_BOMB_BAG_20: return GI_BOMB_BAG_30; @@ -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: From 77f742418651d6476528da5685b34747d4af6066 Mon Sep 17 00:00:00 2001 From: briaguya Date: Wed, 1 Jun 2022 12:38:40 -0400 Subject: [PATCH 4/4] fix bomb bags --- soh/soh/Enhancements/randomizer.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/soh/soh/Enhancements/randomizer.cpp b/soh/soh/Enhancements/randomizer.cpp index 32ac2a186..c41eeee0a 100644 --- a/soh/soh/Enhancements/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer.cpp @@ -1306,15 +1306,15 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) case HOVER_BOOTS: return GI_BOOTS_HOVER; case BOMB_BAG: - // todo: test this, getting 0 from CUR_UPG_VALUE happens in the bomb checks - // i'm assuming it happens here (where it isn't handled). 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)) {