Fixed issue with OW Layout and OW Crossed failing layout validation

This commit is contained in:
codemann8
2021-12-06 09:09:34 -06:00
parent 838ada0a0b
commit 37841ab311
2 changed files with 6 additions and 2 deletions

View File

@@ -326,6 +326,8 @@ def create_owedges(world, player):
world.initialize_owedges(edges)
def create_owedge(player, name, owIndex, direction, terrain, edge_id, owSlotIndex=0xff):
if name not in OWExitTypes['OWEdge']:
OWExitTypes['OWEdge'].append(name)
return OWEdge(player, name, owIndex, direction, terrain, edge_id, owSlotIndex)
@@ -1392,6 +1394,7 @@ parallel_links = bidict({'Lost Woods SW': 'Skull Woods SW',
})
OWExitTypes = {
'OWEdge': [],
'Ledge': ['West Death Mountain Drop',
'Spectacle Rock Drop',
'East Death Mountain Spiral Ledge Drop',

View File

@@ -901,8 +901,9 @@ def build_accessible_region_list(world, start_region, player, build_copy_world=F
if flutespot.connected_region and flutespot.connected_region.name not in explored_regions:
explore_region(flutespot.connected_region.name, flutespot.connected_region)
elif exit.connected_region.name not in explored_regions \
and (exit.connected_region.type == region.type or (cross_world and exit.connected_region.type in [RegionType.LightWorld, RegionType.DarkWorld])) \
and (not region_rules or exit.access_rule(blank_state)) and (not ignore_ledges or exit.spot_type != 'Ledge'):
and (exit.connected_region.type == region.type
or exit.name in OWExitTypes['OWEdge'] or (cross_world and exit.name in OWExitTypes['Portal'])) \
and (not region_rules or exit.access_rule(blank_state)) and (not ignore_ledges or exit.name not in OWExitTypes['Ledge']):
explore_region(exit.connected_region.name, exit.connected_region)
if build_copy_world: