@@ -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