Skip to content

Commit a09728a

Browse files
committed
Ensure one-way entrances correspond to the correct world
1 parent 52d3c71 commit a09728a

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

EntranceShuffle.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,7 @@ def shuffle_random_entrances(worlds: list[World]) -> None:
567567
max_search.visit_locations(non_drop_locations)
568568
locations_to_ensure_reachable = list(filter(max_search.visited, non_drop_locations))
569569
placed_one_way_entrances = None
570+
all_placed_one_way_entrances = {}
570571

571572
# Shuffle all entrances within their own worlds
572573
for world in worlds:
@@ -922,6 +923,8 @@ def shuffle_random_entrances(worlds: list[World]) -> None:
922923
else:
923924
shuffle_pools_sequentially(world, worlds, entrance_pools, target_entrance_pools, locations_to_ensure_reachable, placed_one_way_entrances)
924925

926+
all_placed_one_way_entrances[world.id] = placed_one_way_entrances
927+
925928
# Determine boss save/death warp targets
926929
for pool_type, entrance_pool in entrance_pools.items():
927930
for entrance in entrance_pool:
@@ -1055,7 +1058,7 @@ def shuffle_random_entrances(worlds: list[World]) -> None:
10551058
if not world.entrance_shuffle:
10561059
continue
10571060
try:
1058-
validate_world(world, worlds, None, locations_to_ensure_reachable, complete_itempool, placed_one_way_entrances=placed_one_way_entrances)
1061+
validate_world(world, worlds, None, locations_to_ensure_reachable, complete_itempool, placed_one_way_entrances=all_placed_one_way_entrances.get(world.id, []))
10591062
except EntranceShuffleError as error:
10601063
raise EntranceShuffleError('Worlds are not valid after shuffling entrances, Reason: %s' % error) from error
10611064

0 commit comments

Comments
 (0)