fix multiline expressions, regenerate

This commit is contained in:
Demur Rumed 2025-07-19 22:07:42 +00:00
commit 1f29a8615a
3 changed files with 18 additions and 17 deletions

View file

@ -57,6 +57,7 @@ class RR:
ast = [f]
else:
f = ast[0]
assert isinstance(f, str)
if f in LOGIC:
output(f"logic->{f}")
elif f in logicFUNC:
@ -234,13 +235,14 @@ buf = ""
open_count = close_count = 0
mode = None
for line in open(argv[1], "r", encoding="ascii"):
line = line.strip()
line = line.strip("\n")
if line == "::":
mode = None if mode == line else line
continue
if mode == "::":
RRs.append(line)
continue
line = line.strip()
if line.startswith("def "):
if open_count != close_count:
print("error parsing", line)
@ -257,6 +259,7 @@ for line in open(argv[1], "r", encoding="ascii"):
continue
open_count += line.count('(')
close_count += line.count(')')
buf += " "
buf += line
if open_count != close_count:
continue

View file

@ -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;}, "", false),
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;}, "", false),
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));}, "", false),
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;}, "", false),
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;}, "", false),
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;}, "", false),
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;}, "", false),
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;}, "", false),
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)))))),
@ -4840,7 +4840,7 @@ areaTable[RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_ROOM] = Region("Water Temple MQ C
LOCATION(RC_WATER_TEMPLE_MQ_WHIRLPOOL_SUBMERGED_CRATE_6, (logic->CanUse(RG_IRON_BOOTS) && ((logic->WaterTimer() >= 16) && logic->CanBreakCrates()))),
}, {
Entrance(RR_WATER_TEMPLE_MQ_MAIN, []{return (logic->MQWaterB1Switch && (logic->CanUse(RG_IRON_BOOTS) && ((logic->WaterTimer() >= 24) && (logic->CanUse(RG_LONGSHOT) || logic->HasItem(RG_BRONZE_SCALE)))));}),
Entrance(RR_WATER_TEMPLE_MQ_SINGLE_STALFOS_ROOM, []{return (logic->CanUse(RG_IRON_BOOTS) && ((logic->WaterTimer() >= 8) && ((logic->IsAdult && ((logic->CanUse(RG_HOVER_BOOTS) || (bool)ctx->GetTrickOption(RT_WATER_NORTH_BASEMENT_LEDGE_JUMP)) && (logic->CanUse(RG_HOOKSHOT) || logic->HasItem(RG_BRONZE_SCALE)))) || (Here(RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_ROOM, []{return logic->ScarecrowsSong();}) && logic->CanUse(RG_HOOKSHOT)))));}),
Entrance(RR_WATER_TEMPLE_MQ_SINGLE_STALFOS_ROOM, []{return (logic->CanUse(RG_IRON_BOOTS) && (logic->WaterTimer() >= 8) && ((logic->IsAdult && ((logic->CanUse(RG_HOVER_BOOTS) || (bool)ctx->GetTrickOption(RT_WATER_NORTH_BASEMENT_LEDGE_JUMP)) && (logic->CanUse(RG_HOOKSHOT) || logic->HasItem(RG_BRONZE_SCALE)))) || (Here(RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_ROOM, []{return logic->ScarecrowsSong();}) && logic->CanUse(RG_HOOKSHOT))));}),
Entrance(RR_WATER_TEMPLE_MQ_4_TORCH_ROOM, []{return (logic->IsAdult && (logic->CanUse(RG_HOVER_BOOTS) || ((bool)ctx->GetTrickOption(RT_WATER_NORTH_BASEMENT_LEDGE_JUMP) || (Here(RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_ROOM, []{return logic->ScarecrowsSong();}) && logic->CanUse(RG_HOOKSHOT)))));}),
Entrance(RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_CAGE, []{return ((bool)ctx->GetTrickOption(RT_WATER_MQ_LOCKED_GS) && (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;}, "", false),
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;}, "", false),
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;}),
@ -5266,9 +5266,7 @@ areaTable[RR_SHADOW_TEMPLE_BEGINNING] = Region("Shadow Temple Beginning", SCENE_
Entrance(RR_SHADOW_TEMPLE_ENTRYWAY, []{return true;}),
Entrance(RR_SHADOW_TEMPLE_FIRST_BEAMOS, []{return logic->CanUse(RG_HOVER_BOOTS);}),
});
areaTable[RR_SHADOW_TEMPLE_FIRST_BEAMOS] = Region("Shadow Temple First Beamos", SCENE_SHADOW_TEMPLE, false, {RA_SHADOW_TEMPLE}, {
EventAccess(&logic->FairyPot, []{return true;}),
}, {
areaTable[RR_SHADOW_TEMPLE_FIRST_BEAMOS] = Region("Shadow Temple First Beamos", SCENE_SHADOW_TEMPLE, false, {RA_SHADOW_TEMPLE}, {}, {
LOCATION(RC_SHADOW_TEMPLE_COMPASS_CHEST, logic->CanJumpslashExceptHammer()),
LOCATION(RC_SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST, (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_HOOKSHOT))),
LOCATION(RC_SHADOW_TEMPLE_GS_NEAR_SHIP, false),

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
@ -6717,6 +6717,6 @@ Ganon's Arena
RC_GANON (CanKillEnemy RE_GANON)
::
// clang-format on
// clang-format on
}
::