Merge branch 'OverworldShuffleDev' into OverworldShuffle

This commit is contained in:
codemann8
2025-07-18 01:26:18 -05:00
6 changed files with 16 additions and 7 deletions

View File

@@ -1,5 +1,11 @@
# Changelog # Changelog
## 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 ## 0.6.0.3
- Arrghus' Room has water floor restored in boss shuffle - Arrghus' Room has water floor restored in boss shuffle
- Fixed no music in Links House when S+Q from Kakariko - Fixed no music in Links House when S+Q from Kakariko

View File

@@ -1056,7 +1056,7 @@ def create_playthrough(world):
collection_spheres.append(sphere) 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 not sphere:
if world.has_beaten_game(state): if world.has_beaten_game(state):
required_locations.clear() required_locations.clear()

View File

@@ -8,7 +8,7 @@ from OWEdges import OWTileRegions, OWEdgeGroups, OWEdgeGroupsTerrain, OWExitType
from OverworldGlitchRules import create_owg_connections from OverworldGlitchRules import create_owg_connections
from Utils import bidict from Utils import bidict
version_number = '0.6.0.3' version_number = '0.6.0.4'
# branch indicator is intentionally different across branches # branch indicator is intentionally different across branches
version_branch = '' version_branch = ''

12
Rom.py
View File

@@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings
JAP10HASH = '03a63945398191337e896e5771f77173' JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = 'b0a70c07792884cbe3d87e99c8325e41' RANDOMIZERBASEHASH = '94672b7a306b32c8a1d9e64f0e6a9be0'
class JsonRom(object): class JsonRom(object):
@@ -1292,6 +1292,9 @@ def patch_rom(world, rom, player, team, is_mystery=False):
| (0x04 if world.mapshuffle[player] != 'none' else 0x00) | (0x04 if world.mapshuffle[player] != 'none' else 0x00)
| (0x08 if world.bigkeyshuffle[player] != 'none' else 0x00))) # free roaming item text boxes | (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 rom.write_byte(0x18003B, 0x01 if world.mapshuffle[player] not in ['none', 'nearby'] else 0x00) # maps showing crystals on overworld
if (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 # compasses showing dungeon count
compass_mode = 0x80 if world.compassshuffle[player] not in ['none', 'nearby'] else 0x00 compass_mode = 0x80 if world.compassshuffle[player] not in ['none', 'nearby'] else 0x00
@@ -1447,9 +1450,10 @@ def patch_rom(world, rom, player, team, is_mystery=False):
| (0x10 if world.logic[player] == 'nologic' else 0))) # boss icon | (0x10 if world.logic[player] == 'nologic' else 0))) # boss icon
def get_reveal_bytes(itemName): def get_reveal_bytes(itemName):
for dungeon in world.dungeons: if world.prizeshuffle[player] != 'wild':
if dungeon.player == player and dungeon.prize and dungeon.prize.name == itemName: for dungeon in world.dungeons:
return reveal_bytes.get(dungeon.name, 0x0000) if dungeon.player == player and dungeon.prize and dungeon.prize.name == itemName:
return reveal_bytes.get(dungeon.name, 0x0000)
return 0x0000 return 0x0000
write_int16(rom, 0x18017A, get_reveal_bytes('Green Pendant')) # Sahasrahla reveal write_int16(rom, 0x18017A, get_reveal_bytes('Green Pendant')) # Sahasrahla reveal

Binary file not shown.

View File

@@ -403,7 +403,6 @@ def do_old_man_cave_exit(entrances, exits, avail, cross_world):
else: else:
region_name = 'West Dark Death Mountain (Top)' 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 = 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: if avail.swapped:
om_cave_options = [e for e in om_cave_options if e not in Forbidden_Swap_Entrances] 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' assert len(om_cave_options), 'No available entrances left to place Old Man Cave'