From 94d0c802923db566edd41c370e6faeae988275d2 Mon Sep 17 00:00:00 2001 From: Caladius Date: Sun, 16 Nov 2025 16:41:55 -0500 Subject: [PATCH] Adds Man in the Tree Rupees --- mm/2s2h/Rando/ActorBehavior/EnItem00.cpp | 8 +++++++- mm/2s2h/Rando/Logic/Regions/TerminaField.cpp | 2 ++ mm/2s2h/Rando/StaticData/Checks.cpp | 2 ++ mm/2s2h/Rando/Types.h | 2 ++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/mm/2s2h/Rando/ActorBehavior/EnItem00.cpp b/mm/2s2h/Rando/ActorBehavior/EnItem00.cpp index 604c48883b..37d375cb91 100644 --- a/mm/2s2h/Rando/ActorBehavior/EnItem00.cpp +++ b/mm/2s2h/Rando/ActorBehavior/EnItem00.cpp @@ -25,6 +25,10 @@ std::map, RandoCheckId> freestandingMap = { { { 370.359039f, 1368.999390f }, RC_DEKU_PALACE_FREESTANDING_RUPEE_16 }, { { 405.0, 1389.0 }, RC_DEKU_PALACE_FREESTANDING_RUPEE_17 }, { { 405.0, 1349.0 }, RC_DEKU_PALACE_FREESTANDING_RUPEE_18 }, + + // Termina Field // + { { 3508.0f, 1879.0f }, RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_01 }, + { { 3488.0f, 1909.0f }, RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_02 }, }; void Rando::ActorBehavior::InitEnItem00Behavior() { @@ -67,7 +71,9 @@ void Rando::ActorBehavior::InitEnItem00Behavior() { itemParams |= CustomItem::ABLE_TO_ZORA_RANG; } // The heart piece in the bio baba grotto beehive needs to be tossed to fall to the ground - if (randoStaticCheck.randoCheckId == RC_TERMINA_FIELD_BIO_BABA_GROTTO) { + if (randoStaticCheck.randoCheckId == RC_TERMINA_FIELD_BIO_BABA_GROTTO || + randoStaticCheck.randoCheckId == RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_01 || + randoStaticCheck.randoCheckId == RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_02) { itemParams |= CustomItem::TOSS_ON_SPAWN; } diff --git a/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp b/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp index 0eeb63bf6e..39f5976800 100644 --- a/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp +++ b/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp @@ -487,6 +487,8 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_TERMINA_FIELD_GRASS_214, true), CHECK(RC_TERMINA_FIELD_GRASS_215, true), CHECK(RC_TERMINA_FIELD_GRASS_216, true), + CHECK(RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_01, true), + CHECK(RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_02, true), }, .exits = { // TO FROM EXIT(ENTRANCE(GROTTOS, 0), ENTRANCE(TERMINA_FIELD, 0), CAN_USE_EXPLOSIVE || CAN_BE_GORON), // TODO: Grotto mapping Gossip Stone #3 diff --git a/mm/2s2h/Rando/StaticData/Checks.cpp b/mm/2s2h/Rando/StaticData/Checks.cpp index 4c2e84b809..81d9189414 100644 --- a/mm/2s2h/Rando/StaticData/Checks.cpp +++ b/mm/2s2h/Rando/StaticData/Checks.cpp @@ -1210,6 +1210,8 @@ std::map Checks = { RC(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_19, RCTYPE_FREESTANDING, SCENE_00KEIKOKU, FLAG_NONE, 0x00, RI_RUPEE_BLUE), RC(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_20, RCTYPE_FREESTANDING, SCENE_00KEIKOKU, FLAG_NONE, 0x00, RI_RUPEE_RED), RC(RC_TERMINA_FIELD_FREESTANDING_RUPEE_01, RCTYPE_FREESTANDING, SCENE_00KEIKOKU, FLAG_CYCL_SCENE_COLLECTIBLE, 0x02, RI_RUPEE_RED), + RC(RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_01, RCTYPE_FREESTANDING, SCENE_00KEIKOKU, FLAG_NONE, 0x00, RI_RUPEE_RED), + RC(RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_02, RCTYPE_FREESTANDING, SCENE_00KEIKOKU, FLAG_NONE, 0x00, RI_RUPEE_RED), RC(RC_TERMINA_FIELD_POT, RCTYPE_POT, SCENE_00KEIKOKU, FLAG_CYCL_SCENE_COLLECTIBLE, 0x20, RI_FAIRY_REFILL), RC(RC_TERMINA_FIELD_SCRUB_LARGE_CRATE, RCTYPE_CRATE, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_NONE), RC(RC_TERMINA_FIELD_SCRUB_POT, RCTYPE_POT, SCENE_KAKUSIANA, FLAG_CYCL_SCENE_COLLECTIBLE, 0x07, RI_RECOVERY_HEART), diff --git a/mm/2s2h/Rando/Types.h b/mm/2s2h/Rando/Types.h index 297749727a..4b0e9641eb 100644 --- a/mm/2s2h/Rando/Types.h +++ b/mm/2s2h/Rando/Types.h @@ -1220,6 +1220,8 @@ typedef enum { RC_TERMINA_FIELD_GUAY_RUPEE_DROP_19, RC_TERMINA_FIELD_GUAY_RUPEE_DROP_20, RC_TERMINA_FIELD_FREESTANDING_RUPEE_01, + RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_01, + RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_02, RC_TERMINA_FIELD_POT, RC_TERMINA_FIELD_SCRUB_LARGE_CRATE, RC_TERMINA_FIELD_SCRUB_POT,