Some logic fixes for dewey (#7417)

add outside GTG sign to guards with nothing trick.
This commit is contained in:
Pepper0ni
2026-10-18 15:47:34 +01:00
committed by GitHub
parent 62ddf348ce
commit 156c2a4a0a
8 changed files with 103 additions and 103 deletions
+1 -1
View File
@@ -2310,7 +2310,7 @@
},
"pass_guards_with_nothing": {
"name": "Sneak Past Moving Gerudo Guards with No Items",
"description": "The logic normally guarantees Bow or Hookshot to stun them from a distance, but every moving guard can be passed with basic movement and AI manipulation"
"description": "The logic normally guarantees Bow or Hookshot to stun them from a distance, but every moving guard can be passed with basic movement and AI manipulation. This trick also enables reading the sign outside GTG without Gerudo card, which is barely possible."
},
"gf_wasteland_gate_sidehop_skip": {
"name": "Gerudo's Fortress Gate Skip with Sidehop",
@@ -153,7 +153,7 @@ void RegionTable_Init_ForestTemple() {
}, {}, {
//Exits
ENTRANCE(RR_FOREST_TEMPLE_NE_COURTYARD_LOWER, true),
ENTRANCE(RR_FOREST_TEMPLE_NE_COURTYARD_SWITCH, logic->BunnyHood() || logic->CanUse(RG_CLIMB) || (logic->IsAdult && ctx->GetTrickOption(RT_UNINTUITIVE_JUMPS)) || logic->CanUse(RG_HOOKSHOT) ||logic->CanUse(RG_HOVER_BOOTS)),
ENTRANCE(RR_FOREST_TEMPLE_NE_COURTYARD_SWITCH, logic->BunnyHood() || logic->HasItem(RG_CLIMB) || (logic->IsAdult && ctx->GetTrickOption(RT_UNINTUITIVE_JUMPS)) || logic->CanUse(RG_HOOKSHOT) ||logic->CanUse(RG_HOVER_BOOTS)),
ENTRANCE(RR_FOREST_TEMPLE_NE_COURTYARD_DOORFRAME, logic->CanRecoilHover(RECOIL_HAMMER) || ((ctx->GetTrickOption(RT_FOREST_DOORFRAME) && logic->CanUse(RG_HOVER_BOOTS) && (logic->BunnyHood() || logic->CanJumpslash())))),
ENTRANCE(RR_FOREST_TEMPLE_MAP_ROOM, true),
});
@@ -704,7 +704,7 @@ void RegionTable_Init_ForestTemple() {
ENTRANCE(RR_FOREST_TEMPLE_MQ_NE_COURTYARD_DOORFRAME, logic->CanRecoilHover(RECOIL_HAMMER) || (logic->IsAdult && logic->BunnyHovers()) ||
((ctx->GetTrickOption(RT_FOREST_DOORFRAME) && logic->CanUse(RG_HOVER_BOOTS) && (logic->CanJumpslash() || logic->BunnyHood()))) ||
(logic->IsChild && (ctx->GetTrickOption(RT_FOREST_MQ_CHILD_DOORFRAME) || logic->CanMiddairGroundJump()))),
ENTRANCE(RR_FOREST_TEMPLE_MQ_COURTYARD_TOP_CHEST, logic->BunnyHood() || logic->CanUse(RG_CLIMB) || (logic->IsAdult && ctx->GetTrickOption(RT_UNINTUITIVE_JUMPS)) || logic->CanUse(RG_HOOKSHOT) ||logic->CanUse(RG_HOVER_BOOTS)),
ENTRANCE(RR_FOREST_TEMPLE_MQ_COURTYARD_TOP_CHEST, logic->BunnyHood() || logic->HasItem(RG_CLIMB) || (logic->IsAdult && ctx->GetTrickOption(RT_UNINTUITIVE_JUMPS)) || logic->CanUse(RG_HOOKSHOT) ||logic->CanUse(RG_HOVER_BOOTS)),
});
areaTable[RR_FOREST_TEMPLE_MQ_COURTYARD_TOP_CHEST] = Region("Forest Temple MQ Courtyard Top Chest", SCENE_FOREST_TEMPLE, {}, {
@@ -396,7 +396,7 @@ void RegionTable_Init_JabuJabusBelly() {
//Exits
//without swim, jump from rang chest to the other side
//you can also bunnyhovers to force your way through but that's a trick
ENTRANCE(RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM_PAST_GEYSER, AnyAgeTime([]{return logic->CanKillEnemy(RE_LIZALFOS) && (logic->IsAdult || logic->CanUse(RG_CLIMB) || logic->HasItem(RG_BRONZE_SCALE));})),
ENTRANCE(RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM_PAST_GEYSER, AnyAgeTime([]{return logic->CanKillEnemy(RE_LIZALFOS) && (logic->IsAdult || logic->HasItem(RG_CLIMB) || logic->HasItem(RG_BRONZE_SCALE));})),
ENTRANCE(RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM, (logic->IsAdult || logic->HasItem(RG_BRONZE_SCALE)) && AnyAgeTime([]{return logic->CanKillEnemy(RE_LIZALFOS);})),
});
@@ -724,7 +724,7 @@ void RegionTable_Init_SpiritTemple() {
//Needs 2 keys if hover recoils are on because you can recoil past the jet and waste a key without having Statue Room Access.
//If the clip through the grate in 3 suns room is added to logic, being able to perform that will reduce the requirement as well.
ENTRANCE(RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE, logic->SmallKeys(SCENE_SPIRIT_TEMPLE,
(ctx->GetTrickOption(RT_HOVER_BOOST_SIMPLE) && !((logic->Get(LOGIC_SPIRIT_MQ_3SUNS_ENEMIES) && (logic->CanUse(RG_CLIMB) || logic->CanUse(RG_LONGSHOT))) || logic->Get(LOGIC_REVERSE_SPIRIT_ADULT))) ? 2 : 1)),
(ctx->GetTrickOption(RT_HOVER_BOOST_SIMPLE) && !((logic->Get(LOGIC_SPIRIT_MQ_3SUNS_ENEMIES) && (logic->HasItem(RG_CLIMB) || logic->CanUse(RG_LONGSHOT))) || logic->Get(LOGIC_REVERSE_SPIRIT_ADULT))) ? 2 : 1)),
});
areaTable[RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE] = Region("Spirit Temple MQ Under Like Like", SCENE_SPIRIT_TEMPLE, {}, {
@@ -748,7 +748,7 @@ void RegionTable_Init_SpiritTemple() {
ENTRANCE(RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE, logic->CanHitSwitch()),
//This exit only governs child forwards access, adult and reverse access starts on the other side so never checks this
ENTRANCE(RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM_CHILD, logic->SmallKeys(SCENE_SPIRIT_TEMPLE,
(ctx->GetTrickOption(RT_HOVER_BOOST_SIMPLE) && !((logic->Get(LOGIC_SPIRIT_MQ_3SUNS_ENEMIES) && (logic->CanUse(RG_CLIMB) || logic->CanUse(RG_LONGSHOT))) || logic->Get(LOGIC_REVERSE_SPIRIT_ADULT))) ? 3 : 2)),
(ctx->GetTrickOption(RT_HOVER_BOOST_SIMPLE) && !((logic->Get(LOGIC_SPIRIT_MQ_3SUNS_ENEMIES) && (logic->HasItem(RG_CLIMB) || logic->CanUse(RG_LONGSHOT))) || logic->Get(LOGIC_REVERSE_SPIRIT_ADULT))) ? 3 : 2)),
});
areaTable[RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM_CHILD] = Region("Spirit Temple MQ Statue Room Child", SCENE_SPIRIT_TEMPLE, {}, {
@@ -49,7 +49,7 @@ void RegionTable_Init_GerudoFortress() {
EVENT_ACCESS(LOGIC_GTG_GATE_OPEN, logic->IsAdult && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->HasItem(RG_CHILD_WALLET) && logic->HasItem(RG_SPEAK_GERUDO)),
}, {
//Locations
LOCATION(RC_GF_GTG_ENTRANCE_RECTANGLE_SIGN, logic->IsAdult && logic->CanRead()),
LOCATION(RC_GF_GTG_ENTRANCE_RECTANGLE_SIGN, logic->IsAdult && logic->CanRead() && (ctx->GetTrickOption(RT_PASS_GUARDS_WITH_NOTHING) || logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD))),
}, {
//Exits
ENTRANCE(RR_GF_TO_GTG, logic->Get(LOGIC_GTG_GATE_OPEN) && (logic->IsAdult || ctx->GetOption(RSK_SHUFFLE_DUNGEON_ENTRANCES))),
@@ -57,7 +57,7 @@ void RegionTable_Init_GerudoFortress() {
ENTRANCE(RR_GF_JAIL_WINDOW, logic->CanUse(RG_HOOKSHOT)),
ENTRANCE(RR_GF_OUTSKIRTS, true),
ENTRANCE(RR_GF_NEAR_GROTTO, logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD)),
// RANDTODO: Add tricks for getting past the gerudo guarding the hba range
// RANDOTODO: Add tricks for getting past the gerudo guarding the hba range
ENTRANCE(RR_GF_ABOVE_GTG, logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD)),
ENTRANCE(RR_GF_TOP_OF_UPPER_VINES, logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->CanUse(RG_LONGSHOT)),
ENTRANCE(RR_GF_HBA_RANGE, logic->IsChild || logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD)),
@@ -118,10 +118,10 @@ void RegionTable_Init_GerudoValley() {
LOCATION(RC_GV_CRATE_BRIDGE_2, logic->IsChild && logic->CanBreakCrates()),
LOCATION(RC_GV_CRATE_BRIDGE_3, logic->IsChild && logic->CanBreakCrates()),
LOCATION(RC_GV_CRATE_BRIDGE_4, logic->IsChild && logic->CanBreakCrates()),
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_1, logic->IsAdult),
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_2, logic->IsAdult),
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_3, logic->IsAdult),
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_4, logic->IsAdult),
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_1, logic->IsAdult && logic->CanBreakRocks()),
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_2, logic->IsAdult && logic->CanBreakRocks()),
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_3, logic->IsAdult && logic->CanBreakRocks()),
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_4, logic->IsAdult && logic->CanBreakRocks()),
LOCATION(RC_GV_BOULDER_ACROSS_BRIDGE, logic->IsAdult && logic->BlastOrSmash()),
LOCATION(RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_1, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
LOCATION(RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_2, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
@@ -134,7 +134,7 @@ void RegionTable_Init_GerudoValley() {
ENTRANCE(RR_GF_OUTSKIRTS, true),
ENTRANCE(RR_GV_UPPER_STREAM, logic->TakeDamage()),
ENTRANCE(RR_GV_UPPER_STREAM_WATER, true),
ENTRANCE(RR_GERUDO_VALLEY, logic->IsChild || logic->SummonEpona() || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->Get(LOGIC_TH_RESCUED_ALL_CARPENTERS) || logic->CanRecoilHover(RECOIL_HAMMER) || (logic->BunnyHovers() && logic->CanUse(RG_CLIMB))),
ENTRANCE(RR_GERUDO_VALLEY, logic->IsChild || logic->SummonEpona() || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->Get(LOGIC_TH_RESCUED_ALL_CARPENTERS) || logic->CanRecoilHover(RECOIL_HAMMER) || (logic->BunnyHovers() && logic->HasItem(RG_CLIMB))),
ENTRANCE(RR_GV_CARPENTER_TENT, logic->IsAdult || ctx->GetTrickOption(RT_GV_CHILD_TENT)),
ENTRANCE(RR_GV_STORMS_GROTTO, logic->IsAdult && logic->CanOpenStormsGrotto()),
ENTRANCE(RR_GV_CRATE_LEDGE, (ctx->GetTrickOption(RT_DAMAGE_BOOST_SIMPLE) && logic->HasExplosives()) || (ctx->GetTrickOption(RT_GV_CRATE_HOVERS) && logic->TakeDamage() && logic->CanUse(RG_HOVER_BOOTS) && (logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)))),
@@ -14,54 +14,54 @@ void RegionTable_Init_HyruleField() {
LOCATION(RC_HF_OCARINA_OF_TIME_ITEM, logic->IsChild && logic->StoneCount() == 3 && logic->HasItem(RG_BRONZE_SCALE)),
LOCATION(RC_SONG_FROM_OCARINA_OF_TIME, logic->IsChild && logic->StoneCount() == 3 && logic->HasItem(RG_BRONZE_SCALE)),
LOCATION(RC_HF_POND_STORMS_FAIRY, logic->CanUse(RG_SONG_OF_STORMS)),
LOCATION(RC_HF_CENTRAL_GRASS_1, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_2, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_3, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_4, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_5, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_6, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_7, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_8, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_9, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_10, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_11, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_12, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_1, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_2, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_3, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_4, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_5, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_6, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_7, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_8, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_9, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_10, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_11, logic->CanCutShrubs()),
LOCATION(RC_HF_SOUTH_GRASS_12, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_1, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_2, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_3, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_4, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_5, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_6, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_7, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_8, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_9, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_10, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_11, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_12, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_1, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_2, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_3, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_4, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_5, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_6, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_7, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_8, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_9, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_10, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_11, logic->CanCutShrubs()),
LOCATION(RC_HF_NEAR_KF_GRASS_12, logic->CanCutShrubs()),
LOCATION(RC_HF_CENTRAL_GRASS_1, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_2, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_3, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_4, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_5, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_6, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_7, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_8, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_9, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_10, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_11, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_CENTRAL_GRASS_12, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_1, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_2, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_3, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_4, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_5, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_6, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_7, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_8, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_9, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_10, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_11, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SOUTH_GRASS_12, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_1, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_2, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_3, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_4, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_5, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_6, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_7, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_8, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_9, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_10, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_11, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_MARKET_GRASS_12, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_1, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_2, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_3, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_4, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_5, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_6, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_7, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_8, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_9, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_10, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_11, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_NEAR_KF_GRASS_12, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_HF_SILVER_BOULDER, logic->CanUse(RG_SILVER_GAUNTLETS)),
LOCATION(RC_HF_ROCK_1, logic->CanBreakRocks()),
LOCATION(RC_HF_ROCK_2, logic->CanBreakRocks()),
@@ -39,48 +39,48 @@ void RegionTable_Init_LakeHylia() {
LOCATION(RC_LH_LAB_GOSSIP_STONE, true),
LOCATION(RC_LH_SOUTHEAST_GOSSIP_STONE, true),
LOCATION(RC_LH_SOUTHWEST_GOSSIP_STONE, true),
LOCATION(RC_LH_GRASS_1, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_2, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_3, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_4, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_5, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_6, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_7, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_8, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_9, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_10, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_11, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_12, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_13, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_14, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_15, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_16, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_17, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_18, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_19, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_20, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_21, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_22, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_23, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_24, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_25, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_26, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_27, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_28, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_29, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_30, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_31, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_32, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_33, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_34, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_35, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_36, logic->CanCutShrubs()),
LOCATION(RC_LH_CHILD_GRASS_1, logic->IsChild && logic->CanCutShrubs()),
LOCATION(RC_LH_CHILD_GRASS_2, logic->IsChild && logic->CanCutShrubs()),
LOCATION(RC_LH_CHILD_GRASS_3, logic->IsChild && logic->CanCutShrubs()),
LOCATION(RC_LH_CHILD_GRASS_4, logic->IsChild && logic->CanCutShrubs()),
LOCATION(RC_LH_WARP_PAD_GRASS_1, logic->CanCutShrubs()),
LOCATION(RC_LH_WARP_PAD_GRASS_2, logic->CanCutShrubs()),
LOCATION(RC_LH_GRASS_1, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_2, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_3, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_4, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_5, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_6, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_7, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_8, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_9, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_10, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_11, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_12, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_13, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_14, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_15, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_16, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_17, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_18, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_19, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_20, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_21, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_22, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_23, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_24, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_25, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_26, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_27, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_28, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_29, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_30, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_31, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_32, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_33, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_34, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_35, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_GRASS_36, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_CHILD_GRASS_1, logic->IsChild && (logic->CanCutShrubs() || logic->SummonEpona())),
LOCATION(RC_LH_CHILD_GRASS_2, logic->IsChild && (logic->CanCutShrubs() || logic->SummonEpona())),
LOCATION(RC_LH_CHILD_GRASS_3, logic->IsChild && (logic->CanCutShrubs() || logic->SummonEpona())),
LOCATION(RC_LH_CHILD_GRASS_4, logic->IsChild && (logic->CanCutShrubs() || logic->SummonEpona())),
LOCATION(RC_LH_WARP_PAD_GRASS_1, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_WARP_PAD_GRASS_2, logic->CanCutShrubs() || logic->SummonEpona()),
LOCATION(RC_LH_SCARECROW_BUTTERFLY_FAIRY, logic->IsChild && logic->CanUse(RG_STICKS)),
LOCATION(RC_LH_LAB_RECTANGLE_SIGN, logic->CanRead()),
LOCATION(RC_LH_NORTH_EXIT_ARROW_SIGN, logic->CanRead()),