summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEblo <7004497+Eblo@users.noreply.github.com>2026-04-03 17:21:46 -0400
committerGitHub <noreply@github.com>2026-04-03 17:21:46 -0400
commit20b09fe5bec303586b8cecf39324827729ef615d (patch)
tree775872c4605501a5e8cec99af6e0d8070e610981
parent71d89aa56870471d9a3460762c51a9efbfa00316 (diff)
Fix mundane shuffles and ice arrows in GBC (#1618)
-rw-r--r--mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp8
-rw-r--r--mm/2s2h/Rando/ActorBehavior/ObjTree.cpp8
-rw-r--r--mm/2s2h/Rando/Logic/Regions/West.cpp4
3 files changed, 16 insertions, 4 deletions
diff --git a/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp b/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp
index 93b7444f6..51b21f497 100644
--- a/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp
+++ b/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp
@@ -45,11 +45,17 @@ std::map<s8, std::tuple<s16, RandoCheckId>> cowGrottoMap = {
// For lone grass actors spawned directly by the scene
std::map<std::tuple<s16, s16, s16>, RandoCheckId> enKusaMap = {
+ // Great Bay Coast (pre-temple clear)
{ { SCENE_30GYOSON, 0, 110 }, RC_GREAT_BAY_COAST_GRASS_01 },
{ { SCENE_30GYOSON, 0, 111 }, RC_GREAT_BAY_COAST_GRASS_02 },
{ { SCENE_30GYOSON, 0, 112 }, RC_GREAT_BAY_COAST_GRASS_03 },
{ { SCENE_30GYOSON, 0, 113 }, RC_GREAT_BAY_COAST_GRASS_04 },
- { { SCENE_30GYOSON, 0, 114 }, RC_GREAT_BAY_COAST_GRASS_05 },
+ // Great Bay Coast (post-temple clear)
+ { { SCENE_30GYOSON, 0, 117 }, RC_GREAT_BAY_COAST_GRASS_01 },
+ { { SCENE_30GYOSON, 0, 115 }, RC_GREAT_BAY_COAST_GRASS_02 },
+ { { SCENE_30GYOSON, 0, 118 }, RC_GREAT_BAY_COAST_GRASS_03 },
+ { { SCENE_30GYOSON, 0, 116 }, RC_GREAT_BAY_COAST_GRASS_04 },
+ { { SCENE_30GYOSON, 0, 114 }, RC_GREAT_BAY_COAST_GRASS_05 }, // Exists in both states
// Laundry Pool
{ { SCENE_ALLEY, 0, 13 }, RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_01 },
{ { SCENE_ALLEY, 0, 14 }, RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_02 },
diff --git a/mm/2s2h/Rando/ActorBehavior/ObjTree.cpp b/mm/2s2h/Rando/ActorBehavior/ObjTree.cpp
index e5fc513d5..acd6de6dc 100644
--- a/mm/2s2h/Rando/ActorBehavior/ObjTree.cpp
+++ b/mm/2s2h/Rando/ActorBehavior/ObjTree.cpp
@@ -31,12 +31,18 @@ std::map<std::tuple<s16, s16, s16>, RandoCheckId> treeActorIdMap = {
{ { SCENE_GORONRACE, 0, 67 }, RC_GORON_RACETRACK_TREE_09 },
{ { SCENE_GORONRACE, 0, 68 }, RC_GORON_RACETRACK_TREE_10 },
- // Great Bay Coast
+ // Great Bay Coast (pre-temple clear)
{ { SCENE_30GYOSON, 0, 10 }, RC_GREAT_BAY_COAST_TREE_01 },
{ { SCENE_30GYOSON, 0, 11 }, RC_GREAT_BAY_COAST_TREE_02 },
{ { SCENE_30GYOSON, 0, 12 }, RC_GREAT_BAY_COAST_TREE_03 },
{ { SCENE_30GYOSON, 0, 13 }, RC_GREAT_BAY_COAST_TREE_04 },
+ // Great Bay Coast (post-temple clear)
+ { { SCENE_30GYOSON, 0, 31 }, RC_GREAT_BAY_COAST_TREE_01 },
+ { { SCENE_30GYOSON, 0, 33 }, RC_GREAT_BAY_COAST_TREE_02 },
+ { { SCENE_30GYOSON, 0, 34 }, RC_GREAT_BAY_COAST_TREE_03 },
+ { { SCENE_30GYOSON, 0, 32 }, RC_GREAT_BAY_COAST_TREE_04 },
+
// Path to Mountain Village
{ { SCENE_13HUBUKINOMITI, 0, 14 }, RC_PATH_TO_MOUNTAIN_VILLAGE_TREE_01 },
{ { SCENE_13HUBUKINOMITI, 0, 15 }, RC_PATH_TO_MOUNTAIN_VILLAGE_TREE_02 },
diff --git a/mm/2s2h/Rando/Logic/Regions/West.cpp b/mm/2s2h/Rando/Logic/Regions/West.cpp
index 6ff244133..893e8ed67 100644
--- a/mm/2s2h/Rando/Logic/Regions/West.cpp
+++ b/mm/2s2h/Rando/Logic/Regions/West.cpp
@@ -177,7 +177,7 @@ static RegisterShipInitFunc initFunc([]() {
};
Regions[RR_GREAT_BAY_COAST_MINIGAME_PLATFORMS] = RandoRegion{ .sceneId = SCENE_30GYOSON,
.checks = {
- CHECK(RC_GREAT_BAY_COAST_FISHERMAN_MINIGAME, RANDO_EVENTS[RE_CLEARED_GREAT_BAY_TEMPLE] && (HAS_ITEM(ITEM_HOOKSHOT) || CAN_USE_MAGIC_ARROW(ICE)) && (BETWEEN(TIME_DAY1_AM_07_00, TIME_NIGHT1_AM_04_00) || BETWEEN(TIME_DAY2_AM_07_00, TIME_NIGHT2_AM_04_00) || BETWEEN(TIME_DAY3_AM_07_00, TIME_NIGHT3_AM_04_00))),
+ CHECK(RC_GREAT_BAY_COAST_FISHERMAN_MINIGAME, RANDO_EVENTS[RE_CLEARED_GREAT_BAY_TEMPLE] && (HAS_ITEM(ITEM_HOOKSHOT)) && (BETWEEN(TIME_DAY1_AM_07_00, TIME_NIGHT1_AM_04_00) || BETWEEN(TIME_DAY2_AM_07_00, TIME_NIGHT2_AM_04_00) || BETWEEN(TIME_DAY3_AM_07_00, TIME_NIGHT3_AM_04_00))),
CHECK(RC_GREAT_BAY_COAST_TREE_01, true),
},
.connections = {
@@ -200,7 +200,7 @@ static RegisterShipInitFunc initFunc([]() {
},
.connections = {
CONNECTION(RR_GREAT_BAY_COAST, CAN_USE_ABILITY(SWIM)),
- CONNECTION(RR_GREAT_BAY_COAST_MINIGAME_PLATFORMS, RANDO_EVENTS[RE_CLEARED_GREAT_BAY_TEMPLE] && (HAS_ITEM(ITEM_HOOKSHOT) || CAN_USE_MAGIC_ARROW(ICE))),
+ CONNECTION(RR_GREAT_BAY_COAST_MINIGAME_PLATFORMS, RANDO_EVENTS[RE_CLEARED_GREAT_BAY_TEMPLE] && (HAS_ITEM(ITEM_HOOKSHOT))),
},
};
Regions[RR_GREAT_BAY_GREAT_FAIRY_FOUNTAIN] = RandoRegion{ .sceneId = SCENE_YOUSEI_IZUMI,