Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions Patches.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,20 @@ def copy(addr, size):
rom.write_int32s(0x14B9CB8, [0x00000000, 0x00000000, 0x00000000, 0x00000000]) # Boss Key (Key)
rom.write_int32s(0x14B9F20, [0x00000000, 0x00000000, 0x00000000, 0x00000000]) # Boss Key (Gem)

if world.settings.climb_anywhere:
# Delete the check for SurfaceType_IsHookshotSurface from the hookshot actor
rom.write_int32(0xCADAF8, 0x00000000)
# Override default wall flags to add climbable surface flag
# See D_80119D90, SurfaceType wall properties in z_bgcheck.c in decomp
for idx in range(32):
if idx == 2:
# 3rd entry is for ladders, which have a different flag that
# centers link horizontally on the climbable surface
continue
wall_flags = rom.read_int32(0xB61F80 + idx * 4)
wall_flags = wall_flags | 0x00000008
rom.write_int32(0xB61F80 + idx*4, wall_flags)

# Force language to be English in the event a Japanese rom was submitted
rom.write_byte(0x3E, 0x45)
rom.force_patch.append(0x3E)
Expand Down
10 changes: 10 additions & 0 deletions SettingsList.py
Original file line number Diff line number Diff line change
Expand Up @@ -4345,6 +4345,16 @@ class SettingInfos:
shared = True,
)

climb_anywhere = Checkbutton(
gui_text = 'Climb Anywhere',
gui_tooltip = '''\
Make all vertical surfaces climbable and
most surfaces hookshot-able.
''',
shared = True,
default = False,
)

# Cosmetics

default_targeting = Combobox(
Expand Down
1 change: 1 addition & 0 deletions data/settings_mapping.json
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,7 @@
"text_shuffle",
"damage_multiplier",
"deadly_bonks",
"climb_anywhere",
"starting_tod",
"blue_fire_arrows",
"fix_broken_drops",
Expand Down
Loading