diff --git a/CHANGELOG.md b/CHANGELOG.md index e2b52d0b..39dc836e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.6.0.5 +- Emergency fix for map/key totals in non-DR + +## 0.6.0.4 +- Fixed pause menu to show compass count and prizes to also show if you've seen them +- Fixed crash when Old Man follower exits with you at his destination entrance +- Old Man fetch cave is no longer restricted from exiting at his destination cave in ER +- Kodongo AI is returned to its vanilla behavior in their vanilla rooms + ## 0.6.0.3 - Arrghus' Room has water floor restored in boss shuffle - Fixed no music in Links House when S+Q from Kakariko diff --git a/Main.py b/Main.py index 8bbc3f43..127146d2 100644 --- a/Main.py +++ b/Main.py @@ -1071,7 +1071,7 @@ def create_playthrough(world): collection_spheres.append(sphere) - logging.getLogger('').debug(world.fish.translate("cli","cli","building.final.spheres"), len(collection_spheres), len(sphere), len(required_locations)) + logging.getLogger('').debug(world.fish.translate("cli","cli","building.final.spheres"), len(collection_spheres), len(sphere), len(sphere) + len(required_locations)) if not sphere: if world.has_beaten_game(state): required_locations.clear() diff --git a/OverworldShuffle.py b/OverworldShuffle.py index d13759cf..8cc25ac5 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.6.0.3' +version_number = '0.6.0.5' # branch indicator is intentionally different across branches version_branch = '' diff --git a/Rom.py b/Rom.py index a5aae8e7..714ce580 100644 --- a/Rom.py +++ b/Rom.py @@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '54a07f064594e92f136cd994067a59c1' +RANDOMIZERBASEHASH = '294beab5461ddb889eefa4ca450a8f8b' class JsonRom(object): @@ -794,6 +794,12 @@ def patch_rom(world, rom, player, team, is_mystery=False): for room in world.rooms: if room.player == player and room.palette is not None: rom.write_byte(0x13f200+room.index, room.palette) + else: + if world.keyshuffle[player] != 'universal': + for name, layout in world.key_layout[player].items(): + offset = compass_data[name][4]//2 + rom.write_byte(0x13f020+offset, layout.max_chests + layout.max_drops) # not currently used + rom.write_byte(0x187010+offset, layout.max_chests) if world.doorShuffle[player] == 'basic': rom.write_byte(0x138002, 1) for door in world.doors: @@ -1319,6 +1325,9 @@ def patch_rom(world, rom, player, team, is_mystery=False): | (0x04 if world.mapshuffle[player] != 'none' else 0x00) | (0x08 if world.bigkeyshuffle[player] != 'none' else 0x00))) # free roaming item text boxes rom.write_byte(0x18003B, 0x01 if world.mapshuffle[player] not in ['none', 'nearby'] else 0x00) # maps showing crystals on overworld + if world.keyshuffle[player] != 'universal' and (world.mapshuffle[player] not in ['none', 'nearby'] or world.doorShuffle[player] != 'vanilla' + or world.dropshuffle[player] != 'none' or world.pottery[player] not in ['none', 'cave']): + rom.write_byte(0x18003A, 0x01) # show key counts on map pickup # compasses showing dungeon count compass_mode = 0x80 if world.compassshuffle[player] not in ['none', 'nearby'] else 0x00 @@ -1474,9 +1483,10 @@ def patch_rom(world, rom, player, team, is_mystery=False): | (0x10 if world.logic[player] == 'nologic' else 0))) # boss icon def get_reveal_bytes(itemName): - for dungeon in world.dungeons: - if dungeon.player == player and dungeon.prize and dungeon.prize.name == itemName: - return reveal_bytes.get(dungeon.name, 0x0000) + if world.prizeshuffle[player] != 'wild': + for dungeon in world.dungeons: + if dungeon.player == player and dungeon.prize and dungeon.prize.name == itemName: + return reveal_bytes.get(dungeon.name, 0x0000) return 0x0000 write_int16(rom, 0x18017A, get_reveal_bytes('Green Pendant')) # Sahasrahla reveal diff --git a/data/base2current.bps b/data/base2current.bps index 13a8921b..3d10ff4f 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 5135c920..c190c428 100644 --- a/source/overworld/EntranceShuffle2.py +++ b/source/overworld/EntranceShuffle2.py @@ -403,7 +403,6 @@ def do_old_man_cave_exit(entrances, exits, avail, cross_world): else: region_name = 'West Dark Death Mountain (Top)' om_cave_options = list(get_accessible_entrances(region_name, avail, [], cross_world, True, True, True, True)) - om_cave_options = [e for e in om_cave_options if e in entrances and e != 'Old Man House (Bottom)'] if avail.swapped: om_cave_options = [e for e in om_cave_options if e not in Forbidden_Swap_Entrances] assert len(om_cave_options), 'No available entrances left to place Old Man Cave'