fix: key counts when door shuffle is off

This commit is contained in:
aerinon
2026-02-03 13:17:42 -07:00
parent e27fb51dc9
commit d3f8e5fd58
5 changed files with 18 additions and 9 deletions

View File

@@ -38,7 +38,7 @@ from source.enemizer.DamageTables import DamageTable
from source.enemizer.Enemizer import randomize_enemies from source.enemizer.Enemizer import randomize_enemies
from source.rom.DataTables import init_data_tables from source.rom.DataTables import init_data_tables
version_number = '1.5.4' version_number = '1.5.5'
version_branch = '-u' version_branch = '-u'
__version__ = f'{version_number}{version_branch}' __version__ = f'{version_number}{version_branch}'

View File

@@ -10,6 +10,9 @@
# Patch Notes # Patch Notes
Changelog archive Changelog archive
* 1.5.4
* Documentation: New AI-assisted documentation [Site](https://aerinon.github.io/ALttPDoorRandomizer)
* Generation Error: Fixed Issue with Shop Code and Take Any Caves (thanks Codemann for assistance)
* 1.5.3 * 1.5.3
* Logic: Key logic fix for part of a dungeon located at Skull 3 (or other similar restricted entrancs). Appropriate key logic was not being applied, causing progression issues. This mostly affect crosskey style seeds. * Logic: Key logic fix for part of a dungeon located at Skull 3 (or other similar restricted entrancs). Appropriate key logic was not being applied, causing progression issues. This mostly affect crosskey style seeds.
* Standard: Rupee balancing algorithm can no longer switch out the weapon on uncle for money. * Standard: Rupee balancing algorithm can no longer switch out the weapon on uncle for money.

View File

@@ -1,6 +1,6 @@
# Patch Notes # Patch Notes
* 1.5.4 * 1.5.5
* Documentation: New AI-assisted documentation [Site (I really hope this works)](https//aerinon.github.io/ALttPDoorRandomizer) * HUD: Key counters are correct even when door shuffle is off
* Generation Error: Fixed Issue with Shop Code and Take Any Caves (thanks Codemann for assistance)

6
Rom.py
View File

@@ -646,6 +646,12 @@ def patch_rom(world, rom, player, team, is_mystery=False):
for room in world.rooms: for room in world.rooms:
if room.player == player and room.palette is not None: if room.player == player and room.palette is not None:
rom.write_byte(0x13f200+room.index, room.palette) 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': if world.doorShuffle[player] == 'basic':
rom.write_byte(0x138002, 1) rom.write_byte(0x138002, 1)
for door in world.doors: for door in world.doors:

View File

@@ -68,11 +68,11 @@ Join the discussion and get help:
## Learn More ## Learn More
- [Features Guide](/features) - Comprehensive feature documentation - [Features Guide](/features.html) - Comprehensive feature documentation
- [Installation & Usage](/installation) - Setup and running the randomizer - [Installation & Usage](/installation.html) - Setup and running the randomizer
- [Known Issues](/known-issues) - Current bugs and limitations - [Known Issues](/known-issues.html) - Current bugs and limitations
- [Roadmap](/roadmap) - Future development plans - [Roadmap](/roadmap.html) - Future development plans
- [Blog](/blog) - Latest updates and release notes - [Blog](/blog.html) - Latest updates and release notes
## Credits ## Credits