@deprioritize

This commit is contained in:
Demur Rumed 2025-07-19 16:06:53 +00:00
commit 94f0b21265
3 changed files with 31 additions and 25 deletions

View file

@ -300,7 +300,13 @@ for rr in RRs:
if rr.exits:
output("\n")
for name, code in rr.exits:
output(f"\tEntrance({name}, []{{return {rr.gen(code)};}}),\n")
deprioritize = code.startswith("@deprioritize ")
if deprioritize:
_, code = code.split(None, 1)
output(f"\tEntrance({name}, []{{return {rr.gen(code)};}}")
if deprioritize:
output(", \"\", false")
output("),\n")
output("});\n")
source = "".join(result)

View file

@ -6,7 +6,7 @@ using namespace Rando;
extern "C" SaveContext gSaveContext;
void RegionTable_Init_Generated() {
// clang-format off
// clang-format off
areaTable[RR_ROOT] = Region("Root", SCENE_ID_MAX, false, {RA_LINKS_POCKET}, {
EventAccess(&logic->KakarikoVillageGateOpen, []{return ctx->GetOption(RSK_KAK_GATE).Is(RO_KAK_GATE_OPEN);}),
EventAccess(&logic->THCouldFree1TorchCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE);}),
@ -637,7 +637,7 @@ areaTable[RR_LAKE_HYLIA] = Region("Lake Hylia", SCENE_LAKE_HYLIA, true, {RA_LAKE
}, {
Entrance(RR_HYRULE_FIELD, []{return true;}),
Entrance(RR_LH_FROM_SHORTCUT, []{return true;}),
Entrance(RR_LH_OWL_FLIGHT, []{return logic->IsChild;}),
Entrance(RR_LH_OWL_FLIGHT, []{return logic->IsChild;}, "", false),
Entrance(RR_LH_FISHING_ISLAND, []{return (((logic->IsChild || logic->WaterTempleClear) && logic->HasItem(RG_BRONZE_SCALE)) || (logic->IsAdult && (logic->CanUse(RG_SCARECROW) || CanPlantBean(RR_LAKE_HYLIA))));}),
Entrance(RR_LH_LAB, []{return logic->CanOpenOverworldDoor(RG_HYLIA_LAB_KEY);}),
Entrance(RR_LH_FROM_WATER_TEMPLE, []{return true;}),
@ -656,7 +656,7 @@ areaTable[RR_LH_FISHING_ISLAND] = Region("LH Fishing Island", SCENE_LAKE_HYLIA,
Entrance(RR_LH_FISHING_POND, []{return logic->CanOpenOverworldDoor(RG_FISHING_HOLE_KEY);}),
});
areaTable[RR_LH_OWL_FLIGHT] = Region("LH Owl Flight", SCENE_LAKE_HYLIA, true, {RA_LAKE_HYLIA}, {}, {}, {
Entrance(RR_HYRULE_FIELD, []{return true;}),
Entrance(RR_HYRULE_FIELD, []{return true;}, "", false),
});
areaTable[RR_LH_LAB] = Region("LH Lab", SCENE_LAKESIDE_LABORATORY, false, {}, {}, {
LOCATION(RC_LH_LAB_DIVE, (logic->HasItem(RG_GOLDEN_SCALE) || ((bool)ctx->GetTrickOption(RT_LH_LAB_DIVING) && (logic->CanUse(RG_IRON_BOOTS) && (logic->CanUse(RG_HOOKSHOT) && logic->HasItem(RG_BRONZE_SCALE)))))),
@ -1732,7 +1732,7 @@ areaTable[RR_GRAVEYARD_DAMPES_GRAVE] = Region("Graveyard Dampes Grave", SCENE_WI
LOCATION(RC_GRAVEYARD_DAMPE_RACE_RUPEE_8, true),
}, {
Entrance(RR_THE_GRAVEYARD, []{return true;}),
Entrance(RR_KAK_WINDMILL, []{return (logic->IsAdult && logic->CanUse(RG_SONG_OF_TIME));}),
Entrance(RR_KAK_WINDMILL, []{return (logic->IsAdult && logic->CanUse(RG_SONG_OF_TIME));}, "", false),
});
areaTable[RR_GRAVEYARD_DAMPES_HOUSE] = Region("Graveyard Dampes House", SCENE_GRAVEKEEPERS_HUT, false, {}, {}, {
LOCATION(RC_DAMPE_HINT, logic->IsAdult),
@ -2766,7 +2766,7 @@ areaTable[RR_DEKU_TREE_BOSS_ROOM] = Region("Deku Tree Boss Room", SCENE_DEKU_TRE
LOCATION(RC_DEKU_TREE_QUEEN_GOHMA_GRASS_8, logic->CanCutShrubs()),
}, {
Entrance(RR_DEKU_TREE_BOSS_EXIT, []{return true;}),
Entrance(RR_KF_OUTSIDE_DEKU_TREE, []{return logic->DekuTreeClear;}),
Entrance(RR_KF_OUTSIDE_DEKU_TREE, []{return logic->DekuTreeClear;}, "", false),
});
areaTable[RR_DODONGOS_CAVERN_BEGINNING] = Region("Dodongos Cavern Beginning", SCENE_DODONGOS_CAVERN, false, {RA_DODONGOS_CAVERN}, {}, {}, {
Entrance(RR_DODONGOS_CAVERN_ENTRYWAY, []{return true;}),
@ -3168,7 +3168,7 @@ areaTable[RR_DODONGOS_CAVERN_BOSS_ROOM] = Region("Dodongos Cavern Boss Room", SC
LOCATION(RC_KING_DODONGO, logic->DodongosCavernClear),
}, {
Entrance(RR_DODONGOS_CAVERN_BOSS_EXIT, []{return true;}),
Entrance(RR_DEATH_MOUNTAIN_TRAIL, []{return logic->DodongosCavernClear;}),
Entrance(RR_DEATH_MOUNTAIN_TRAIL, []{return logic->DodongosCavernClear;}, "", false),
});
areaTable[RR_JABU_JABUS_BELLY_BEGINNING] = Region("Jabu Jabus Belly Beginning", SCENE_JABU_JABU, false, {RA_JABU_JABUS_BELLY}, {}, {}, {
Entrance(RR_JABU_JABUS_BELLY_ENTRYWAY, []{return true;}),
@ -3410,7 +3410,7 @@ areaTable[RR_JABU_JABUS_BELLY_BOSS_ROOM] = Region("Jabu Jabus Belly Boss Room",
LOCATION(RC_BARINADE, logic->JabuJabusBellyClear),
}, {
Entrance(RR_JABU_JABUS_BELLY_BOSS_EXIT, []{return false;}),
Entrance(RR_ZORAS_FOUNTAIN, []{return logic->JabuJabusBellyClear;}),
Entrance(RR_ZORAS_FOUNTAIN, []{return logic->JabuJabusBellyClear;}, "", false),
});
areaTable[RR_FOREST_TEMPLE_FIRST_ROOM] = Region("Forest Temple First Room", SCENE_FOREST_TEMPLE, false, {RA_FOREST_TEMPLE}, {}, {
LOCATION(RC_FOREST_TEMPLE_FIRST_ROOM_CHEST, true),
@ -3823,7 +3823,7 @@ areaTable[RR_FOREST_TEMPLE_BOSS_ROOM] = Region("Forest Temple Boss Room", SCENE_
LOCATION(RC_PHANTOM_GANON, logic->ForestTempleClear),
}, {
Entrance(RR_FOREST_TEMPLE_BOSS_ENTRYWAY, []{return false;}),
Entrance(RR_SACRED_FOREST_MEADOW, []{return logic->ForestTempleClear;}),
Entrance(RR_SACRED_FOREST_MEADOW, []{return logic->ForestTempleClear;}, "", false),
});
areaTable[RR_FIRE_TEMPLE_FIRST_ROOM] = Region("Fire Temple First Room", SCENE_FIRE_TEMPLE, false, {RA_FIRE_TEMPLE}, {}, {}, {
Entrance(RR_FIRE_TEMPLE_ENTRYWAY, []{return true;}),
@ -4323,7 +4323,7 @@ areaTable[RR_FIRE_TEMPLE_BOSS_ROOM] = Region("Fire Temple Boss Room", SCENE_FIRE
LOCATION(RC_VOLVAGIA, logic->FireTempleClear),
}, {
Entrance(RR_FIRE_TEMPLE_BOSS_ENTRYWAY, []{return false;}),
Entrance(RR_DMC_CENTRAL_LOCAL, []{return logic->FireTempleClear;}),
Entrance(RR_DMC_CENTRAL_LOCAL, []{return logic->FireTempleClear;}, "", false),
});
areaTable[RR_WATER_TEMPLE_LOBBY] = Region("Water Temple Lobby", SCENE_WATER_TEMPLE, false, {RA_WATER_TEMPLE}, {}, {
LOCATION(RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_1, (logic->CanBreakPots() && (logic->CanWaterTempleLowFromHigh || (logic->CanWaterTempleMiddle || (logic->CanUse(RG_IRON_BOOTS) && logic->CanUse(RG_HOOKSHOT)))))),
@ -4893,7 +4893,7 @@ areaTable[RR_WATER_TEMPLE_BOSS_ROOM] = Region("Water Temple Boss Room", SCENE_WA
LOCATION(RC_MORPHA, logic->WaterTempleClear),
}, {
Entrance(RR_WATER_TEMPLE_BOSS_ENTRYWAY, []{return false;}),
Entrance(RR_LAKE_HYLIA, []{return logic->WaterTempleClear;}),
Entrance(RR_LAKE_HYLIA, []{return logic->WaterTempleClear;}, "", false),
});
areaTable[RR_SPIRIT_TEMPLE_LOBBY] = Region("Spirit Temple Lobby", SCENE_SPIRIT_TEMPLE, false, {RA_SPIRIT_TEMPLE}, {}, {
LOCATION(RC_SPIRIT_TEMPLE_LOBBY_POT_1, logic->CanBreakPots()),
@ -5247,7 +5247,7 @@ areaTable[RR_SPIRIT_TEMPLE_BOSS_ROOM] = Region("Spirit Temple Boss Room", SCENE_
LOCATION(RC_TWINROVA, logic->SpiritTempleClear),
}, {
Entrance(RR_SPIRIT_TEMPLE_BOSS_ENTRYWAY, []{return false;}),
Entrance(RR_DESERT_COLOSSUS, []{return logic->SpiritTempleClear;}),
Entrance(RR_DESERT_COLOSSUS, []{return logic->SpiritTempleClear;}, "", false),
});
areaTable[RR_SHADOW_TEMPLE_BEGINNING] = Region("Shadow Temple Beginning", SCENE_SHADOW_TEMPLE, false, {RA_SHADOW_TEMPLE}, {
EventAccess(&logic->NutPot, []{return true;}),
@ -6324,5 +6324,5 @@ areaTable[RR_GANONS_CASTLE_ESCAPE] = Region("Ganon's Castle Escape", SCENE_GANON
areaTable[RR_GANONS_CASTLE_GANON_ARENA] = Region("Ganon's Arena", SCENE_GANON_BOSS, false, {}, {}, {
LOCATION(RC_GANON, logic->CanKillEnemy(RE_GANON)),
}, {});
// clang-format on
// clang-format on
}

View file

@ -7,7 +7,7 @@ using namespace Rando;
extern "C" SaveContext gSaveContext;
void RegionTable_Init_Generated() {
// clang-format off
// clang-format off
::
def RR_ROOT SCENE_ID_MAX false RA_LINKS_POCKET
@ -637,7 +637,7 @@ RC_LH_WARP_PAD_GRASS_1 CanCutShrubs
RC_LH_WARP_PAD_GRASS_2 CanCutShrubs
RR_HYRULE_FIELD true
RR_LH_FROM_SHORTCUT true
RR_LH_OWL_FLIGHT IsChild
RR_LH_OWL_FLIGHT @deprioritize IsChild
RR_LH_FISHING_ISLAND (or (and (or IsChild WaterTempleClear) (HasItem RG_BRONZE_SCALE)) (and IsAdult (or (CanUse RG_SCARECROW) (CanPlantBean RR_LAKE_HYLIA))))
RR_LH_LAB (CanOpenOverworldDoor RG_HYLIA_LAB_KEY)
RR_LH_FROM_WATER_TEMPLE true
@ -660,7 +660,7 @@ RR_LH_FISHING_POND (CanOpenOverworldDoor RG_FISHING_HOLE_KEY)
def RR_LH_OWL_FLIGHT SCENE_LAKE_HYLIA true RA_LAKE_HYLIA
LH Owl Flight
RR_HYRULE_FIELD true
RR_HYRULE_FIELD @deprioritize true
def RR_LH_LAB SCENE_LAKESIDE_LABORATORY false
LH Lab
@ -1736,7 +1736,7 @@ RC_GRAVEYARD_DAMPE_RACE_RUPEE_6 true
RC_GRAVEYARD_DAMPE_RACE_RUPEE_7 true
RC_GRAVEYARD_DAMPE_RACE_RUPEE_8 true
RR_THE_GRAVEYARD true
RR_KAK_WINDMILL (and IsAdult (CanUse RG_SONG_OF_TIME))
RR_KAK_WINDMILL @deprioritize (and IsAdult (CanUse RG_SONG_OF_TIME))
def RR_GRAVEYARD_DAMPES_HOUSE SCENE_GRAVEKEEPERS_HUT false
Graveyard Dampes House
@ -2764,7 +2764,7 @@ RC_DEKU_TREE_QUEEN_GOHMA_GRASS_6 CanCutShrubs
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_7 CanCutShrubs
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_8 CanCutShrubs
RR_DEKU_TREE_BOSS_EXIT true
RR_KF_OUTSIDE_DEKU_TREE DekuTreeClear
RR_KF_OUTSIDE_DEKU_TREE @deprioritize DekuTreeClear
def RR_DODONGOS_CAVERN_BEGINNING SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Beginning
@ -3167,7 +3167,7 @@ RC_DODONGOS_CAVERN_BOSS_ROOM_CHEST true
RC_DODONGOS_CAVERN_KING_DODONGO_HEART DodongosCavernClear
RC_KING_DODONGO DodongosCavernClear
RR_DODONGOS_CAVERN_BOSS_EXIT true
RR_DEATH_MOUNTAIN_TRAIL DodongosCavernClear
RR_DEATH_MOUNTAIN_TRAIL @deprioritize DodongosCavernClear
def RR_JABU_JABUS_BELLY_BEGINNING SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Beginning
@ -3400,7 +3400,7 @@ RC_JABU_JABUS_BELLY_BARINADE_POT_6 CanBreakPots
RC_JABU_JABUS_BELLY_BARINADE_HEART JabuJabusBellyClear
RC_BARINADE JabuJabusBellyClear
RR_JABU_JABUS_BELLY_BOSS_EXIT false
RR_ZORAS_FOUNTAIN JabuJabusBellyClear
RR_ZORAS_FOUNTAIN @deprioritize JabuJabusBellyClear
def RR_FOREST_TEMPLE_FIRST_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple First Room
@ -3805,7 +3805,7 @@ ForestTempleClear (CanKillEnemy RE_PHANTOM_GANON)
RC_FOREST_TEMPLE_PHANTOM_GANON_HEART ForestTempleClear
RC_PHANTOM_GANON ForestTempleClear
RR_FOREST_TEMPLE_BOSS_ENTRYWAY false
RR_SACRED_FOREST_MEADOW ForestTempleClear
RR_SACRED_FOREST_MEADOW @deprioritize ForestTempleClear
def RR_FIRE_TEMPLE_FIRST_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple First Room
@ -4315,7 +4315,7 @@ FireTempleClear (and (>= FireTimer 64) (CanKillEnemy RE_VOLVAGIA))
RC_FIRE_TEMPLE_VOLVAGIA_HEART FireTempleClear
RC_VOLVAGIA FireTempleClear
RR_FIRE_TEMPLE_BOSS_ENTRYWAY false
RR_DMC_CENTRAL_LOCAL FireTempleClear
RR_DMC_CENTRAL_LOCAL @deprioritize FireTempleClear
def RR_WATER_TEMPLE_LOBBY SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Lobby
@ -4898,7 +4898,7 @@ WaterTempleClear (CanKillEnemy RE_MORPHA)
RC_WATER_TEMPLE_MORPHA_HEART WaterTempleClear
RC_MORPHA WaterTempleClear
RR_WATER_TEMPLE_BOSS_ENTRYWAY false
RR_LAKE_HYLIA WaterTempleClear
RR_LAKE_HYLIA @deprioritize WaterTempleClear
def RR_SPIRIT_TEMPLE_LOBBY SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Lobby
@ -5256,7 +5256,7 @@ SpiritTempleClear (CanKillEnemy RE_TWINROVA)
RC_SPIRIT_TEMPLE_TWINROVA_HEART SpiritTempleClear
RC_TWINROVA SpiritTempleClear
RR_SPIRIT_TEMPLE_BOSS_ENTRYWAY false
RR_DESERT_COLOSSUS SpiritTempleClear
RR_DESERT_COLOSSUS @deprioritize SpiritTempleClear
def RR_SHADOW_TEMPLE_BEGINNING SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Beginning
@ -6340,6 +6340,6 @@ Ganon's Arena
RC_GANON (CanKillEnemy RE_GANON)
::
// clang-format on
// clang-format on
}
::