Reenable Chest Size Matches Contents
This commit is contained in:
parent
9c09d84c71
commit
cace88e8fa
|
@ -916,6 +916,9 @@ Ocarina of Time:
|
||||||
random: 50
|
random: 50
|
||||||
random-low: 0
|
random-low: 0
|
||||||
random-high: 0
|
random-high: 0
|
||||||
|
correct_chest_sizes: # Changes chests containing progression into large chests, and nonprogression into small chests.
|
||||||
|
false: 50
|
||||||
|
true: 0
|
||||||
hints: # Gossip Stones can give hints about item locations.
|
hints: # Gossip Stones can give hints about item locations.
|
||||||
none: 0
|
none: 0
|
||||||
mask: 0
|
mask: 0
|
||||||
|
|
|
@ -483,6 +483,11 @@ timesavers_options: typing.Dict[str, type(Option)] = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class CSMC(Toggle):
|
||||||
|
"""Changes chests containing progression into large chests, and nonprogression into small chests."""
|
||||||
|
displayname = "Chest Size Matches Contents"
|
||||||
|
|
||||||
|
|
||||||
class Hints(Choice):
|
class Hints(Choice):
|
||||||
"""Gossip Stones can give hints about item locations."""
|
"""Gossip Stones can give hints about item locations."""
|
||||||
displayname = "Gossip Stones"
|
displayname = "Gossip Stones"
|
||||||
|
@ -559,7 +564,7 @@ class RupeeStart(Toggle):
|
||||||
|
|
||||||
|
|
||||||
misc_options: typing.Dict[str, type(Option)] = {
|
misc_options: typing.Dict[str, type(Option)] = {
|
||||||
# "clearer_hints": DefaultOnToggle,
|
"correct_chest_sizes": CSMC,
|
||||||
"hints": Hints,
|
"hints": Hints,
|
||||||
"hint_dist": HintDistribution,
|
"hint_dist": HintDistribution,
|
||||||
"text_shuffle": TextShuffle,
|
"text_shuffle": TextShuffle,
|
||||||
|
|
|
@ -1624,10 +1624,15 @@ def patch_rom(world, rom):
|
||||||
chest_name = 'Spirit Temple Compass Chest'
|
chest_name = 'Spirit Temple Compass Chest'
|
||||||
chest_address = 0x2B6B07C
|
chest_address = 0x2B6B07C
|
||||||
location = world.get_location(chest_name)
|
location = world.get_location(chest_name)
|
||||||
item = read_rom_item(rom, location.item.index)
|
if location.item.game == 'Ocarina of Time':
|
||||||
if item['chest_type'] in (1, 3):
|
item = read_rom_item(rom, location.item.index)
|
||||||
rom.write_int16(chest_address + 2, 0x0190) # X pos
|
if item['chest_type'] in (1, 3):
|
||||||
rom.write_int16(chest_address + 6, 0xFABC) # Z pos
|
rom.write_int16(chest_address + 2, 0x0190) # X pos
|
||||||
|
rom.write_int16(chest_address + 6, 0xFABC) # Z pos
|
||||||
|
else:
|
||||||
|
if location.item.advancement:
|
||||||
|
rom.write_int16(chest_address + 2, 0x0190) # X pos
|
||||||
|
rom.write_int16(chest_address + 6, 0xFABC) # Z pos
|
||||||
|
|
||||||
# Move Silver Gauntlets chest if it is small so it is reachable from Spirit Hover Seam
|
# Move Silver Gauntlets chest if it is small so it is reachable from Spirit Hover Seam
|
||||||
if world.logic_rules != 'glitchless':
|
if world.logic_rules != 'glitchless':
|
||||||
|
@ -1635,10 +1640,15 @@ def patch_rom(world, rom):
|
||||||
chest_address_0 = 0x21A02D0 # Address in setup 0
|
chest_address_0 = 0x21A02D0 # Address in setup 0
|
||||||
chest_address_2 = 0x21A06E4 # Address in setup 2
|
chest_address_2 = 0x21A06E4 # Address in setup 2
|
||||||
location = world.get_location(chest_name)
|
location = world.get_location(chest_name)
|
||||||
item = read_rom_item(rom, location.item.index)
|
if location.item.game == 'Ocarina of Time':
|
||||||
if item['chest_type'] in (1, 3):
|
item = read_rom_item(rom, location.item.index)
|
||||||
rom.write_int16(chest_address_0 + 6, 0x0172) # Z pos
|
if item['chest_type'] in (1, 3):
|
||||||
rom.write_int16(chest_address_2 + 6, 0x0172) # Z pos
|
rom.write_int16(chest_address_0 + 6, 0x0172) # Z pos
|
||||||
|
rom.write_int16(chest_address_2 + 6, 0x0172) # Z pos
|
||||||
|
else:
|
||||||
|
if location.item.advancement:
|
||||||
|
rom.write_int16(chest_address_0 + 6, 0x0172) # Z pos
|
||||||
|
rom.write_int16(chest_address_2 + 6, 0x0172) # Z pos
|
||||||
|
|
||||||
# give dungeon items the correct messages
|
# give dungeon items the correct messages
|
||||||
add_item_messages(messages, shop_items, world)
|
add_item_messages(messages, shop_items, world)
|
||||||
|
|
|
@ -169,7 +169,6 @@ class OOTWorld(World):
|
||||||
self.mq_dungeons_random = False # this will be a deprecated option later
|
self.mq_dungeons_random = False # this will be a deprecated option later
|
||||||
self.ocarina_songs = False # just need to pull in the OcarinaSongs module
|
self.ocarina_songs = False # just need to pull in the OcarinaSongs module
|
||||||
self.big_poe_count = 1 # disabled due to client-side issues for now
|
self.big_poe_count = 1 # disabled due to client-side issues for now
|
||||||
self.correct_chest_sizes = False # will probably never be implemented since multiworld items are always major
|
|
||||||
# ER options
|
# ER options
|
||||||
self.shuffle_interior_entrances = 'off'
|
self.shuffle_interior_entrances = 'off'
|
||||||
self.shuffle_grotto_entrances = False
|
self.shuffle_grotto_entrances = False
|
||||||
|
@ -180,8 +179,7 @@ class OOTWorld(World):
|
||||||
self.spawn_positions = False
|
self.spawn_positions = False
|
||||||
|
|
||||||
# Set internal names used by the OoT generator
|
# Set internal names used by the OoT generator
|
||||||
self.keysanity = self.shuffle_smallkeys in ['keysanity', 'remove', 'any_dungeon',
|
self.keysanity = self.shuffle_smallkeys in ['keysanity', 'remove', 'any_dungeon', 'overworld']
|
||||||
'overworld'] # only 'keysanity' and 'remove' implemented
|
|
||||||
|
|
||||||
# Hint stuff
|
# Hint stuff
|
||||||
self.misc_hints = True # this is just always on
|
self.misc_hints = True # this is just always on
|
||||||
|
|
Loading…
Reference in New Issue