Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
from collections import OrderedDict
def shop_address ( shop_id , shelf_id ) :
return 0xC71ED0 + ( 0x40 * shop_id ) + ( 0x08 * shelf_id )
# Abbreviations
# DMC Death Mountain Crater
# DMT Death Mountain Trail
# GC Goron City
# GF Gerudo Fortress
# GS Gold Skulltula
# GV Gerudo Valley
# HC Hyrule Castle
# HF Hyrule Field
# KF Kokiri Forest
# LH Lake Hylia
# LLR Lon Lon Ranch
# LW Lost Woods
# OGC Outside Ganon's Castle
# SFM Sacred Forest Meadow
2022-05-01 18:05:52 +00:00
# TH Thieves' Hideout
Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
# ToT Temple of Time
# ZD Zora's Domain
# ZF Zora's Fountain
# ZR Zora's River
# The order of this table is reflected in the spoiler's list of locations (except Hints aren't included).
# Within a section, the order of types is: gifts/freestanding/chests, Deku Scrubs, Cows, Gold Skulltulas, Shops.
# NPC Scrubs are on the overworld, while GrottoNPC is a special handler for Grottos
# Grottos scrubs are the same scene and actor, so we use a unique grotto ID for the scene
# Note that the scene for skulltulas is not the actual scene the token appears in
# Rather, it is the index of the grouping used when storing skulltula collection
# For example, zora river, zora's domain, and zora fountain are all a single 'scene' for skulltulas
# Location: Type Scene Default Addresses Vanilla Item Categories
location_table = OrderedDict ( [
## Dungeon Rewards
( " Links Pocket " , ( " Boss " , None , None , None , ' Light Medallion ' , None ) ) ,
( " Queen Gohma " , ( " Boss " , None , 0x6C , ( 0x0CA315F , 0x2079571 ) , ' Kokiri Emerald ' , None ) ) ,
( " King Dodongo " , ( " Boss " , None , 0x6D , ( 0x0CA30DF , 0x2223309 ) , ' Goron Ruby ' , None ) ) ,
( " Barinade " , ( " Boss " , None , 0x6E , ( 0x0CA36EB , 0x2113C19 ) , ' Zora Sapphire ' , None ) ) ,
( " Phantom Ganon " , ( " Boss " , None , 0x66 , ( 0x0CA3D07 , 0x0D4ED79 ) , ' Forest Medallion ' , None ) ) ,
( " Volvagia " , ( " Boss " , None , 0x67 , ( 0x0CA3D93 , 0x0D10135 ) , ' Fire Medallion ' , None ) ) ,
( " Morpha " , ( " Boss " , None , 0x68 , ( 0x0CA3E1F , 0x0D5A3A9 ) , ' Water Medallion ' , None ) ) ,
( " Bongo Bongo " , ( " Boss " , None , 0x6A , ( 0x0CA3F43 , 0x0D13E19 ) , ' Shadow Medallion ' , None ) ) ,
( " Twinrova " , ( " Boss " , None , 0x69 , ( 0x0CA3EB3 , 0x0D39FF1 ) , ' Spirit Medallion ' , None ) ) ,
( " Ganon " , ( " Event " , None , None , None , ' Triforce ' , None ) ) ,
## Songs
( " Song from Impa " , ( " Song " , 0xFF , 0x26 , ( 0x2E8E925 , 0x2E8E925 ) , ' Zeldas Lullaby ' , ( " Hyrule Castle " , " Market " , " Songs " ) ) ) ,
( " Song from Malon " , ( " Song " , 0xFF , 0x27 , ( 0x0D7EB53 , 0x0D7EBCF ) , ' Eponas Song ' , ( " Lon Lon Ranch " , " Songs " , ) ) ) ,
( " Song from Saria " , ( " Song " , 0xFF , 0x28 , ( 0x20B1DB1 , 0x20B1DB1 ) , ' Sarias Song ' , ( " Sacred Forest Meadow " , " Forest " , " Songs " ) ) ) ,
2022-05-01 18:05:52 +00:00
( " Song from Royal Familys Tomb " , ( " Song " , 0xFF , 0x29 , ( 0x332A871 , 0x332A871 ) , ' Suns Song ' , ( " the Graveyard " , " Kakariko " , " Songs " ) ) ) ,
Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
( " Song from Ocarina of Time " , ( " Song " , 0xFF , 0x2A , ( 0x252FC89 , 0x252FC89 ) , ' Song of Time ' , ( " Hyrule Field " , " Songs " , " Need Spiritual Stones " ) ) ) ,
( " Song from Windmill " , ( " Song " , 0xFF , 0x2B , ( 0x0E42C07 , 0x0E42B8B ) , ' Song of Storms ' , ( " Kakariko Village " , " Kakariko " , " Songs " ) ) ) ,
( " Sheik in Forest " , ( " Song " , 0xFF , 0x20 , ( 0x20B0809 , 0x20B0809 ) , ' Minuet of Forest ' , ( " Sacred Forest Meadow " , " Forest " , " Songs " ) ) ) ,
( " Sheik in Crater " , ( " Song " , 0xFF , 0x21 , ( 0x224D7F1 , 0x224D7F1 ) , ' Bolero of Fire ' , ( " Death Mountain Crater " , " Death Mountain " , " Songs " ) ) ) ,
( " Sheik in Ice Cavern " , ( " Song " , 0xFF , 0x22 , ( 0x2BEC889 , 0x2BEC889 ) , ' Serenade of Water ' , ( " Ice Cavern " , " Songs " , ) ) ) ,
( " Sheik at Colossus " , ( " Song " , 0xFF , 0x23 , ( 0x218C57D , 0x218C57D ) , ' Requiem of Spirit ' , ( " Desert Colossus " , " Songs " , ) ) ) ,
( " Sheik in Kakariko " , ( " Song " , 0xFF , 0x24 , ( 0x2000FE1 , 0x2000FE1 ) , ' Nocturne of Shadow ' , ( " Kakariko Village " , " Kakariko " , " Songs " ) ) ) ,
( " Sheik at Temple " , ( " Song " , 0xFF , 0x25 , ( 0x2531329 , 0x2531329 ) , ' Prelude of Light ' , ( " Temple of Time " , " Market " , " Songs " ) ) ) ,
## Overworld
# Kokiri Forest
( " KF Midos Top Left Chest " , ( " Chest " , 0x28 , 0x00 , None , ' Rupees (5) ' , ( " Kokiri Forest " , " Forest " , ) ) ) ,
( " KF Midos Top Right Chest " , ( " Chest " , 0x28 , 0x01 , None , ' Rupees (5) ' , ( " Kokiri Forest " , " Forest " , ) ) ) ,
( " KF Midos Bottom Left Chest " , ( " Chest " , 0x28 , 0x02 , None , ' Rupee (1) ' , ( " Kokiri Forest " , " Forest " , ) ) ) ,
( " KF Midos Bottom Right Chest " , ( " Chest " , 0x28 , 0x03 , None , ' Recovery Heart ' , ( " Kokiri Forest " , " Forest " , ) ) ) ,
( " KF Kokiri Sword Chest " , ( " Chest " , 0x55 , 0x00 , None , ' Kokiri Sword ' , ( " Kokiri Forest " , " Forest " , ) ) ) ,
( " KF Storms Grotto Chest " , ( " Chest " , 0x3E , 0x0C , None , ' Rupees (20) ' , ( " Kokiri Forest " , " Forest " , " Grottos " ) ) ) ,
2022-05-01 18:05:52 +00:00
( " KF Links House Cow " , ( " NPC " , 0x34 , 0x15 , None , ' Milk ' , ( " Kokiri Forest " , " Forest " , " Cow " , " Minigames " ) ) ) ,
Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
( " KF GS Know It All House " , ( " GS Token " , 0x0C , 0x02 , None , ' Gold Skulltula Token ' , ( " Kokiri Forest " , " Skulltulas " , ) ) ) ,
( " KF GS Bean Patch " , ( " GS Token " , 0x0C , 0x01 , None , ' Gold Skulltula Token ' , ( " Kokiri Forest " , " Skulltulas " , ) ) ) ,
( " KF GS House of Twins " , ( " GS Token " , 0x0C , 0x04 , None , ' Gold Skulltula Token ' , ( " Kokiri Forest " , " Skulltulas " , ) ) ) ,
( " KF Shop Item 1 " , ( " Shop " , 0x2D , 0x30 , ( shop_address ( 0 , 0 ) , None ) , ' Buy Deku Shield ' , ( " Kokiri Forest " , " Forest " , " Shops " ) ) ) ,
( " KF Shop Item 2 " , ( " Shop " , 0x2D , 0x31 , ( shop_address ( 0 , 1 ) , None ) , ' Buy Deku Nut (5) ' , ( " Kokiri Forest " , " Forest " , " Shops " ) ) ) ,
( " KF Shop Item 3 " , ( " Shop " , 0x2D , 0x32 , ( shop_address ( 0 , 2 ) , None ) , ' Buy Deku Nut (10) ' , ( " Kokiri Forest " , " Forest " , " Shops " ) ) ) ,
( " KF Shop Item 4 " , ( " Shop " , 0x2D , 0x33 , ( shop_address ( 0 , 3 ) , None ) , ' Buy Deku Stick (1) ' , ( " Kokiri Forest " , " Forest " , " Shops " ) ) ) ,
( " KF Shop Item 5 " , ( " Shop " , 0x2D , 0x34 , ( shop_address ( 0 , 4 ) , None ) , ' Buy Deku Seeds (30) ' , ( " Kokiri Forest " , " Forest " , " Shops " ) ) ) ,
( " KF Shop Item 6 " , ( " Shop " , 0x2D , 0x35 , ( shop_address ( 0 , 5 ) , None ) , ' Buy Arrows (10) ' , ( " Kokiri Forest " , " Forest " , " Shops " ) ) ) ,
( " KF Shop Item 7 " , ( " Shop " , 0x2D , 0x36 , ( shop_address ( 0 , 6 ) , None ) , ' Buy Arrows (30) ' , ( " Kokiri Forest " , " Forest " , " Shops " ) ) ) ,
( " KF Shop Item 8 " , ( " Shop " , 0x2D , 0x37 , ( shop_address ( 0 , 7 ) , None ) , ' Buy Heart ' , ( " Kokiri Forest " , " Forest " , " Shops " ) ) ) ,
# Lost Woods
( " LW Gift from Saria " , ( " Cutscene " , 0xFF , 0x02 , None , ' Ocarina ' , ( " the Lost Woods " , " Forest " , ) ) ) ,
( " LW Ocarina Memory Game " , ( " NPC " , 0x5B , 0x76 , None , ' Piece of Heart ' , ( " the Lost Woods " , " Forest " , " Minigames " ) ) ) ,
( " LW Target in Woods " , ( " NPC " , 0x5B , 0x60 , None , ' Slingshot ' , ( " the Lost Woods " , " Forest " , ) ) ) ,
( " LW Near Shortcuts Grotto Chest " , ( " Chest " , 0x3E , 0x14 , None , ' Rupees (5) ' , ( " the Lost Woods " , " Forest " , " Grottos " ) ) ) ,
( " Deku Theater Skull Mask " , ( " NPC " , 0x3E , 0x77 , None , ' Deku Stick Capacity ' , ( " the Lost Woods " , " Forest " , " Grottos " ) ) ) ,
( " Deku Theater Mask of Truth " , ( " NPC " , 0x3E , 0x7A , None , ' Deku Nut Capacity ' , ( " the Lost Woods " , " Forest " , " Need Spiritual Stones " , " Grottos " ) ) ) ,
( " LW Skull Kid " , ( " NPC " , 0x5B , 0x3E , None , ' Piece of Heart ' , ( " the Lost Woods " , " Forest " , ) ) ) ,
( " LW Deku Scrub Near Bridge " , ( " NPC " , 0x5B , 0x77 , None , ' Deku Stick Capacity ' , ( " the Lost Woods " , " Forest " , " Deku Scrub " , " Deku Scrub Upgrades " ) ) ) ,
( " LW Deku Scrub Near Deku Theater Left " , ( " NPC " , 0x5B , 0x31 , None , ' Buy Deku Stick (1) ' , ( " the Lost Woods " , " Forest " , " Deku Scrub " ) ) ) ,
( " LW Deku Scrub Near Deku Theater Right " , ( " NPC " , 0x5B , 0x30 , None , ' Buy Deku Nut (5) ' , ( " the Lost Woods " , " Forest " , " Deku Scrub " ) ) ) ,
( " LW Deku Scrub Grotto Front " , ( " GrottoNPC " , 0xF5 , 0x79 , None , ' Deku Nut Capacity ' , ( " the Lost Woods " , " Forest " , " Deku Scrub " , " Deku Scrub Upgrades " , " Grottos " ) ) ) ,
( " LW Deku Scrub Grotto Rear " , ( " GrottoNPC " , 0xF5 , 0x33 , None , ' Buy Deku Seeds (30) ' , ( " the Lost Woods " , " Forest " , " Deku Scrub " , " Grottos " ) ) ) ,
( " LW GS Bean Patch Near Bridge " , ( " GS Token " , 0x0D , 0x01 , None , ' Gold Skulltula Token ' , ( " the Lost Woods " , " Skulltulas " , ) ) ) ,
( " LW GS Bean Patch Near Theater " , ( " GS Token " , 0x0D , 0x02 , None , ' Gold Skulltula Token ' , ( " the Lost Woods " , " Skulltulas " , ) ) ) ,
( " LW GS Above Theater " , ( " GS Token " , 0x0D , 0x04 , None , ' Gold Skulltula Token ' , ( " the Lost Woods " , " Skulltulas " , ) ) ) ,
# Sacred Forest Meadow
( " SFM Wolfos Grotto Chest " , ( " Chest " , 0x3E , 0x11 , None , ' Rupees (50) ' , ( " Sacred Forest Meadow " , " Forest " , " Grottos " ) ) ) ,
( " SFM Deku Scrub Grotto Front " , ( " GrottoNPC " , 0xEE , 0x3A , None , ' Buy Green Potion ' , ( " Sacred Forest Meadow " , " Forest " , " Deku Scrub " , " Grottos " ) ) ) ,
( " SFM Deku Scrub Grotto Rear " , ( " GrottoNPC " , 0xEE , 0x39 , None , ' Buy Red Potion [30] ' , ( " Sacred Forest Meadow " , " Forest " , " Deku Scrub " , " Grottos " ) ) ) ,
( " SFM GS " , ( " GS Token " , 0x0D , 0x08 , None , ' Gold Skulltula Token ' , ( " Sacred Forest Meadow " , " Skulltulas " , ) ) ) ,
# Hyrule Field
( " HF Ocarina of Time Item " , ( " NPC " , 0x51 , 0x0C , None , ' Ocarina ' , ( " Hyrule Field " , " Need Spiritual Stones " , ) ) ) ,
( " HF Near Market Grotto Chest " , ( " Chest " , 0x3E , 0x00 , None , ' Rupees (5) ' , ( " Hyrule Field " , " Grottos " , ) ) ) ,
( " HF Tektite Grotto Freestanding PoH " , ( " Collectable " , 0x3E , 0x01 , None , ' Piece of Heart ' , ( " Hyrule Field " , " Grottos " , ) ) ) ,
( " HF Southeast Grotto Chest " , ( " Chest " , 0x3E , 0x02 , None , ' Rupees (20) ' , ( " Hyrule Field " , " Grottos " , ) ) ) ,
( " HF Open Grotto Chest " , ( " Chest " , 0x3E , 0x03 , None , ' Rupees (5) ' , ( " Hyrule Field " , " Grottos " , ) ) ) ,
( " HF Deku Scrub Grotto " , ( " GrottoNPC " , 0xE6 , 0x3E , None , ' Piece of Heart ' , ( " Hyrule Field " , " Deku Scrub " , " Deku Scrub Upgrades " , " Grottos " ) ) ) ,
( " HF Cow Grotto Cow " , ( " NPC " , 0x3E , 0x16 , None , ' Milk ' , ( " Hyrule Field " , " Cow " , " Grottos " ) ) ) ,
( " HF GS Cow Grotto " , ( " GS Token " , 0x0A , 0x01 , None , ' Gold Skulltula Token ' , ( " Hyrule Field " , " Skulltulas " , " Grottos " ) ) ) ,
( " HF GS Near Kak Grotto " , ( " GS Token " , 0x0A , 0x02 , None , ' Gold Skulltula Token ' , ( " Hyrule Field " , " Skulltulas " , " Grottos " ) ) ) ,
# Market
( " Market Shooting Gallery Reward " , ( " NPC " , 0x42 , 0x60 , None , ' Slingshot ' , ( " the Market " , " Market " , " Minigames " ) ) ) ,
( " Market Bombchu Bowling First Prize " , ( " NPC " , 0x4B , 0x34 , None , ' Bomb Bag ' , ( " the Market " , " Market " , " Minigames " ) ) ) ,
( " Market Bombchu Bowling Second Prize " , ( " NPC " , 0x4B , 0x3E , None , ' Piece of Heart ' , ( " the Market " , " Market " , " Minigames " ) ) ) ,
( " Market Bombchu Bowling Bombchus " , ( " Event " , 0x4B , None , None , ' Bombchu Drop ' , ( " the Market " , " Market " , " Minigames " ) ) ) ,
( " Market Lost Dog " , ( " NPC " , 0x35 , 0x3E , None , ' Piece of Heart ' , ( " the Market " , " Market " , ) ) ) ,
( " Market Treasure Chest Game Reward " , ( " Chest " , 0x10 , 0x0A , None , ' Piece of Heart (Treasure Chest Game) ' , ( " the Market " , " Market " , " Minigames " ) ) ) ,
( " Market 10 Big Poes " , ( " NPC " , 0x4D , 0x0F , None , ' Bottle ' , ( " the Market " , " Hyrule Castle " , ) ) ) ,
( " Market GS Guard House " , ( " GS Token " , 0x0E , 0x08 , None , ' Gold Skulltula Token ' , ( " the Market " , " Skulltulas " , ) ) ) ,
( " Market Bazaar Item 1 " , ( " Shop " , 0x2C , 0x30 , ( shop_address ( 4 , 0 ) , None ) , ' Buy Hylian Shield ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bazaar Item 2 " , ( " Shop " , 0x2C , 0x31 , ( shop_address ( 4 , 1 ) , None ) , ' Buy Bombs (5) [35] ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bazaar Item 3 " , ( " Shop " , 0x2C , 0x32 , ( shop_address ( 4 , 2 ) , None ) , ' Buy Deku Nut (5) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bazaar Item 4 " , ( " Shop " , 0x2C , 0x33 , ( shop_address ( 4 , 3 ) , None ) , ' Buy Heart ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bazaar Item 5 " , ( " Shop " , 0x2C , 0x34 , ( shop_address ( 4 , 4 ) , None ) , ' Buy Arrows (10) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bazaar Item 6 " , ( " Shop " , 0x2C , 0x35 , ( shop_address ( 4 , 5 ) , None ) , ' Buy Arrows (50) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bazaar Item 7 " , ( " Shop " , 0x2C , 0x36 , ( shop_address ( 4 , 6 ) , None ) , ' Buy Deku Stick (1) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bazaar Item 8 " , ( " Shop " , 0x2C , 0x37 , ( shop_address ( 4 , 7 ) , None ) , ' Buy Arrows (30) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Potion Shop Item 1 " , ( " Shop " , 0x31 , 0x30 , ( shop_address ( 3 , 0 ) , None ) , ' Buy Green Potion ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Potion Shop Item 2 " , ( " Shop " , 0x31 , 0x31 , ( shop_address ( 3 , 1 ) , None ) , ' Buy Blue Fire ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Potion Shop Item 3 " , ( " Shop " , 0x31 , 0x32 , ( shop_address ( 3 , 2 ) , None ) , ' Buy Red Potion [30] ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Potion Shop Item 4 " , ( " Shop " , 0x31 , 0x33 , ( shop_address ( 3 , 3 ) , None ) , ' Buy Fairy \' s Spirit ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Potion Shop Item 5 " , ( " Shop " , 0x31 , 0x34 , ( shop_address ( 3 , 4 ) , None ) , ' Buy Deku Nut (5) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Potion Shop Item 6 " , ( " Shop " , 0x31 , 0x35 , ( shop_address ( 3 , 5 ) , None ) , ' Buy Bottle Bug ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Potion Shop Item 7 " , ( " Shop " , 0x31 , 0x36 , ( shop_address ( 3 , 6 ) , None ) , ' Buy Poe ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Potion Shop Item 8 " , ( " Shop " , 0x31 , 0x37 , ( shop_address ( 3 , 7 ) , None ) , ' Buy Fish ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bombchu Shop Item 1 " , ( " Shop " , 0x32 , 0x30 , ( shop_address ( 2 , 0 ) , None ) , ' Buy Bombchu (5) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bombchu Shop Item 2 " , ( " Shop " , 0x32 , 0x31 , ( shop_address ( 2 , 1 ) , None ) , ' Buy Bombchu (10) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bombchu Shop Item 3 " , ( " Shop " , 0x32 , 0x32 , ( shop_address ( 2 , 2 ) , None ) , ' Buy Bombchu (10) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bombchu Shop Item 4 " , ( " Shop " , 0x32 , 0x33 , ( shop_address ( 2 , 3 ) , None ) , ' Buy Bombchu (10) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bombchu Shop Item 5 " , ( " Shop " , 0x32 , 0x34 , ( shop_address ( 2 , 4 ) , None ) , ' Buy Bombchu (20) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bombchu Shop Item 6 " , ( " Shop " , 0x32 , 0x35 , ( shop_address ( 2 , 5 ) , None ) , ' Buy Bombchu (20) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bombchu Shop Item 7 " , ( " Shop " , 0x32 , 0x36 , ( shop_address ( 2 , 6 ) , None ) , ' Buy Bombchu (20) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " Market Bombchu Shop Item 8 " , ( " Shop " , 0x32 , 0x37 , ( shop_address ( 2 , 7 ) , None ) , ' Buy Bombchu (20) ' , ( " the Market " , " Market " , " Shops " ) ) ) ,
( " ToT Light Arrows Cutscene " , ( " Cutscene " , 0xFF , 0x01 , None , ' Light Arrows ' , ( " Temple of Time " , " Market " , ) ) ) ,
# Hyrule Castle
( " HC Malon Egg " , ( " NPC " , 0x5F , 0x47 , None , ' Weird Egg ' , ( " Hyrule Castle " , " Market " , ) ) ) ,
( " HC Zeldas Letter " , ( " NPC " , 0x4A , 0x0B , None , ' Zeldas Letter ' , ( " Hyrule Castle " , " Market " , ) ) ) ,
( " HC Great Fairy Reward " , ( " Cutscene " , 0xFF , 0x11 , None , ' Dins Fire ' , ( " Hyrule Castle " , " Market " , " Fairies " ) ) ) ,
( " HC GS Tree " , ( " GS Token " , 0x0E , 0x04 , None , ' Gold Skulltula Token ' , ( " Hyrule Castle " , " Skulltulas " , ) ) ) ,
( " HC GS Storms Grotto " , ( " GS Token " , 0x0E , 0x02 , None , ' Gold Skulltula Token ' , ( " Hyrule Castle " , " Skulltulas " , " Grottos " ) ) ) ,
# Lon Lon Ranch
2022-05-01 18:05:52 +00:00
( " LLR Talons Chickens " , ( " NPC " , 0x4C , 0x14 , None , ' Bottle with Milk ' , ( " Lon Lon Ranch " , " Minigames " ) ) ) ,
Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
( " LLR Freestanding PoH " , ( " Collectable " , 0x4C , 0x01 , None , ' Piece of Heart ' , ( " Lon Lon Ranch " , ) ) ) ,
( " LLR Deku Scrub Grotto Left " , ( " GrottoNPC " , 0xFC , 0x30 , None , ' Buy Deku Nut (5) ' , ( " Lon Lon Ranch " , " Deku Scrub " , " Grottos " ) ) ) ,
( " LLR Deku Scrub Grotto Center " , ( " GrottoNPC " , 0xFC , 0x33 , None , ' Buy Deku Seeds (30) ' , ( " Lon Lon Ranch " , " Deku Scrub " , " Grottos " ) ) ) ,
( " LLR Deku Scrub Grotto Right " , ( " GrottoNPC " , 0xFC , 0x37 , None , ' Buy Bombs (5) [35] ' , ( " Lon Lon Ranch " , " Deku Scrub " , " Grottos " ) ) ) ,
( " LLR Stables Left Cow " , ( " NPC " , 0x36 , 0x15 , None , ' Milk ' , ( " Lon Lon Ranch " , " Cow " , ) ) ) ,
( " LLR Stables Right Cow " , ( " NPC " , 0x36 , 0x16 , None , ' Milk ' , ( " Lon Lon Ranch " , " Cow " , ) ) ) ,
( " LLR Tower Left Cow " , ( " NPC " , 0x4C , 0x16 , None , ' Milk ' , ( " Lon Lon Ranch " , " Cow " , ) ) ) ,
( " LLR Tower Right Cow " , ( " NPC " , 0x4C , 0x15 , None , ' Milk ' , ( " Lon Lon Ranch " , " Cow " , ) ) ) ,
( " LLR GS House Window " , ( " GS Token " , 0x0B , 0x04 , None , ' Gold Skulltula Token ' , ( " Lon Lon Ranch " , " Skulltulas " , ) ) ) ,
( " LLR GS Tree " , ( " GS Token " , 0x0B , 0x08 , None , ' Gold Skulltula Token ' , ( " Lon Lon Ranch " , " Skulltulas " , ) ) ) ,
( " LLR GS Rain Shed " , ( " GS Token " , 0x0B , 0x02 , None , ' Gold Skulltula Token ' , ( " Lon Lon Ranch " , " Skulltulas " , ) ) ) ,
( " LLR GS Back Wall " , ( " GS Token " , 0x0B , 0x01 , None , ' Gold Skulltula Token ' , ( " Lon Lon Ranch " , " Skulltulas " , ) ) ) ,
# Kakariko
( " Kak Anju as Child " , ( " NPC " , 0x52 , 0x0F , None , ' Bottle ' , ( " Kakariko Village " , " Kakariko " , " Minigames " ) ) ) ,
( " Kak Anju as Adult " , ( " NPC " , 0x52 , 0x1D , None , ' Pocket Egg ' , ( " Kakariko Village " , " Kakariko " , ) ) ) ,
( " Kak Impas House Freestanding PoH " , ( " Collectable " , 0x37 , 0x01 , None , ' Piece of Heart ' , ( " Kakariko Village " , " Kakariko " , ) ) ) ,
( " Kak Windmill Freestanding PoH " , ( " Collectable " , 0x48 , 0x01 , None , ' Piece of Heart ' , ( " Kakariko Village " , " Kakariko " , ) ) ) ,
( " Kak Man on Roof " , ( " NPC " , 0x52 , 0x3E , None , ' Piece of Heart ' , ( " Kakariko Village " , " Kakariko " , ) ) ) ,
( " Kak Open Grotto Chest " , ( " Chest " , 0x3E , 0x08 , None , ' Rupees (20) ' , ( " Kakariko Village " , " Kakariko " , " Grottos " ) ) ) ,
( " Kak Redead Grotto Chest " , ( " Chest " , 0x3E , 0x0A , None , ' Rupees (200) ' , ( " Kakariko Village " , " Kakariko " , " Grottos " ) ) ) ,
( " Kak Shooting Gallery Reward " , ( " NPC " , 0x42 , 0x30 , None , ' Bow ' , ( " Kakariko Village " , " Kakariko " , " Minigames " ) ) ) ,
( " Kak 10 Gold Skulltula Reward " , ( " NPC " , 0x50 , 0x45 , None , ' Progressive Wallet ' , ( " Kakariko Village " , " Kakariko " , " Skulltula House " ) ) ) ,
( " Kak 20 Gold Skulltula Reward " , ( " NPC " , 0x50 , 0x39 , None , ' Stone of Agony ' , ( " Kakariko Village " , " Kakariko " , " Skulltula House " ) ) ) ,
( " Kak 30 Gold Skulltula Reward " , ( " NPC " , 0x50 , 0x46 , None , ' Progressive Wallet ' , ( " Kakariko Village " , " Kakariko " , " Skulltula House " ) ) ) ,
( " Kak 40 Gold Skulltula Reward " , ( " NPC " , 0x50 , 0x03 , None , ' Bombchus (10) ' , ( " Kakariko Village " , " Kakariko " , " Skulltula House " ) ) ) ,
( " Kak 50 Gold Skulltula Reward " , ( " NPC " , 0x50 , 0x3E , None , ' Piece of Heart ' , ( " Kakariko Village " , " Kakariko " , " Skulltula House " ) ) ) ,
( " Kak Impas House Cow " , ( " NPC " , 0x37 , 0x15 , None , ' Milk ' , ( " Kakariko Village " , " Kakariko " , " Cow " ) ) ) ,
( " Kak GS Tree " , ( " GS Token " , 0x10 , 0x20 , None , ' Gold Skulltula Token ' , ( " Kakariko Village " , " Skulltulas " , ) ) ) ,
( " Kak GS Guards House " , ( " GS Token " , 0x10 , 0x02 , None , ' Gold Skulltula Token ' , ( " Kakariko Village " , " Skulltulas " , ) ) ) ,
( " Kak GS Watchtower " , ( " GS Token " , 0x10 , 0x04 , None , ' Gold Skulltula Token ' , ( " Kakariko Village " , " Skulltulas " , ) ) ) ,
( " Kak GS Skulltula House " , ( " GS Token " , 0x10 , 0x10 , None , ' Gold Skulltula Token ' , ( " Kakariko Village " , " Skulltulas " , ) ) ) ,
( " Kak GS House Under Construction " , ( " GS Token " , 0x10 , 0x08 , None , ' Gold Skulltula Token ' , ( " Kakariko Village " , " Skulltulas " , ) ) ) ,
( " Kak GS Above Impas House " , ( " GS Token " , 0x10 , 0x40 , None , ' Gold Skulltula Token ' , ( " Kakariko Village " , " Skulltulas " , ) ) ) ,
( " Kak Bazaar Item 1 " , ( " Shop " , 0x2C , 0x38 , ( shop_address ( 5 , 0 ) , None ) , ' Buy Hylian Shield ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Bazaar Item 2 " , ( " Shop " , 0x2C , 0x39 , ( shop_address ( 5 , 1 ) , None ) , ' Buy Bombs (5) [35] ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Bazaar Item 3 " , ( " Shop " , 0x2C , 0x3A , ( shop_address ( 5 , 2 ) , None ) , ' Buy Deku Nut (5) ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Bazaar Item 4 " , ( " Shop " , 0x2C , 0x3B , ( shop_address ( 5 , 3 ) , None ) , ' Buy Heart ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Bazaar Item 5 " , ( " Shop " , 0x2C , 0x3D , ( shop_address ( 5 , 4 ) , None ) , ' Buy Arrows (10) ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Bazaar Item 6 " , ( " Shop " , 0x2C , 0x3E , ( shop_address ( 5 , 5 ) , None ) , ' Buy Arrows (50) ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Bazaar Item 7 " , ( " Shop " , 0x2C , 0x3F , ( shop_address ( 5 , 6 ) , None ) , ' Buy Deku Stick (1) ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Bazaar Item 8 " , ( " Shop " , 0x2C , 0x40 , ( shop_address ( 5 , 7 ) , None ) , ' Buy Arrows (30) ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Potion Shop Item 1 " , ( " Shop " , 0x30 , 0x30 , ( shop_address ( 1 , 0 ) , None ) , ' Buy Deku Nut (5) ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Potion Shop Item 2 " , ( " Shop " , 0x30 , 0x31 , ( shop_address ( 1 , 1 ) , None ) , ' Buy Fish ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Potion Shop Item 3 " , ( " Shop " , 0x30 , 0x32 , ( shop_address ( 1 , 2 ) , None ) , ' Buy Red Potion [30] ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Potion Shop Item 4 " , ( " Shop " , 0x30 , 0x33 , ( shop_address ( 1 , 3 ) , None ) , ' Buy Green Potion ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Potion Shop Item 5 " , ( " Shop " , 0x30 , 0x34 , ( shop_address ( 1 , 4 ) , None ) , ' Buy Blue Fire ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Potion Shop Item 6 " , ( " Shop " , 0x30 , 0x35 , ( shop_address ( 1 , 5 ) , None ) , ' Buy Bottle Bug ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Potion Shop Item 7 " , ( " Shop " , 0x30 , 0x36 , ( shop_address ( 1 , 6 ) , None ) , ' Buy Poe ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
( " Kak Potion Shop Item 8 " , ( " Shop " , 0x30 , 0x37 , ( shop_address ( 1 , 7 ) , None ) , ' Buy Fairy \' s Spirit ' , ( " Kakariko Village " , " Kakariko " , " Shops " ) ) ) ,
# Graveyard
( " Graveyard Shield Grave Chest " , ( " Chest " , 0x40 , 0x00 , None , ' Hylian Shield ' , ( " the Graveyard " , " Kakariko " , ) ) ) ,
( " Graveyard Heart Piece Grave Chest " , ( " Chest " , 0x3F , 0x00 , None , ' Piece of Heart ' , ( " the Graveyard " , " Kakariko " , ) ) ) ,
2022-05-01 18:05:52 +00:00
( " Graveyard Royal Familys Tomb Chest " , ( " Chest " , 0x41 , 0x00 , None , ' Bombs (5) ' , ( " the Graveyard " , " Kakariko " , ) ) ) ,
Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
( " Graveyard Freestanding PoH " , ( " Collectable " , 0x53 , 0x04 , None , ' Piece of Heart ' , ( " the Graveyard " , " Kakariko " , ) ) ) ,
( " Graveyard Dampe Gravedigging Tour " , ( " Collectable " , 0x53 , 0x08 , None , ' Piece of Heart ' , ( " the Graveyard " , " Kakariko " , ) ) ) ,
( " Graveyard Hookshot Chest " , ( " Chest " , 0x48 , 0x00 , None , ' Progressive Hookshot ' , ( " the Graveyard " , " Kakariko " , ) ) ) ,
( " Graveyard Dampe Race Freestanding PoH " , ( " Collectable " , 0x48 , 0x07 , None , ' Piece of Heart ' , ( " the Graveyard " , " Kakariko " , " Minigames " ) ) ) ,
( " Graveyard GS Bean Patch " , ( " GS Token " , 0x10 , 0x01 , None , ' Gold Skulltula Token ' , ( " the Graveyard " , " Skulltulas " , ) ) ) ,
( " Graveyard GS Wall " , ( " GS Token " , 0x10 , 0x80 , None , ' Gold Skulltula Token ' , ( " the Graveyard " , " Skulltulas " , ) ) ) ,
# Death Mountain Trail
( " DMT Freestanding PoH " , ( " Collectable " , 0x60 , 0x1E , None , ' Piece of Heart ' , ( " Death Mountain Trail " , " Death Mountain " , ) ) ) ,
( " DMT Chest " , ( " Chest " , 0x60 , 0x01 , None , ' Rupees (50) ' , ( " Death Mountain Trail " , " Death Mountain " , ) ) ) ,
( " DMT Storms Grotto Chest " , ( " Chest " , 0x3E , 0x17 , None , ' Rupees (200) ' , ( " Death Mountain Trail " , " Death Mountain " , " Grottos " ) ) ) ,
( " DMT Great Fairy Reward " , ( " Cutscene " , 0xFF , 0x13 , None , ' Magic Meter ' , ( " Death Mountain Trail " , " Death Mountain " , " Fairies " ) ) ) ,
( " DMT Biggoron " , ( " NPC " , 0x60 , 0x57 , None , ' Biggoron Sword ' , ( " Death Mountain Trail " , " Death Mountain " , ) ) ) ,
( " DMT Cow Grotto Cow " , ( " NPC " , 0x3E , 0x15 , None , ' Milk ' , ( " Death Mountain Trail " , " Death Mountain " , " Cow " , " Grottos " ) ) ) ,
( " DMT GS Near Kak " , ( " GS Token " , 0x0F , 0x04 , None , ' Gold Skulltula Token ' , ( " Death Mountain Trail " , " Skulltulas " , ) ) ) ,
( " DMT GS Bean Patch " , ( " GS Token " , 0x0F , 0x02 , None , ' Gold Skulltula Token ' , ( " Death Mountain Trail " , " Skulltulas " , ) ) ) ,
( " DMT GS Above Dodongos Cavern " , ( " GS Token " , 0x0F , 0x08 , None , ' Gold Skulltula Token ' , ( " Death Mountain Trail " , " Skulltulas " , ) ) ) ,
( " DMT GS Falling Rocks Path " , ( " GS Token " , 0x0F , 0x10 , None , ' Gold Skulltula Token ' , ( " Death Mountain Trail " , " Skulltulas " , ) ) ) ,
# Goron City
( " GC Darunias Joy " , ( " NPC " , 0x62 , 0x54 , None , ' Progressive Strength Upgrade ' , ( " Goron City " , ) ) ) ,
( " GC Pot Freestanding PoH " , ( " Collectable " , 0x62 , 0x1F , None , ' Piece of Heart ' , ( " Goron City " , " Goron City " , ) ) ) ,
( " GC Rolling Goron as Child " , ( " NPC " , 0x62 , 0x34 , None , ' Bomb Bag ' , ( " Goron City " , ) ) ) ,
( " GC Rolling Goron as Adult " , ( " NPC " , 0x62 , 0x2C , None , ' Goron Tunic ' , ( " Goron City " , ) ) ) ,
( " GC Medigoron " , ( " NPC " , 0x62 , 0x28 , None , ' Giants Knife ' , ( " Goron City " , ) ) ) ,
( " GC Maze Left Chest " , ( " Chest " , 0x62 , 0x00 , None , ' Rupees (200) ' , ( " Goron City " , ) ) ) ,
( " GC Maze Right Chest " , ( " Chest " , 0x62 , 0x01 , None , ' Rupees (50) ' , ( " Goron City " , ) ) ) ,
( " GC Maze Center Chest " , ( " Chest " , 0x62 , 0x02 , None , ' Rupees (50) ' , ( " Goron City " , ) ) ) ,
( " GC Deku Scrub Grotto Left " , ( " GrottoNPC " , 0xFB , 0x30 , None , ' Buy Deku Nut (5) ' , ( " Goron City " , " Deku Scrub " , " Grottos " ) ) ) ,
( " GC Deku Scrub Grotto Center " , ( " GrottoNPC " , 0xFB , 0x33 , None , ' Buy Arrows (30) ' , ( " Goron City " , " Deku Scrub " , " Grottos " ) ) ) ,
( " GC Deku Scrub Grotto Right " , ( " GrottoNPC " , 0xFB , 0x37 , None , ' Buy Bombs (5) [35] ' , ( " Goron City " , " Deku Scrub " , " Grottos " ) ) ) ,
( " GC GS Center Platform " , ( " GS Token " , 0x0F , 0x20 , None , ' Gold Skulltula Token ' , ( " Goron City " , " Skulltulas " , ) ) ) ,
( " GC GS Boulder Maze " , ( " GS Token " , 0x0F , 0x40 , None , ' Gold Skulltula Token ' , ( " Goron City " , " Skulltulas " , ) ) ) ,
( " GC Shop Item 1 " , ( " Shop " , 0x2E , 0x30 , ( shop_address ( 8 , 0 ) , None ) , ' Buy Bombs (5) [25] ' , ( " Goron City " , " Shops " , ) ) ) ,
( " GC Shop Item 2 " , ( " Shop " , 0x2E , 0x31 , ( shop_address ( 8 , 1 ) , None ) , ' Buy Bombs (10) ' , ( " Goron City " , " Shops " , ) ) ) ,
( " GC Shop Item 3 " , ( " Shop " , 0x2E , 0x32 , ( shop_address ( 8 , 2 ) , None ) , ' Buy Bombs (20) ' , ( " Goron City " , " Shops " , ) ) ) ,
( " GC Shop Item 4 " , ( " Shop " , 0x2E , 0x33 , ( shop_address ( 8 , 3 ) , None ) , ' Buy Bombs (30) ' , ( " Goron City " , " Shops " , ) ) ) ,
( " GC Shop Item 5 " , ( " Shop " , 0x2E , 0x34 , ( shop_address ( 8 , 4 ) , None ) , ' Buy Goron Tunic ' , ( " Goron City " , " Shops " , ) ) ) ,
( " GC Shop Item 6 " , ( " Shop " , 0x2E , 0x35 , ( shop_address ( 8 , 5 ) , None ) , ' Buy Heart ' , ( " Goron City " , " Shops " , ) ) ) ,
( " GC Shop Item 7 " , ( " Shop " , 0x2E , 0x36 , ( shop_address ( 8 , 6 ) , None ) , ' Buy Red Potion [40] ' , ( " Goron City " , " Shops " , ) ) ) ,
( " GC Shop Item 8 " , ( " Shop " , 0x2E , 0x37 , ( shop_address ( 8 , 7 ) , None ) , ' Buy Heart ' , ( " Goron City " , " Shops " , ) ) ) ,
# Death Mountain Crater
( " DMC Volcano Freestanding PoH " , ( " Collectable " , 0x61 , 0x08 , None , ' Piece of Heart ' , ( " Death Mountain Crater " , " Death Mountain " , ) ) ) ,
( " DMC Wall Freestanding PoH " , ( " Collectable " , 0x61 , 0x02 , None , ' Piece of Heart ' , ( " Death Mountain Crater " , " Death Mountain " , ) ) ) ,
( " DMC Upper Grotto Chest " , ( " Chest " , 0x3E , 0x1A , None , ' Bombs (20) ' , ( " Death Mountain Crater " , " Death Mountain " , " Grottos " ) ) ) ,
( " DMC Great Fairy Reward " , ( " Cutscene " , 0xFF , 0x14 , None , ' Magic Meter ' , ( " Death Mountain Crater " , " Death Mountain " , " Fairies " , ) ) ) ,
( " DMC Deku Scrub " , ( " NPC " , 0x61 , 0x37 , None , ' Buy Bombs (5) [35] ' , ( " Death Mountain Crater " , " Death Mountain " , " Deku Scrub " ) ) ) ,
( " DMC Deku Scrub Grotto Left " , ( " GrottoNPC " , 0xF9 , 0x30 , None , ' Buy Deku Nut (5) ' , ( " Death Mountain Crater " , " Death Mountain " , " Deku Scrub " , " Grottos " ) ) ) ,
( " DMC Deku Scrub Grotto Center " , ( " GrottoNPC " , 0xF9 , 0x33 , None , ' Buy Arrows (30) ' , ( " Death Mountain Crater " , " Death Mountain " , " Deku Scrub " , " Grottos " ) ) ) ,
( " DMC Deku Scrub Grotto Right " , ( " GrottoNPC " , 0xF9 , 0x37 , None , ' Buy Bombs (5) [35] ' , ( " Death Mountain Crater " , " Death Mountain " , " Deku Scrub " , " Grottos " ) ) ) ,
( " DMC GS Crate " , ( " GS Token " , 0x0F , 0x80 , None , ' Gold Skulltula Token ' , ( " Death Mountain Crater " , " Skulltulas " , ) ) ) ,
( " DMC GS Bean Patch " , ( " GS Token " , 0x0F , 0x01 , None , ' Gold Skulltula Token ' , ( " Death Mountain Crater " , " Skulltulas " , ) ) ) ,
# Zora's River
( " ZR Magic Bean Salesman " , ( " NPC " , 0x54 , 0x16 , None , ' Magic Bean ' , ( " Zora ' s River " , ) ) ) ,
( " ZR Open Grotto Chest " , ( " Chest " , 0x3E , 0x09 , None , ' Rupees (20) ' , ( " Zora ' s River " , " Grottos " , ) ) ) ,
( " ZR Frogs in the Rain " , ( " NPC " , 0x54 , 0x3E , None , ' Piece of Heart ' , ( " Zora ' s River " , " Minigames " , ) ) ) ,
( " ZR Frogs Ocarina Game " , ( " NPC " , 0x54 , 0x76 , None , ' Piece of Heart ' , ( " Zora ' s River " , ) ) ) ,
( " ZR Near Open Grotto Freestanding PoH " , ( " Collectable " , 0x54 , 0x04 , None , ' Piece of Heart ' , ( " Zora ' s River " , ) ) ) ,
( " ZR Near Domain Freestanding PoH " , ( " Collectable " , 0x54 , 0x0B , None , ' Piece of Heart ' , ( " Zora ' s River " , ) ) ) ,
( " ZR Deku Scrub Grotto Front " , ( " GrottoNPC " , 0xEB , 0x3A , None , ' Buy Green Potion ' , ( " Zora ' s River " , " Deku Scrub " , " Grottos " ) ) ) ,
( " ZR Deku Scrub Grotto Rear " , ( " GrottoNPC " , 0xEB , 0x39 , None , ' Buy Red Potion [30] ' , ( " Zora ' s River " , " Deku Scrub " , " Grottos " ) ) ) ,
( " ZR GS Tree " , ( " GS Token " , 0x11 , 0x02 , None , ' Gold Skulltula Token ' , ( " Zora ' s River " , " Skulltulas " , ) ) ) ,
( " ZR GS Ladder " , ( " GS Token " , 0x11 , 0x01 , None , ' Gold Skulltula Token ' , ( " Zora ' s River " , " Skulltulas " , ) ) ) ,
( " ZR GS Near Raised Grottos " , ( " GS Token " , 0x11 , 0x10 , None , ' Gold Skulltula Token ' , ( " Zora ' s River " , " Skulltulas " , ) ) ) ,
( " ZR GS Above Bridge " , ( " GS Token " , 0x11 , 0x08 , None , ' Gold Skulltula Token ' , ( " Zora ' s River " , " Skulltulas " , ) ) ) ,
# Zora's Domain
( " ZD Diving Minigame " , ( " NPC " , 0x58 , 0x37 , None , ' Progressive Scale ' , ( " Zora ' s Domain " , " Minigames " , ) ) ) ,
( " ZD Chest " , ( " Chest " , 0x58 , 0x00 , None , ' Piece of Heart ' , ( " Zora ' s Domain " , ) ) ) ,
( " ZD King Zora Thawed " , ( " NPC " , 0x58 , 0x2D , None , ' Zora Tunic ' , ( " Zora ' s Domain " , ) ) ) ,
( " ZD GS Frozen Waterfall " , ( " GS Token " , 0x11 , 0x40 , None , ' Gold Skulltula Token ' , ( " Zora ' s Domain " , " Skulltulas " , ) ) ) ,
( " ZD Shop Item 1 " , ( " Shop " , 0x2F , 0x30 , ( shop_address ( 7 , 0 ) , None ) , ' Buy Zora Tunic ' , ( " Zora ' s Domain " , " Shops " , ) ) ) ,
( " ZD Shop Item 2 " , ( " Shop " , 0x2F , 0x31 , ( shop_address ( 7 , 1 ) , None ) , ' Buy Arrows (10) ' , ( " Zora ' s Domain " , " Shops " , ) ) ) ,
( " ZD Shop Item 3 " , ( " Shop " , 0x2F , 0x32 , ( shop_address ( 7 , 2 ) , None ) , ' Buy Heart ' , ( " Zora ' s Domain " , " Shops " , ) ) ) ,
( " ZD Shop Item 4 " , ( " Shop " , 0x2F , 0x33 , ( shop_address ( 7 , 3 ) , None ) , ' Buy Arrows (30) ' , ( " Zora ' s Domain " , " Shops " , ) ) ) ,
( " ZD Shop Item 5 " , ( " Shop " , 0x2F , 0x34 , ( shop_address ( 7 , 4 ) , None ) , ' Buy Deku Nut (5) ' , ( " Zora ' s Domain " , " Shops " , ) ) ) ,
( " ZD Shop Item 6 " , ( " Shop " , 0x2F , 0x35 , ( shop_address ( 7 , 5 ) , None ) , ' Buy Arrows (50) ' , ( " Zora ' s Domain " , " Shops " , ) ) ) ,
( " ZD Shop Item 7 " , ( " Shop " , 0x2F , 0x36 , ( shop_address ( 7 , 6 ) , None ) , ' Buy Fish ' , ( " Zora ' s Domain " , " Shops " , ) ) ) ,
( " ZD Shop Item 8 " , ( " Shop " , 0x2F , 0x37 , ( shop_address ( 7 , 7 ) , None ) , ' Buy Red Potion [50] ' , ( " Zora ' s Domain " , " Shops " , ) ) ) ,
# Zora's Fountain
( " ZF Great Fairy Reward " , ( " Cutscene " , 0xFF , 0x10 , None , ' Farores Wind ' , ( " Zora ' s Fountain " , " Fairies " , ) ) ) ,
( " ZF Iceberg Freestanding PoH " , ( " Collectable " , 0x59 , 0x01 , None , ' Piece of Heart ' , ( " Zora ' s Fountain " , ) ) ) ,
( " ZF Bottom Freestanding PoH " , ( " Collectable " , 0x59 , 0x14 , None , ' Piece of Heart ' , ( " Zora ' s Fountain " , ) ) ) ,
( " ZF GS Above the Log " , ( " GS Token " , 0x11 , 0x04 , None , ' Gold Skulltula Token ' , ( " Zora ' s Fountain " , " Skulltulas " , ) ) ) ,
( " ZF GS Tree " , ( " GS Token " , 0x11 , 0x80 , None , ' Gold Skulltula Token ' , ( " Zora ' s Fountain " , " Skulltulas " , ) ) ) ,
( " ZF GS Hidden Cave " , ( " GS Token " , 0x11 , 0x20 , None , ' Gold Skulltula Token ' , ( " Zora ' s Fountain " , " Skulltulas " , ) ) ) ,
# Lake Hylia
( " LH Underwater Item " , ( " NPC " , 0x57 , 0x15 , None , ' Rutos Letter ' , ( " Lake Hylia " , ) ) ) ,
( " LH Child Fishing " , ( " NPC " , 0x49 , 0x3E , None , ' Piece of Heart ' , ( " Lake Hylia " , " Minigames " , ) ) ) ,
( " LH Adult Fishing " , ( " NPC " , 0x49 , 0x38 , None , ' Progressive Scale ' , ( " Lake Hylia " , " Minigames " , ) ) ) ,
( " LH Lab Dive " , ( " NPC " , 0x38 , 0x3E , None , ' Piece of Heart ' , ( " Lake Hylia " , ) ) ) ,
( " LH Freestanding PoH " , ( " Collectable " , 0x57 , 0x1E , None , ' Piece of Heart ' , ( " Lake Hylia " , ) ) ) ,
( " LH Sun " , ( " NPC " , 0x57 , 0x58 , None , ' Fire Arrows ' , ( " Lake Hylia " , ) ) ) ,
( " LH Deku Scrub Grotto Left " , ( " GrottoNPC " , 0xEF , 0x30 , None , ' Buy Deku Nut (5) ' , ( " Lake Hylia " , " Deku Scrub " , " Grottos " ) ) ) ,
( " LH Deku Scrub Grotto Center " , ( " GrottoNPC " , 0xEF , 0x33 , None , ' Buy Deku Seeds (30) ' , ( " Lake Hylia " , " Deku Scrub " , " Grottos " ) ) ) ,
( " LH Deku Scrub Grotto Right " , ( " GrottoNPC " , 0xEF , 0x37 , None , ' Buy Bombs (5) [35] ' , ( " Lake Hylia " , " Deku Scrub " , " Grottos " ) ) ) ,
( " LH GS Bean Patch " , ( " GS Token " , 0x12 , 0x01 , None , ' Gold Skulltula Token ' , ( " Lake Hylia " , " Skulltulas " , ) ) ) ,
( " LH GS Lab Wall " , ( " GS Token " , 0x12 , 0x04 , None , ' Gold Skulltula Token ' , ( " Lake Hylia " , " Skulltulas " , ) ) ) ,
( " LH GS Small Island " , ( " GS Token " , 0x12 , 0x02 , None , ' Gold Skulltula Token ' , ( " Lake Hylia " , " Skulltulas " , ) ) ) ,
( " LH GS Lab Crate " , ( " GS Token " , 0x12 , 0x08 , None , ' Gold Skulltula Token ' , ( " Lake Hylia " , " Skulltulas " , ) ) ) ,
( " LH GS Tree " , ( " GS Token " , 0x12 , 0x10 , None , ' Gold Skulltula Token ' , ( " Lake Hylia " , " Skulltulas " , ) ) ) ,
# Gerudo Valley
( " GV Crate Freestanding PoH " , ( " Collectable " , 0x5A , 0x02 , None , ' Piece of Heart ' , ( " Gerudo Valley " , " Gerudo " , ) ) ) ,
( " GV Waterfall Freestanding PoH " , ( " Collectable " , 0x5A , 0x01 , None , ' Piece of Heart ' , ( " Gerudo Valley " , " Gerudo " , ) ) ) ,
( " GV Chest " , ( " Chest " , 0x5A , 0x00 , None , ' Rupees (50) ' , ( " Gerudo Valley " , " Gerudo " , ) ) ) ,
( " GV Deku Scrub Grotto Front " , ( " GrottoNPC " , 0xF0 , 0x3A , None , ' Buy Green Potion ' , ( " Gerudo Valley " , " Gerudo " , " Deku Scrub " , " Grottos " ) ) ) ,
( " GV Deku Scrub Grotto Rear " , ( " GrottoNPC " , 0xF0 , 0x39 , None , ' Buy Red Potion [30] ' , ( " Gerudo Valley " , " Gerudo " , " Deku Scrub " , " Grottos " ) ) ) ,
( " GV Cow " , ( " NPC " , 0x5A , 0x15 , None , ' Milk ' , ( " Gerudo Valley " , " Gerudo " , " Cow " ) ) ) ,
( " GV GS Small Bridge " , ( " GS Token " , 0x13 , 0x02 , None , ' Gold Skulltula Token ' , ( " Gerudo Valley " , " Skulltulas " , ) ) ) ,
( " GV GS Bean Patch " , ( " GS Token " , 0x13 , 0x01 , None , ' Gold Skulltula Token ' , ( " Gerudo Valley " , " Skulltulas " , ) ) ) ,
( " GV GS Behind Tent " , ( " GS Token " , 0x13 , 0x08 , None , ' Gold Skulltula Token ' , ( " Gerudo Valley " , " Skulltulas " , ) ) ) ,
( " GV GS Pillar " , ( " GS Token " , 0x13 , 0x04 , None , ' Gold Skulltula Token ' , ( " Gerudo Valley " , " Skulltulas " , ) ) ) ,
2022-05-01 18:05:52 +00:00
# Thieves' Hideout
( " Hideout Jail Guard (1 Torch) " , ( " Collectable " , 0x0C , 0x0C , None , ' Small Key (Thieves Hideout) ' , ( " Thieves ' Hideout " , " Gerudo " , ) ) ) ,
( " Hideout Jail Guard (2 Torches) " , ( " Collectable " , 0x0C , 0x0F , None , ' Small Key (Thieves Hideout) ' , ( " Thieves ' Hideout " , " Gerudo " , ) ) ) ,
( " Hideout Jail Guard (3 Torches) " , ( " Collectable " , 0x0C , 0x0A , None , ' Small Key (Thieves Hideout) ' , ( " Thieves ' Hideout " , " Gerudo " , ) ) ) ,
( " Hideout Jail Guard (4 Torches) " , ( " Collectable " , 0x0C , 0x0E , None , ' Small Key (Thieves Hideout) ' , ( " Thieves ' Hideout " , " Gerudo " , ) ) ) ,
( " Hideout Gerudo Membership Card " , ( " NPC " , 0x0C , 0x3A , None , ' Gerudo Membership Card ' , ( " Thieves ' Hideout " , " Gerudo " , ) ) ) ,
2022-05-01 19:44:26 +00:00
# Gerudo's Fortress
( " GF Chest " , ( " Chest " , 0x5D , 0x00 , None , ' Piece of Heart ' , ( " Gerudo ' s Fortress " , " Gerudo " , ) ) ) ,
( " GF HBA 1000 Points " , ( " NPC " , 0x5D , 0x3E , None , ' Piece of Heart ' , ( " Gerudo ' s Fortress " , " Gerudo " , " Minigames " ) ) ) ,
( " GF HBA 1500 Points " , ( " NPC " , 0x5D , 0x30 , None , ' Bow ' , ( " Gerudo ' s Fortress " , " Gerudo " , " Minigames " ) ) ) ,
( " GF GS Top Floor " , ( " GS Token " , 0x14 , 0x02 , None , ' Gold Skulltula Token ' , ( " Gerudo ' s Fortress " , " Skulltulas " , ) ) ) ,
( " GF GS Archery Range " , ( " GS Token " , 0x14 , 0x01 , None , ' Gold Skulltula Token ' , ( " Gerudo ' s Fortress " , " Skulltulas " , ) ) ) ,
Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
# Wasteland
( " Wasteland Bombchu Salesman " , ( " NPC " , 0x5E , 0x03 , None , ' Bombchus (10) ' , ( " Haunted Wasteland " , ) ) ) ,
( " Wasteland Chest " , ( " Chest " , 0x5E , 0x00 , None , ' Rupees (50) ' , ( " Haunted Wasteland " , ) ) ) ,
( " Wasteland GS " , ( " GS Token " , 0x15 , 0x02 , None , ' Gold Skulltula Token ' , ( " Haunted Wasteland " , " Skulltulas " , ) ) ) ,
# Colossus
( " Colossus Great Fairy Reward " , ( " Cutscene " , 0xFF , 0x12 , None , ' Nayrus Love ' , ( " Desert Colossus " , " Fairies " , ) ) ) ,
( " Colossus Freestanding PoH " , ( " Collectable " , 0x5C , 0x0D , None , ' Piece of Heart ' , ( " Desert Colossus " , ) ) ) ,
( " Colossus Deku Scrub Grotto Front " , ( " GrottoNPC " , 0xFD , 0x3A , None , ' Buy Green Potion ' , ( " Desert Colossus " , " Deku Scrub " , " Grottos " ) ) ) ,
( " Colossus Deku Scrub Grotto Rear " , ( " GrottoNPC " , 0xFD , 0x39 , None , ' Buy Red Potion [30] ' , ( " Desert Colossus " , " Deku Scrub " , " Grottos " ) ) ) ,
( " Colossus GS Bean Patch " , ( " GS Token " , 0x15 , 0x01 , None , ' Gold Skulltula Token ' , ( " Desert Colossus " , " Skulltulas " , ) ) ) ,
( " Colossus GS Tree " , ( " GS Token " , 0x15 , 0x08 , None , ' Gold Skulltula Token ' , ( " Desert Colossus " , " Skulltulas " , ) ) ) ,
( " Colossus GS Hill " , ( " GS Token " , 0x15 , 0x04 , None , ' Gold Skulltula Token ' , ( " Desert Colossus " , " Skulltulas " , ) ) ) ,
# Outside Ganon's Castle
2022-05-01 18:05:52 +00:00
( " OGC Great Fairy Reward " , ( " Cutscene " , 0xFF , 0x15 , None , ' Double Defense ' , ( " Outside Ganon ' s Castle " , " Market " , " Fairies " ) ) ) ,
( " OGC GS " , ( " GS Token " , 0x0E , 0x01 , None , ' Gold Skulltula Token ' , ( " Outside Ganon ' s Castle " , " Skulltulas " , ) ) ) ,
Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
## Dungeons
# Deku Tree vanilla
( " Deku Tree Map Chest " , ( " Chest " , 0x00 , 0x03 , None , ' Map (Deku Tree) ' , ( " Deku Tree " , " Vanilla " , ) ) ) ,
( " Deku Tree Slingshot Room Side Chest " , ( " Chest " , 0x00 , 0x05 , None , ' Recovery Heart ' , ( " Deku Tree " , " Vanilla " , ) ) ) ,
( " Deku Tree Slingshot Chest " , ( " Chest " , 0x00 , 0x01 , None , ' Slingshot ' , ( " Deku Tree " , " Vanilla " , ) ) ) ,
( " Deku Tree Compass Chest " , ( " Chest " , 0x00 , 0x02 , None , ' Compass (Deku Tree) ' , ( " Deku Tree " , " Vanilla " , ) ) ) ,
( " Deku Tree Compass Room Side Chest " , ( " Chest " , 0x00 , 0x06 , None , ' Recovery Heart ' , ( " Deku Tree " , " Vanilla " , ) ) ) ,
( " Deku Tree Basement Chest " , ( " Chest " , 0x00 , 0x04 , None , ' Recovery Heart ' , ( " Deku Tree " , " Vanilla " , ) ) ) ,
( " Deku Tree GS Compass Room " , ( " GS Token " , 0x00 , 0x08 , None , ' Gold Skulltula Token ' , ( " Deku Tree " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Deku Tree GS Basement Vines " , ( " GS Token " , 0x00 , 0x04 , None , ' Gold Skulltula Token ' , ( " Deku Tree " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Deku Tree GS Basement Gate " , ( " GS Token " , 0x00 , 0x02 , None , ' Gold Skulltula Token ' , ( " Deku Tree " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Deku Tree GS Basement Back Room " , ( " GS Token " , 0x00 , 0x01 , None , ' Gold Skulltula Token ' , ( " Deku Tree " , " Vanilla " , " Skulltulas " , ) ) ) ,
# Deku Tree MQ
( " Deku Tree MQ Map Chest " , ( " Chest " , 0x00 , 0x03 , None , ' Map (Deku Tree) ' , ( " Deku Tree " , " Master Quest " , ) ) ) ,
( " Deku Tree MQ Slingshot Chest " , ( " Chest " , 0x00 , 0x06 , None , ' Slingshot ' , ( " Deku Tree " , " Master Quest " , ) ) ) ,
( " Deku Tree MQ Slingshot Room Back Chest " , ( " Chest " , 0x00 , 0x02 , None , ' Deku Shield ' , ( " Deku Tree " , " Master Quest " , ) ) ) ,
( " Deku Tree MQ Compass Chest " , ( " Chest " , 0x00 , 0x01 , None , ' Compass (Deku Tree) ' , ( " Deku Tree " , " Master Quest " , ) ) ) ,
( " Deku Tree MQ Basement Chest " , ( " Chest " , 0x00 , 0x04 , None , ' Deku Shield ' , ( " Deku Tree " , " Master Quest " , ) ) ) ,
( " Deku Tree MQ Before Spinning Log Chest " , ( " Chest " , 0x00 , 0x05 , None , ' Recovery Heart ' , ( " Deku Tree " , " Master Quest " , ) ) ) ,
( " Deku Tree MQ After Spinning Log Chest " , ( " Chest " , 0x00 , 0x00 , None , ' Rupees (50) ' , ( " Deku Tree " , " Master Quest " , ) ) ) ,
( " Deku Tree MQ Deku Scrub " , ( " NPC " , 0x00 , 0x34 , None , ' Buy Deku Shield ' , ( " Deku Tree " , " Master Quest " , " Deku Scrub " , ) ) ) ,
( " Deku Tree MQ GS Lobby " , ( " GS Token " , 0x00 , 0x02 , None , ' Gold Skulltula Token ' , ( " Deku Tree " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Deku Tree MQ GS Compass Room " , ( " GS Token " , 0x00 , 0x08 , None , ' Gold Skulltula Token ' , ( " Deku Tree " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Deku Tree MQ GS Basement Graves Room " , ( " GS Token " , 0x00 , 0x04 , None , ' Gold Skulltula Token ' , ( " Deku Tree " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Deku Tree MQ GS Basement Back Room " , ( " GS Token " , 0x00 , 0x01 , None , ' Gold Skulltula Token ' , ( " Deku Tree " , " Master Quest " , " Skulltulas " , ) ) ) ,
# Deku Tree shared
( " Deku Tree Queen Gohma Heart " , ( " BossHeart " , 0x11 , 0x4F , None , ' Heart Container ' , ( " Deku Tree " , " Vanilla " , " Master Quest " , ) ) ) ,
# Dodongo's Cavern vanilla
( " Dodongos Cavern Map Chest " , ( " Chest " , 0x01 , 0x08 , None , ' Map (Dodongos Cavern) ' , ( " Dodongo ' s Cavern " , " Vanilla " , ) ) ) ,
( " Dodongos Cavern Compass Chest " , ( " Chest " , 0x01 , 0x05 , None , ' Compass (Dodongos Cavern) ' , ( " Dodongo ' s Cavern " , " Vanilla " , ) ) ) ,
( " Dodongos Cavern Bomb Flower Platform Chest " , ( " Chest " , 0x01 , 0x06 , None , ' Rupees (20) ' , ( " Dodongo ' s Cavern " , " Vanilla " , ) ) ) ,
( " Dodongos Cavern Bomb Bag Chest " , ( " Chest " , 0x01 , 0x04 , None , ' Bomb Bag ' , ( " Dodongo ' s Cavern " , " Vanilla " , ) ) ) ,
( " Dodongos Cavern End of Bridge Chest " , ( " Chest " , 0x01 , 0x0A , None , ' Deku Shield ' , ( " Dodongo ' s Cavern " , " Vanilla " , ) ) ) ,
( " Dodongos Cavern Deku Scrub Side Room Near Dodongos " , ( " NPC " , 0x01 , 0x31 , None , ' Buy Deku Stick (1) ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Deku Scrub " , ) ) ) ,
( " Dodongos Cavern Deku Scrub Lobby " , ( " NPC " , 0x01 , 0x34 , None , ' Buy Deku Shield ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Deku Scrub " , ) ) ) ,
( " Dodongos Cavern Deku Scrub Near Bomb Bag Left " , ( " NPC " , 0x01 , 0x30 , None , ' Buy Deku Nut (5) ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Deku Scrub " , ) ) ) ,
( " Dodongos Cavern Deku Scrub Near Bomb Bag Right " , ( " NPC " , 0x01 , 0x33 , None , ' Buy Deku Seeds (30) ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Deku Scrub " , ) ) ) ,
( " Dodongos Cavern GS Side Room Near Lower Lizalfos " , ( " GS Token " , 0x01 , 0x10 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Dodongos Cavern GS Scarecrow " , ( " GS Token " , 0x01 , 0x02 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Dodongos Cavern GS Alcove Above Stairs " , ( " GS Token " , 0x01 , 0x04 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Dodongos Cavern GS Vines Above Stairs " , ( " GS Token " , 0x01 , 0x01 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Dodongos Cavern GS Back Room " , ( " GS Token " , 0x01 , 0x08 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Skulltulas " , ) ) ) ,
# Dodongo's Cavern MQ
( " Dodongos Cavern MQ Map Chest " , ( " Chest " , 0x01 , 0x00 , None , ' Map (Dodongos Cavern) ' , ( " Dodongo ' s Cavern " , " Master Quest " , ) ) ) ,
( " Dodongos Cavern MQ Bomb Bag Chest " , ( " Chest " , 0x01 , 0x04 , None , ' Bomb Bag ' , ( " Dodongo ' s Cavern " , " Master Quest " , ) ) ) ,
( " Dodongos Cavern MQ Torch Puzzle Room Chest " , ( " Chest " , 0x01 , 0x03 , None , ' Rupees (5) ' , ( " Dodongo ' s Cavern " , " Master Quest " , ) ) ) ,
( " Dodongos Cavern MQ Larvae Room Chest " , ( " Chest " , 0x01 , 0x02 , None , ' Deku Shield ' , ( " Dodongo ' s Cavern " , " Master Quest " , ) ) ) ,
( " Dodongos Cavern MQ Compass Chest " , ( " Chest " , 0x01 , 0x05 , None , ' Compass (Dodongos Cavern) ' , ( " Dodongo ' s Cavern " , " Master Quest " , ) ) ) ,
( " Dodongos Cavern MQ Under Grave Chest " , ( " Chest " , 0x01 , 0x01 , None , ' Hylian Shield ' , ( " Dodongo ' s Cavern " , " Master Quest " , ) ) ) ,
( " Dodongos Cavern MQ Deku Scrub Lobby Front " , ( " NPC " , 0x01 , 0x33 , None , ' Buy Deku Seeds (30) ' , ( " Dodongo ' s Cavern " , " Master Quest " , " Deku Scrub " , ) ) ) ,
( " Dodongos Cavern MQ Deku Scrub Lobby Rear " , ( " NPC " , 0x01 , 0x31 , None , ' Buy Deku Stick (1) ' , ( " Dodongo ' s Cavern " , " Master Quest " , " Deku Scrub " , ) ) ) ,
( " Dodongos Cavern MQ Deku Scrub Side Room Near Lower Lizalfos " , ( " NPC " , 0x01 , 0x39 , None , ' Buy Red Potion [30] ' , ( " Dodongo ' s Cavern " , " Master Quest " , " Deku Scrub " , ) ) ) ,
( " Dodongos Cavern MQ Deku Scrub Staircase " , ( " NPC " , 0x01 , 0x34 , None , ' Buy Deku Shield ' , ( " Dodongo ' s Cavern " , " Master Quest " , " Deku Scrub " , ) ) ) ,
( " Dodongos Cavern MQ GS Scrub Room " , ( " GS Token " , 0x01 , 0x02 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Dodongos Cavern MQ GS Larvae Room " , ( " GS Token " , 0x01 , 0x10 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Dodongos Cavern MQ GS Lizalfos Room " , ( " GS Token " , 0x01 , 0x04 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Dodongos Cavern MQ GS Song of Time Block Room " , ( " GS Token " , 0x01 , 0x08 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Dodongos Cavern MQ GS Back Area " , ( " GS Token " , 0x01 , 0x01 , None , ' Gold Skulltula Token ' , ( " Dodongo ' s Cavern " , " Master Quest " , " Skulltulas " , ) ) ) ,
# Dodongo's Cavern shared
( " Dodongos Cavern Boss Room Chest " , ( " Chest " , 0x12 , 0x00 , None , ' Bombs (5) ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Master Quest " , ) ) ) ,
( " Dodongos Cavern King Dodongo Heart " , ( " BossHeart " , 0x12 , 0x4F , None , ' Heart Container ' , ( " Dodongo ' s Cavern " , " Vanilla " , " Master Quest " , ) ) ) ,
# Jabu Jabu's Belly vanilla
( " Jabu Jabus Belly Boomerang Chest " , ( " Chest " , 0x02 , 0x01 , None , ' Boomerang ' , ( " Jabu Jabu ' s Belly " , " Vanilla " , ) ) ) ,
( " Jabu Jabus Belly Map Chest " , ( " Chest " , 0x02 , 0x02 , None , ' Map (Jabu Jabus Belly) ' , ( " Jabu Jabu ' s Belly " , " Vanilla " , ) ) ) ,
( " Jabu Jabus Belly Compass Chest " , ( " Chest " , 0x02 , 0x04 , None , ' Compass (Jabu Jabus Belly) ' , ( " Jabu Jabu ' s Belly " , " Vanilla " , ) ) ) ,
( " Jabu Jabus Belly Deku Scrub " , ( " NPC " , 0x02 , 0x30 , None , ' Buy Deku Nut (5) ' , ( " Jabu Jabu ' s Belly " , " Vanilla " , " Deku Scrub " , ) ) ) ,
( " Jabu Jabus Belly GS Water Switch Room " , ( " GS Token " , 0x02 , 0x08 , None , ' Gold Skulltula Token ' , ( " Jabu Jabu ' s Belly " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Jabu Jabus Belly GS Lobby Basement Lower " , ( " GS Token " , 0x02 , 0x01 , None , ' Gold Skulltula Token ' , ( " Jabu Jabu ' s Belly " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Jabu Jabus Belly GS Lobby Basement Upper " , ( " GS Token " , 0x02 , 0x02 , None , ' Gold Skulltula Token ' , ( " Jabu Jabu ' s Belly " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Jabu Jabus Belly GS Near Boss " , ( " GS Token " , 0x02 , 0x04 , None , ' Gold Skulltula Token ' , ( " Jabu Jabu ' s Belly " , " Vanilla " , " Skulltulas " , ) ) ) ,
# Jabu Jabu's Belly MQ
( " Jabu Jabus Belly MQ Map Chest " , ( " Chest " , 0x02 , 0x03 , None , ' Map (Jabu Jabus Belly) ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ First Room Side Chest " , ( " Chest " , 0x02 , 0x05 , None , ' Deku Nuts (5) ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Second Room Lower Chest " , ( " Chest " , 0x02 , 0x02 , None , ' Deku Nuts (5) ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Compass Chest " , ( " Chest " , 0x02 , 0x00 , None , ' Compass (Jabu Jabus Belly) ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Basement Near Switches Chest " , ( " Chest " , 0x02 , 0x08 , None , ' Deku Nuts (5) ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Basement Near Vines Chest " , ( " Chest " , 0x02 , 0x04 , None , ' Bombchus (10) ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Boomerang Room Small Chest " , ( " Chest " , 0x02 , 0x01 , None , ' Deku Nuts (5) ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Boomerang Chest " , ( " Chest " , 0x02 , 0x06 , None , ' Boomerang ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Falling Like Like Room Chest " , ( " Chest " , 0x02 , 0x09 , None , ' Deku Stick (1) ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Second Room Upper Chest " , ( " Chest " , 0x02 , 0x07 , None , ' Recovery Heart ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Near Boss Chest " , ( " Chest " , 0x02 , 0x0A , None , ' Deku Shield ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , ) ) ) ,
( " Jabu Jabus Belly MQ Cow " , ( " NPC " , 0x02 , 0x15 , None , ' Milk ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , " Cow " , ) ) ) ,
( " Jabu Jabus Belly MQ GS Boomerang Chest Room " , ( " GS Token " , 0x02 , 0x01 , None , ' Gold Skulltula Token ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Jabu Jabus Belly MQ GS Tailpasaran Room " , ( " GS Token " , 0x02 , 0x04 , None , ' Gold Skulltula Token ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Jabu Jabus Belly MQ GS Invisible Enemies Room " , ( " GS Token " , 0x02 , 0x08 , None , ' Gold Skulltula Token ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Jabu Jabus Belly MQ GS Near Boss " , ( " GS Token " , 0x02 , 0x02 , None , ' Gold Skulltula Token ' , ( " Jabu Jabu ' s Belly " , " Master Quest " , " Skulltulas " , ) ) ) ,
# Jabu Jabu's Belly shared
( " Jabu Jabus Belly Barinade Heart " , ( " BossHeart " , 0x13 , 0x4F , None , ' Heart Container ' , ( " Jabu Jabu ' s Belly " , " Vanilla " , " Master Quest " , ) ) ) ,
# Bottom of the Well vanilla
( " Bottom of the Well Front Left Fake Wall Chest " , ( " Chest " , 0x08 , 0x08 , None , ' Small Key (Bottom of the Well) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Front Center Bombable Chest " , ( " Chest " , 0x08 , 0x02 , None , ' Bombchus (10) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Back Left Bombable Chest " , ( " Chest " , 0x08 , 0x04 , None , ' Deku Nuts (10) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Underwater Left Chest " , ( " Chest " , 0x08 , 0x09 , None , ' Recovery Heart ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Freestanding Key " , ( " Collectable " , 0x08 , 0x01 , None , ' Small Key (Bottom of the Well) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Compass Chest " , ( " Chest " , 0x08 , 0x01 , None , ' Compass (Bottom of the Well) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Center Skulltula Chest " , ( " Chest " , 0x08 , 0x0E , None , ' Deku Nuts (5) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Right Bottom Fake Wall Chest " , ( " Chest " , 0x08 , 0x05 , None , ' Small Key (Bottom of the Well) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Fire Keese Chest " , ( " Chest " , 0x08 , 0x0A , None , ' Deku Shield ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Like Like Chest " , ( " Chest " , 0x08 , 0x0C , None , ' Hylian Shield ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Map Chest " , ( " Chest " , 0x08 , 0x07 , None , ' Map (Bottom of the Well) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Underwater Front Chest " , ( " Chest " , 0x08 , 0x10 , None , ' Bombs (10) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Invisible Chest " , ( " Chest " , 0x08 , 0x14 , None , ' Rupees (200) ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well Lens of Truth Chest " , ( " Chest " , 0x08 , 0x03 , None , ' Lens of Truth ' , ( " Bottom of the Well " , " Vanilla " , ) ) ) ,
( " Bottom of the Well GS West Inner Room " , ( " GS Token " , 0x08 , 0x04 , None , ' Gold Skulltula Token ' , ( " Bottom of the Well " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Bottom of the Well GS East Inner Room " , ( " GS Token " , 0x08 , 0x02 , None , ' Gold Skulltula Token ' , ( " Bottom of the Well " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Bottom of the Well GS Like Like Cage " , ( " GS Token " , 0x08 , 0x01 , None , ' Gold Skulltula Token ' , ( " Bottom of the Well " , " Vanilla " , " Skulltulas " , ) ) ) ,
# Bottom of the Well MQ
( " Bottom of the Well MQ Map Chest " , ( " Chest " , 0x08 , 0x03 , None , ' Map (Bottom of the Well) ' , ( " Bottom of the Well " , " Master Quest " , ) ) ) ,
( " Bottom of the Well MQ East Inner Room Freestanding Key " , ( " Collectable " , 0x08 , 0x01 , None , ' Small Key (Bottom of the Well) ' , ( " Bottom of the Well " , " Master Quest " , ) ) ) ,
( " Bottom of the Well MQ Compass Chest " , ( " Chest " , 0x08 , 0x02 , None , ' Compass (Bottom of the Well) ' , ( " Bottom of the Well " , " Master Quest " , ) ) ) ,
( " Bottom of the Well MQ Dead Hand Freestanding Key " , ( " Collectable " , 0x08 , 0x02 , None , ' Small Key (Bottom of the Well) ' , ( " Bottom of the Well " , " Master Quest " , ) ) ) ,
( " Bottom of the Well MQ Lens of Truth Chest " , ( " Chest " , 0x08 , 0x01 , None , ' Lens of Truth ' , ( " Bottom of the Well " , " Master Quest " , ) ) ) ,
( " Bottom of the Well MQ GS Coffin Room " , ( " GS Token " , 0x08 , 0x04 , None , ' Gold Skulltula Token ' , ( " Bottom of the Well " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Bottom of the Well MQ GS West Inner Room " , ( " GS Token " , 0x08 , 0x02 , None , ' Gold Skulltula Token ' , ( " Bottom of the Well " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Bottom of the Well MQ GS Basement " , ( " GS Token " , 0x08 , 0x01 , None , ' Gold Skulltula Token ' , ( " Bottom of the Well " , " Master Quest " , " Skulltulas " , ) ) ) ,
# Forest Temple vanilla
( " Forest Temple First Room Chest " , ( " Chest " , 0x03 , 0x03 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple First Stalfos Chest " , ( " Chest " , 0x03 , 0x00 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Raised Island Courtyard Chest " , ( " Chest " , 0x03 , 0x05 , None , ' Recovery Heart ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Map Chest " , ( " Chest " , 0x03 , 0x01 , None , ' Map (Forest Temple) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Well Chest " , ( " Chest " , 0x03 , 0x09 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Eye Switch Chest " , ( " Chest " , 0x03 , 0x04 , None , ' Arrows (30) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Boss Key Chest " , ( " Chest " , 0x03 , 0x0E , None , ' Boss Key (Forest Temple) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Floormaster Chest " , ( " Chest " , 0x03 , 0x02 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Red Poe Chest " , ( " Chest " , 0x03 , 0x0D , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Bow Chest " , ( " Chest " , 0x03 , 0x0C , None , ' Bow ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Blue Poe Chest " , ( " Chest " , 0x03 , 0x0F , None , ' Compass (Forest Temple) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Falling Ceiling Room Chest " , ( " Chest " , 0x03 , 0x07 , None , ' Arrows (10) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple Basement Chest " , ( " Chest " , 0x03 , 0x0B , None , ' Arrows (5) ' , ( " Forest Temple " , " Vanilla " , ) ) ) ,
( " Forest Temple GS First Room " , ( " GS Token " , 0x03 , 0x02 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Forest Temple GS Lobby " , ( " GS Token " , 0x03 , 0x08 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Forest Temple GS Raised Island Courtyard " , ( " GS Token " , 0x03 , 0x01 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Forest Temple GS Level Island Courtyard " , ( " GS Token " , 0x03 , 0x04 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Forest Temple GS Basement " , ( " GS Token " , 0x03 , 0x10 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
# Forest Temple MQ
( " Forest Temple MQ First Room Chest " , ( " Chest " , 0x03 , 0x03 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Wolfos Chest " , ( " Chest " , 0x03 , 0x00 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Well Chest " , ( " Chest " , 0x03 , 0x09 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Raised Island Courtyard Lower Chest " , ( " Chest " , 0x03 , 0x01 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Raised Island Courtyard Upper Chest " , ( " Chest " , 0x03 , 0x05 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Boss Key Chest " , ( " Chest " , 0x03 , 0x0E , None , ' Boss Key (Forest Temple) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Redead Chest " , ( " Chest " , 0x03 , 0x02 , None , ' Small Key (Forest Temple) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Map Chest " , ( " Chest " , 0x03 , 0x0D , None , ' Map (Forest Temple) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Bow Chest " , ( " Chest " , 0x03 , 0x0C , None , ' Bow ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Compass Chest " , ( " Chest " , 0x03 , 0x0F , None , ' Compass (Forest Temple) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Falling Ceiling Room Chest " , ( " Chest " , 0x03 , 0x06 , None , ' Arrows (5) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ Basement Chest " , ( " Chest " , 0x03 , 0x0B , None , ' Arrows (5) ' , ( " Forest Temple " , " Master Quest " , ) ) ) ,
( " Forest Temple MQ GS First Hallway " , ( " GS Token " , 0x03 , 0x02 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Forest Temple MQ GS Raised Island Courtyard " , ( " GS Token " , 0x03 , 0x01 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Forest Temple MQ GS Level Island Courtyard " , ( " GS Token " , 0x03 , 0x04 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Forest Temple MQ GS Well " , ( " GS Token " , 0x03 , 0x08 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Forest Temple MQ GS Block Push Room " , ( " GS Token " , 0x03 , 0x10 , None , ' Gold Skulltula Token ' , ( " Forest Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
# Forest Temple shared
( " Forest Temple Phantom Ganon Heart " , ( " BossHeart " , 0x14 , 0x4F , None , ' Heart Container ' , ( " Forest Temple " , " Vanilla " , " Master Quest " , ) ) ) ,
# Fire Temple vanilla
( " Fire Temple Near Boss Chest " , ( " Chest " , 0x04 , 0x01 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Flare Dancer Chest " , ( " Chest " , 0x04 , 0x00 , None , ' Bombs (10) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Boss Key Chest " , ( " Chest " , 0x04 , 0x0C , None , ' Boss Key (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Big Lava Room Lower Open Door Chest " , ( " Chest " , 0x04 , 0x04 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Big Lava Room Blocked Door Chest " , ( " Chest " , 0x04 , 0x02 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Boulder Maze Lower Chest " , ( " Chest " , 0x04 , 0x03 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Boulder Maze Side Room Chest " , ( " Chest " , 0x04 , 0x08 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Map Chest " , ( " Chest " , 0x04 , 0x0A , None , ' Map (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Boulder Maze Shortcut Chest " , ( " Chest " , 0x04 , 0x0B , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Boulder Maze Upper Chest " , ( " Chest " , 0x04 , 0x06 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Scarecrow Chest " , ( " Chest " , 0x04 , 0x0D , None , ' Rupees (200) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Compass Chest " , ( " Chest " , 0x04 , 0x07 , None , ' Compass (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Megaton Hammer Chest " , ( " Chest " , 0x04 , 0x05 , None , ' Megaton Hammer ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple Highest Goron Chest " , ( " Chest " , 0x04 , 0x09 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Vanilla " , ) ) ) ,
( " Fire Temple GS Boss Key Loop " , ( " GS Token " , 0x04 , 0x02 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Fire Temple GS Song of Time Room " , ( " GS Token " , 0x04 , 0x01 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Fire Temple GS Boulder Maze " , ( " GS Token " , 0x04 , 0x04 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Fire Temple GS Scarecrow Climb " , ( " GS Token " , 0x04 , 0x10 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Fire Temple GS Scarecrow Top " , ( " GS Token " , 0x04 , 0x08 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
# Fire Temple MQ
( " Fire Temple MQ Map Room Side Chest " , ( " Chest " , 0x04 , 0x02 , None , ' Hylian Shield ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Megaton Hammer Chest " , ( " Chest " , 0x04 , 0x00 , None , ' Megaton Hammer ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Map Chest " , ( " Chest " , 0x04 , 0x0C , None , ' Map (Fire Temple) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Near Boss Chest " , ( " Chest " , 0x04 , 0x07 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Big Lava Room Blocked Door Chest " , ( " Chest " , 0x04 , 0x01 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Boss Key Chest " , ( " Chest " , 0x04 , 0x04 , None , ' Boss Key (Fire Temple) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Lizalfos Maze Side Room Chest " , ( " Chest " , 0x04 , 0x08 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Compass Chest " , ( " Chest " , 0x04 , 0x0B , None , ' Compass (Fire Temple) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Lizalfos Maze Upper Chest " , ( " Chest " , 0x04 , 0x06 , None , ' Bombs (10) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Lizalfos Maze Lower Chest " , ( " Chest " , 0x04 , 0x03 , None , ' Bombs (10) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Freestanding Key " , ( " Collectable " , 0x04 , 0x1C , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ Chest On Fire " , ( " Chest " , 0x04 , 0x05 , None , ' Small Key (Fire Temple) ' , ( " Fire Temple " , " Master Quest " , ) ) ) ,
( " Fire Temple MQ GS Big Lava Room Open Door " , ( " GS Token " , 0x04 , 0x01 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Fire Temple MQ GS Skull On Fire " , ( " GS Token " , 0x04 , 0x04 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Fire Temple MQ GS Fire Wall Maze Center " , ( " GS Token " , 0x04 , 0x08 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Fire Temple MQ GS Fire Wall Maze Side Room " , ( " GS Token " , 0x04 , 0x10 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Fire Temple MQ GS Above Fire Wall Maze " , ( " GS Token " , 0x04 , 0x02 , None , ' Gold Skulltula Token ' , ( " Fire Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
# Fire Temple shared
( " Fire Temple Volvagia Heart " , ( " BossHeart " , 0x15 , 0x4F , None , ' Heart Container ' , ( " Fire Temple " , " Vanilla " , " Master Quest " , ) ) ) ,
# Water Temple vanilla
( " Water Temple Compass Chest " , ( " Chest " , 0x05 , 0x09 , None , ' Compass (Water Temple) ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple Map Chest " , ( " Chest " , 0x05 , 0x02 , None , ' Map (Water Temple) ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple Cracked Wall Chest " , ( " Chest " , 0x05 , 0x00 , None , ' Small Key (Water Temple) ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple Torches Chest " , ( " Chest " , 0x05 , 0x01 , None , ' Small Key (Water Temple) ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple Boss Key Chest " , ( " Chest " , 0x05 , 0x05 , None , ' Boss Key (Water Temple) ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple Central Pillar Chest " , ( " Chest " , 0x05 , 0x06 , None , ' Small Key (Water Temple) ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple Central Bow Target Chest " , ( " Chest " , 0x05 , 0x08 , None , ' Small Key (Water Temple) ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple Longshot Chest " , ( " Chest " , 0x05 , 0x07 , None , ' Progressive Hookshot ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple River Chest " , ( " Chest " , 0x05 , 0x03 , None , ' Small Key (Water Temple) ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple Dragon Chest " , ( " Chest " , 0x05 , 0x0A , None , ' Small Key (Water Temple) ' , ( " Water Temple " , " Vanilla " , ) ) ) ,
( " Water Temple GS Behind Gate " , ( " GS Token " , 0x05 , 0x01 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Water Temple GS Near Boss Key Chest " , ( " GS Token " , 0x05 , 0x08 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Water Temple GS Central Pillar " , ( " GS Token " , 0x05 , 0x04 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Water Temple GS Falling Platform Room " , ( " GS Token " , 0x05 , 0x02 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Water Temple GS River " , ( " GS Token " , 0x05 , 0x10 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
# Water Temple MQ
( " Water Temple MQ Longshot Chest " , ( " Chest " , 0x05 , 0x00 , None , ' Progressive Hookshot ' , ( " Water Temple " , " Master Quest " , ) ) ) ,
( " Water Temple MQ Map Chest " , ( " Chest " , 0x05 , 0x02 , None , ' Map (Water Temple) ' , ( " Water Temple " , " Master Quest " , ) ) ) ,
( " Water Temple MQ Compass Chest " , ( " Chest " , 0x05 , 0x01 , None , ' Compass (Water Temple) ' , ( " Water Temple " , " Master Quest " , ) ) ) ,
( " Water Temple MQ Central Pillar Chest " , ( " Chest " , 0x05 , 0x06 , None , ' Small Key (Water Temple) ' , ( " Water Temple " , " Master Quest " , ) ) ) ,
( " Water Temple MQ Boss Key Chest " , ( " Chest " , 0x05 , 0x05 , None , ' Boss Key (Water Temple) ' , ( " Water Temple " , " Master Quest " , ) ) ) ,
( " Water Temple MQ Freestanding Key " , ( " Collectable " , 0x05 , 0x01 , None , ' Small Key (Water Temple) ' , ( " Water Temple " , " Master Quest " , ) ) ) ,
( " Water Temple MQ GS Lizalfos Hallway " , ( " GS Token " , 0x05 , 0x01 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Water Temple MQ GS Before Upper Water Switch " , ( " GS Token " , 0x05 , 0x04 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Water Temple MQ GS River " , ( " GS Token " , 0x05 , 0x02 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Water Temple MQ GS Freestanding Key Area " , ( " GS Token " , 0x05 , 0x08 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Water Temple MQ GS Triple Wall Torch " , ( " GS Token " , 0x05 , 0x10 , None , ' Gold Skulltula Token ' , ( " Water Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
# Water Temple shared
( " Water Temple Morpha Heart " , ( " BossHeart " , 0x16 , 0x4F , None , ' Heart Container ' , ( " Water Temple " , " Vanilla " , " Master Quest " , ) ) ) ,
# Shadow Temple vanilla
( " Shadow Temple Map Chest " , ( " Chest " , 0x07 , 0x01 , None , ' Map (Shadow Temple) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Hover Boots Chest " , ( " Chest " , 0x07 , 0x07 , None , ' Hover Boots ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Compass Chest " , ( " Chest " , 0x07 , 0x03 , None , ' Compass (Shadow Temple) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Early Silver Rupee Chest " , ( " Chest " , 0x07 , 0x02 , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Invisible Blades Visible Chest " , ( " Chest " , 0x07 , 0x0C , None , ' Rupees (5) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Invisible Blades Invisible Chest " , ( " Chest " , 0x07 , 0x16 , None , ' Arrows (30) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Falling Spikes Lower Chest " , ( " Chest " , 0x07 , 0x05 , None , ' Arrows (10) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Falling Spikes Upper Chest " , ( " Chest " , 0x07 , 0x06 , None , ' Rupees (5) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Falling Spikes Switch Chest " , ( " Chest " , 0x07 , 0x04 , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Invisible Spikes Chest " , ( " Chest " , 0x07 , 0x09 , None , ' Rupees (5) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Freestanding Key " , ( " Collectable " , 0x07 , 0x01 , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Wind Hint Chest " , ( " Chest " , 0x07 , 0x15 , None , ' Arrows (10) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple After Wind Enemy Chest " , ( " Chest " , 0x07 , 0x08 , None , ' Rupees (5) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple After Wind Hidden Chest " , ( " Chest " , 0x07 , 0x14 , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Spike Walls Left Chest " , ( " Chest " , 0x07 , 0x0A , None , ' Rupees (5) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Boss Key Chest " , ( " Chest " , 0x07 , 0x0B , None , ' Boss Key (Shadow Temple) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple Invisible Floormaster Chest " , ( " Chest " , 0x07 , 0x0D , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Vanilla " , ) ) ) ,
( " Shadow Temple GS Like Like Room " , ( " GS Token " , 0x07 , 0x08 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Shadow Temple GS Falling Spikes Room " , ( " GS Token " , 0x07 , 0x02 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Shadow Temple GS Single Giant Pot " , ( " GS Token " , 0x07 , 0x01 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Shadow Temple GS Near Ship " , ( " GS Token " , 0x07 , 0x10 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Shadow Temple GS Triple Giant Pot " , ( " GS Token " , 0x07 , 0x04 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
# Shadow Temple MQ
( " Shadow Temple MQ Early Gibdos Chest " , ( " Chest " , 0x07 , 0x03 , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Map Chest " , ( " Chest " , 0x07 , 0x02 , None , ' Map (Shadow Temple) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Near Ship Invisible Chest " , ( " Chest " , 0x07 , 0x0E , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Compass Chest " , ( " Chest " , 0x07 , 0x01 , None , ' Compass (Shadow Temple) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Hover Boots Chest " , ( " Chest " , 0x07 , 0x07 , None , ' Hover Boots ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Invisible Blades Invisible Chest " , ( " Chest " , 0x07 , 0x16 , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Invisible Blades Visible Chest " , ( " Chest " , 0x07 , 0x0C , None , ' Rupees (5) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Beamos Silver Rupees Chest " , ( " Chest " , 0x07 , 0x0F , None , ' Arrows (5) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Falling Spikes Lower Chest " , ( " Chest " , 0x07 , 0x05 , None , ' Arrows (10) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Falling Spikes Upper Chest " , ( " Chest " , 0x07 , 0x06 , None , ' Rupees (5) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Falling Spikes Switch Chest " , ( " Chest " , 0x07 , 0x04 , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Invisible Spikes Chest " , ( " Chest " , 0x07 , 0x09 , None , ' Rupees (5) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Stalfos Room Chest " , ( " Chest " , 0x07 , 0x10 , None , ' Rupees (20) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Wind Hint Chest " , ( " Chest " , 0x07 , 0x15 , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ After Wind Hidden Chest " , ( " Chest " , 0x07 , 0x14 , None , ' Arrows (5) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ After Wind Enemy Chest " , ( " Chest " , 0x07 , 0x08 , None , ' Rupees (5) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Boss Key Chest " , ( " Chest " , 0x07 , 0x0B , None , ' Boss Key (Shadow Temple) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Spike Walls Left Chest " , ( " Chest " , 0x07 , 0x0A , None , ' Rupees (5) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Freestanding Key " , ( " Collectable " , 0x07 , 0x06 , None , ' Small Key (Shadow Temple) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ Bomb Flower Chest " , ( " Chest " , 0x07 , 0x0D , None , ' Arrows (10) ' , ( " Shadow Temple " , " Master Quest " , ) ) ) ,
( " Shadow Temple MQ GS Falling Spikes Room " , ( " GS Token " , 0x07 , 0x02 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Shadow Temple MQ GS Wind Hint Room " , ( " GS Token " , 0x07 , 0x01 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Shadow Temple MQ GS After Wind " , ( " GS Token " , 0x07 , 0x08 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Shadow Temple MQ GS After Ship " , ( " GS Token " , 0x07 , 0x10 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Shadow Temple MQ GS Near Boss " , ( " GS Token " , 0x07 , 0x04 , None , ' Gold Skulltula Token ' , ( " Shadow Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
# Shadow Temple shared
( " Shadow Temple Bongo Bongo Heart " , ( " BossHeart " , 0x18 , 0x4F , None , ' Heart Container ' , ( " Shadow Temple " , " Vanilla " , " Master Quest " , ) ) ) ,
# Spirit Temple shared
# Vanilla and MQ locations are mixed to ensure the positions of Silver Gauntlets/Mirror Shield chests are correct for both versions
( " Spirit Temple Child Bridge Chest " , ( " Chest " , 0x06 , 0x08 , None , ' Deku Shield ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Child Early Torches Chest " , ( " Chest " , 0x06 , 0x00 , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Child Climb North Chest " , ( " Chest " , 0x06 , 0x06 , None , ' Bombchus (10) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Child Climb East Chest " , ( " Chest " , 0x06 , 0x0C , None , ' Deku Shield ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Map Chest " , ( " Chest " , 0x06 , 0x03 , None , ' Map (Spirit Temple) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Sun Block Room Chest " , ( " Chest " , 0x06 , 0x01 , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple MQ Entrance Front Left Chest " , ( " Chest " , 0x06 , 0x1A , None , ' Bombchus (10) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Entrance Back Right Chest " , ( " Chest " , 0x06 , 0x1F , None , ' Bombchus (10) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Entrance Front Right Chest " , ( " Chest " , 0x06 , 0x1B , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Entrance Back Left Chest " , ( " Chest " , 0x06 , 0x1E , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Map Chest " , ( " Chest " , 0x06 , 0x00 , None , ' Map (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Map Room Enemy Chest " , ( " Chest " , 0x06 , 0x08 , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Child Climb North Chest " , ( " Chest " , 0x06 , 0x06 , None , ' Bombchus (10) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Child Climb South Chest " , ( " Chest " , 0x06 , 0x0C , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Compass Chest " , ( " Chest " , 0x06 , 0x03 , None , ' Compass (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Silver Block Hallway Chest " , ( " Chest " , 0x06 , 0x1C , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Sun Block Room Chest " , ( " Chest " , 0x06 , 0x01 , None , ' Recovery Heart ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple Silver Gauntlets Chest " , ( " Chest " , 0x5C , 0x0B , None , ' Progressive Strength Upgrade ' , ( " Spirit Temple " , " Vanilla " , " Master Quest " , " Desert Colossus " ) ) ) ,
( " Spirit Temple Compass Chest " , ( " Chest " , 0x06 , 0x04 , None , ' Compass (Spirit Temple) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Early Adult Right Chest " , ( " Chest " , 0x06 , 0x07 , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple First Mirror Left Chest " , ( " Chest " , 0x06 , 0x0D , None , ' Ice Trap ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple First Mirror Right Chest " , ( " Chest " , 0x06 , 0x0E , None , ' Recovery Heart ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Statue Room Northeast Chest " , ( " Chest " , 0x06 , 0x0F , None , ' Rupees (5) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Statue Room Hand Chest " , ( " Chest " , 0x06 , 0x02 , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Near Four Armos Chest " , ( " Chest " , 0x06 , 0x05 , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Hallway Right Invisible Chest " , ( " Chest " , 0x06 , 0x14 , None , ' Recovery Heart ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Hallway Left Invisible Chest " , ( " Chest " , 0x06 , 0x15 , None , ' Recovery Heart ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple MQ Child Hammer Switch Chest " , ( " Chest " , 0x06 , 0x1D , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Statue Room Lullaby Chest " , ( " Chest " , 0x06 , 0x0F , None , ' Rupees (5) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Statue Room Invisible Chest " , ( " Chest " , 0x06 , 0x02 , None , ' Recovery Heart ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Leever Room Chest " , ( " Chest " , 0x06 , 0x04 , None , ' Rupees (50) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Symphony Room Chest " , ( " Chest " , 0x06 , 0x07 , None , ' Rupees (50) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Beamos Room Chest " , ( " Chest " , 0x06 , 0x19 , None , ' Recovery Heart ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Chest Switch Chest " , ( " Chest " , 0x06 , 0x18 , None , ' Ice Trap ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple MQ Boss Key Chest " , ( " Chest " , 0x06 , 0x05 , None , ' Boss Key (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple Mirror Shield Chest " , ( " Chest " , 0x5C , 0x09 , None , ' Mirror Shield ' , ( " Spirit Temple " , " Vanilla " , " Master Quest " , " Desert Colossus " ) ) ) ,
( " Spirit Temple Boss Key Chest " , ( " Chest " , 0x06 , 0x0A , None , ' Boss Key (Spirit Temple) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple Topmost Chest " , ( " Chest " , 0x06 , 0x12 , None , ' Bombs (20) ' , ( " Spirit Temple " , " Vanilla " , ) ) ) ,
( " Spirit Temple MQ Mirror Puzzle Invisible Chest " , ( " Chest " , 0x06 , 0x12 , None , ' Small Key (Spirit Temple) ' , ( " Spirit Temple " , " Master Quest " , ) ) ) ,
( " Spirit Temple GS Metal Fence " , ( " GS Token " , 0x06 , 0x10 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Spirit Temple GS Sun on Floor Room " , ( " GS Token " , 0x06 , 0x08 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Spirit Temple GS Hall After Sun Block Room " , ( " GS Token " , 0x06 , 0x01 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Spirit Temple GS Lobby " , ( " GS Token " , 0x06 , 0x04 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Spirit Temple GS Boulder Room " , ( " GS Token " , 0x06 , 0x02 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Spirit Temple MQ GS Sun Block Room " , ( " GS Token " , 0x06 , 0x01 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Spirit Temple MQ GS Leever Room " , ( " GS Token " , 0x06 , 0x02 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Spirit Temple MQ GS Symphony Room " , ( " GS Token " , 0x06 , 0x08 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Spirit Temple MQ GS Nine Thrones Room West " , ( " GS Token " , 0x06 , 0x04 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Spirit Temple MQ GS Nine Thrones Room North " , ( " GS Token " , 0x06 , 0x10 , None , ' Gold Skulltula Token ' , ( " Spirit Temple " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Spirit Temple Twinrova Heart " , ( " BossHeart " , 0x17 , 0x4F , None , ' Heart Container ' , ( " Spirit Temple " , " Vanilla " , " Master Quest " , ) ) ) ,
# Ice Cavern vanilla
( " Ice Cavern Map Chest " , ( " Chest " , 0x09 , 0x00 , None , ' Map (Ice Cavern) ' , ( " Ice Cavern " , " Vanilla " , ) ) ) ,
( " Ice Cavern Compass Chest " , ( " Chest " , 0x09 , 0x01 , None , ' Compass (Ice Cavern) ' , ( " Ice Cavern " , " Vanilla " , ) ) ) ,
( " Ice Cavern Freestanding PoH " , ( " Collectable " , 0x09 , 0x01 , None , ' Piece of Heart ' , ( " Ice Cavern " , " Vanilla " , ) ) ) ,
( " Ice Cavern Iron Boots Chest " , ( " Chest " , 0x09 , 0x02 , None , ' Iron Boots ' , ( " Ice Cavern " , " Vanilla " , ) ) ) ,
( " Ice Cavern GS Spinning Scythe Room " , ( " GS Token " , 0x09 , 0x02 , None , ' Gold Skulltula Token ' , ( " Ice Cavern " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Ice Cavern GS Heart Piece Room " , ( " GS Token " , 0x09 , 0x04 , None , ' Gold Skulltula Token ' , ( " Ice Cavern " , " Vanilla " , " Skulltulas " , ) ) ) ,
( " Ice Cavern GS Push Block Room " , ( " GS Token " , 0x09 , 0x01 , None , ' Gold Skulltula Token ' , ( " Ice Cavern " , " Vanilla " , " Skulltulas " , ) ) ) ,
# Ice Cavern MQ
( " Ice Cavern MQ Map Chest " , ( " Chest " , 0x09 , 0x01 , None , ' Map (Ice Cavern) ' , ( " Ice Cavern " , " Master Quest " , ) ) ) ,
( " Ice Cavern MQ Compass Chest " , ( " Chest " , 0x09 , 0x00 , None , ' Compass (Ice Cavern) ' , ( " Ice Cavern " , " Master Quest " , ) ) ) ,
( " Ice Cavern MQ Freestanding PoH " , ( " Collectable " , 0x09 , 0x01 , None , ' Piece of Heart ' , ( " Ice Cavern " , " Master Quest " , ) ) ) ,
( " Ice Cavern MQ Iron Boots Chest " , ( " Chest " , 0x09 , 0x02 , None , ' Iron Boots ' , ( " Ice Cavern " , " Master Quest " , ) ) ) ,
( " Ice Cavern MQ GS Red Ice " , ( " GS Token " , 0x09 , 0x02 , None , ' Gold Skulltula Token ' , ( " Ice Cavern " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Ice Cavern MQ GS Ice Block " , ( " GS Token " , 0x09 , 0x04 , None , ' Gold Skulltula Token ' , ( " Ice Cavern " , " Master Quest " , " Skulltulas " , ) ) ) ,
( " Ice Cavern MQ GS Scarecrow " , ( " GS Token " , 0x09 , 0x01 , None , ' Gold Skulltula Token ' , ( " Ice Cavern " , " Master Quest " , " Skulltulas " , ) ) ) ,
2022-05-01 18:05:52 +00:00
# Gerudo Training Ground vanilla
( " Gerudo Training Ground Lobby Left Chest " , ( " Chest " , 0x0B , 0x13 , None , ' Rupees (5) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Lobby Right Chest " , ( " Chest " , 0x0B , 0x07 , None , ' Arrows (10) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Stalfos Chest " , ( " Chest " , 0x0B , 0x00 , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Before Heavy Block Chest " , ( " Chest " , 0x0B , 0x11 , None , ' Arrows (30) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Heavy Block First Chest " , ( " Chest " , 0x0B , 0x0F , None , ' Rupees (200) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Heavy Block Second Chest " , ( " Chest " , 0x0B , 0x0E , None , ' Rupees (5) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Heavy Block Third Chest " , ( " Chest " , 0x0B , 0x14 , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Heavy Block Fourth Chest " , ( " Chest " , 0x0B , 0x02 , None , ' Ice Trap ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Eye Statue Chest " , ( " Chest " , 0x0B , 0x03 , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Near Scarecrow Chest " , ( " Chest " , 0x0B , 0x04 , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Hammer Room Clear Chest " , ( " Chest " , 0x0B , 0x12 , None , ' Arrows (10) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Hammer Room Switch Chest " , ( " Chest " , 0x0B , 0x10 , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Freestanding Key " , ( " Collectable " , 0x0B , 0x01 , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Maze Right Central Chest " , ( " Chest " , 0x0B , 0x05 , None , ' Bombchus (5) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Maze Right Side Chest " , ( " Chest " , 0x0B , 0x08 , None , ' Arrows (30) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Underwater Silver Rupee Chest " , ( " Chest " , 0x0B , 0x0D , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Beamos Chest " , ( " Chest " , 0x0B , 0x01 , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Hidden Ceiling Chest " , ( " Chest " , 0x0B , 0x0B , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Maze Path First Chest " , ( " Chest " , 0x0B , 0x06 , None , ' Rupees (50) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Maze Path Second Chest " , ( " Chest " , 0x0B , 0x0A , None , ' Rupees (20) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Maze Path Third Chest " , ( " Chest " , 0x0B , 0x09 , None , ' Arrows (30) ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
( " Gerudo Training Ground Maze Path Final Chest " , ( " Chest " , 0x0B , 0x0C , None , ' Ice Arrows ' , ( " Gerudo Training Ground " , " Vanilla " , ) ) ) ,
# Gerudo Training Ground MQ
( " Gerudo Training Ground MQ Lobby Left Chest " , ( " Chest " , 0x0B , 0x13 , None , ' Arrows (10) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Lobby Right Chest " , ( " Chest " , 0x0B , 0x07 , None , ' Bombchus (5) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ First Iron Knuckle Chest " , ( " Chest " , 0x0B , 0x00 , None , ' Rupees (5) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Before Heavy Block Chest " , ( " Chest " , 0x0B , 0x11 , None , ' Arrows (10) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Heavy Block Chest " , ( " Chest " , 0x0B , 0x02 , None , ' Rupees (50) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Eye Statue Chest " , ( " Chest " , 0x0B , 0x03 , None , ' Bombchus (10) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Ice Arrows Chest " , ( " Chest " , 0x0B , 0x04 , None , ' Ice Arrows ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Second Iron Knuckle Chest " , ( " Chest " , 0x0B , 0x12 , None , ' Arrows (10) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Flame Circle Chest " , ( " Chest " , 0x0B , 0x0E , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Maze Right Central Chest " , ( " Chest " , 0x0B , 0x05 , None , ' Rupees (5) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Maze Right Side Chest " , ( " Chest " , 0x0B , 0x08 , None , ' Rupee (Treasure Chest Game) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Underwater Silver Rupee Chest " , ( " Chest " , 0x0B , 0x0D , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Dinolfos Chest " , ( " Chest " , 0x0B , 0x01 , None , ' Small Key (Gerudo Training Ground) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Hidden Ceiling Chest " , ( " Chest " , 0x0B , 0x0B , None , ' Rupees (50) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Maze Path First Chest " , ( " Chest " , 0x0B , 0x06 , None , ' Rupee (1) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Maze Path Third Chest " , ( " Chest " , 0x0B , 0x09 , None , ' Rupee (Treasure Chest Game) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
( " Gerudo Training Ground MQ Maze Path Second Chest " , ( " Chest " , 0x0B , 0x0A , None , ' Rupees (20) ' , ( " Gerudo Training Ground " , " Master Quest " , ) ) ) ,
Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
# Ganon's Castle vanilla
( " Ganons Castle Forest Trial Chest " , ( " Chest " , 0x0D , 0x09 , None , ' Rupees (5) ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Water Trial Left Chest " , ( " Chest " , 0x0D , 0x07 , None , ' Ice Trap ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Water Trial Right Chest " , ( " Chest " , 0x0D , 0x06 , None , ' Recovery Heart ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Shadow Trial Front Chest " , ( " Chest " , 0x0D , 0x08 , None , ' Rupees (5) ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Shadow Trial Golden Gauntlets Chest " , ( " Chest " , 0x0D , 0x05 , None , ' Progressive Strength Upgrade ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Light Trial First Left Chest " , ( " Chest " , 0x0D , 0x0C , None , ' Rupees (5) ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Light Trial Second Left Chest " , ( " Chest " , 0x0D , 0x0B , None , ' Ice Trap ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Light Trial Third Left Chest " , ( " Chest " , 0x0D , 0x0D , None , ' Recovery Heart ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Light Trial First Right Chest " , ( " Chest " , 0x0D , 0x0E , None , ' Ice Trap ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Light Trial Second Right Chest " , ( " Chest " , 0x0D , 0x0A , None , ' Arrows (30) ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Light Trial Third Right Chest " , ( " Chest " , 0x0D , 0x0F , None , ' Ice Trap ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Light Trial Invisible Enemies Chest " , ( " Chest " , 0x0D , 0x10 , None , ' Small Key (Ganons Castle) ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Light Trial Lullaby Chest " , ( " Chest " , 0x0D , 0x11 , None , ' Small Key (Ganons Castle) ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Spirit Trial Crystal Switch Chest " , ( " Chest " , 0x0D , 0x12 , None , ' Bombchus (20) ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Spirit Trial Invisible Chest " , ( " Chest " , 0x0D , 0x14 , None , ' Arrows (10) ' , ( " Ganon ' s Castle " , " Vanilla " , ) ) ) ,
( " Ganons Castle Deku Scrub Left " , ( " NPC " , 0x0D , 0x3A , None , ' Buy Green Potion ' , ( " Ganon ' s Castle " , " Vanilla " , " Deku Scrub " , ) ) ) ,
( " Ganons Castle Deku Scrub Center-Left " , ( " NPC " , 0x0D , 0x37 , None , ' Buy Bombs (5) [35] ' , ( " Ganon ' s Castle " , " Vanilla " , " Deku Scrub " , ) ) ) ,
( " Ganons Castle Deku Scrub Center-Right " , ( " NPC " , 0x0D , 0x33 , None , ' Buy Arrows (30) ' , ( " Ganon ' s Castle " , " Vanilla " , " Deku Scrub " , ) ) ) ,
( " Ganons Castle Deku Scrub Right " , ( " NPC " , 0x0D , 0x39 , None , ' Buy Red Potion [30] ' , ( " Ganon ' s Castle " , " Vanilla " , " Deku Scrub " , ) ) ) ,
# Ganon's Castle MQ
( " Ganons Castle MQ Forest Trial Freestanding Key " , ( " Collectable " , 0x0D , 0x01 , None , ' Small Key (Ganons Castle) ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Forest Trial Eye Switch Chest " , ( " Chest " , 0x0D , 0x02 , None , ' Arrows (10) ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Forest Trial Frozen Eye Switch Chest " , ( " Chest " , 0x0D , 0x03 , None , ' Bombs (5) ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Water Trial Chest " , ( " Chest " , 0x0D , 0x01 , None , ' Rupees (20) ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Shadow Trial Bomb Flower Chest " , ( " Chest " , 0x0D , 0x00 , None , ' Arrows (10) ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Shadow Trial Eye Switch Chest " , ( " Chest " , 0x0D , 0x05 , None , ' Small Key (Ganons Castle) ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Light Trial Lullaby Chest " , ( " Chest " , 0x0D , 0x04 , None , ' Recovery Heart ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Spirit Trial First Chest " , ( " Chest " , 0x0D , 0x0A , None , ' Bombchus (10) ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Spirit Trial Invisible Chest " , ( " Chest " , 0x0D , 0x14 , None , ' Arrows (10) ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Spirit Trial Sun Front Left Chest " , ( " Chest " , 0x0D , 0x09 , None , ' Recovery Heart ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Spirit Trial Sun Back Left Chest " , ( " Chest " , 0x0D , 0x08 , None , ' Small Key (Ganons Castle) ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Spirit Trial Sun Back Right Chest " , ( " Chest " , 0x0D , 0x07 , None , ' Recovery Heart ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Spirit Trial Golden Gauntlets Chest " , ( " Chest " , 0x0D , 0x06 , None , ' Progressive Strength Upgrade ' , ( " Ganon ' s Castle " , " Master Quest " , ) ) ) ,
( " Ganons Castle MQ Deku Scrub Left " , ( " NPC " , 0x0D , 0x3A , None , ' Buy Green Potion ' , ( " Ganon ' s Castle " , " Master Quest " , " Deku Scrub " , ) ) ) ,
( " Ganons Castle MQ Deku Scrub Center-Left " , ( " NPC " , 0x0D , 0x37 , None , ' Buy Bombs (5) [35] ' , ( " Ganon ' s Castle " , " Master Quest " , " Deku Scrub " , ) ) ) ,
( " Ganons Castle MQ Deku Scrub Center " , ( " NPC " , 0x0D , 0x33 , None , ' Buy Arrows (30) ' , ( " Ganon ' s Castle " , " Master Quest " , " Deku Scrub " , ) ) ) ,
( " Ganons Castle MQ Deku Scrub Center-Right " , ( " NPC " , 0x0D , 0x39 , None , ' Buy Red Potion [30] ' , ( " Ganon ' s Castle " , " Master Quest " , " Deku Scrub " , ) ) ) ,
( " Ganons Castle MQ Deku Scrub Right " , ( " NPC " , 0x0D , 0x30 , None , ' Buy Deku Nut (5) ' , ( " Ganon ' s Castle " , " Master Quest " , " Deku Scrub " , ) ) ) ,
# Ganon's Castle shared
( " Ganons Tower Boss Key Chest " , ( " Chest " , 0x0A , 0x0B , None , ' Boss Key (Ganons Castle) ' , ( " Ganon ' s Castle " , " Vanilla " , " Master Quest " , ) ) ) ,
## Events and Drops
( " Pierre " , ( " Event " , None , None , None , ' Scarecrow Song ' , None ) ) ,
( " Deliver Rutos Letter " , ( " Event " , None , None , None , ' Deliver Letter ' , None ) ) ,
( " Master Sword Pedestal " , ( " Event " , None , None , None , ' Time Travel ' , None ) ) ,
( " Deku Baba Sticks " , ( " Drop " , None , None , None , ' Deku Stick Drop ' , None ) ) ,
( " Deku Baba Nuts " , ( " Drop " , None , None , None , ' Deku Nut Drop ' , None ) ) ,
( " Stick Pot " , ( " Drop " , None , None , None , ' Deku Stick Drop ' , None ) ) ,
( " Nut Pot " , ( " Drop " , None , None , None , ' Deku Nut Drop ' , None ) ) ,
( " Nut Crate " , ( " Drop " , None , None , None , ' Deku Nut Drop ' , None ) ) ,
( " Blue Fire " , ( " Drop " , None , None , None , ' Blue Fire ' , None ) ) ,
( " Lone Fish " , ( " Drop " , None , None , None , ' Fish ' , None ) ) ,
( " Fish Group " , ( " Drop " , None , None , None , ' Fish ' , None ) ) ,
( " Bug Rock " , ( " Drop " , None , None , None , ' Bugs ' , None ) ) ,
( " Bug Shrub " , ( " Drop " , None , None , None , ' Bugs ' , None ) ) ,
( " Wandering Bugs " , ( " Drop " , None , None , None , ' Bugs ' , None ) ) ,
( " Fairy Pot " , ( " Drop " , None , None , None , ' Fairy ' , None ) ) ,
( " Free Fairies " , ( " Drop " , None , None , None , ' Fairy ' , None ) ) ,
( " Wall Fairy " , ( " Drop " , None , None , None , ' Fairy ' , None ) ) ,
( " Butterfly Fairy " , ( " Drop " , None , None , None , ' Fairy ' , None ) ) ,
( " Gossip Stone Fairy " , ( " Drop " , None , None , None , ' Fairy ' , None ) ) ,
( " Bean Plant Fairy " , ( " Drop " , None , None , None , ' Fairy ' , None ) ) ,
( " Fairy Pond " , ( " Drop " , None , None , None , ' Fairy ' , None ) ) ,
( " Big Poe Kill " , ( " Drop " , None , None , None , ' Big Poe ' , None ) ) ,
## Hints
# These are not actual locations, but are filler spots used for hint reachability.
# Hint location types must start with 'Hint'.
( " DMC Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " DMT Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " Colossus Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " Dodongos Cavern Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " GV Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " GC Maze Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " GC Medigoron Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " Graveyard Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " HC Malon Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " HC Rock Wall Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " HC Storms Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " HF Cow Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " KF Deku Tree Gossip Stone (Left) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " KF Deku Tree Gossip Stone (Right) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " KF Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " LH Lab Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " LH Gossip Stone (Southeast) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " LH Gossip Stone (Southwest) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " LW Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " SFM Maze Gossip Stone (Lower) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " SFM Maze Gossip Stone (Upper) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " SFM Saria Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ToT Gossip Stone (Left) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ToT Gossip Stone (Left-Center) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ToT Gossip Stone (Right) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ToT Gossip Stone (Right-Center) " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ZD Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ZF Fairy Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ZF Jabu Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ZR Near Grottos Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ZR Near Domain Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " HF Near Market Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " HF Southeast Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " HF Open Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " Kak Open Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " ZR Open Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " KF Storms Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " LW Near Shortcuts Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " DMT Storms Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " DMC Upper Grotto Gossip Stone " , ( " HintStone " , None , None , None , None , None ) ) ,
( " Ganondorf Hint " , ( " Hint " , None , None , None , None , None ) ) ,
] )
location_sort_order = {
loc : i for i , loc in enumerate ( location_table . keys ( ) )
}
# Business Scrub Details
business_scrubs = [
# id price text text replacement
( 0x30 , 20 , 0x10A0 , [ " Deku Nuts " , " a \x05 \x42 mysterious item \x05 \x40 " ] ) ,
( 0x31 , 15 , 0x10A1 , [ " Deku Sticks " , " a \x05 \x42 mysterious item \x05 \x40 " ] ) ,
( 0x3E , 10 , 0x10A2 , [ " Piece of Heart " , " \x05 \x42 mysterious item \x05 \x40 " ] ) ,
( 0x33 , 40 , 0x10CA , [ " \x05 \x41 Deku Seeds " , " a \x05 \x42 mysterious item " ] ) ,
( 0x34 , 50 , 0x10CB , [ " \x41 Deku Shield " , " \x42 mysterious item " ] ) ,
( 0x37 , 40 , 0x10CC , [ " \x05 \x41 Bombs " , " a \x05 \x42 mysterious item " ] ) ,
( 0x38 , 00 , 0x10CD , [ " \x05 \x41 Arrows " , " a \x05 \x42 mysterious item " ] ) , # unused
( 0x39 , 40 , 0x10CE , [ " \x05 \x41 Red Potion " , " \x05 \x42 mysterious item " ] ) ,
( 0x3A , 40 , 0x10CF , [ " Green Potion " , " mysterious item " ] ) ,
( 0x77 , 40 , 0x10DC , [ " enable you to pick up more \x01 \x05 \x41 Deku Sticks " , " sell you a \x05 \x42 mysterious item " ] ) ,
( 0x79 , 40 , 0x10DD , [ " enable you to pick up more \x05 \x41 Deku \x01 Nuts " , " sell you a \x05 \x42 mysterious item " ] ) ,
]
2022-05-01 18:05:52 +00:00
dungeons = ( ' Deku Tree ' , ' Dodongo \' s Cavern ' , ' Jabu Jabu \' s Belly ' , ' Forest Temple ' , ' Fire Temple ' , ' Water Temple ' , ' Spirit Temple ' , ' Shadow Temple ' , ' Ice Cavern ' , ' Bottom of the Well ' , ' Gerudo Training Ground ' , ' Ganon \' s Castle ' )
Ocarina of Time (#64)
* first commit (not including OoT data files yet)
* added some basic options
* rule parser works now at least
* make sure to commit everything this time
* temporary change to BaseClasses for oot
* overworld location graph builds mostly correctly
* adding oot data files
* commenting out world options until later since they only existed to make the RuleParser work
* conversion functions between AP ids and OOT ids
* world graph outputs
* set scrub prices
* itempool generates, entrances connected, way too many options added
* fixed set_rules and set_shop_rules
* temp baseclasses changes
* Reaches the fill step now, old event-based system retained in case the new way breaks
* Song placements and misc fixes everywhere
* temporary changes to make oot work
* changed root exits for AP fill framework
* prevent infinite recursion due to OoT sharing usage of the address field
* age reachability works hopefully, songs are broken again
* working spoiler log generation on beatable-only
* Logic tricks implemented
* need this for logic tricks
* fixed map/compass being placed on Serenade location
* kill unreachable events before filling the world
* add a bunch of utility functions to prepare for rom patching
* move OptionList into generic options
* fixed some silly bugs with OptionList
* properly seed all random behavior (so far)
* ROM generation working
* fix hints trying to get alttp dungeon hint texts
* continue fixing hints
* add oot to network data package
* change item and location IDs to 66000 and 67000 range respectively
* push removed items to precollected items
* fixed various issues with cross-contamination with multiple world generation
* reenable glitched logic (hopefully)
* glitched world files age-check fix
* cleaned up some get_locations calls
* added token shuffle and scrub shuffle, modified some options slightly to make the parsing work
* reenable MQ dungeons
* fix forest mq exception
* made targeting style an option for now, will be cosmetic later
* reminder to move targeting to cosmetics
* some oot option maintenance
* enabled starting time of day
* fixed issue breaking shop slots in multiworld generation
* added "off" option for text shuffle and hints
* shopsanity functionality restored
* change patch file extension
* remove unnecessary utility functions + imports
* update MIT license
* change option to "patch_uncompressed_rom" instead of "compress_rom"
* compliance with new AutoWorld systems
* Kill only internal events, remove non-internal big poe event in code
* re-add the big poe event and handle it correctly
* remove extra method in Range option
* fix typo
* Starting items, starting with consumables option
* do not remove nonexistent item
* move set_shop_rules to after shop items are placed
* some cleanup
* add retries for song placement
* flagged Skull Mask and Mask of Truth as advancement items
* update OoT to use LogicMixin
* Fixed trying to assign starting items from the wrong players
* fixed song retry step
* improved option handling, comments, and starting item replacements
* DefaultOnToggle writes Yes or No to spoiler
* enable compression of output if Compress executable is present
* clean up compression
* check whether (de)compressor exists before running the process
* allow specification of rom path in host.yaml
* check if decompressed file already exists before decompressing again
* fix triforce hunt generation
* rename all the oot state functions with prefix
* OoT: mark triforce pieces as completion goal for triforce hunt
* added overworld and any-dungeon shuffle for dungeon items
* Hide most unshuffled locations and events from the list of locations in spoiler
* build oot option ranges with a generic function instead of defining each separately
* move oot output-type control to host.yaml instead of individual yamls
* implement dungeon song shuffle
* minor improvements to overworld dungeon item shuffle
* remove random ice trap names in shops, mostly to avoid maintaining a massive censor list
* always output patch file to folder, remove option to generate ROM in preparation for removal
* re-add the fix for infinite recursion due to not being light or dark world
* change AP-sendable to Ocarina of Time model, since the triforce piece has some extra code apparently
* oot: remove item_names and location_names
* oot: minor fixes
* oot: comment out ROM patching
* oot: only add CollectionState objects on creation if actually needed
* main entrance shuffle method and entrances-based rules
* fix entrances based rules
* disable master quest and big poe count options for client compatibility
* use get_player_name instead of get_player_names
* fix OptionList
* fix oot options for new option system
* new coop section in oot rom: expand player names to 16 bytes, write AP_PLAYER_NAME at end of PLAYER_NAMES
* fill AP player name in oot rom with 0 instead of 0xDF
* encode player name with ASCII for fixed-width
* revert oot player name array to 8 bytes per name
* remove Pierre location if fast scarecrow is on
* check player name length
* "free_scarecrow" not "fast_scarecrow"
* OoT locations now properly store the AP ID instead of the oot internal ID
* oot __version__ updates in lockstep with AP version
* pull in unmodified oot cosmetic files
* also grab JSONDump since it's needed apparently
* gather extra needed methods, modify imports
* delete cosmetics log, replace all instances of SettingsList with OOTWorld
* cosmetic options working, except for sound effects (due to ear-safe issues)
* SFX, Music, and Fanfare randomization reenabled
* move OoT data files into the worlds folder
* move Compress and Decompress into oot data folder
* Replace get_all_state with custom method to avoid the cache
* OoT ROM: increment item counter before setting incoming item/player values to 0, preventing desync issues
* set data_version to 0
* make Kokiri Sword shuffle off by default
* reenable "Random Choice" for various cosmetic options
* kill Ruto's Letter turnin if open fountain
also fix for shopsanity
* place Buy Goron/Zora Tunic first in shop shuffle
* make ice traps appear as other items instead of breaking generation
* managed to break ice traps on non-major-only
* only handle ice traps if they are on
* fix shopsanity for non-oot games, and write player name instead of player number
* light arrows hint uses player name instead of player number
* Reenable "skip child zelda" option
* fix entrances_based_rules
* fix ganondorf hint if starting with light arrows
* fix dungeonitem shuffle and shopsanity interaction
* remove has_all_of, has_any_of, count_of in BaseClasses, replace usage with has_all, has_any, has_group
* force local giveable item on ZL if skip_child_zelda and shuffle_song_items is any
* keep bosses and bombchu bowling chus out of data package
* revert workaround for infinite recursion and fix it properly
* fix shared shop id caches during patching process
* fix shop text box overflows, as much as possible
* add default oot host.yaml option
* add .apz5, .n64, .z64 to gitignore
* Properly document and name all (functioning) OOT options
* clean up some imports
* remove unnecessary files from oot's data
* fix typo in gitignore
* readd the Compress and Decompress utilities, since they are needed for generation
* cleanup of imports and some minor optimizations
* increase shop offset for item IDs to 0xCB
* remove shop item AP ids entirely
* prevent triforce pieces for other players from being received by yourself
* add "excluded" property to Location
* Hint system adapted and reenabled; hints still unseeded
* make hints deterministic with lists instead of sets
* do not allow hints to point to Light Arrows on non-vanilla bridge
* foreign locations hint as their full name in OoT rather than their region
* checkedLocations now stores hint names by player ID, so that the same location in different worlds can have hints associated
* consolidate versioning in Utils
* ice traps appear as major items rather than any progression item
* set prescription and claim check as defaults for adult trade item settings
* add oot options to playerSettings
* allow case-insensitive logic tricks in yaml
* fix oot shopsanity option formatting
* Write OoT override info even if local item, enabling local checks to show up immediately in the client
* implement CollectionState.can_live_dmg for oot glitched logic
* filter item names for invalid characters when patching shops
* make ice traps appear according to the settings of the world they are shuffled into, rather than the original world
* set hidden-spoiler items and locations with Shop items to events
* make GF carpenters, Gerudo Card, Malon, ZL, and Impa events if the relevant settings are enabled, preventing them from appearing in the client on game start
* Fix oot Glitched and No Logic generation
* fix indenting
* Greatly reduce displayed cosmetic options
* Change oot data version to 1
* add apz5 distribution to webhost
* print player name if an ALttP dungeon contains a good item for OoT world
* delete unneeded commented code
* remove OcarinaSongs import to satisfy lint
2021-09-02 12:35:05 +00:00
location_groups = {
' Song ' : [ name for ( name , data ) in location_table . items ( ) if data [ 0 ] == ' Song ' ] ,
' Chest ' : [ name for ( name , data ) in location_table . items ( ) if data [ 0 ] == ' Chest ' ] ,
' Collectable ' : [ name for ( name , data ) in location_table . items ( ) if data [ 0 ] == ' Collectable ' ] ,
' BossHeart ' : [ name for ( name , data ) in location_table . items ( ) if data [ 0 ] == ' BossHeart ' ] ,
' CollectableLike ' : [ name for ( name , data ) in location_table . items ( ) if data [ 0 ] in ( ' Collectable ' , ' BossHeart ' , ' GS Token ' ) ] ,
' CanSee ' : [ name for ( name , data ) in location_table . items ( )
if data [ 0 ] in ( ' Collectable ' , ' BossHeart ' , ' GS Token ' , ' Shop ' )
# Treasure Box Shop, Bombchu Bowling, Hyrule Field (OoT), Lake Hylia (RL/FA)
or data [ 0 : 2 ] in [ ( ' Chest ' , 0x10 ) , ( ' NPC ' , 0x4B ) , ( ' NPC ' , 0x51 ) , ( ' NPC ' , 0x57 ) ] ] ,
' Dungeon ' : [ name for ( name , data ) in location_table . items ( ) if data [ 5 ] is not None and any ( dungeon in data [ 5 ] for dungeon in dungeons ) ] ,
}
def location_is_viewable ( loc_name , correct_chest_sizes ) :
return correct_chest_sizes and loc_name in location_groups [ ' Chest ' ] or loc_name in location_groups [ ' CanSee ' ]
# Function to run exactly once after after placing items in drop locations for each world
# Sets all Drop locations to a unique name in order to avoid name issues and to identify locations in the spoiler
# Also cause them to not be shown in the list of locations, only in playthrough
def set_drop_location_names ( ootworld ) :
for region in ootworld . regions :
for location in region . locations :
if location . type == ' Drop ' :
location . name = location . parent_region . name + " " + location . name
location . show_in_spoiler = False