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) | ||||||
|  |             if location.item.game == 'Ocarina of Time': | ||||||
|                 item = read_rom_item(rom, location.item.index) |                 item = read_rom_item(rom, location.item.index) | ||||||
|                 if item['chest_type'] in (1, 3): |                 if item['chest_type'] in (1, 3): | ||||||
|                     rom.write_int16(chest_address + 2, 0x0190) # X pos |                     rom.write_int16(chest_address + 2, 0x0190) # X pos | ||||||
|                     rom.write_int16(chest_address + 6, 0xFABC) # Z 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) | ||||||
|  |             if location.item.game == 'Ocarina of Time': | ||||||
|                 item = read_rom_item(rom, location.item.index) |                 item = read_rom_item(rom, location.item.index) | ||||||
|                 if item['chest_type'] in (1, 3): |                 if item['chest_type'] in (1, 3): | ||||||
|                     rom.write_int16(chest_address_0 + 6, 0x0172)  # Z pos |                     rom.write_int16(chest_address_0 + 6, 0x0172)  # Z pos | ||||||
|                     rom.write_int16(chest_address_2 + 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