diff --git a/CLI.py b/CLI.py index 5db1fc78..f5b7bb89 100644 --- a/CLI.py +++ b/CLI.py @@ -106,7 +106,7 @@ def parse_cli(argv, no_defaults=False): ret = parser.parse_args(argv) if ret.keysanity: - ret.mapshuffle, ret.compassshuffle, ret.keyshuffle, ret.bigkeyshuffle = 'wild' * 4 + ret.mapshuffle, ret.compassshuffle, ret.keyshuffle, ret.bigkeyshuffle = ['wild'] * 4 if ret.keydropshuffle: ret.dropshuffle = 'keys' if ret.dropshuffle == 'none' else ret.dropshuffle diff --git a/ItemList.py b/ItemList.py index 44d1dde9..36a2990b 100644 --- a/ItemList.py +++ b/ItemList.py @@ -1107,7 +1107,7 @@ def get_pool_core(world, player, progressive, shuffle, difficulty, treasure_hunt precollected_items.append('Pegasus Boots') pool.remove('Pegasus Boots') pool.extend(['Rupees (20)']) - + if want_progressives(): pool.extend(progressivegloves) else: @@ -1124,6 +1124,11 @@ def get_pool_core(world, player, progressive, shuffle, difficulty, treasure_hunt diff = difficulties[difficulty] pool.extend(diff.baseitems) + if world.compassshuffle[player] == 'wild': + pool.extend(['Compass (Escape)']) + if world.keyshuffle[player] == 'wild': + pool.extend(['Compass (Agahnims Tower)']) + if bombbag: pool = [item.replace('Bomb Upgrade (+5)','Rupees (5)') for item in pool] pool = [item.replace('Bomb Upgrade (+10)','Rupees (5)') for item in pool] diff --git a/Rom.py b/Rom.py index 6666c8cd..20cb11c6 100644 --- a/Rom.py +++ b/Rom.py @@ -44,7 +44,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '8e29777cf6d1ff6fceb72bbf7aacb62c' +RANDOMIZERBASEHASH = '3e385a852b789c31079aa6a14ff2498d' class JsonRom(object): @@ -1447,9 +1447,28 @@ def patch_rom(world, rom, player, team, is_mystery=False, rom_header=None): loot_show |= 0x02 if world.dropshuffle[player] != 'none': loot_show |= 0x04 - rom.write_byte(0x1CFF10, loot_show) + loot_icons = 0x1CF900 + if world.bombbag[player]: + rom.write_byte(loot_icons + 0x52, 0x0B) # bomb bag is major + + crystal_ids = [0x20, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6] + if world.goal[player] in ['ganon', 'dungeons', 'crystals', 'trinity']: + crystal_category = 0x0D + else: + crystal_category = 0x06 + for crystal_id in crystal_ids: + rom.write_byte(loot_icons + crystal_id, crystal_category) + + pendant_ids = [0x37, 0x38, 0x39] + if world.goal[player] in ['pedestal', 'dungeons']: + pendant_category = 0x0C + else: + pendant_category = 0x06 + for pendant_id in pendant_ids: + rom.write_byte(loot_icons + pendant_id, pendant_category) + # compasses showing dungeon count compass_mode = 0x80 if world.compassshuffle[player] not in ['none', 'nearby'] else 0x00 if world.clock_mode != 'none' or world.dungeon_counters[player] == 'off': diff --git a/data/base2current.bps b/data/base2current.bps index deb687f7..b803f6b3 100644 Binary files a/data/base2current.bps and b/data/base2current.bps differ