summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsitton76 <58642183+sitton76@users.noreply.github.com>2025-05-05 22:49:54 -0500
committerGitHub <noreply@github.com>2025-05-05 22:49:54 -0500
commit1572afb16a4ddd6afcd47abf9901a11c3cdb0402 (patch)
treeec906b1bdbf94d742de4fd151c0dd14f5fe1dcea
parent9fe15819232f738bae3f82891813f0b20e2cc0cd (diff)
[Rando] Changed switch logic for GBT. (#1119)
* Fixed a small logic issue I spotted with RC_GREAT_BAY_TEMPLE_SF_CENTRAL_ROOM_BARREL Changed GBT switch logic to not account for active switch states * Requested changes to GBT * Removed REGULAR_FLOW macro * Renamed GBT_REVERSE_WATER_FLOW -> GBT_CAN_REVERSE_WATER_FLOW * Adjusted requirements to reach checks in RR_GREAT_BAY_TEMPLE_WATER_WHEEL_ROOM
-rw-r--r--mm/2s2h/Rando/Logic/Logic.h7
-rw-r--r--mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp35
-rw-r--r--mm/2s2h/Rando/Types.h2
3 files changed, 18 insertions, 26 deletions
diff --git a/mm/2s2h/Rando/Logic/Logic.h b/mm/2s2h/Rando/Logic/Logic.h
index c02618a28..a38a5bd1e 100644
--- a/mm/2s2h/Rando/Logic/Logic.h
+++ b/mm/2s2h/Rando/Logic/Logic.h
@@ -69,10 +69,9 @@ extern std::unordered_map<RandoRegionId, RandoRegion> Regions;
// Be careful here, as some checks require you to play the song as a specific form
#define CAN_PLAY_SONG(song) (HAS_ITEM(ITEM_OCARINA_OF_TIME) && CHECK_QUEST_ITEM(QUEST_SONG_##song))
#define CAN_RIDE_EPONA (CAN_PLAY_SONG(EPONA))
-#define GBT_REGULAR_WATER_FLOW (!RANDO_EVENTS[RE_GREAT_BAY_YELLOW_TOGGLE] && !RANDO_EVENTS[RE_GREAT_BAY_RED_TOGGLE])
-#define GBT_REVERSE_WATER_FLOW (RANDO_EVENTS[RE_GREAT_BAY_YELLOW_TOGGLE] && RANDO_EVENTS[RE_GREAT_BAY_RED_TOGGLE])
-#define GBT_EITHER_FLOW (!RANDO_EVENTS[RE_GREAT_BAY_YELLOW_TOGGLE] || RANDO_EVENTS[RE_GREAT_BAY_RED_TOGGLE])
-#define GBT_RED_SWITCH_FLOW (RANDO_EVENTS[RE_GREAT_BAY_RED_SWITCH_1] && RANDO_EVENTS[RE_GREAT_BAY_RED_SWITCH_2])
+#define GBT_CAN_REVERSE_WATER_FLOW \
+ (RANDO_EVENTS[RE_GREAT_BAY_RED_SWITCH_1] && RANDO_EVENTS[RE_GREAT_BAY_RED_SWITCH_2] && \
+ HAS_ITEM(ITEM_HOOKSHOT)) // Keeping for the sake of check tracker clarity
#define GBT_GREEN_SWITCH_FLOW \
(RANDO_EVENTS[RE_GREAT_BAY_GREEN_SWITCH_1] && RANDO_EVENTS[RE_GREAT_BAY_GREEN_SWITCH_2] && \
RANDO_EVENTS[RE_GREAT_BAY_GREEN_SWITCH_3])
diff --git a/mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp b/mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp
index 14dd29a42..9ae38ca9d 100644
--- a/mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp
+++ b/mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp
@@ -63,17 +63,17 @@ static RegisterShipInitFunc initFunc([]() {
};
Regions[RR_GREAT_BAY_TEMPLE_CENTRAL_ROOM] = RandoRegion{ .sceneId = SCENE_SEA,
.checks = {
- CHECK(RC_GREAT_BAY_TEMPLE_SF_CENTRAL_ROOM_BARREL, CAN_BE_GORON || CAN_USE_EXPLOSIVE),
+ CHECK(RC_GREAT_BAY_TEMPLE_SF_CENTRAL_ROOM_BARREL, true),
CHECK(RC_GREAT_BAY_TEMPLE_CENTRAL_ROOM_POT_01, true),
CHECK(RC_GREAT_BAY_TEMPLE_CENTRAL_ROOM_POT_02, true),
CHECK(RC_GREAT_BAY_TEMPLE_SF_CENTRAL_ROOM_UNDERWATER_POT, CAN_BE_ZORA),
},
.connections = {
- CONNECTION(RR_GREAT_BAY_TEMPLE_COMPASS_ROOM_TUNNEL, CAN_BE_ZORA && GBT_REVERSE_WATER_FLOW),
+ CONNECTION(RR_GREAT_BAY_TEMPLE_COMPASS_ROOM_TUNNEL, CAN_BE_ZORA && GBT_CAN_REVERSE_WATER_FLOW),
CONNECTION(RR_GREAT_BAY_TEMPLE_GREEN_PIPE_1, CAN_USE_MAGIC_ARROW(ICE)),
- CONNECTION(RR_GREAT_BAY_TEMPLE_MAP_ROOM, CAN_BE_ZORA && GBT_REGULAR_WATER_FLOW),
- CONNECTION(RR_GREAT_BAY_TEMPLE_PRE_BOSS_ROOM, CAN_BE_ZORA && GBT_REVERSE_WATER_FLOW),
- CONNECTION(RR_GREAT_BAY_TEMPLE_RED_PIPE_BEFORE_WART, CAN_BE_ZORA && GBT_REGULAR_WATER_FLOW),
+ CONNECTION(RR_GREAT_BAY_TEMPLE_MAP_ROOM, CAN_BE_ZORA),
+ CONNECTION(RR_GREAT_BAY_TEMPLE_PRE_BOSS_ROOM, CAN_BE_ZORA && GBT_CAN_REVERSE_WATER_FLOW),
+ CONNECTION(RR_GREAT_BAY_TEMPLE_RED_PIPE_BEFORE_WART, CAN_BE_ZORA),
CONNECTION(RR_GREAT_BAY_TEMPLE_WATER_WHEEL_ROOM, true)
},
};
@@ -94,8 +94,8 @@ static RegisterShipInitFunc initFunc([]() {
CHECK(RC_GREAT_BAY_TEMPLE_COMPASS_ROOM_TUNNEL_FREESTANDING_RUPEE_02, CAN_BE_ZORA),
},
.connections = {
- CONNECTION(RR_GREAT_BAY_TEMPLE_CENTRAL_ROOM, GBT_REGULAR_WATER_FLOW),
- CONNECTION(RR_GREAT_BAY_TEMPLE_GREEN_PIPE_2, GBT_REVERSE_WATER_FLOW),
+ CONNECTION(RR_GREAT_BAY_TEMPLE_CENTRAL_ROOM, CAN_BE_ZORA),
+ CONNECTION(RR_GREAT_BAY_TEMPLE_GREEN_PIPE_2, GBT_CAN_REVERSE_WATER_FLOW),
},
};
Regions[RR_GREAT_BAY_TEMPLE_COMPASS_ROOM] = RandoRegion{ .sceneId = SCENE_SEA,
@@ -243,7 +243,7 @@ static RegisterShipInitFunc initFunc([]() {
},
.connections = {
CONNECTION(RR_GREAT_BAY_TEMPLE_BABA_CHEST_ROOM, CAN_BE_ZORA),
- CONNECTION(RR_GREAT_BAY_TEMPLE_CENTRAL_ROOM, CAN_BE_ZORA && GBT_REVERSE_WATER_FLOW),
+ CONNECTION(RR_GREAT_BAY_TEMPLE_CENTRAL_ROOM, CAN_BE_ZORA && GBT_CAN_REVERSE_WATER_FLOW),
CONNECTION(RR_GREAT_BAY_TEMPLE_RED_PIPE_SWITCH_ROOM, CAN_USE_MAGIC_ARROW(ICE)),
},
};
@@ -324,21 +324,16 @@ static RegisterShipInitFunc initFunc([]() {
Regions[RR_GREAT_BAY_TEMPLE_WATER_WHEEL_ROOM] = RandoRegion{ .sceneId = SCENE_SEA,
.checks = {
CHECK(RC_GREAT_BAY_TEMPLE_SF_WATER_WHEEL_PLATFORM, CAN_BE_ZORA || (HAS_ITEM(ITEM_BOW) && (HAS_ITEM(ITEM_MASK_GREAT_FAIRY)))),
- CHECK(RC_GREAT_BAY_TEMPLE_SF_WATER_WHEEL_SKULLTULA, GBT_EITHER_FLOW || (HAS_ITEM(ITEM_BOW) && HAS_ITEM(ITEM_MASK_GREAT_FAIRY))),
- CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_01, GBT_EITHER_FLOW),
- CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_02, GBT_EITHER_FLOW),
- CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_03, GBT_EITHER_FLOW),
- CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_04, GBT_EITHER_FLOW),
- CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_05, GBT_EITHER_FLOW),
-
+ CHECK(RC_GREAT_BAY_TEMPLE_SF_WATER_WHEEL_SKULLTULA, true),
+ CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_01, true),
+ CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_02, true),
+ CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_03, true),
+ CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_04, true),
+ CHECK(RC_GREAT_BAY_TEMPLE_WATER_WHEEL_FREESTANDING_RUPEE_05, true),
},
.connections = {
- CONNECTION(RR_GREAT_BAY_TEMPLE_CENTRAL_ROOM, CAN_BE_ZORA && GBT_EITHER_FLOW),
+ CONNECTION(RR_GREAT_BAY_TEMPLE_CENTRAL_ROOM, CAN_BE_ZORA),
CONNECTION(RR_GREAT_BAY_TEMPLE_ENTRANCE, true),
- },
- .events = {
- EVENT(RE_GREAT_BAY_RED_TOGGLE, GBT_RED_SWITCH_FLOW && HAS_ITEM(ITEM_HOOKSHOT)),
- EVENT(RE_GREAT_BAY_YELLOW_TOGGLE, true),
}
};
}, {});
diff --git a/mm/2s2h/Rando/Types.h b/mm/2s2h/Rando/Types.h
index fa7118bd0..a74812da9 100644
--- a/mm/2s2h/Rando/Types.h
+++ b/mm/2s2h/Rando/Types.h
@@ -1995,8 +1995,6 @@ typedef enum {
RE_SWAMP_SPIDER_HOUSE_GOLD_ROOM_LADDER,
RE_IKANA_CASTLE_MAIN_SUNLIGHT,
RE_IKANA_CASTLE_RIGHT_SUNLIGHT,
- RE_GREAT_BAY_RED_TOGGLE,
- RE_GREAT_BAY_YELLOW_TOGGLE,
RE_GREAT_BAY_GREEN_SWITCH_1,
RE_GREAT_BAY_GREEN_SWITCH_2,
RE_GREAT_BAY_GREEN_SWITCH_3,