diff --git a/Plandomizer.py b/Plandomizer.py index 307b5bd54..ffb14686a 100644 --- a/Plandomizer.py +++ b/Plandomizer.py @@ -1089,18 +1089,19 @@ def configure_effective_starting_items(self, worlds: list[World], world: World) if iter_world.settings.empty_dungeons_mode != 'none': skipped_locations_from_dungeons: list[Location] = [] if iter_world.settings.shuffle_dungeon_rewards in ('vanilla', 'reward'): - skipped_locations_from_dungeons += [world.get_location(loc_name) for loc_name in location_groups['Boss'] if loc_name != 'ToT Reward from Rauru'] - elif world.settings.shuffle_dungeon_rewards == 'dungeon': + skipped_locations_from_dungeons += [iter_world.get_location(loc_name) for loc_name in location_groups['Boss'] if loc_name != 'ToT Reward from Rauru'] + elif iter_world.settings.shuffle_dungeon_rewards == 'dungeon': skipped_locations_from_dungeons += [location for location in iter_world.get_filled_locations() if location.item.type == 'DungeonReward'] - if world.settings.shuffle_song_items == 'song': - skipped_locations_from_dungeons += [world.get_location(loc_name) for loc_name in location_groups['Song']] - elif world.settings.shuffle_song_items == 'dungeon': - skipped_locations_from_dungeons += [world.get_location(loc_name) for loc_name in location_groups['BossHeart']] + if iter_world.settings.shuffle_song_items == 'song': + skipped_locations_from_dungeons += [iter_world.get_location(loc_name) for loc_name in location_groups['Song']] + elif iter_world.settings.shuffle_song_items == 'dungeon': + skipped_locations_from_dungeons += [iter_world.get_location(loc_name) for loc_name in location_groups['BossHeart']] for location in skipped_locations_from_dungeons: - hint_area = HintArea.at(location) - if hint_area.is_dungeon and iter_world.empty_dungeons[hint_area.dungeon_name].empty: - skipped_locations.append(location) - world.item_added_hint_types['barren'].append(location.item.name) + if location.item is not None and world.id == location.item.world.id: + hint_area = HintArea.at(location) + if hint_area.is_dungeon and iter_world.empty_dungeons[hint_area.dungeon_name].empty: + skipped_locations.append(location) + world.item_added_hint_types['barren'].append(location.item.name) for location in skipped_locations: if iter_world.id == world.id: self.skipped_locations.append(location) diff --git a/README.md b/README.md index 4319e58fc..541d7bdb0 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,7 @@ issue. You should always Hard Reset to avoid this issue entirely. * The randomizer no longer ignores errors when decompressing the base rom or compressing the randomized rom. * Trade quest items from skipped locations are no longer lost when another trade item is found. * Fix a crash when dungeon rewards are directly selected as starting items. +* Fix an error with pre-completed dungeon rewards in multiworld. #### New Speedups * The first text box from each carpenter in the Thieves' Hideout is skipped. diff --git a/version.py b/version.py index 313801db8..f53693456 100644 --- a/version.py +++ b/version.py @@ -1,4 +1,4 @@ -__version__ = '8.2.45' +__version__ = '8.2.46' # This is a supplemental version number for branches based off of main dev. supplementary_version = 0