mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00
Ocarina of Time: long-awaited bugfixes (#2344)
- Added location name groups, so you can make your entire Water Temple priority to annoy everyone else - Significant improvement to ER generation success rate (~80% to >99%) - Changed `adult_trade_start` option to a choice option instead of a list (this shouldn't actually break any YAMLs though, due to the lesser-known property of lists parsing as a uniformly-weighted choice) - Major improvements to the option tooltips where needed. (Possibly too much text now) - Changed default hint distribution to `async` to help people's generation times. The tooltip explains that it removes WOTH hints so people hopefully don't get tripped up. - Makes stick and nut capacity upgrades useful items - Added shop prices and required trials to spoiler log - Added Cojiro to adult trade item group, because it had been forgotten previously - Fixed size-modified chests not being moved properly due to trap appearance changing the size - Fixed Thieves Hideout keyring not being allowed in start inventory - Fixed hint generation not accurately flagging barren locations on certain dungeon item shuffle settings - Fixed bug where you could plando arbitrarily-named items into the world, breaking everything
This commit is contained in:
@@ -2094,10 +2094,14 @@ def patch_rom(world, rom):
|
||||
if not world.dungeon_mq['Ganons Castle']:
|
||||
chest_name = 'Ganons Castle Light Trial Lullaby Chest'
|
||||
location = world.get_location(chest_name)
|
||||
if location.item.game == 'Ocarina of Time':
|
||||
item = read_rom_item(rom, location.item.index)
|
||||
if not location.item.trap:
|
||||
if location.item.game == 'Ocarina of Time':
|
||||
item = read_rom_item(rom, location.item.index)
|
||||
else:
|
||||
item = read_rom_item(rom, AP_PROGRESSION if location.item.advancement else AP_JUNK)
|
||||
else:
|
||||
item = read_rom_item(rom, AP_PROGRESSION if location.item.advancement else AP_JUNK)
|
||||
looks_like_index = get_override_entry(world, location)[5]
|
||||
item = read_rom_item(rom, looks_like_index)
|
||||
if item['chest_type'] in (GOLD_CHEST, GILDED_CHEST, SKULL_CHEST_BIG):
|
||||
rom.write_int16(0x321B176, 0xFC40) # original 0xFC48
|
||||
|
||||
@@ -2106,10 +2110,14 @@ def patch_rom(world, rom):
|
||||
chest_name = 'Spirit Temple Compass Chest'
|
||||
chest_address = 0x2B6B07C
|
||||
location = world.get_location(chest_name)
|
||||
if location.item.game == 'Ocarina of Time':
|
||||
item = read_rom_item(rom, location.item.index)
|
||||
if not location.item.trap:
|
||||
if location.item.game == 'Ocarina of Time':
|
||||
item = read_rom_item(rom, location.item.index)
|
||||
else:
|
||||
item = read_rom_item(rom, AP_PROGRESSION if location.item.advancement else AP_JUNK)
|
||||
else:
|
||||
item = read_rom_item(rom, AP_PROGRESSION if location.item.advancement else AP_JUNK)
|
||||
looks_like_index = get_override_entry(world, location)[5]
|
||||
item = read_rom_item(rom, looks_like_index)
|
||||
if item['chest_type'] in (BROWN_CHEST, SILVER_CHEST, SKULL_CHEST_SMALL):
|
||||
rom.write_int16(chest_address + 2, 0x0190) # X pos
|
||||
rom.write_int16(chest_address + 6, 0xFABC) # Z pos
|
||||
@@ -2120,10 +2128,14 @@ def patch_rom(world, rom):
|
||||
chest_address_0 = 0x21A02D0 # Address in setup 0
|
||||
chest_address_2 = 0x21A06E4 # Address in setup 2
|
||||
location = world.get_location(chest_name)
|
||||
if location.item.game == 'Ocarina of Time':
|
||||
item = read_rom_item(rom, location.item.index)
|
||||
if not location.item.trap:
|
||||
if location.item.game == 'Ocarina of Time':
|
||||
item = read_rom_item(rom, location.item.index)
|
||||
else:
|
||||
item = read_rom_item(rom, AP_PROGRESSION if location.item.advancement else AP_JUNK)
|
||||
else:
|
||||
item = read_rom_item(rom, AP_PROGRESSION if location.item.advancement else AP_JUNK)
|
||||
looks_like_index = get_override_entry(world, location)[5]
|
||||
item = read_rom_item(rom, looks_like_index)
|
||||
if item['chest_type'] in (BROWN_CHEST, SILVER_CHEST, SKULL_CHEST_SMALL):
|
||||
rom.write_int16(chest_address_0 + 6, 0x0172) # Z pos
|
||||
rom.write_int16(chest_address_2 + 6, 0x0172) # Z pos
|
||||
|
Reference in New Issue
Block a user