showmap option

This commit is contained in:
2026-01-17 12:54:17 -06:00
parent dd98e55d36
commit 5e0deadf55
5 changed files with 25 additions and 3 deletions

View File

@@ -150,6 +150,7 @@ class World(object):
set_player_attr('bigkeyshuffle', 'none') set_player_attr('bigkeyshuffle', 'none')
set_player_attr('prizeshuffle', 'none') set_player_attr('prizeshuffle', 'none')
set_player_attr('showloot', 'never') set_player_attr('showloot', 'never')
set_player_attr('showmap', 'map')
set_player_attr('restrict_boss_items', 'none') set_player_attr('restrict_boss_items', 'none')
set_player_attr('bombbag', False) set_player_attr('bombbag', False)
set_player_attr('flute_mode', 'normal') set_player_attr('flute_mode', 'normal')
@@ -3128,6 +3129,7 @@ class Spoiler(object):
'bigkeyshuffle': self.world.bigkeyshuffle, 'bigkeyshuffle': self.world.bigkeyshuffle,
'prizeshuffle': self.world.prizeshuffle, 'prizeshuffle': self.world.prizeshuffle,
'showloot': self.world.showloot, 'showloot': self.world.showloot,
'showmap': self.world.showmap,
'boss_shuffle': self.world.boss_shuffle, 'boss_shuffle': self.world.boss_shuffle,
'enemy_shuffle': self.world.enemy_shuffle, 'enemy_shuffle': self.world.enemy_shuffle,
'enemy_health': self.world.enemy_health, 'enemy_health': self.world.enemy_health,
@@ -3393,6 +3395,7 @@ class Spoiler(object):
outfile.write('Big Key Shuffle:'.ljust(line_width) + '%s\n' % self.metadata['bigkeyshuffle'][player]) outfile.write('Big Key Shuffle:'.ljust(line_width) + '%s\n' % self.metadata['bigkeyshuffle'][player])
outfile.write('Prize Shuffle:'.ljust(line_width) + '%s\n' % self.metadata['prizeshuffle'][player]) outfile.write('Prize Shuffle:'.ljust(line_width) + '%s\n' % self.metadata['prizeshuffle'][player])
outfile.write('Show Value of Checks:'.ljust(line_width) + '%s\n' % self.metadata['showloot'][player]) outfile.write('Show Value of Checks:'.ljust(line_width) + '%s\n' % self.metadata['showloot'][player])
outfile.write('Show Map:'.ljust(line_width) + '%s\n' % self.metadata['showmap'][player])
outfile.write('Key Logic Algorithm:'.ljust(line_width) + '%s\n' % self.metadata['key_logic'][player]) outfile.write('Key Logic Algorithm:'.ljust(line_width) + '%s\n' % self.metadata['key_logic'][player])
outfile.write('\n') outfile.write('\n')
outfile.write('Door Shuffle:'.ljust(line_width) + '%s\n' % self.metadata['door_shuffle'][player]) outfile.write('Door Shuffle:'.ljust(line_width) + '%s\n' % self.metadata['door_shuffle'][player])

3
CLI.py
View File

@@ -135,7 +135,7 @@ def parse_cli(argv, no_defaults=False):
'ow_terrain', 'ow_crossed', 'ow_keepsimilar', 'ow_mixed', 'ow_whirlpool', 'ow_fluteshuffle', 'ow_terrain', 'ow_crossed', 'ow_keepsimilar', 'ow_mixed', 'ow_whirlpool', 'ow_fluteshuffle',
'flute_mode', 'bow_mode', 'take_any', 'boots_hint', 'shuffle_followers', 'flute_mode', 'bow_mode', 'take_any', 'boots_hint', 'shuffle_followers',
'shuffle', 'door_shuffle', 'intensity', 'crystals_ganon', 'crystals_gt', 'ganon_item', 'openpyramid', 'shuffle', 'door_shuffle', 'intensity', 'crystals_ganon', 'crystals_gt', 'ganon_item', 'openpyramid',
'mapshuffle', 'compassshuffle', 'keyshuffle', 'bigkeyshuffle', 'prizeshuffle', 'showloot', 'startinventory', 'mapshuffle', 'compassshuffle', 'keyshuffle', 'bigkeyshuffle', 'prizeshuffle', 'showloot', 'showmap', 'startinventory',
'usestartinventory', 'bombbag', 'shuffleganon', 'overworld_map', 'restrict_boss_items', 'usestartinventory', 'bombbag', 'shuffleganon', 'overworld_map', 'restrict_boss_items',
'triforce_max_difference', 'triforce_pool_min', 'triforce_pool_max', 'triforce_goal_min', 'triforce_goal_max', 'triforce_max_difference', 'triforce_pool_min', 'triforce_pool_max', 'triforce_goal_min', 'triforce_goal_max',
'triforce_min_difference', 'triforce_goal', 'triforce_pool', 'shufflelinks', 'shuffletavern', 'triforce_min_difference', 'triforce_goal', 'triforce_pool', 'shufflelinks', 'shuffletavern',
@@ -236,6 +236,7 @@ def parse_settings():
"bigkeyshuffle": "none", "bigkeyshuffle": "none",
"prizeshuffle": "none", "prizeshuffle": "none",
"showloot": "never", "showloot": "never",
"showmap": "map",
"keysanity": False, "keysanity": False,
"door_shuffle": "vanilla", "door_shuffle": "vanilla",
"intensity": 3, "intensity": 3,

View File

@@ -471,6 +471,7 @@ def init_world(args, fish):
world.bigkeyshuffle = args.bigkeyshuffle.copy() world.bigkeyshuffle = args.bigkeyshuffle.copy()
world.prizeshuffle = args.prizeshuffle.copy() world.prizeshuffle = args.prizeshuffle.copy()
world.showloot = args.showloot.copy() world.showloot = args.showloot.copy()
world.showmap = args.showmap.copy()
world.bombbag = args.bombbag.copy() world.bombbag = args.bombbag.copy()
world.flute_mode = args.flute_mode.copy() world.flute_mode = args.flute_mode.copy()
world.bow_mode = args.bow_mode.copy() world.bow_mode = args.bow_mode.copy()
@@ -787,6 +788,7 @@ def copy_world(world):
ret.bigkeyshuffle = world.bigkeyshuffle.copy() ret.bigkeyshuffle = world.bigkeyshuffle.copy()
ret.prizeshuffle = world.prizeshuffle.copy() ret.prizeshuffle = world.prizeshuffle.copy()
ret.showloot = world.showloot.copy() ret.showloot = world.showloot.copy()
ret.showmap = world.showmap.copy()
ret.bombbag = world.bombbag.copy() ret.bombbag = world.bombbag.copy()
ret.flute_mode = world.flute_mode.copy() ret.flute_mode = world.flute_mode.copy()
ret.bow_mode = world.bow_mode.copy() ret.bow_mode = world.bow_mode.copy()
@@ -1015,6 +1017,7 @@ def copy_world_premature(world, player, create_flute_exits=True):
ret.bigkeyshuffle = world.bigkeyshuffle.copy() ret.bigkeyshuffle = world.bigkeyshuffle.copy()
ret.prizeshuffle = world.prizeshuffle.copy() ret.prizeshuffle = world.prizeshuffle.copy()
ret.showloot = world.showloot.copy() ret.showloot = world.showloot.copy()
ret.showmap = world.showmap.copy()
ret.bombbag = world.bombbag.copy() ret.bombbag = world.bombbag.copy()
ret.flute_mode = world.flute_mode.copy() ret.flute_mode = world.flute_mode.copy()
ret.bow_mode = world.bow_mode.copy() ret.bow_mode = world.bow_mode.copy()

11
Rom.py
View File

@@ -1452,6 +1452,9 @@ def patch_rom(world, rom, player, team, is_mystery=False, rom_header=None):
if world.showloot[player] == 'never': if world.showloot[player] == 'never':
rom.write_bytes(0x1CFF08, [0x00, 0x00, 0x00, 0x00]) rom.write_bytes(0x1CFF08, [0x00, 0x00, 0x00, 0x00])
rom.write_byte(0x1CFF11, 0x00) rom.write_byte(0x1CFF11, 0x00)
elif world.showloot[player] == 'presence':
rom.write_bytes(0x1CFF08, [0x01, 0x00, 0x00, 0x00])
rom.write_byte(0x1CFF11, 0x00)
elif world.showloot[player] == 'compass': elif world.showloot[player] == 'compass':
rom.write_bytes(0x1CFF08, [0x01, 0x00, 0x02, 0x00]) rom.write_bytes(0x1CFF08, [0x01, 0x00, 0x02, 0x00])
rom.write_byte(0x1CFF11, 0x01) rom.write_byte(0x1CFF11, 0x01)
@@ -1459,8 +1462,12 @@ def patch_rom(world, rom, player, team, is_mystery=False, rom_header=None):
rom.write_bytes(0x1CFF08, [0x02, 0x00, 0x00, 0x00]) rom.write_bytes(0x1CFF08, [0x02, 0x00, 0x00, 0x00])
rom.write_byte(0x1CFF11, 0x00) rom.write_byte(0x1CFF11, 0x00)
if world.doorShuffle[player] != 'vanilla': if world.showmap[player] == 'visited':
rom.write_bytes(0x1CFF00, [0x01, 0x05, 0x00, 0x04]) rom.write_bytes(0x1CFF00, [0x01, 0x00, 0x00, 0x05])
elif world.showmap[player] == 'map':
rom.write_bytes(0x1CFF00, [0x01, 0x05, 0x00, 0x05])
elif world.showmap[player] == 'always':
rom.write_bytes(0x1CFF00, [0x05, 0x00, 0x00, 0x00])
loot_icons = 0x1CF900 loot_icons = 0x1CF900
if world.bombbag[player]: if world.bombbag[player]:

View File

@@ -434,10 +434,18 @@
"showloot": { "showloot": {
"choices": [ "choices": [
"never", "never",
"presence",
"compass", "compass",
"always" "always"
] ]
}, },
"showmap": {
"choices": [
"visited",
"map",
"always"
]
},
"keysanity": { "keysanity": {
"action": "store_true", "action": "store_true",
"type": "bool", "type": "bool",