Refactor fire (#5868)

This commit is contained in:
Pepper0ni
2026-01-02 23:13:44 +00:00
committed by GitHub
parent 480a1658b1
commit 7d6c6f032e
4 changed files with 703 additions and 345 deletions

View File

@@ -458,6 +458,11 @@ bool Logic::CanGroundJump(bool hasBombflower) {
(CanUse(RG_BOMB_BAG) || (hasBombflower && HasItem(RG_GORONS_BRACELET)));
}
bool Logic::CanGroundJumpJumpSlash(bool hasBombflower) {
return ctx->GetTrickOption(RT_GROUND_JUMP_HARD) && CanStandingShield() && CanJumpslash() &&
(CanUse(RG_BOMB_BAG) || (hasBombflower && HasItem(RG_GORONS_BRACELET)));
}
bool Logic::CanOpenUnderwaterChest() {
return ctx->GetTrickOption(RT_OPEN_UNDERWATER_CHEST) && CanUse(RG_IRON_BOOTS) && CanUse(RG_HOOKSHOT);
}

View File

@@ -45,6 +45,7 @@ class Logic {
bool CanOpenOverworldDoor(RandomizerGet itemName);
bool SmallKeys(s16 scene, uint8_t requiredAmount);
bool CanGroundJump(bool hasBombflower = false);
bool CanGroundJumpJumpSlash(bool hasBombflower = false);
bool CanOpenUnderwaterChest();
bool CanDoGlitch(GlitchType glitch);
bool CanEquipSwap(RandomizerGet itemName);

View File

@@ -288,7 +288,12 @@ typedef enum {
LOGIC_FIRE_OPENED_LOWEST_GORON_CAGE,
LOGIC_FIRE_OPENED_UPPER_SHORTCUT,
LOGIC_FIRE_HIT_PLATFORM,
LOGIC_FIRE_HIT_STAIRS,
LOGIC_FIRE_CHILD_AT_TOP_OF_STAIRS,
LOGIC_FIRE_HIT_ABOVE_MAZE_PLATFORM,
LOGIC_FIRE_MQ_OPENED_FIRE_MAZE_DOOR,
LOGIC_FIRE_MQ_HIT_SCARECROW_ROOM_PLATFORM,
LOGIC_FIRE_MQ_HIGH_TORCH_LIT,
LOGIC_WATER_LOW_FROM_HIGH,
LOGIC_WATER_LOW_FROM_MID,
LOGIC_WATER_MIDDLE,
@@ -922,73 +927,109 @@ typedef enum {
RR_FOREST_TEMPLE_BOSS_ENTRYWAY,
RR_FOREST_TEMPLE_BOSS_ROOM,
RR_FIRE_TEMPLE_FIRST_ROOM,
RR_FIRE_TEMPLE_FOYER,
RR_FIRE_TEMPLE_NEAR_BOSS_ROOM,
RR_FIRE_TEMPLE_LOOP_ENEMIES,
RR_FIRE_TEMPLE_LOOP_TILES,
RR_FIRE_TEMPLE_NEAR_BOSS_UPPER,
RR_FIRE_TEMPLE_LOOP_HEXAGON_ROOM,
RR_FIRE_TEMPLE_LOOP_5_TILE_ROOM,
RR_FIRE_TEMPLE_LOOP_FLARE_DANCER,
RR_FIRE_TEMPLE_LOOP_HAMMER_SWITCH,
RR_FIRE_TEMPLE_LOOP_GORON_ROOM,
RR_FIRE_TEMPLE_LOOP_EXIT,
RR_FIRE_TEMPLE_LOOP_CAGE_SWITCH,
RR_FIRE_TEMPLE_LOOP_GORON_CAGE,
RR_FIRE_TEMPLE_LOOP_CAGE_FOYER_SIDE,
RR_FIRE_TEMPLE_BIG_LAVA_ROOM,
RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_GORON,
RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_TILES,
RR_FIRE_TEMPLE_BIG_LAVA_ROOM_SOUTH_GORON,
RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM,
RR_FIRE_TEMPLE_1F_CURVED_CAGE,
RR_FIRE_TEMPLE_8_TILE_ROOM,
RR_FIRE_TEMPLE_STRAIGHTFORWARD_CAGE,
RR_FIRE_TEMPLE_LAVA_GEYSER_1F,
RR_FIRE_TEMPLE_LAVA_GEYSER_GRATE,
RR_FIRE_TEMPLE_LAVA_GEYSER_TORCH,
RR_FIRE_TEMPLE_LAVA_GEYSER_2F,
RR_FIRE_TEMPLE_SHORTCUT_ROOM,
RR_FIRE_TEMPLE_SHORTCUT_CLIMB,
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER,
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER_SIDE_ROOM,
RR_FIRE_TEMPLE_EAST_CENTRAL_ROOM,
RR_FIRE_TEMPLE_3F_CURVED_CAGE,
RR_FIRE_TEMPLE_NARROW_PATH_ROOM,
RR_FIRE_TEMPLE_FIRE_WALL_CHASE,
RR_FIRE_TEMPLE_MAP_AREA,
RR_FIRE_TEMPLE_FIRE_WALL_CAGE,
RR_FIRE_TEMPLE_BOULDER_MAZE_UPPER,
RR_FIRE_TEMPLE_SCARECROW_ROOM,
RR_FIRE_TEMPLE_EAST_PEAK,
RR_FIRE_TEMPLE_GS_CLIMB_4F,
RR_FIRE_TEMPLE_GS_CLIMB_5F,
RR_FIRE_TEMPLE_5F_RUINS,
RR_FIRE_TEMPLE_CORRIDOR,
RR_FIRE_TEMPLE_FIRE_MAZE_ROOM,
RR_FIRE_TEMPLE_FIRE_MAZE_UPPER,
RR_FIRE_TEMPLE_FIRE_MAZE_SIDE_ROOM,
RR_FIRE_TEMPLE_WEST_CENTRAL_LOWER,
RR_FIRE_TEMPLE_WEST_CENTRAL_UPPER,
RR_FIRE_TEMPLE_LATE_FIRE_MAZE,
RR_FIRE_TEMPLE_UPPER_FLARE_DANCER,
RR_FIRE_TEMPLE_WEST_CLIMB,
RR_FIRE_TEMPLE_WEST_PEAK,
RR_FIRE_TEMPLE_HAMMER_RETURN_PATH,
RR_FIRE_TEMPLE_FIRE_MAZE_MAIN,
RR_FIRE_TEMPLE_FIRE_MAZE_PLATFORMS,
RR_FIRE_TEMPLE_CAGELESS_CHEST_ROOM,
RR_FIRE_TEMPLE_SOT_CAGE_LOWER,
RR_FIRE_TEMPLE_SOT_CAGE_UPPER_DOOR,
RR_FIRE_TEMPLE_SOT_CAGE_SWITCH,
RR_FIRE_TEMPLE_FIRE_MAZE_SWITCH,
RR_FIRE_TEMPLE_FIRE_MAZE_PAST_WALL,
RR_FIRE_TEMPLE_3F_FLARE_DANCER,
RR_FIRE_TEMPLE_ABOVE_3F_FLARE_DANCER,
RR_FIRE_TEMPLE_SWITCH_CLIMB,
RR_FIRE_TEMPLE_NARROW_STAIRS,
RR_FIRE_TEMPLE_NARROW_STAIRS_4F,
RR_FIRE_TEMPLE_TOP_OF_COLLAPSING_STAIRS,
RR_FIRE_TEMPLE_BASE_OF_COLLAPSING_STAIRS,
RR_FIRE_TEMPLE_ABOVE_FIRE_MAZE,
RR_FIRE_TEMPLE_MQ_FIRST_ROOM_LOWER,
RR_FIRE_TEMPLE_MQ_FIRST_ROOM_UPPER,
RR_FIRE_TEMPLE_MQ_MAP_ROOM_SOUTH,
RR_FIRE_TEMPLE_MQ_STALFOS_ROOM,
RR_FIRE_TEMPLE_MQ_IRON_KNUCKLE_ROOM,
RR_FIRE_TEMPLE_MQ_LOWER_FLARE_DANCER,
RR_FIRE_TEMPLE_MQ_MAP_ROOM_NORTH,
RR_FIRE_TEMPLE_MQ_MAP_ROOM_CAGE,
RR_FIRE_TEMPLE_MQ_FOYER_LOWER,
RR_FIRE_TEMPLE_MQ_FOYER_UPPER,
RR_FIRE_TEMPLE_MQ_LOOP_CAGE_FOYER_SIDE,
RR_FIRE_TEMPLE_MQ_LOOP_HEXAGON_ROOM,
RR_FIRE_TEMPLE_MQ_LOOP_5_TILE_ROOM,
RR_FIRE_TEMPLE_MQ_LOOP_FLARE_DANCER,
RR_FIRE_TEMPLE_MQ_LOOP_CAGE_SWITCH,
RR_FIRE_TEMPLE_MQ_LOOP_GORON_CAGE,
RR_FIRE_TEMPLE_MQ_NEAR_BOSS_ROOM,
RR_FIRE_TEMPLE_MQ_NEAR_BOSS_ROOM_NORTH,
RR_FIRE_TEMPLE_MQ_NEAR_BOSS_TARGET,
RR_FIRE_TEMPLE_MQ_NEAR_BOSS_ROOM_UPPER,
RR_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM,
RR_FIRE_TEMPLE_MQ_BIG_LAVA_BLOCKED_DOOR,
RR_FIRE_TEMPLE_MQ_GS_GORON_CAGE,
RR_FIRE_TEMPLE_MQ_TORCH_LOCKED_CAGE,
RR_FIRE_TEMPLE_MQ_TORCH_FIREWALL_ROOM,
RR_FIRE_TEMPLE_MQ_ELEVATOR_ROOM,
RR_FIRE_TEMPLE_MQ_BIG_TORCH_ROOM,
RR_FIRE_TEMPLE_MQ_LOWER_MAZE,
RR_FIRE_TEMPLE_MQ_LOWER_MAZE_CRATE_CAGE,
RR_FIRE_TEMPLE_MQ_UPPER_MAZE,
RR_FIRE_TEMPLE_MQ_UPPER_MAZE_BOX_CAGE,
RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT,
RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT_CAGE,
RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB,
RR_FIRE_TEMPLE_MQ_LAVA_GEYSER_1F,
RR_FIRE_TEMPLE_MQ_LAVA_GEYSER_GRATE,
RR_FIRE_TEMPLE_MQ_LAVA_GEYSER_PILLARS,
RR_FIRE_TEMPLE_MQ_LAVA_GEYSER_2F,
RR_FIRE_TEMPLE_MQ_SHORTCUT_ROOM_LOWER,
RR_FIRE_TEMPLE_MQ_SHORTCUT_ROOM_MID,
RR_FIRE_TEMPLE_MQ_SHORTCUT_ROOM_3F,
RR_FIRE_TEMPLE_MQ_LOWER_LIZALFOS_MAZE,
RR_FIRE_TEMPLE_MQ_MAZE_SWITCH_DOOR,
RR_FIRE_TEMPLE_MQ_3F_CURVED_CAGE,
RR_FIRE_TEMPLE_MQ_MAZE_CRATE_CAGE,
RR_FIRE_TEMPLE_MQ_UPPER_LIZALFOS_MAZE,
RR_FIRE_TEMPLE_MQ_MAZE_BOX_CAGE,
RR_FIRE_TEMPLE_MQ_ABOVE_MAZE,
RR_FIRE_TEMPLE_MQ_SHORTCUT_CLIMB,
RR_FIRE_TEMPLE_MQ_SHORTCUT_CAGE,
RR_FIRE_TEMPLE_MQ_TORCH_SLUG_CLIMB,
RR_FIRE_TEMPLE_MQ_BURNING_BLOCK,
RR_FIRE_TEMPLE_MQ_NARROW_PATH_ROOM,
RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM,
RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE,
RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM_ABOVE_CAGE,
RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM_CAGE,
RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM_BARRED_DOOR,
RR_FIRE_TEMPLE_MQ_CORRIDOR,
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_MAIN,
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PLATFORMS,
RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE,
RR_FIRE_TEMPLE_MQ_WEST_FIRE_MAZE,
RR_FIRE_TEMPLE_MQ_2_FIRE_WALLS_UPPER_DOOR,
RR_FIRE_TEMPLE_MQ_2_FIRE_WALLS_SWITCH,
RR_FIRE_TEMPLE_MQ_2_FIRE_WALLS_LOWER,
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_MIDDLE,
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_SWITCH,
RR_FIRE_TEMPLE_MQ_GS_LIZALFOS_ROOM,
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PAST_WALL,
RR_FIRE_TEMPLE_MQ_UPPER_FLARE_DANCER,
RR_FIRE_TEMPLE_MQ_SCARECROW_ROOM,
RR_FIRE_TEMPLE_MQ_COLLAPSED_STAIRS,
RR_FIRE_TEMPLE_MQ_3F_FLARE_DANCER,
RR_FIRE_TEMPLE_MQ_ABOVE_3F_FLARE_DANCER,
RR_FIRE_TEMPLE_MQ_LOCKED_CLIMB,
RR_FIRE_TEMPLE_MQ_NARROW_STAIRS_ROOM,
RR_FIRE_TEMPLE_MQ_NARROW_STAIRS_4F,
RR_FIRE_TEMPLE_MQ_TOP_OF_COLLAPSING_STAIRS,
RR_FIRE_TEMPLE_MQ_BASE_OF_COLLAPSING_STAIRS,
RR_FIRE_TEMPLE_MQ_ABOVE_FIRE_MAZE,
RR_FIRE_TEMPLE_BOSS_ENTRYWAY,
RR_FIRE_TEMPLE_BOSS_ROOM,