diff --git a/Main.py b/Main.py index 03c78887..73502cf4 100644 --- a/Main.py +++ b/Main.py @@ -16,7 +16,7 @@ from OverworldGlitchRules import create_owg_connections from PotShuffle import shuffle_pots, shuffle_pot_switches from Regions import create_regions, create_shops, mark_light_dark_world_regions, create_dungeon_regions, adjust_locations from OWEdges import create_owedges -from OverworldShuffle import link_overworld, update_world_regions, create_flute_exits, create_mirror_exits +from OverworldShuffle import link_overworld, update_world_regions, create_dynamic_exits from EntranceShuffle import link_entrances from Rom import patch_rom, patch_race_rom, patch_enemizer, apply_rom_settings, LocalRom, JsonRom, get_hash_string from Doors import create_doors @@ -231,9 +231,7 @@ def main(args, seed=None, fish=None): create_shops(world, player) update_world_regions(world, player) mark_light_dark_world_regions(world, player) - create_flute_exits(world, player) - create_mirror_exits(world, player) - world.initialize_regions() + create_dynamic_exits(world, player) logger.info(world.fish.translate("cli","cli","shuffling.world")) @@ -523,15 +521,13 @@ def copy_world(world): update_world_regions(ret, player) if world.logic[player] in ('owglitches', 'nologic'): create_owg_connections(ret, player) - create_flute_exits(ret, player) - create_mirror_exits(ret, player) + create_dynamic_exits(ret, player) create_dungeon_regions(ret, player) create_owedges(ret, player) create_shops(ret, player) #create_doors(ret, player) create_rooms(ret, player) create_dungeons(ret, player) - world.initialize_regions() # there are region references here they must be migrated to preserve integrity # ret.exp_cache = world.exp_cache.copy() @@ -702,9 +698,7 @@ def copy_world_premature(world, player): update_world_regions(ret, player) if world.logic[player] in ('owglitches', 'nologic'): create_owg_connections(ret, player) - create_flute_exits(ret, player) - create_mirror_exits(ret, player) - world.initialize_regions() + create_dynamic_exits(ret, player) create_dungeon_regions(ret, player) create_owedges(ret, player) create_shops(ret, player) diff --git a/OverworldShuffle.py b/OverworldShuffle.py index 4582d863..d61e82bf 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -864,6 +864,11 @@ def create_mirror_exits(world, player): elif region.terrain == Terrain.Land: logging.getLogger('').debug(f'Region has no mirror exit: {region.name}') +def create_dynamic_exits(world, player): + create_flute_exits(world, player) + create_mirror_exits(world, player) + world.initialize_regions() + def categorize_world_regions(world, player): for type in OWExitTypes: for exitname in OWExitTypes[type]: