diff --git a/CHANGELOG.md b/CHANGELOG.md index 07eeb96f..a9e21869 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 0.5.1.5 +- Fixed rare overworld map check VRAM crash +- Fixed cavestate dark room hidden item issue +- Removed dungeon items from hint pool for nearby dungeon items +- Fixed generation error with shopsanity +- Fixed generation error in ER: empty cave lists being added as candidates + ## 0.5.1.4 - Fixed incorrect ganon silvers hint - \~Merged in DR v1.4.8.1~ diff --git a/ItemList.py b/ItemList.py index ef3c7a12..08be1d62 100644 --- a/ItemList.py +++ b/ItemList.py @@ -969,7 +969,7 @@ def balance_prices(world, player): target -= flex elif adjustment <= 0: old_price = inventory['price'] - new_price = max(0, inventory['price'] + adjustment) + new_price = max(0, int(inventory['price'] + adjustment)) inventory['price'] = new_price target += (old_price - new_price) else: @@ -978,7 +978,7 @@ def balance_prices(world, player): for loc in shop_locations: slot = shop_to_location_table[loc.parent_region.name].index(loc.name) inventory = loc.parent_region.shop.inventory[slot] - new_price = inventory['price'] + adjustment + new_price = int(inventory['price'] + adjustment) new_price = min(500, max(0, new_price)) # cap prices between 0--twice base price inventory['price'] = new_price target -= adjustment diff --git a/OverworldShuffle.py b/OverworldShuffle.py index 70c9d79f..24966876 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -8,7 +8,7 @@ from OWEdges import OWTileRegions, OWEdgeGroups, OWEdgeGroupsTerrain, OWExitType from OverworldGlitchRules import create_owg_connections from Utils import bidict -version_number = '0.5.1.4' +version_number = '0.5.1.5' # branch indicator is intentionally different across branches version_branch = '' diff --git a/Rom.py b/Rom.py index 7f1dfe90..e4582388 100644 --- a/Rom.py +++ b/Rom.py @@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = 'b439d99c7f41914eedb9f4097ecc8cc7' +RANDOMIZERBASEHASH = '80e0a4f8bd5cc6f83ac9f7f46c01bf4f' class JsonRom(object): @@ -2211,11 +2211,11 @@ def write_strings(rom, world, player, team): this_hint = this_hint[0].upper() + this_hint[1:] tt[hint_locations.pop(0)] = this_hint items_to_hint.remove(flute_item) - if world.keyshuffle[player] not in ['none', 'universal']: + if world.keyshuffle[player] not in ['none', 'nearby', 'universal']: items_to_hint.extend(SmallKeys) - if world.bigkeyshuffle[player] != 'none': + if world.bigkeyshuffle[player] not in ['none', 'nearby']: items_to_hint.extend(BigKeys) - if world.prizeshuffle[player] not in ['none', 'dungeon']: + if world.prizeshuffle[player] not in ['none', 'dungeon', 'nearby']: items_to_hint.extend(Prizes) random.shuffle(items_to_hint) hint_count = 5 if world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull', 'district', 'swapped'] else 8 diff --git a/data/base2current.bps b/data/base2current.bps index e1a2fc7a..db46c22a 100644 Binary files a/data/base2current.bps and b/data/base2current.bps differ diff --git a/source/overworld/EntranceShuffle2.py b/source/overworld/EntranceShuffle2.py index baa6b2c6..5135c920 100644 --- a/source/overworld/EntranceShuffle2.py +++ b/source/overworld/EntranceShuffle2.py @@ -906,7 +906,8 @@ def figure_out_connectors(exits, avail, cross_world=True): cave_list = list(Connector_List) if avail.assumed_loose_caves or (not avail.skull_handled and (cross_world or not avail.world.is_tile_swapped(0x00, avail.player))): skull_connector = [x for x in ['Skull Woods Second Section Exit (West)', 'Skull Woods Second Section Exit (East)'] if x in exits] - cave_list.extend([skull_connector]) + if len(skull_connector): + cave_list.extend([skull_connector]) if avail.assumed_loose_caves or not avail.keep_drops_together: cave_list.extend([[entrance_map[e]] for e in linked_drop_map.values() if 'Inverted ' not in e and 'Skull Woods ' not in e])