diff options
| author | sitton76 <58642183+sitton76@users.noreply.github.com> | 2025-05-05 22:49:54 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-05 22:49:54 -0500 |
| commit | 1572afb16a4ddd6afcd47abf9901a11c3cdb0402 (patch) | |
| tree | ec906b1bdbf94d742de4fd151c0dd14f5fe1dcea | |
| parent | 9fe15819232f738bae3f82891813f0b20e2cc0cd (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.h | 7 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp | 35 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Types.h | 2 |
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, |
