diff --git a/Main.py b/Main.py index 55ce4200..6acdb437 100644 --- a/Main.py +++ b/Main.py @@ -26,7 +26,7 @@ from Fill import sell_potions, sell_keys, balance_multiworld_progression, balanc from ItemList import generate_itempool, difficulties, fill_prizes, customize_shops from Utils import output_path, parse_player_names -__version__ = '0.3.1.4-u' +__version__ = '0.3.1.5-u' class EnemizerError(RuntimeError): diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 53eb3552..0ff21c51 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -128,6 +128,8 @@ New item counter modified to show total # Bug Fixes and Notes. +* 0.3.1.5-u + * Ganon hints fixed for shops * 0.3.1.4-u * Fix for Blind when shuffled to TT and another dungeon * Remove use of RaceRandom diff --git a/Rom.py b/Rom.py index ac031a9b..7458ee5b 100644 --- a/Rom.py +++ b/Rom.py @@ -16,7 +16,7 @@ from BaseClasses import CollectionState, ShopType, Region, Location, Door, DoorT from DoorShuffle import compass_data, DROptions, boss_indicator from Dungeons import dungeon_music_addresses from KeyDoorShuffle import count_locations_exclude_logic -from Regions import location_table +from Regions import location_table, shop_to_location_table from RoomData import DoorKind from Text import MultiByteTextMapper, CompressedTextMapper, text_addresses, Credits, TextTable from Text import Uncle_texts, Ganon1_texts, TavernMan_texts, Sahasrahla2_texts, Triforce_texts, Blind_texts, BombShop2_texts, junk_texts @@ -1568,7 +1568,10 @@ def write_custom_shops(rom, world, player): break if world.shopsanity[player] or shop.type == ShopType.TakeAny: rom.write_byte(0x186560 + shop.sram_address + index, 1) - item_id = ItemFactory(item['item'], player).code + loc_item = world.get_location(shop_to_location_table[shop.region.name][index], player).item + if not loc_item: + loc_item = ItemFactory(item['item'], player) + item_id = loc_item.code price = int16_as_bytes(item['price']) replace = ItemFactory(item['replacement'], player).code if item['replacement'] else 0xFF replace_price = int16_as_bytes(item['replacement_price'])