Combine mq/vanilla flame wall skip tricks, include child skipping wall in MQ lobby (#5814)

Checked that logic past fire wall handles child logic

To get past without taking damage:
Z-target wall to left of fire wall. Turn left. 2 ESS turns right. Side hop
This commit is contained in:
Philip Dubé
2026-01-01 23:08:42 +00:00
committed by GitHub
parent 1463e76ef7
commit d227292935
3 changed files with 14 additions and 20 deletions

View File

@@ -261,7 +261,7 @@ void RegionTable_Init_FireTemple() {
Entrance(RR_FIRE_TEMPLE_FIRE_MAZE_UPPER, []{return logic->CanUse(RG_HOVER_BOOTS) || logic->CanGroundJump();}),
Entrance(RR_FIRE_TEMPLE_FIRE_MAZE_SIDE_ROOM, []{return true;}),
Entrance(RR_FIRE_TEMPLE_WEST_CENTRAL_LOWER, []{return logic->SmallKeys(SCENE_FIRE_TEMPLE, 8);}),
Entrance(RR_FIRE_TEMPLE_LATE_FIRE_MAZE, []{return ctx->GetTrickOption(RT_FIRE_FLAME_MAZE) || false;}),
Entrance(RR_FIRE_TEMPLE_LATE_FIRE_MAZE, []{return (bool)ctx->GetTrickOption(RT_FIRE_SKIP_FLAME_WALLS);}),
});
areaTable[RR_FIRE_TEMPLE_FIRE_MAZE_UPPER] = Region("Fire Temple Fire Maze Upper", SCENE_FIRE_TEMPLE, {
@@ -363,7 +363,7 @@ void RegionTable_Init_FireTemple() {
//Exits
Entrance(RR_FIRE_TEMPLE_ENTRYWAY, []{return true;}),
Entrance(RR_FIRE_TEMPLE_MQ_MAP_ROOM_SOUTH, []{return true;}),
Entrance(RR_FIRE_TEMPLE_MQ_FIRST_ROOM_UPPER, []{return logic->IsAdult || logic->CanUse(RG_HOOKSHOT);}),
Entrance(RR_FIRE_TEMPLE_MQ_FIRST_ROOM_UPPER, []{return logic->IsAdult || logic->CanUse(RG_HOOKSHOT) || ctx->GetTrickOption(RT_FIRE_SKIP_FLAME_WALLS);}),
Entrance(RR_FIRE_TEMPLE_MQ_STALFOS_ROOM, []{return logic->SmallKeys(SCENE_FIRE_TEMPLE, 5);}),
});
@@ -666,7 +666,7 @@ void RegionTable_Init_FireTemple() {
Entrance(RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM, []{return true;}),
Entrance(RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PLATFORMS, []{return logic->IsAdult || logic->CanUse(RG_SONG_OF_TIME) || logic->CanUse(RG_HOVER_BOOTS);}),
//Hover boots get there via the platforms
Entrance(RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE, []{return (bool)ctx->GetTrickOption(RT_FIRE_MQ_FLAME_MAZE);}),
Entrance(RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE, []{return (bool)ctx->GetTrickOption(RT_FIRE_SKIP_FLAME_WALLS);}),
Entrance(RR_FIRE_TEMPLE_MQ_WEST_FIRE_MAZE, []{return logic->Get(LOGIC_FIRE_MQ_OPENED_FIRE_MAZE_DOOR);}),
});
@@ -688,13 +688,13 @@ void RegionTable_Init_FireTemple() {
LOCATION(RC_FIRE_TEMPLE_MQ_FIRE_MAZE_NORTHWEST_POT, logic->CanBreakPots()),
}, {
//Exits
Entrance(RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE, []{return logic->IsAdult || ctx->GetTrickOption(RT_FIRE_MQ_FLAME_MAZE);}),
Entrance(RR_FIRE_TEMPLE_MQ_WEST_FIRE_MAZE, []{return (bool)ctx->GetTrickOption(RT_FIRE_MQ_FLAME_MAZE);}),
Entrance(RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE, []{return logic->IsAdult || ctx->GetTrickOption(RT_FIRE_SKIP_FLAME_WALLS);}),
Entrance(RR_FIRE_TEMPLE_MQ_WEST_FIRE_MAZE, []{return (bool)ctx->GetTrickOption(RT_FIRE_SKIP_FLAME_WALLS);}),
});
areaTable[RR_FIRE_TEMPLE_MQ_WEST_FIRE_MAZE] = Region("Fire Temple MQ West Fire Maze", SCENE_FIRE_TEMPLE, {}, {}, {
Entrance(RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PAST_WALL, []{return true;}),
Entrance(RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE, []{return (bool)ctx->GetTrickOption(RT_FIRE_MQ_FLAME_MAZE);}),
Entrance(RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE, []{return (bool)ctx->GetTrickOption(RT_FIRE_SKIP_FLAME_WALLS);}),
});
//this area exists for the pots in case we void warp to the top of fire somehow, because there's no way to get back the way we came

View File

@@ -4041,7 +4041,7 @@ typedef enum {
RT_FIRE_SOT,
RT_FIRE_STRENGTH,
RT_FIRE_SCARECROW,
RT_FIRE_FLAME_MAZE,
RT_FIRE_SKIP_FLAME_WALLS,
RT_FIRE_MQ_NEAR_BOSS,
RT_FIRE_MQ_BLOCKED_CHEST,
RT_FIRE_MQ_BK_CHEST,
@@ -4050,7 +4050,6 @@ typedef enum {
RT_FIRE_MQ_MAZE_HOVERS,
RT_FIRE_MQ_MAZE_JUMP,
RT_FIRE_MQ_ABOVE_MAZE_GS,
RT_FIRE_MQ_FLAME_MAZE,
RT_WATER_LONGSHOT_TORCH,
RT_WATER_CRACKED_WALL_HOVERS,
RT_WATER_CRACKED_WALL,

View File

@@ -848,11 +848,13 @@ void Settings::CreateOptions() {
"Fire Temple East Tower without Scarecrow\'s Song",
"Also known as \"Pixelshot\". The Longshot can reach the target on the elevator itself, allowing you to "
"skip needing to spawn the scarecrow.");
OPT_TRICK(RT_FIRE_FLAME_MAZE, RCQUEST_VANILLA, RA_FIRE_TEMPLE, { Tricks::Tag::INTERMEDIATE },
"Fire Temple Flame Wall Maze Skip",
"If you move quickly you can sneak past the edge of a flame wall before it can rise up to block you. To "
"do it without taking damage is more precise. Allows you to progress without needing either a Small Key "
"or Hover Boots.");
OPT_TRICK(RT_FIRE_SKIP_FLAME_WALLS, RCQUEST_BOTH, RA_FIRE_TEMPLE, { Tricks::Tag::INTERMEDIATE },
"Fire Temple Skip Flame Walls",
"If you move quickly you can sneak past the edge of a flame wall before rises up to block you. To "
"do it without taking damage is more precise. Allows progress without needing either a Small Key or "
"Hover Boots. In MQ if either \"Fire Temple MQ Lower to Upper Lizalfos Maze with Hover Boots\" or "
"\"with Precise Jump\" are enabled, this also allows progress deeper into the dungeon without Hookshot.\n"
"Child can sidehop past fire wall in MQ lobby.");
OPT_TRICK(RT_FIRE_MQ_NEAR_BOSS, RCQUEST_MQ, RA_FIRE_TEMPLE, { Tricks::Tag::NOVICE },
"Fire Temple MQ Chest Near Boss without Breaking Crate",
"The hitbox for the torch extends a bit outside of the crate. Shoot a flaming arrow at the side of the "
@@ -889,13 +891,6 @@ void Settings::CreateOptions() {
"Fire Temple MQ Above Flame Wall Maze GS from Below with Longshot",
"The floor of the room that contains this Skulltula is only solid from above. From the maze below, the "
"Longshot can be shot through the ceiling to obtain the token with two fewer small keys than normal.");
OPT_TRICK(
RT_FIRE_MQ_FLAME_MAZE, RCQUEST_MQ, RA_FIRE_TEMPLE, { Tricks::Tag::INTERMEDIATE },
"Fire Temple MQ Flame Wall Maze Skip",
"If you move quickly you can sneak past the edge of a flame wall before it can rise up to block you. To do it "
"without taking damage is more precise. Allows you to reach the side room GS without needing Song of Time or "
"Hover Boots. If either of \"Fire Temple MQ Lower to Upper Lizalfos Maze with Hover Boots\" or \"with Precise "
"Jump\" are enabled, this also allows you to progress deeper into the dungeon without Hookshot.");
OPT_TRICK(RT_WATER_LONGSHOT_TORCH, RCQUEST_VANILLA, RA_WATER_TEMPLE, { Tricks::Tag::NOVICE },
"Water Temple Torch Longshot",
"Stand on the eastern side of the central pillar and longshot the torches on the bottom level. Swim "