Fixed issue with OW Layout and OW Crossed failing layout validation
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user