diff --git a/ASM/c/actor.c b/ASM/c/actor.c index a5bd411c2..58e1bc5f1 100644 --- a/ASM/c/actor.c +++ b/ASM/c/actor.c @@ -5,18 +5,17 @@ #define OBJ_COMB 0x19E #define OBJ_MURE3 0x1AB -void Actor_SetWorldToHome_End(z64_actor_t* actor) -{ - //Reset z rotation to 0 for any actors that we use it as flag space - //bg_haka_tubo 0xBB - //bg_spot18_basket 0x15C - //obj_comb 0x19E - //obj_mure3 0x1AB - if(actor->actor_id == BG_HAKA_TUBO || +void Actor_SetWorldToHome_End(z64_actor_t *actor) { + // Reset z rotation to 0 for any actors that we use it as flag space + // bg_haka_tubo 0xBB + // bg_spot18_basket 0x15C + // obj_comb 0x19E + // obj_mure3 0x1AB + if (actor->actor_id == BG_HAKA_TUBO || actor->actor_id == BG_SPOT18_BASKET || actor->actor_id == OBJ_COMB || - actor->actor_id == OBJ_MURE3 ) + actor->actor_id == OBJ_MURE3) { actor->rot_world.z = 0; } -} \ No newline at end of file +} diff --git a/ASM/c/get_items.c b/ASM/c/get_items.c index be3239198..c8d427fa3 100644 --- a/ASM/c/get_items.c +++ b/ASM/c/get_items.c @@ -9,7 +9,7 @@ extern uint8_t FAST_CHESTS; extern uint8_t OCARINAS_SHUFFLED; extern uint8_t NO_COLLECTIBLE_HEARTS; -override_t cfg_item_overrides[1536] = {0}; +override_t cfg_item_overrides[1536] = { 0 }; int item_overrides_count = 0; z64_actor_t *dummy_actor = NULL; @@ -82,18 +82,18 @@ override_key_t get_override_search_key(z64_actor_t *actor, uint8_t scene, uint8_ } else if (actor->actor_id == 0x15) { // Override heart pieces, keys, red, blue, green rupees, and recovery hearts int collectable_type = actor->variable & 0xFF; - if (collectable_type == 0x12) // don't override fairies - return (override_key_t){.all = 0}; - - + if (collectable_type == 0x12) { // don't override fairies + return (override_key_t){ .all = 0 }; + } // Check if it was a dropped collectable and use a separate override for that EnItem00 *item = (EnItem00 *)actor; uint8_t flag = ((item->actor.dropFlag & 0x06) << 5) + item->collectibleFlag; if (item->actor.dropFlag) { // Use the same override flags for the pots in ganon's tower - if (scene == 0x0A) + if (scene == 0x0A) { scene = 0x19; + } return (override_key_t){ .scene = scene, .type = OVR_DROPPEDCOLLECTABLE, @@ -104,7 +104,8 @@ override_key_t get_override_search_key(z64_actor_t *actor, uint8_t scene, uint8_ return (override_key_t){ .scene = scene, .type = OVR_COLLECTABLE, - .flag = flag}; + .flag = flag, + }; } else if (actor->actor_id == 0x19C) { return (override_key_t){ .scene = (actor->variable >> 8) & 0x1F, @@ -411,7 +412,8 @@ uint8_t items[] = { 0, 0, 0, - GIVEITEM_RUPEE_PURPLE}; + GIVEITEM_RUPEE_PURPLE, +}; EnItem00 *collectible_mutex = 0; @@ -421,13 +423,13 @@ void reset_collectible_mutex() { collectible_mutex = NULL; } -// New EnItem00 function that freezes link until the messagebox is closed. Similar to how skulls work. +// New EnItem00 function that freezes Link until the messagebox is closed. Similar to how skulls work. void Collectible_WaitForMessageBox(EnItem00 *this, z64_game_t *game) { // Check message state: if (z64_MessageGetState(((uint8_t *)(&z64_game)) + 0x20D8) == 0) { // Make sure link was frozen for the minimum amount of time if (this->timeToLive == 0) { - reset_collectible_mutex(); // release the mutex + reset_collectible_mutex(); // release the mutex // Kill the actor z64_ActorKill(&(this->actor)); } @@ -451,24 +453,15 @@ bool Get_CollectibleOverrideFlag(EnItem00 *item00) { } uint16_t extended_flag = get_extended_flag(item00); - if (dropFlag) // we set this if it's dropped - { + if (dropFlag) { // we set this if it's dropped flag_table = dropped_collectible_override_flags; scene_table = &dropped_collectible_scene_flags_table[0]; - if (scene == 0x0A) + if (scene == 0x0A) { scene = 0x19; + } } - // uint16_t extended_flag = item00->collectibleFlag; //Update this to make the flag bigger - - return (flag_table[scene_table[scene] + (extended_flag / 0x20)] & (1 << (extended_flag % 0x20))); - /* - if(item00->collectibleFlag < 0x20) - { - return (flag_table[2*scene] & (1 << item00->collectibleFlag)) > 0; - } - return (flag_table[2*scene + 1] & (1 << (item00->collectibleFlag - 0x20))) > 0; - */ + return flag_table[scene_table[scene] + (extended_flag / 0x20)] & (1 << (extended_flag % 0x20)); } void Set_CollectibleOverrideFlag(EnItem00 *item00) { @@ -480,22 +473,11 @@ void Set_CollectibleOverrideFlag(EnItem00 *item00) { if (dropFlag) { flag_table = dropped_collectible_override_flags; scene_table = &dropped_collectible_scene_flags_table[0]; - if (scene == 0x0A) + if (scene == 0x0A) { scene = 0x19; + } } - flag_table[scene_table[scene] + (extended_flag / 0x20)] |= (1 << (extended_flag % 0x20)); - - // uint16_t extended_flag = item00->collectibleFlag; //Update this to make the flag bigger - - return; - /*if(item00->collectibleFlag < 0x20) - { - flag_table[2 * scene] |= (1 << item00->collectibleFlag); - } - else - { - flag_table[2 * scene + 1] |= (1 << (item00->collectibleFlag -0x20)); - }*/ + flag_table[scene_table[scene] + (extended_flag / 0x20)] |= 1 << (extended_flag % 0x20); } bool should_override_collectible(EnItem00 *item00) { @@ -508,10 +490,12 @@ bool should_override_collectible(EnItem00 *item00) { bool Item00_KillActorIfFlagIsSet(z64_actor_t *actor) { EnItem00 *this = (EnItem00 *)actor; - if (should_override_collectible(this)) + if (should_override_collectible(this)) { return 0; - if (get_extended_flag(this) >= 0x40) + } + if (get_extended_flag(this) >= 0x40) { return 0; + } if (z64_Flags_GetCollectible(&z64_game, this->collectibleFlag)) { z64_ActorKill(actor); return 1; @@ -521,11 +505,13 @@ bool Item00_KillActorIfFlagIsSet(z64_actor_t *actor) { // Hack for keeping freestanding overrides alive when they spawn from crates/pots. void Item00_KeepAlive(EnItem00 *item00) { if (should_override_collectible(item00) && (item00->actionFunc != (EnItem00ActionFunc)0x800127E0)) { - if (item00->unk_156) + if (item00->unk_156) { item00->timeToLive = 0xFF; + } } else { - if (item00->timeToLive > 0) + if (item00->timeToLive > 0) { item00->timeToLive--; + } } } @@ -538,13 +524,14 @@ int16_t get_override_drop_id(int16_t dropId, uint16_t params) { dummy.actor.dropFlag |= (params & 0x00C0) >> 5; dummy.actor.variable = dropId; if (should_override_collectible(&dummy) && - (dropId != ITEM00_HEART_PIECE) && - (dropId != ITEM00_SMALL_KEY) && - (dropId != ITEM00_HEART_CONTAINER) && - (dropId != ITEM00_SHIELD_DEKU) && - (dropId != ITEM00_SHIELD_HYLIAN) && - (dropId != ITEM00_TUNIC_ZORA) && - (dropId != ITEM00_TUNIC_GORON)) { + dropId != ITEM00_HEART_PIECE && + dropId != ITEM00_SMALL_KEY && + dropId != ITEM00_HEART_CONTAINER && + dropId != ITEM00_SHIELD_DEKU && + dropId != ITEM00_SHIELD_HYLIAN && + dropId != ITEM00_TUNIC_ZORA && + dropId != ITEM00_TUNIC_GORON) + { dropId = ITEM00_RUPEE_GREEN; return dropId; } @@ -562,17 +549,20 @@ int16_t get_override_drop_id(int16_t dropId, uint16_t params) { } // This is convoluted but it seems like it must be a single condition to match - if (((dropId == ITEM00_BOMBS_A) || (dropId == ITEM00_BOMBS_SPECIAL) || (dropId == ITEM00_BOMBS_B)) && (z64_file.items[ITEM_BOMB] == -1)) + if ((dropId == ITEM00_BOMBS_A || dropId == ITEM00_BOMBS_SPECIAL || dropId == ITEM00_BOMBS_B) && z64_file.items[ITEM_BOMB] == -1) { return -1; - if (((dropId == ITEM00_ARROWS_SMALL) || (dropId == ITEM00_ARROWS_MEDIUM) || (dropId == ITEM00_ARROWS_LARGE)) && (z64_file.items[ITEM_BOW] == -1)) + } + if ((dropId == ITEM00_ARROWS_SMALL || dropId == ITEM00_ARROWS_MEDIUM || dropId == ITEM00_ARROWS_LARGE) && z64_file.items[ITEM_BOW] == -1) { return -1; - if (((dropId == ITEM00_MAGIC_LARGE) || (dropId == ITEM00_MAGIC_SMALL)) && (z64_file.magic_capacity_set == 0)) + } + if ((dropId == ITEM00_MAGIC_LARGE || dropId == ITEM00_MAGIC_SMALL) && z64_file.magic_capacity_set == 0) { return -1; - if (((dropId == ITEM00_SEEDS)) && (z64_file.items[ITEM_SLINGSHOT] == -1)) { + } + if ((dropId == ITEM00_SEEDS) && z64_file.items[ITEM_SLINGSHOT] == -1) { return -1; } - if ((dropId == ITEM00_HEART) && ((z64_file.energy_capacity == z64_file.energy) || NO_COLLECTIBLE_HEARTS)) { + if (dropId == ITEM00_HEART && (z64_file.energy_capacity == z64_file.energy || NO_COLLECTIBLE_HEARTS)) { return ITEM00_RUPEE_GREEN; } @@ -587,18 +577,16 @@ uint8_t item_give_collectible(uint8_t item, z64_link_t *link, z64_actor_t *from_ // Check if we should override the item. We have logic in the randomizer to not include excluded items in the override table. if (override.key.all == 0 || Get_CollectibleOverrideFlag(pItem)) { - z64_GiveItem(&z64_game, items[item]); // Give the regular item (this is what is normally called by the non-hacked function) - if (get_extended_flag(pItem) > 0x3F) // If our extended collectible flag is outside the range of normal collectibles, set the flag to 0 so it doesn't write something wrong. We should only ever be using this for things that normally are 0 anyway - { + z64_GiveItem(&z64_game, items[item]); // Give the regular item (this is what is normally called by the non-hacked function) + if (get_extended_flag(pItem) > 0x3F) { // If our extended collectible flag is outside the range of normal collectibles, set the flag to 0 so it doesn't write something wrong. We should only ever be using this for things that normally are 0 anyway pItem->collectibleFlag = 0; pItem->actor.dropFlag &= 0x01; } return 0; } - if (!collectible_mutex && pItem->actor.main_proc != NULL) // Check our mutex so that only one collectible can run at a time (if 2 run on the same frame you lose the message). Also make sure that this actor hasn't already been killed. - { - collectible_mutex = (EnItem00*)from_actor; + if (!collectible_mutex && pItem->actor.main_proc != NULL) { // Check our mutex so that only one collectible can run at a time (if 2 run on the same frame you lose the message). Also make sure that this actor hasn't already been killed. + collectible_mutex = (EnItem00 *)from_actor; collectible_override = override; // resolve upgrades and figure out what item to give. uint16_t item_id = collectible_override.value.item_id; @@ -607,26 +595,26 @@ uint8_t item_give_collectible(uint8_t item, z64_link_t *link, z64_actor_t *from_ // Set the collectible flag Set_CollectibleOverrideFlag(pItem); - if ((item == ITEM00_HEART_PIECE) || (item == ITEM00_SMALL_KEY)) // Don't allow heart pieces or small keys to be collected a second time. This is really just for the "Drop" types. + if (item == ITEM00_HEART_PIECE || item == ITEM00_SMALL_KEY) { // Don't allow heart pieces or small keys to be collected a second time. This is really just for the "Drop" types. z64_SetCollectibleFlags(&z64_game, pItem->collectibleFlag); + } item_id = collectible_override.value.item_id; uint8_t player = collectible_override.value.player; PLAYER_NAME_ID = player; // If it's a junk item (aka a regular collectible) don't do the fanfare music/message box. - if (item_row->collectible > 0) // Item is one of our base collectibles - { + if (item_row->collectible > 0) { // Item is one of our base collectibles collectible_mutex = NULL; pItem->actor.health = 1; z64_GiveItem(&z64_game, item_row->action_id); - // pItem->actor.variable = item_row->collectible; // Pick the correct sound effect for rupees or other items. uint16_t sfxId = NA_SE_SY_GET_ITEM; - if (item_row->collectible <= ITEM00_RUPEE_RED || item_row->collectible == ITEM00_RUPEE_PURPLE || item_row->collectible == ITEM00_RUPEE_ORANGE) + if (item_row->collectible <= ITEM00_RUPEE_RED || item_row->collectible == ITEM00_RUPEE_PURPLE || item_row->collectible == ITEM00_RUPEE_ORANGE) { sfxId = NA_SE_SY_GET_RUPY; - z64_Audio_PlaySoundGeneral(sfxId, (void*)0x80104394, 4, (float*)0x801043A0, (float*)0x801043A0, (uint8_t*)0x801043A8); - return 3; // Return to the original function so it can draw the collectible above our head. + } + z64_Audio_PlaySoundGeneral(sfxId, (void *)0x80104394, 4, (float *)0x801043A0, (float *)0x801043A0, (uint8_t *)0x801043A8); + return 3; // Return to the original function so it can draw the collectible above our head. } // draw message box and play get item sound (like when a skull is picked up) @@ -638,7 +626,7 @@ uint8_t item_give_collectible(uint8_t item, z64_link_t *link, z64_actor_t *from_ pItem->timeToLive = 15; // unk_15A is a frame timer that is decremented each frame by the main actor code. pItem->unk_154 = 35; // not quite sure but this is what the vanilla game does. pItem->getItemId = 0; - z64_link.common.frozen = 10; // freeze link (like when picking up a skull) + z64_link.common.frozen = 10; // freeze Link (like when picking up a skull) pItem->actionFunc = Collectible_WaitForMessageBox; // Set up the EnItem00 action function to wait for the message box to close. // Give the item to the right place diff --git a/ASM/c/get_items.h b/ASM/c/get_items.h index f10b54a89..0e289a07b 100644 --- a/ASM/c/get_items.h +++ b/ASM/c/get_items.h @@ -1,8 +1,8 @@ #ifndef GET_ITEMS_H #define GET_ITEMS_H -#include "z64.h" #include +#include "z64.h" void item_overrides_init(); void handle_pending_items(); @@ -15,7 +15,7 @@ enum override_type { OVR_SKULL = 3, OVR_GROTTO_SCRUB = 4, OVR_DELAYED = 5, - OVR_DROPPEDCOLLECTABLE = 6 + OVR_DROPPEDCOLLECTABLE = 6, }; typedef union { @@ -44,7 +44,7 @@ typedef struct { override_t lookup_override_by_key(override_key_t key); override_t lookup_override(z64_actor_t *actor, uint8_t scene, uint8_t item_id); -bool should_override_collectible(EnItem00* this); +bool should_override_collectible(EnItem00 *this); void Collectible_WaitForMessageBox(EnItem00 *this, z64_game_t *game); void reset_collectible_mutex(); void override_flags_init(); diff --git a/ASM/c/item_table.c b/ASM/c/item_table.c index 1f688e6a9..9afc6a504 100644 --- a/ASM/c/item_table.c +++ b/ASM/c/item_table.c @@ -25,100 +25,100 @@ item_row_t item_table[] = { [0x01] = ITEM_ROW(0x4D, BROWN_CHEST, 0x8E, 11, 0x0032, 0x00CE, 0x20, bombs_to_rupee, no_effect, -1, -1), // Bombs (5) [0x02] = ITEM_ROW(0x4D, BROWN_CHEST, 0x8C, 12, 0x0034, 0x00BB, 0x12, no_upgrade, no_effect, -1, -1), // Deku Nuts (5) - [0x03] = ITEM_ROW(0x4D, BROWN_CHEST, 0x09, 0, 0x0033, 0x00D9, 0x28, no_upgrade, no_effect, -1, -1), // Bombchu (10) - [0x04] = ITEM_ROW(0x53, GILDED_CHEST, 0x03, 0, 0x0031, 0x00E9, 0x35, no_upgrade, no_effect, -1, -1), // Fairy Bow - [0x05] = ITEM_ROW(0x53, GILDED_CHEST, 0x06, 0, 0x0030, 0x00E7, 0x33, no_upgrade, no_effect, -1, -1), // Fairy Slingshot - [0x06] = ITEM_ROW(0x53, GILDED_CHEST, 0x0E, 0, 0x0035, 0x00E8, 0x34, no_upgrade, no_effect, -1, -1), // Boomerang + [0x03] = ITEM_ROW(0x4D, BROWN_CHEST, 0x09, 0, 0x0033, 0x00D9, 0x28, no_upgrade, no_effect, -1, -1), // Bombchu (10) + [0x04] = ITEM_ROW(0x53, GILDED_CHEST, 0x03, 0, 0x0031, 0x00E9, 0x35, no_upgrade, no_effect, -1, -1), // Fairy Bow + [0x05] = ITEM_ROW(0x53, GILDED_CHEST, 0x06, 0, 0x0030, 0x00E7, 0x33, no_upgrade, no_effect, -1, -1), // Fairy Slingshot + [0x06] = ITEM_ROW(0x53, GILDED_CHEST, 0x0E, 0, 0x0035, 0x00E8, 0x34, no_upgrade, no_effect, -1, -1), // Boomerang [0x07] = ITEM_ROW(0x4D, BROWN_CHEST, 0x00, 13, 0x0037, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1), // Deku Stick - [0x08] = ITEM_ROW(0x53, GILDED_CHEST, 0x0A, 0, 0x0036, 0x00DD, 0x2D, no_upgrade, no_effect, -1, -1), // Hookshot - [0x09] = ITEM_ROW(0x53, GILDED_CHEST, 0x0B, 0, 0x004F, 0x00DD, 0x2E, no_upgrade, no_effect, -1, -1), // Longshot - [0x0A] = ITEM_ROW(0x53, GILDED_CHEST, 0x0F, 0, 0x0039, 0x00EA, 0x36, no_upgrade, no_effect, -1, -1), // Lens of Truth - [0x0B] = ITEM_ROW(0x53, GILDED_CHEST, 0x23, 0, 0x0069, 0x00EF, 0x3B, no_upgrade, open_mask_shop, -1, -1), // Zelda's Letter - [0x0C] = ITEM_ROW(0x53, GILDED_CHEST, 0x08, 0, 0x003A, 0x00DE, 0x2F, no_upgrade, no_effect, -1, -1), // Ocarina of Time - [0x0D] = ITEM_ROW(0x53, GILDED_CHEST, 0x11, 0, 0x0038, 0x00F6, 0x41, no_upgrade, no_effect, -1, -1), // Megaton Hammer - [0x0E] = ITEM_ROW(0x53, GILDED_CHEST, 0x2F, 0, 0x0002, 0x0109, 0x5E, no_upgrade, no_effect, -1, -1), // Cojiro - [0x0F] = ITEM_ROW(0x53, GILDED_CHEST, 0x14, 0, 0x0042, 0x00C6, 0x01, no_upgrade, no_effect, -1, -1), // Empty Bottle - [0x10] = ITEM_ROW(0x53, GILDED_CHEST, 0x15, 0, 0x0043, 0x00EB, 0x38, no_upgrade, no_effect, -1, -1), // Red Potion - [0x11] = ITEM_ROW(0x53, GILDED_CHEST, 0x16, 0, 0x0044, 0x00EB, 0x37, no_upgrade, no_effect, -1, -1), // Green Potion - [0x12] = ITEM_ROW(0x53, GILDED_CHEST, 0x17, 0, 0x0045, 0x00EB, 0x39, no_upgrade, no_effect, -1, -1), // Blue Potion - [0x13] = ITEM_ROW(0x53, GILDED_CHEST, 0x18, 0, 0x0046, 0x00C6, 0x01, no_upgrade, no_effect, -1, -1), // Bottled Fairy - [0x14] = ITEM_ROW(0x53, GILDED_CHEST, 0x1A, 0, 0x0098, 0x00DF, 0x30, no_upgrade, no_effect, -1, -1), // Bottled Lon Lon Milk - [0x15] = ITEM_ROW(0x53, GILDED_CHEST, 0x1B, 0, 0x0099, 0x010B, 0x45, letter_to_bottle, no_effect, -1, -1), // Bottled Ruto's Letter - [0x16] = ITEM_ROW(0x53, BROWN_CHEST, 0x10, 0, 0x0048, 0x00F3, 0x3E, no_upgrade, no_effect, -1, -1), // Magic Bean - [0x17] = ITEM_ROW(0x53, GILDED_CHEST, 0x25, 0, 0x0010, 0x0136, 0x4F, no_upgrade, no_effect, -1, -1), // Skull Mask - [0x18] = ITEM_ROW(0x53, GILDED_CHEST, 0x26, 0, 0x0011, 0x0135, 0x32, no_upgrade, no_effect, -1, -1), // Spooky Mask - [0x19] = ITEM_ROW(0x53, GILDED_CHEST, 0x22, 0, 0x000B, 0x0109, 0x44, no_upgrade, no_effect, -1, -1), // Chicken - [0x1A] = ITEM_ROW(0x53, GILDED_CHEST, 0x24, 0, 0x0012, 0x0134, 0x31, no_upgrade, no_effect, -1, -1), // Keaton Mask - [0x1B] = ITEM_ROW(0x53, GILDED_CHEST, 0x27, 0, 0x0013, 0x0137, 0x50, no_upgrade, no_effect, -1, -1), // Bunny Hood - [0x1C] = ITEM_ROW(0x53, GILDED_CHEST, 0x2B, 0, 0x0017, 0x0138, 0x51, no_upgrade, no_effect, -1, -1), // Mask of Truth - [0x1D] = ITEM_ROW(0x53, GILDED_CHEST, 0x2D, 0, 0x9001, 0x00DA, 0x29, no_upgrade, no_effect, -1, -1), // Pocket Egg - [0x1E] = ITEM_ROW(0x53, GILDED_CHEST, 0x2E, 0, 0x000B, 0x0109, 0x44, no_upgrade, no_effect, -1, -1), // Pocket Cucco - [0x1F] = ITEM_ROW(0x53, GILDED_CHEST, 0x30, 0, 0x0003, 0x0141, 0x54, no_upgrade, no_effect, -1, -1), // Odd Mushroom - [0x20] = ITEM_ROW(0x53, GILDED_CHEST, 0x31, 0, 0x0004, 0x0140, 0x53, no_upgrade, no_effect, -1, -1), // Odd Potion - [0x21] = ITEM_ROW(0x53, GILDED_CHEST, 0x32, 0, 0x0005, 0x00F5, 0x40, no_upgrade, no_effect, -1, -1), // Poacher's Saw - [0x22] = ITEM_ROW(0x53, GILDED_CHEST, 0x33, 0, 0x0008, 0x0143, 0x56, no_upgrade, no_effect, -1, -1), // Goron's Sword (Broken) - [0x23] = ITEM_ROW(0x53, GILDED_CHEST, 0x34, 0, 0x0009, 0x0146, 0x57, no_upgrade, no_effect, -1, -1), // Prescription - [0x24] = ITEM_ROW(0x53, GILDED_CHEST, 0x35, 0, 0x000D, 0x0149, 0x5A, no_upgrade, no_effect, -1, -1), // Eyeball Frog - [0x25] = ITEM_ROW(0x53, GILDED_CHEST, 0x36, 0, 0x000E, 0x013F, 0x52, no_upgrade, no_effect, -1, -1), // Eye Drops - [0x26] = ITEM_ROW(0x53, GILDED_CHEST, 0x37, 0, 0x000A, 0x0142, 0x55, no_upgrade, no_effect, -1, -1), // Claim Check - [0x27] = ITEM_ROW(0x53, GILDED_CHEST, 0x3B, 0, 0x00A4, 0x018D, 0x74, no_upgrade, no_effect, -1, -1), // Kokiri Sword - [0x28] = ITEM_ROW(0x53, GILDED_CHEST, 0x3D, 0, 0x004B, 0x00F8, 0x43, no_upgrade, no_effect, -1, -1), // Giant's Knife - [0x29] = ITEM_ROW(0x53, BROWN_CHEST, 0x3E, 0, 0x004C, 0x00CB, 0x1D, no_upgrade, no_effect, -1, -1), // Deku Shield - [0x2A] = ITEM_ROW(0x53, BROWN_CHEST, 0x3F, 0, 0x004D, 0x00DC, 0x2C, no_upgrade, no_effect, -1, -1), // Hylian Shield - [0x2B] = ITEM_ROW(0x53, GILDED_CHEST, 0x40, 0, 0x004E, 0x00EE, 0x3A, no_upgrade, no_effect, -1, -1), // Mirror Shield - [0x2C] = ITEM_ROW(0x53, GILDED_CHEST, 0x42, 0, 0x0050, 0x00F2, 0x3C, no_upgrade, no_effect, -1, -1), // Goron Tunic - [0x2D] = ITEM_ROW(0x53, GILDED_CHEST, 0x43, 0, 0x0051, 0x00F2, 0x3D, no_upgrade, no_effect, -1, -1), // Zora Tunic - [0x2E] = ITEM_ROW(0x53, GILDED_CHEST, 0x45, 0, 0x0053, 0x0118, 0x47, no_upgrade, no_effect, -1, -1), // Iron Boots - [0x2F] = ITEM_ROW(0x53, GILDED_CHEST, 0x46, 0, 0x0054, 0x0157, 0x5F, no_upgrade, no_effect, -1, -1), // Hover Boots - [0x30] = ITEM_ROW(0x53, GILDED_CHEST, 0x4B, 0, 0x0056, 0x00BE, 0x16, no_upgrade, no_effect, -1, -1), // Big Quiver - [0x31] = ITEM_ROW(0x53, GILDED_CHEST, 0x4C, 0, 0x0057, 0x00BE, 0x17, no_upgrade, no_effect, -1, -1), // Biggest Quiver - [0x32] = ITEM_ROW(0x53, GILDED_CHEST, 0x4D, 0, 0x0058, 0x00BF, 0x18, no_upgrade, no_effect, -1, -1), // Bomb Bag - [0x33] = ITEM_ROW(0x53, GILDED_CHEST, 0x4E, 0, 0x0059, 0x00BF, 0x19, no_upgrade, no_effect, -1, -1), // Big Bomb Bag - [0x34] = ITEM_ROW(0x53, GILDED_CHEST, 0x4F, 0, 0x005A, 0x00BF, 0x1A, no_upgrade, no_effect, -1, -1), // Biggest Bomb Bag - [0x35] = ITEM_ROW(0x53, GILDED_CHEST, 0x51, 0, 0x005B, 0x012D, 0x49, no_upgrade, no_effect, -1, -1), // Silver Gauntlets - [0x36] = ITEM_ROW(0x53, GILDED_CHEST, 0x52, 0, 0x005C, 0x012D, 0x4A, no_upgrade, no_effect, -1, -1), // Golden Gauntlets - [0x37] = ITEM_ROW(0x53, GILDED_CHEST, 0x53, 0, 0x00CD, 0x00DB, 0x2A, no_upgrade, no_effect, -1, -1), // Silver Scale - [0x38] = ITEM_ROW(0x53, GILDED_CHEST, 0x54, 0, 0x00CE, 0x00DB, 0x2B, no_upgrade, no_effect, -1, -1), // Golden Scale - [0x39] = ITEM_ROW(0x53, GILDED_CHEST, 0x6F, 0, 0x0068, 0x00C8, 0x21, no_upgrade, no_effect, -1, -1), // Stone of Agony - [0x3A] = ITEM_ROW(0x53, GILDED_CHEST, 0x70, 0, 0x007B, 0x00D7, 0x24, no_upgrade, no_effect, -1, -1), // Gerudo Membership Card - [0x3B] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x004A, 0x010E, 0x46, no_upgrade, give_fairy_ocarina, -1, -1), // Fairy Ocarina + [0x08] = ITEM_ROW(0x53, GILDED_CHEST, 0x0A, 0, 0x0036, 0x00DD, 0x2D, no_upgrade, no_effect, -1, -1), // Hookshot + [0x09] = ITEM_ROW(0x53, GILDED_CHEST, 0x0B, 0, 0x004F, 0x00DD, 0x2E, no_upgrade, no_effect, -1, -1), // Longshot + [0x0A] = ITEM_ROW(0x53, GILDED_CHEST, 0x0F, 0, 0x0039, 0x00EA, 0x36, no_upgrade, no_effect, -1, -1), // Lens of Truth + [0x0B] = ITEM_ROW(0x53, GILDED_CHEST, 0x23, 0, 0x0069, 0x00EF, 0x3B, no_upgrade, open_mask_shop, -1, -1), // Zelda's Letter + [0x0C] = ITEM_ROW(0x53, GILDED_CHEST, 0x08, 0, 0x003A, 0x00DE, 0x2F, no_upgrade, no_effect, -1, -1), // Ocarina of Time + [0x0D] = ITEM_ROW(0x53, GILDED_CHEST, 0x11, 0, 0x0038, 0x00F6, 0x41, no_upgrade, no_effect, -1, -1), // Megaton Hammer + [0x0E] = ITEM_ROW(0x53, GILDED_CHEST, 0x2F, 0, 0x0002, 0x0109, 0x5E, no_upgrade, no_effect, -1, -1), // Cojiro + [0x0F] = ITEM_ROW(0x53, GILDED_CHEST, 0x14, 0, 0x0042, 0x00C6, 0x01, no_upgrade, no_effect, -1, -1), // Empty Bottle + [0x10] = ITEM_ROW(0x53, GILDED_CHEST, 0x15, 0, 0x0043, 0x00EB, 0x38, no_upgrade, no_effect, -1, -1), // Red Potion + [0x11] = ITEM_ROW(0x53, GILDED_CHEST, 0x16, 0, 0x0044, 0x00EB, 0x37, no_upgrade, no_effect, -1, -1), // Green Potion + [0x12] = ITEM_ROW(0x53, GILDED_CHEST, 0x17, 0, 0x0045, 0x00EB, 0x39, no_upgrade, no_effect, -1, -1), // Blue Potion + [0x13] = ITEM_ROW(0x53, GILDED_CHEST, 0x18, 0, 0x0046, 0x00C6, 0x01, no_upgrade, no_effect, -1, -1), // Bottled Fairy + [0x14] = ITEM_ROW(0x53, GILDED_CHEST, 0x1A, 0, 0x0098, 0x00DF, 0x30, no_upgrade, no_effect, -1, -1), // Bottled Lon Lon Milk + [0x15] = ITEM_ROW(0x53, GILDED_CHEST, 0x1B, 0, 0x0099, 0x010B, 0x45, letter_to_bottle, no_effect, -1, -1), // Bottled Ruto's Letter + [0x16] = ITEM_ROW(0x53, BROWN_CHEST, 0x10, 0, 0x0048, 0x00F3, 0x3E, no_upgrade, no_effect, -1, -1), // Magic Bean + [0x17] = ITEM_ROW(0x53, GILDED_CHEST, 0x25, 0, 0x0010, 0x0136, 0x4F, no_upgrade, no_effect, -1, -1), // Skull Mask + [0x18] = ITEM_ROW(0x53, GILDED_CHEST, 0x26, 0, 0x0011, 0x0135, 0x32, no_upgrade, no_effect, -1, -1), // Spooky Mask + [0x19] = ITEM_ROW(0x53, GILDED_CHEST, 0x22, 0, 0x000B, 0x0109, 0x44, no_upgrade, no_effect, -1, -1), // Chicken + [0x1A] = ITEM_ROW(0x53, GILDED_CHEST, 0x24, 0, 0x0012, 0x0134, 0x31, no_upgrade, no_effect, -1, -1), // Keaton Mask + [0x1B] = ITEM_ROW(0x53, GILDED_CHEST, 0x27, 0, 0x0013, 0x0137, 0x50, no_upgrade, no_effect, -1, -1), // Bunny Hood + [0x1C] = ITEM_ROW(0x53, GILDED_CHEST, 0x2B, 0, 0x0017, 0x0138, 0x51, no_upgrade, no_effect, -1, -1), // Mask of Truth + [0x1D] = ITEM_ROW(0x53, GILDED_CHEST, 0x2D, 0, 0x9001, 0x00DA, 0x29, no_upgrade, no_effect, -1, -1), // Pocket Egg + [0x1E] = ITEM_ROW(0x53, GILDED_CHEST, 0x2E, 0, 0x000B, 0x0109, 0x44, no_upgrade, no_effect, -1, -1), // Pocket Cucco + [0x1F] = ITEM_ROW(0x53, GILDED_CHEST, 0x30, 0, 0x0003, 0x0141, 0x54, no_upgrade, no_effect, -1, -1), // Odd Mushroom + [0x20] = ITEM_ROW(0x53, GILDED_CHEST, 0x31, 0, 0x0004, 0x0140, 0x53, no_upgrade, no_effect, -1, -1), // Odd Potion + [0x21] = ITEM_ROW(0x53, GILDED_CHEST, 0x32, 0, 0x0005, 0x00F5, 0x40, no_upgrade, no_effect, -1, -1), // Poacher's Saw + [0x22] = ITEM_ROW(0x53, GILDED_CHEST, 0x33, 0, 0x0008, 0x0143, 0x56, no_upgrade, no_effect, -1, -1), // Goron's Sword (Broken) + [0x23] = ITEM_ROW(0x53, GILDED_CHEST, 0x34, 0, 0x0009, 0x0146, 0x57, no_upgrade, no_effect, -1, -1), // Prescription + [0x24] = ITEM_ROW(0x53, GILDED_CHEST, 0x35, 0, 0x000D, 0x0149, 0x5A, no_upgrade, no_effect, -1, -1), // Eyeball Frog + [0x25] = ITEM_ROW(0x53, GILDED_CHEST, 0x36, 0, 0x000E, 0x013F, 0x52, no_upgrade, no_effect, -1, -1), // Eye Drops + [0x26] = ITEM_ROW(0x53, GILDED_CHEST, 0x37, 0, 0x000A, 0x0142, 0x55, no_upgrade, no_effect, -1, -1), // Claim Check + [0x27] = ITEM_ROW(0x53, GILDED_CHEST, 0x3B, 0, 0x00A4, 0x018D, 0x74, no_upgrade, no_effect, -1, -1), // Kokiri Sword + [0x28] = ITEM_ROW(0x53, GILDED_CHEST, 0x3D, 0, 0x004B, 0x00F8, 0x43, no_upgrade, no_effect, -1, -1), // Giant's Knife + [0x29] = ITEM_ROW(0x53, BROWN_CHEST, 0x3E, 0, 0x004C, 0x00CB, 0x1D, no_upgrade, no_effect, -1, -1), // Deku Shield + [0x2A] = ITEM_ROW(0x53, BROWN_CHEST, 0x3F, 0, 0x004D, 0x00DC, 0x2C, no_upgrade, no_effect, -1, -1), // Hylian Shield + [0x2B] = ITEM_ROW(0x53, GILDED_CHEST, 0x40, 0, 0x004E, 0x00EE, 0x3A, no_upgrade, no_effect, -1, -1), // Mirror Shield + [0x2C] = ITEM_ROW(0x53, GILDED_CHEST, 0x42, 0, 0x0050, 0x00F2, 0x3C, no_upgrade, no_effect, -1, -1), // Goron Tunic + [0x2D] = ITEM_ROW(0x53, GILDED_CHEST, 0x43, 0, 0x0051, 0x00F2, 0x3D, no_upgrade, no_effect, -1, -1), // Zora Tunic + [0x2E] = ITEM_ROW(0x53, GILDED_CHEST, 0x45, 0, 0x0053, 0x0118, 0x47, no_upgrade, no_effect, -1, -1), // Iron Boots + [0x2F] = ITEM_ROW(0x53, GILDED_CHEST, 0x46, 0, 0x0054, 0x0157, 0x5F, no_upgrade, no_effect, -1, -1), // Hover Boots + [0x30] = ITEM_ROW(0x53, GILDED_CHEST, 0x4B, 0, 0x0056, 0x00BE, 0x16, no_upgrade, no_effect, -1, -1), // Big Quiver + [0x31] = ITEM_ROW(0x53, GILDED_CHEST, 0x4C, 0, 0x0057, 0x00BE, 0x17, no_upgrade, no_effect, -1, -1), // Biggest Quiver + [0x32] = ITEM_ROW(0x53, GILDED_CHEST, 0x4D, 0, 0x0058, 0x00BF, 0x18, no_upgrade, no_effect, -1, -1), // Bomb Bag + [0x33] = ITEM_ROW(0x53, GILDED_CHEST, 0x4E, 0, 0x0059, 0x00BF, 0x19, no_upgrade, no_effect, -1, -1), // Big Bomb Bag + [0x34] = ITEM_ROW(0x53, GILDED_CHEST, 0x4F, 0, 0x005A, 0x00BF, 0x1A, no_upgrade, no_effect, -1, -1), // Biggest Bomb Bag + [0x35] = ITEM_ROW(0x53, GILDED_CHEST, 0x51, 0, 0x005B, 0x012D, 0x49, no_upgrade, no_effect, -1, -1), // Silver Gauntlets + [0x36] = ITEM_ROW(0x53, GILDED_CHEST, 0x52, 0, 0x005C, 0x012D, 0x4A, no_upgrade, no_effect, -1, -1), // Golden Gauntlets + [0x37] = ITEM_ROW(0x53, GILDED_CHEST, 0x53, 0, 0x00CD, 0x00DB, 0x2A, no_upgrade, no_effect, -1, -1), // Silver Scale + [0x38] = ITEM_ROW(0x53, GILDED_CHEST, 0x54, 0, 0x00CE, 0x00DB, 0x2B, no_upgrade, no_effect, -1, -1), // Golden Scale + [0x39] = ITEM_ROW(0x53, GILDED_CHEST, 0x6F, 0, 0x0068, 0x00C8, 0x21, no_upgrade, no_effect, -1, -1), // Stone of Agony + [0x3A] = ITEM_ROW(0x53, GILDED_CHEST, 0x70, 0, 0x007B, 0x00D7, 0x24, no_upgrade, no_effect, -1, -1), // Gerudo Membership Card + [0x3B] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x004A, 0x010E, 0x46, no_upgrade, give_fairy_ocarina, -1, -1), // Fairy Ocarina [0x3C] = ITEM_ROW(0x4D, BROWN_CHEST, 0x58, 16, 0x00DC, 0x0119, 0x48, seeds_to_rupee, no_effect, -1, -1), // Deku Seeds (5) - [0x3D] = ITEM_ROW(0x3D, BROWN_CHEST, 0x72, 0, 0x00C6, 0x00BD, 0x13, health_upgrade_cap, clear_excess_hearts, -1, -1), // Heart Container - [0x3E] = ITEM_ROW(0x3E, BROWN_CHEST, 0x7A, 0, 0x00C2, 0x00BD, 0x14, health_upgrade_cap, full_heal, -1, -1), // Piece of Heart - [0x3F] = ITEM_ROW(0x53, GOLD_CHEST, 0x74, 0, 0x00C7, 0x00B9, 0x0A, no_upgrade, no_effect, -1, -1), // Boss Key - [0x40] = ITEM_ROW(0x53, BROWN_CHEST, 0x75, 0, 0x0067, 0x00B8, 0x0B, no_upgrade, no_effect, -1, -1), // Compass - [0x41] = ITEM_ROW(0x53, BROWN_CHEST, 0x76, 0, 0x0066, 0x00C8, 0x1C, no_upgrade, no_effect, -1, -1), // Map - [0x42] = ITEM_ROW(0x53, SILVER_CHEST, 0x77, 0, 0x0060, 0x00AA, 0x02, no_upgrade, no_effect, -1, -1), // Small Key - [0x43] = ITEM_ROW(0x53, BROWN_CHEST, 0x78, 0, 0x0052, 0x00CD, 0x1E, no_upgrade, no_effect, -1, -1), // Small Magic Jar - [0x44] = ITEM_ROW(0x53, BROWN_CHEST, 0x79, 0, 0x0052, 0x00CD, 0x1F, no_upgrade, no_effect, -1, -1), // Large Magic Jar - [0x45] = ITEM_ROW(0x53, GILDED_CHEST, 0x56, 0, 0x005E, 0x00D1, 0x22, no_upgrade, fill_wallet_upgrade, 1, -1), // Adult's Wallet - [0x46] = ITEM_ROW(0x53, GILDED_CHEST, 0x57, 0, 0x005F, 0x00D1, 0x23, no_upgrade, fill_wallet_upgrade, 2, -1), // Giant's Wallet - [0x47] = ITEM_ROW(0x53, GILDED_CHEST, 0x21, 0, 0x009A, 0x00DA, 0x29, no_upgrade, no_effect, -1, -1), // Weird Egg - [0x48] = ITEM_ROW(0x4D, BROWN_CHEST, 0x83, 3, 0x0055, 0x00B7, 0x09, no_upgrade, no_effect, -1, -1), // Recovery Heart - [0x49] = ITEM_ROW(0x4D, BROWN_CHEST, 0x92, 8, 0x00E6, 0x00D8, 0x25, arrows_to_rupee, no_effect, -1, -1), // Arrows (5) - [0x4A] = ITEM_ROW(0x4D, BROWN_CHEST, 0x93, 9, 0x00E6, 0x00D8, 0x26, arrows_to_rupee, no_effect, -1, -1), // Arrows (10) + [0x3D] = ITEM_ROW(0x3D, BROWN_CHEST, 0x72, 0, 0x00C6, 0x00BD, 0x13, health_upgrade_cap, clear_excess_hearts, -1, -1), // Heart Container + [0x3E] = ITEM_ROW(0x3E, BROWN_CHEST, 0x7A, 0, 0x00C2, 0x00BD, 0x14, health_upgrade_cap, full_heal, -1, -1), // Piece of Heart + [0x3F] = ITEM_ROW(0x53, GOLD_CHEST, 0x74, 0, 0x00C7, 0x00B9, 0x0A, no_upgrade, no_effect, -1, -1), // Boss Key + [0x40] = ITEM_ROW(0x53, BROWN_CHEST, 0x75, 0, 0x0067, 0x00B8, 0x0B, no_upgrade, no_effect, -1, -1), // Compass + [0x41] = ITEM_ROW(0x53, BROWN_CHEST, 0x76, 0, 0x0066, 0x00C8, 0x1C, no_upgrade, no_effect, -1, -1), // Map + [0x42] = ITEM_ROW(0x53, SILVER_CHEST, 0x77, 0, 0x0060, 0x00AA, 0x02, no_upgrade, no_effect, -1, -1), // Small Key + [0x43] = ITEM_ROW(0x53, BROWN_CHEST, 0x78, 0, 0x0052, 0x00CD, 0x1E, no_upgrade, no_effect, -1, -1), // Small Magic Jar + [0x44] = ITEM_ROW(0x53, BROWN_CHEST, 0x79, 0, 0x0052, 0x00CD, 0x1F, no_upgrade, no_effect, -1, -1), // Large Magic Jar + [0x45] = ITEM_ROW(0x53, GILDED_CHEST, 0x56, 0, 0x005E, 0x00D1, 0x22, no_upgrade, fill_wallet_upgrade, 1, -1), // Adult's Wallet + [0x46] = ITEM_ROW(0x53, GILDED_CHEST, 0x57, 0, 0x005F, 0x00D1, 0x23, no_upgrade, fill_wallet_upgrade, 2, -1), // Giant's Wallet + [0x47] = ITEM_ROW(0x53, GILDED_CHEST, 0x21, 0, 0x009A, 0x00DA, 0x29, no_upgrade, no_effect, -1, -1), // Weird Egg + [0x48] = ITEM_ROW(0x4D, BROWN_CHEST, 0x83, 3, 0x0055, 0x00B7, 0x09, no_upgrade, no_effect, -1, -1), // Recovery Heart + [0x49] = ITEM_ROW(0x4D, BROWN_CHEST, 0x92, 8, 0x00E6, 0x00D8, 0x25, arrows_to_rupee, no_effect, -1, -1), // Arrows (5) + [0x4A] = ITEM_ROW(0x4D, BROWN_CHEST, 0x93, 9, 0x00E6, 0x00D8, 0x26, arrows_to_rupee, no_effect, -1, -1), // Arrows (10) [0x4B] = ITEM_ROW(0x4D, BROWN_CHEST, 0x94, 10, 0x00E6, 0x00D8, 0x27, arrows_to_rupee, no_effect, -1, -1), // Arrows (30) - [0x4C] = ITEM_ROW(0x4D, BROWN_CHEST, 0x84, 0, 0x006F, 0x017F, 0x6D, no_upgrade, no_effect, -1, -1), // Green Rupee - [0x4D] = ITEM_ROW(0x4D, BROWN_CHEST, 0x85, 1, 0x00CC, 0x017F, 0x6E, no_upgrade, no_effect, -1, -1), // Blue Rupee - [0x4E] = ITEM_ROW(0x4D, BROWN_CHEST, 0x86, 2, 0x00F0, 0x017F, 0x6F, no_upgrade, no_effect, -1, -1), // Red Rupee - [0x4F] = ITEM_ROW(0x3D, BROWN_CHEST, 0x72, 0, 0x00C6, 0x00BD, 0x13, no_upgrade, full_heal, -1, -1), // Heart Container - [0x50] = ITEM_ROW(0x53, GILDED_CHEST, 0x82, 0, 0x0098, 0x00DF, 0x30, no_upgrade, no_effect, -1, -1), // Lon Lon Milk (Refill) - [0x51] = ITEM_ROW(0x53, GILDED_CHEST, 0x28, 0, 0x0014, 0x0150, 0x5B, no_upgrade, no_effect, -1, -1), // Goron Mask - [0x52] = ITEM_ROW(0x53, GILDED_CHEST, 0x29, 0, 0x0015, 0x0151, 0x5C, no_upgrade, no_effect, -1, -1), // Zora Mask - [0x53] = ITEM_ROW(0x53, GILDED_CHEST, 0x2A, 0, 0x0016, 0x0152, 0x5D, no_upgrade, no_effect, -1, -1), // Gerudo Mask - [0x54] = ITEM_ROW(0x53, GILDED_CHEST, 0x50, 0, 0x0079, 0x0147, 0x58, no_upgrade, no_effect, -1, -1), // Goron's Bracelet + [0x4C] = ITEM_ROW(0x4D, BROWN_CHEST, 0x84, 0, 0x006F, 0x017F, 0x6D, no_upgrade, no_effect, -1, -1), // Green Rupee + [0x4D] = ITEM_ROW(0x4D, BROWN_CHEST, 0x85, 1, 0x00CC, 0x017F, 0x6E, no_upgrade, no_effect, -1, -1), // Blue Rupee + [0x4E] = ITEM_ROW(0x4D, BROWN_CHEST, 0x86, 2, 0x00F0, 0x017F, 0x6F, no_upgrade, no_effect, -1, -1), // Red Rupee + [0x4F] = ITEM_ROW(0x3D, BROWN_CHEST, 0x72, 0, 0x00C6, 0x00BD, 0x13, no_upgrade, full_heal, -1, -1), // Heart Container + [0x50] = ITEM_ROW(0x53, GILDED_CHEST, 0x82, 0, 0x0098, 0x00DF, 0x30, no_upgrade, no_effect, -1, -1), // Lon Lon Milk (Refill) + [0x51] = ITEM_ROW(0x53, GILDED_CHEST, 0x28, 0, 0x0014, 0x0150, 0x5B, no_upgrade, no_effect, -1, -1), // Goron Mask + [0x52] = ITEM_ROW(0x53, GILDED_CHEST, 0x29, 0, 0x0015, 0x0151, 0x5C, no_upgrade, no_effect, -1, -1), // Zora Mask + [0x53] = ITEM_ROW(0x53, GILDED_CHEST, 0x2A, 0, 0x0016, 0x0152, 0x5D, no_upgrade, no_effect, -1, -1), // Gerudo Mask + [0x54] = ITEM_ROW(0x53, GILDED_CHEST, 0x50, 0, 0x0079, 0x0147, 0x58, no_upgrade, no_effect, -1, -1), // Goron's Bracelet [0x55] = ITEM_ROW(0x4D, BROWN_CHEST, 0x87, 19, 0x00F1, 0x017F, 0x71, no_upgrade, no_effect, -1, -1), // Purple Rupee [0x56] = ITEM_ROW(0x4D, BROWN_CHEST, 0x88, 20, 0x00F2, 0x017F, 0x72, no_upgrade, no_effect, -1, -1), // Huge Rupee - [0x57] = ITEM_ROW(0x53, GILDED_CHEST, 0x3D, 0, 0x000C, 0x00F8, 0x43, no_upgrade, give_biggoron_sword, -1, -1), // Biggoron's Sword - [0x58] = ITEM_ROW(0x53, GILDED_CHEST, 0x04, 0, 0x0070, 0x0158, 0x60, no_upgrade, no_effect, -1, -1), // Fire Arrow - [0x59] = ITEM_ROW(0x53, GILDED_CHEST, 0x0C, 0, 0x0071, 0x0158, 0x61, no_upgrade, no_effect, -1, -1), // Ice Arrow - [0x5A] = ITEM_ROW(0x53, GILDED_CHEST, 0x12, 0, 0x0072, 0x0158, 0x62, no_upgrade, no_effect, -1, -1), // Light Arrow - [0x5B] = ITEM_ROW(0x5B, SKULL_CHEST_SMALL, 0x71, 0, 0x00B4, 0x015C, 0x63, no_upgrade, no_effect, -1, -1), // Gold Skulltula Token - [0x5C] = ITEM_ROW(0x53, GILDED_CHEST, 0x05, 0, 0x00AD, 0x015D, 0x64, no_upgrade, no_effect, -1, -1), // Din's Fire - [0x5D] = ITEM_ROW(0x53, GILDED_CHEST, 0x0D, 0, 0x00AE, 0x015D, 0x65, no_upgrade, no_effect, -1, -1), // Farore's Wind - [0x5E] = ITEM_ROW(0x53, GILDED_CHEST, 0x13, 0, 0x00AF, 0x015D, 0x66, no_upgrade, no_effect, -1, -1), // Nayru's Love - [0x5F] = ITEM_ROW(0x53, GILDED_CHEST, 0x47, 0, 0x0007, 0x017B, 0x6C, no_upgrade, no_effect, -1, -1), // Bullet Bag (30) - [0x60] = ITEM_ROW(0x53, GILDED_CHEST, 0x48, 0, 0x0007, 0x017B, 0x6C, no_upgrade, no_effect, -1, -1), // Bullet Bag (40) + [0x57] = ITEM_ROW(0x53, GILDED_CHEST, 0x3D, 0, 0x000C, 0x00F8, 0x43, no_upgrade, give_biggoron_sword, -1, -1), // Biggoron's Sword + [0x58] = ITEM_ROW(0x53, GILDED_CHEST, 0x04, 0, 0x0070, 0x0158, 0x60, no_upgrade, no_effect, -1, -1), // Fire Arrow + [0x59] = ITEM_ROW(0x53, GILDED_CHEST, 0x0C, 0, 0x0071, 0x0158, 0x61, no_upgrade, no_effect, -1, -1), // Ice Arrow + [0x5A] = ITEM_ROW(0x53, GILDED_CHEST, 0x12, 0, 0x0072, 0x0158, 0x62, no_upgrade, no_effect, -1, -1), // Light Arrow + [0x5B] = ITEM_ROW(0x5B, SKULL_CHEST_SMALL, 0x71, 0, 0x00B4, 0x015C, 0x63, no_upgrade, no_effect, -1, -1), // Gold Skulltula Token + [0x5C] = ITEM_ROW(0x53, GILDED_CHEST, 0x05, 0, 0x00AD, 0x015D, 0x64, no_upgrade, no_effect, -1, -1), // Din's Fire + [0x5D] = ITEM_ROW(0x53, GILDED_CHEST, 0x0D, 0, 0x00AE, 0x015D, 0x65, no_upgrade, no_effect, -1, -1), // Farore's Wind + [0x5E] = ITEM_ROW(0x53, GILDED_CHEST, 0x13, 0, 0x00AF, 0x015D, 0x66, no_upgrade, no_effect, -1, -1), // Nayru's Love + [0x5F] = ITEM_ROW(0x53, GILDED_CHEST, 0x47, 0, 0x0007, 0x017B, 0x6C, no_upgrade, no_effect, -1, -1), // Bullet Bag (30) + [0x60] = ITEM_ROW(0x53, GILDED_CHEST, 0x48, 0, 0x0007, 0x017B, 0x6C, no_upgrade, no_effect, -1, -1), // Bullet Bag (40) [0x61] = ITEM_ROW(0x4D, BROWN_CHEST, 0x8A, 13, 0x0037, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1), // Deku Sticks (5) [0x62] = ITEM_ROW(0x4D, BROWN_CHEST, 0x8B, 13, 0x0037, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1), // Deku Sticks (10) [0x63] = ITEM_ROW(0x4D, BROWN_CHEST, 0x8C, 12, 0x0034, 0x00BB, 0x12, no_upgrade, no_effect, -1, -1), // Deku Nuts (5) @@ -128,123 +128,123 @@ item_row_t item_table[] = { [0x67] = ITEM_ROW(0x4D, BROWN_CHEST, 0x90, 11, 0x0032, 0x00CE, 0x20, bombs_to_rupee, no_effect, -1, -1), // Bombs (20) [0x68] = ITEM_ROW(0x4D, BROWN_CHEST, 0x91, 11, 0x0032, 0x00CE, 0x20, bombs_to_rupee, no_effect, -1, -1), // Bombs (30) [0x69] = ITEM_ROW(0x4D, BROWN_CHEST, 0x95, 16, 0x00DC, 0x0119, 0x48, seeds_to_rupee, no_effect, -1, -1), // Deku Seeds (30) - [0x6A] = ITEM_ROW(0x4D, BROWN_CHEST, 0x96, 0, 0x0033, 0x00D9, 0x28, no_upgrade, no_effect, -1, -1), // Bombchu (5) - [0x6B] = ITEM_ROW(0x4D, BROWN_CHEST, 0x97, 0, 0x0033, 0x00D9, 0x28, no_upgrade, no_effect, -1, -1), // Bombchu (20) - [0x6C] = ITEM_ROW(0x53, GILDED_CHEST, 0x19, 0, 0x0047, 0x00F4, 0x3F, no_upgrade, no_effect, -1, -1), // Fish (Refill) - [0x6D] = ITEM_ROW(0x53, GILDED_CHEST, 0x1D, 0, 0x007A, 0x0174, 0x68, no_upgrade, no_effect, -1, -1), // Bugs (Refill) - [0x6E] = ITEM_ROW(0x53, GILDED_CHEST, 0x1C, 0, 0x005D, 0x0173, 0x67, no_upgrade, no_effect, -1, -1), // Blue Fire (Refill) - [0x6F] = ITEM_ROW(0x53, GILDED_CHEST, 0x20, 0, 0x0097, 0x0176, 0x6A, no_upgrade, no_effect, -1, -1), // Poe (Refill) - [0x70] = ITEM_ROW(0x53, GILDED_CHEST, 0x1E, 0, 0x00F9, 0x0176, 0x70, no_upgrade, no_effect, -1, -1), // Big Poe (Refill) - [0x71] = ITEM_ROW(0x53, BROWN_CHEST, 0x77, 0, 0x00F3, 0x00AA, 0x02, no_upgrade, no_effect, -1, -1), // Small Key (Chest Game) - [0x72] = ITEM_ROW(0x4D, BROWN_CHEST, 0x84, 0, 0x00F4, 0x017F, 0x6D, no_upgrade, no_effect, -1, -1), // Green Rupee (Chest Game) - [0x73] = ITEM_ROW(0x4D, BROWN_CHEST, 0x85, 0, 0x00F5, 0x017F, 0x6E, no_upgrade, no_effect, -1, -1), // Blue Rupee (Chest Game) - [0x74] = ITEM_ROW(0x4D, BROWN_CHEST, 0x86, 0, 0x00F6, 0x017F, 0x6F, no_upgrade, no_effect, -1, -1), // Red Rupee (Chest Game) - [0x75] = ITEM_ROW(0x4D, BROWN_CHEST, 0x87, 0, 0x00F7, 0x017F, 0x71, no_upgrade, no_effect, -1, -1), // Purple Rupee (Chest Game) - [0x76] = ITEM_ROW(0x53, BROWN_CHEST, 0x7A, 0, 0x00FA, 0x00BD, 0x14, health_upgrade_cap, full_heal, -1, -1), // Piece of Heart (Chest Game) - [0x77] = ITEM_ROW(0x53, BROWN_CHEST, 0x98, 0, 0x0090, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1), // Deku Stick Upgrade (20) - [0x78] = ITEM_ROW(0x53, BROWN_CHEST, 0x99, 0, 0x0091, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1), // Deku Stick Upgrade (30) - [0x79] = ITEM_ROW(0x53, BROWN_CHEST, 0x9A, 0, 0x00A7, 0x00BB, 0x12, no_upgrade, no_effect, -1, -1), // Deku Nut Upgrade (30) - [0x7A] = ITEM_ROW(0x53, BROWN_CHEST, 0x9B, 0, 0x00A8, 0x00BB, 0x12, no_upgrade, no_effect, -1, -1), // Deku Nut Upgrade (40) - [0x7B] = ITEM_ROW(0x53, GILDED_CHEST, 0x49, 0, 0x006C, 0x017B, 0x73, no_upgrade, no_effect, -1, -1), // Bullet Bag (50) - [0x7C] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x9002, 0x0000, 0x00, no_upgrade, ice_trap_effect, -1, -1), // Ice Trap - [0x7D] = ITEM_ROW(0x3E, BROWN_CHEST, 0x41, 0, 0x90C2, 0x00BD, 0x14, no_upgrade, full_heal, -1, -1), // Capped Piece of Heart - [0x7E] = ITEM_ROW(0x3E, BROWN_CHEST, 0x41, 0, 0x90C6, 0x00BD, 0x13, no_upgrade, full_heal, -1, -1), // Capped Heart Container - [0x7F] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x90FA, 0x00BD, 0x14, no_upgrade, full_heal, -1, -1), // Capped Piece of Heart (Chest Game) + [0x6A] = ITEM_ROW(0x4D, BROWN_CHEST, 0x96, 0, 0x0033, 0x00D9, 0x28, no_upgrade, no_effect, -1, -1), // Bombchu (5) + [0x6B] = ITEM_ROW(0x4D, BROWN_CHEST, 0x97, 0, 0x0033, 0x00D9, 0x28, no_upgrade, no_effect, -1, -1), // Bombchu (20) + [0x6C] = ITEM_ROW(0x53, GILDED_CHEST, 0x19, 0, 0x0047, 0x00F4, 0x3F, no_upgrade, no_effect, -1, -1), // Fish (Refill) + [0x6D] = ITEM_ROW(0x53, GILDED_CHEST, 0x1D, 0, 0x007A, 0x0174, 0x68, no_upgrade, no_effect, -1, -1), // Bugs (Refill) + [0x6E] = ITEM_ROW(0x53, GILDED_CHEST, 0x1C, 0, 0x005D, 0x0173, 0x67, no_upgrade, no_effect, -1, -1), // Blue Fire (Refill) + [0x6F] = ITEM_ROW(0x53, GILDED_CHEST, 0x20, 0, 0x0097, 0x0176, 0x6A, no_upgrade, no_effect, -1, -1), // Poe (Refill) + [0x70] = ITEM_ROW(0x53, GILDED_CHEST, 0x1E, 0, 0x00F9, 0x0176, 0x70, no_upgrade, no_effect, -1, -1), // Big Poe (Refill) + [0x71] = ITEM_ROW(0x53, BROWN_CHEST, 0x77, 0, 0x00F3, 0x00AA, 0x02, no_upgrade, no_effect, -1, -1), // Small Key (Chest Game) + [0x72] = ITEM_ROW(0x4D, BROWN_CHEST, 0x84, 0, 0x00F4, 0x017F, 0x6D, no_upgrade, no_effect, -1, -1), // Green Rupee (Chest Game) + [0x73] = ITEM_ROW(0x4D, BROWN_CHEST, 0x85, 0, 0x00F5, 0x017F, 0x6E, no_upgrade, no_effect, -1, -1), // Blue Rupee (Chest Game) + [0x74] = ITEM_ROW(0x4D, BROWN_CHEST, 0x86, 0, 0x00F6, 0x017F, 0x6F, no_upgrade, no_effect, -1, -1), // Red Rupee (Chest Game) + [0x75] = ITEM_ROW(0x4D, BROWN_CHEST, 0x87, 0, 0x00F7, 0x017F, 0x71, no_upgrade, no_effect, -1, -1), // Purple Rupee (Chest Game) + [0x76] = ITEM_ROW(0x53, BROWN_CHEST, 0x7A, 0, 0x00FA, 0x00BD, 0x14, health_upgrade_cap, full_heal, -1, -1), // Piece of Heart (Chest Game) + [0x77] = ITEM_ROW(0x53, BROWN_CHEST, 0x98, 0, 0x0090, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1), // Deku Stick Upgrade (20) + [0x78] = ITEM_ROW(0x53, BROWN_CHEST, 0x99, 0, 0x0091, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1), // Deku Stick Upgrade (30) + [0x79] = ITEM_ROW(0x53, BROWN_CHEST, 0x9A, 0, 0x00A7, 0x00BB, 0x12, no_upgrade, no_effect, -1, -1), // Deku Nut Upgrade (30) + [0x7A] = ITEM_ROW(0x53, BROWN_CHEST, 0x9B, 0, 0x00A8, 0x00BB, 0x12, no_upgrade, no_effect, -1, -1), // Deku Nut Upgrade (40) + [0x7B] = ITEM_ROW(0x53, GILDED_CHEST, 0x49, 0, 0x006C, 0x017B, 0x73, no_upgrade, no_effect, -1, -1), // Bullet Bag (50) + [0x7C] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x9002, 0x0000, 0x00, no_upgrade, ice_trap_effect, -1, -1), // Ice Trap + [0x7D] = ITEM_ROW(0x3E, BROWN_CHEST, 0x41, 0, 0x90C2, 0x00BD, 0x14, no_upgrade, full_heal, -1, -1), // Capped Piece of Heart + [0x7E] = ITEM_ROW(0x3E, BROWN_CHEST, 0x41, 0, 0x90C6, 0x00BD, 0x13, no_upgrade, full_heal, -1, -1), // Capped Heart Container + [0x7F] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x90FA, 0x00BD, 0x14, no_upgrade, full_heal, -1, -1), // Capped Piece of Heart (Chest Game) - [0x80] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00DD, 0x2D, hookshot_upgrade, no_effect, -1, -1), // Progressive Hookshot - [0x81] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x0147, 0x58, strength_upgrade, no_effect, -1, -1), // Progressive Strength - [0x82] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00BF, 0x18, bomb_bag_upgrade, no_effect, -1, -1), // Progressive Bomb Bag - [0x83] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00E9, 0x35, bow_upgrade, no_effect, -1, -1), // Progressive Bow - [0x84] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00E7, 0x33, slingshot_upgrade, no_effect, -1, -1), // Progressive Slingshot - [0x85] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00D1, 0x22, wallet_upgrade, no_effect, -1, -1), // Progressive Wallet - [0x86] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00DB, 0x2A, scale_upgrade, no_effect, -1, -1), // Progressive Scale - [0x87] = ITEM_ROW( -1, BROWN_CHEST, -1, 0, -1, 0x00BB, 0x12, nut_upgrade, no_effect, -1, -1), // Progressive Nut Capacity - [0x88] = ITEM_ROW( -1, BROWN_CHEST, -1, 0, -1, 0x00C7, 0x1B, stick_upgrade, no_effect, -1, -1), // Progressive Stick Capacity - [0x89] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00D9, 0x28, bombchu_upgrade, no_effect, -1, -1), // Progressive Bombchus - [0x8A] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00CD, 0x1E, magic_upgrade, no_effect, -1, -1), // Progressive Magic Meter - [0x8B] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x010E, 0x46, ocarina_upgrade, no_effect, -1, -1), // Progressive Ocarina + [0x80] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00DD, 0x2D, hookshot_upgrade, no_effect, -1, -1), // Progressive Hookshot + [0x81] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x0147, 0x58, strength_upgrade, no_effect, -1, -1), // Progressive Strength + [0x82] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00BF, 0x18, bomb_bag_upgrade, no_effect, -1, -1), // Progressive Bomb Bag + [0x83] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00E9, 0x35, bow_upgrade, no_effect, -1, -1), // Progressive Bow + [0x84] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00E7, 0x33, slingshot_upgrade, no_effect, -1, -1), // Progressive Slingshot + [0x85] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00D1, 0x22, wallet_upgrade, no_effect, -1, -1), // Progressive Wallet + [0x86] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00DB, 0x2A, scale_upgrade, no_effect, -1, -1), // Progressive Scale + [0x87] = ITEM_ROW( -1, BROWN_CHEST, -1, 0, -1, 0x00BB, 0x12, nut_upgrade, no_effect, -1, -1), // Progressive Nut Capacity + [0x88] = ITEM_ROW( -1, BROWN_CHEST, -1, 0, -1, 0x00C7, 0x1B, stick_upgrade, no_effect, -1, -1), // Progressive Stick Capacity + [0x89] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00D9, 0x28, bombchu_upgrade, no_effect, -1, -1), // Progressive Bombchus + [0x8A] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x00CD, 0x1E, magic_upgrade, no_effect, -1, -1), // Progressive Magic Meter + [0x8B] = ITEM_ROW( -1, GILDED_CHEST, -1, 0, -1, 0x010E, 0x46, ocarina_upgrade, no_effect, -1, -1), // Progressive Ocarina - [0x8C] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0043, 0x00C6, 0x01, no_upgrade, give_bottle, 0x15, -1), // Bottle with Red Potion - [0x8D] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0044, 0x00C6, 0x01, no_upgrade, give_bottle, 0x16, -1), // Bottle with Green Potion - [0x8E] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0045, 0x00C6, 0x01, no_upgrade, give_bottle, 0x17, -1), // Bottle with Blue Potion - [0x8F] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0046, 0x0177, 0x6B, no_upgrade, give_bottle, 0x18, -1), // Bottle with Fairy - [0x90] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0047, 0x00F4, 0x3F, no_upgrade, give_bottle, 0x19, -1), // Bottle with Fish - [0x91] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x005D, 0x0173, 0x67, no_upgrade, give_bottle, 0x1C, -1), // Bottle with Blue Fire - [0x92] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x007A, 0x0174, 0x68, no_upgrade, give_bottle, 0x1D, -1), // Bottle with Bugs - [0x93] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00F9, 0x0176, 0x70, no_upgrade, give_bottle, 0x1E, -1), // Bottle with Big Poe - [0x94] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0097, 0x0176, 0x6A, no_upgrade, give_bottle, 0x20, -1), // Bottle with Poe + [0x8C] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0043, 0x00C6, 0x01, no_upgrade, give_bottle, 0x15, -1), // Bottle with Red Potion + [0x8D] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0044, 0x00C6, 0x01, no_upgrade, give_bottle, 0x16, -1), // Bottle with Green Potion + [0x8E] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0045, 0x00C6, 0x01, no_upgrade, give_bottle, 0x17, -1), // Bottle with Blue Potion + [0x8F] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0046, 0x0177, 0x6B, no_upgrade, give_bottle, 0x18, -1), // Bottle with Fairy + [0x90] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0047, 0x00F4, 0x3F, no_upgrade, give_bottle, 0x19, -1), // Bottle with Fish + [0x91] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x005D, 0x0173, 0x67, no_upgrade, give_bottle, 0x1C, -1), // Bottle with Blue Fire + [0x92] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x007A, 0x0174, 0x68, no_upgrade, give_bottle, 0x1D, -1), // Bottle with Bugs + [0x93] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00F9, 0x0176, 0x70, no_upgrade, give_bottle, 0x1E, -1), // Bottle with Big Poe + [0x94] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0097, 0x0176, 0x6A, no_upgrade, give_bottle, 0x20, -1), // Bottle with Poe - [0x95] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x0006, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, FOREST_ID ), // Forest Temple Boss Key - [0x96] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x001C, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, FIRE_ID ), // Fire Temple Boss Key - [0x97] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x001D, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, WATER_ID ), // Water Temple Boss Key - [0x98] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x001E, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, SPIRIT_ID ), // Spirit Temple Boss Key - [0x99] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x002A, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, SHADOW_ID ), // Shadow Temple Boss Key - [0x9A] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x0061, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, TOWER_ID ), // Ganon's Castle Boss Key + [0x95] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x0006, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, FOREST_ID ), // Forest Temple Boss Key + [0x96] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x001C, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, FIRE_ID ), // Fire Temple Boss Key + [0x97] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x001D, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, WATER_ID ), // Water Temple Boss Key + [0x98] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x001E, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, SPIRIT_ID ), // Spirit Temple Boss Key + [0x99] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x002A, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, SHADOW_ID ), // Shadow Temple Boss Key + [0x9A] = ITEM_ROW(0x53, GOLD_CHEST, 0x41, 0, 0x0061, 0x00B9, 0x0A, no_upgrade, give_dungeon_item, 0x01, TOWER_ID ), // Ganon's Castle Boss Key - [0x9B] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0062, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, DEKU_ID ), // Deku Tree Compass - [0x9C] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0063, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, DODONGO_ID), // Dodongo's Cavern Compass - [0x9D] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0064, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, JABU_ID ), // Jabu Jabu Compass - [0x9E] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0065, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, FOREST_ID ), // Forest Temple Compass - [0x9F] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x007C, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, FIRE_ID ), // Fire Temple Compass - [0xA0] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x007D, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, WATER_ID ), // Water Temple Compass - [0xA1] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x007E, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, SPIRIT_ID ), // Spirit Temple Compass - [0xA2] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x007F, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, SHADOW_ID ), // Shadow Temple Compass - [0xA3] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x00A2, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, BOTW_ID ), // Bottom of the Well Compass - [0xA4] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0087, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, ICE_ID ), // Ice Cavern Compass + [0x9B] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0062, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, DEKU_ID ), // Deku Tree Compass + [0x9C] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0063, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, DODONGO_ID), // Dodongo's Cavern Compass + [0x9D] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0064, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, JABU_ID ), // Jabu Jabu Compass + [0x9E] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0065, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, FOREST_ID ), // Forest Temple Compass + [0x9F] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x007C, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, FIRE_ID ), // Fire Temple Compass + [0xA0] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x007D, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, WATER_ID ), // Water Temple Compass + [0xA1] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x007E, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, SPIRIT_ID ), // Spirit Temple Compass + [0xA2] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x007F, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, SHADOW_ID ), // Shadow Temple Compass + [0xA3] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x00A2, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, BOTW_ID ), // Bottom of the Well Compass + [0xA4] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0087, 0x00B8, 0x0B, no_upgrade, give_dungeon_item, 0x02, ICE_ID ), // Ice Cavern Compass - [0xA5] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0088, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, DEKU_ID ), // Deku Tree Map - [0xA6] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0089, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, DODONGO_ID), // Dodongo's Cavern Map - [0xA7] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008A, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, JABU_ID ), // Jabu Jabu Map - [0xA8] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008B, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, FOREST_ID ), // Forest Temple Map - [0xA9] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008C, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, FIRE_ID ), // Fire Temple Map - [0xAA] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008E, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, WATER_ID ), // Water Temple Map - [0xAB] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008F, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, SPIRIT_ID ), // Spirit Temple Map - [0xAC] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x00A3, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, SHADOW_ID ), // Shadow Temple Map - [0xAD] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x00A5, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, BOTW_ID ), // Bottom of the Well Map - [0xAE] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0092, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, ICE_ID ), // Ice Cavern Map + [0xA5] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0088, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, DEKU_ID ), // Deku Tree Map + [0xA6] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0089, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, DODONGO_ID), // Dodongo's Cavern Map + [0xA7] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008A, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, JABU_ID ), // Jabu Jabu Map + [0xA8] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008B, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, FOREST_ID ), // Forest Temple Map + [0xA9] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008C, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, FIRE_ID ), // Fire Temple Map + [0xAA] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008E, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, WATER_ID ), // Water Temple Map + [0xAB] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x008F, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, SPIRIT_ID ), // Spirit Temple Map + [0xAC] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x00A3, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, SHADOW_ID ), // Shadow Temple Map + [0xAD] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x00A5, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, BOTW_ID ), // Bottom of the Well Map + [0xAE] = ITEM_ROW(0x53, BROWN_CHEST, 0x41, 0, 0x0092, 0x00C8, 0x1C, no_upgrade, give_dungeon_item, 0x04, ICE_ID ), // Ice Cavern Map - [0xAF] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x0093, 0x00AA, 0x02, no_upgrade, give_small_key, FOREST_ID, -1), // Forest Temple Small Key - [0xB0] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x0094, 0x00AA, 0x02, no_upgrade, give_small_key, FIRE_ID, -1), // Fire Temple Small Key - [0xB1] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x0095, 0x00AA, 0x02, no_upgrade, give_small_key, WATER_ID, -1), // Water Temple Small Key - [0xB2] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x00A6, 0x00AA, 0x02, no_upgrade, give_small_key, SPIRIT_ID, -1), // Spirit Temple Small Key - [0xB3] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x00A9, 0x00AA, 0x02, no_upgrade, give_small_key, SHADOW_ID, -1), // Shadow Temple Small Key - [0xB4] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x009B, 0x00AA, 0x02, no_upgrade, give_small_key, BOTW_ID, -1), // Bottom of the Well Small Key - [0xB5] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x009F, 0x00AA, 0x02, no_upgrade, give_small_key, GTG_ID, -1), // Gerudo Training Small Key - [0xB6] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x00A0, 0x00AA, 0x02, no_upgrade, give_small_key, FORT_ID, -1), // Gerudo Fortress Small Key - [0xB7] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x00A1, 0x00AA, 0x02, no_upgrade, give_small_key, CASTLE_ID, -1), // Ganon's Castle Small Key + [0xAF] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x0093, 0x00AA, 0x02, no_upgrade, give_small_key, FOREST_ID, -1), // Forest Temple Small Key + [0xB0] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x0094, 0x00AA, 0x02, no_upgrade, give_small_key, FIRE_ID, -1), // Fire Temple Small Key + [0xB1] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x0095, 0x00AA, 0x02, no_upgrade, give_small_key, WATER_ID, -1), // Water Temple Small Key + [0xB2] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x00A6, 0x00AA, 0x02, no_upgrade, give_small_key, SPIRIT_ID, -1), // Spirit Temple Small Key + [0xB3] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x00A9, 0x00AA, 0x02, no_upgrade, give_small_key, SHADOW_ID, -1), // Shadow Temple Small Key + [0xB4] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x009B, 0x00AA, 0x02, no_upgrade, give_small_key, BOTW_ID, -1), // Bottom of the Well Small Key + [0xB5] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x009F, 0x00AA, 0x02, no_upgrade, give_small_key, GTG_ID, -1), // Gerudo Training Small Key + [0xB6] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x00A0, 0x00AA, 0x02, no_upgrade, give_small_key, FORT_ID, -1), // Gerudo Fortress Small Key + [0xB7] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x00A1, 0x00AA, 0x02, no_upgrade, give_small_key, CASTLE_ID, -1), // Ganon's Castle Small Key - [0xB8] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00E9, 0x0194, 0x13, no_upgrade, give_defense, -1, -1), // Double Defense - [0xB9] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00E4, 0x00CD, 0x1E, no_upgrade, give_magic, -1, -1), // Magic Meter - [0xBA] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00E8, 0x00CD, 0x1F, no_upgrade, give_double_magic, -1, -1), // Double Magic + [0xB8] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00E9, 0x0194, 0x13, no_upgrade, give_defense, -1, -1), // Double Defense + [0xB9] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00E4, 0x00CD, 0x1E, no_upgrade, give_magic, -1, -1), // Magic Meter + [0xBA] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00E8, 0x00CD, 0x1F, no_upgrade, give_double_magic, -1, -1), // Double Magic - [0xBB] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0073, 0x00B6, 0x03, no_upgrade, give_song, 6, -1 ), // Minuet of Forest - [0xBC] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0074, 0x00B6, 0x04, no_upgrade, give_song, 7, -1 ), // Bolero of Fire - [0xBD] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0075, 0x00B6, 0x05, no_upgrade, give_song, 8, -1 ), // Serenade of Water - [0xBE] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0076, 0x00B6, 0x06, no_upgrade, give_song, 9, -1 ), // Requiem of Spirit - [0xBF] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0077, 0x00B6, 0x07, no_upgrade, give_song, 10, -1), // Nocturn of Shadow - [0xC0] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0078, 0x00B6, 0x08, no_upgrade, give_song, 11, -1), // Prelude of Light + [0xBB] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0073, 0x00B6, 0x03, no_upgrade, give_song, 6, -1 ), // Minuet of Forest + [0xBC] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0074, 0x00B6, 0x04, no_upgrade, give_song, 7, -1 ), // Bolero of Fire + [0xBD] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0075, 0x00B6, 0x05, no_upgrade, give_song, 8, -1 ), // Serenade of Water + [0xBE] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0076, 0x00B6, 0x06, no_upgrade, give_song, 9, -1 ), // Requiem of Spirit + [0xBF] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0077, 0x00B6, 0x07, no_upgrade, give_song, 10, -1), // Nocturn of Shadow + [0xC0] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x0078, 0x00B6, 0x08, no_upgrade, give_song, 11, -1), // Prelude of Light - [0xC1] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D4, 0x00B6, 0x04, no_upgrade, give_song, 12, -1), // Zelda's Lullaby - [0xC2] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D2, 0x00B6, 0x06, no_upgrade, give_song, 13, -1), // Epona's Song - [0xC3] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D1, 0x00B6, 0x03, no_upgrade, give_song, 14, -1), // Saria's Song - [0xC4] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D3, 0x00B6, 0x08, no_upgrade, give_song, 15, -1), // Sun's Song - [0xC5] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D5, 0x00B6, 0x05, no_upgrade, give_song, 16, -1), // Song of Time - [0xC6] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D6, 0x00B6, 0x07, no_upgrade, give_song, 17, -1), // Song of Storms + [0xC1] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D4, 0x00B6, 0x04, no_upgrade, give_song, 12, -1), // Zelda's Lullaby + [0xC2] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D2, 0x00B6, 0x06, no_upgrade, give_song, 13, -1), // Epona's Song + [0xC3] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D1, 0x00B6, 0x03, no_upgrade, give_song, 14, -1), // Saria's Song + [0xC4] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D3, 0x00B6, 0x08, no_upgrade, give_song, 15, -1), // Sun's Song + [0xC5] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D5, 0x00B6, 0x05, no_upgrade, give_song, 16, -1), // Song of Time + [0xC6] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00D6, 0x00B6, 0x07, no_upgrade, give_song, 17, -1), // Song of Storms - [0xC7] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00F8, 0x00D1, 0x23, no_upgrade, give_tycoon_wallet, 3, -1), // Tycoon's Wallet - [0xC8] = ITEM_ROW(0x53, GILDED_CHEST, 0x14, 0, 0x9099, 0x010B, 0x45, no_upgrade, no_effect, -1, -1), // Redundant Letter Bottle - [0xC9] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x9048, 0x00F3, 0x3E, no_upgrade, give_bean_pack, -1, -1), // Magic Bean Pack - [0xCA] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x9003, 0x0193, 0x76, no_upgrade, give_triforce_piece, -1, -1), // Triforce piece + [0xC7] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x00F8, 0x00D1, 0x23, no_upgrade, give_tycoon_wallet, 3, -1), // Tycoon's Wallet + [0xC8] = ITEM_ROW(0x53, GILDED_CHEST, 0x14, 0, 0x9099, 0x010B, 0x45, no_upgrade, no_effect, -1, -1), // Redundant Letter Bottle + [0xC9] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x9048, 0x00F3, 0x3E, no_upgrade, give_bean_pack, -1, -1), // Magic Bean Pack + [0xCA] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, 0, 0x9003, 0x0193, 0x76, no_upgrade, give_triforce_piece, -1, -1), // Triforce piece - [0xCB] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9010, 0x0195, 0x77, no_upgrade, give_small_key_ring, FOREST_ID, -1), // Forest Temple Small Key Ring - [0xCC] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9011, 0x0195, 0x77, no_upgrade, give_small_key_ring, FIRE_ID, -1), // Fire Temple Small Key Ring - [0xCD] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9012, 0x0195, 0x77, no_upgrade, give_small_key_ring, WATER_ID, -1), // Water Temple Small Key Ring - [0xCE] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9013, 0x0195, 0x77, no_upgrade, give_small_key_ring, SPIRIT_ID, -1), // Spirit Temple Small Key Ring - [0xCF] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9014, 0x0195, 0x77, no_upgrade, give_small_key_ring, SHADOW_ID, -1), // Shadow Temple Small Key Ring - [0xD0] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9015, 0x0195, 0x77, no_upgrade, give_small_key_ring, BOTW_ID, -1), // Bottom of the Well Small Key Ring - [0xD1] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9016, 0x0195, 0x77, no_upgrade, give_small_key_ring, GTG_ID, -1), // Gerudo Training Small Key Ring - [0xD2] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9017, 0x0195, 0x77, no_upgrade, give_small_key_ring, FORT_ID, -1), // Gerudo Fortress Small Key Ring - [0xD3] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9018, 0x0195, 0x77, no_upgrade, give_small_key_ring, CASTLE_ID, -1), // Ganon's Castle Small Key Ring + [0xCB] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9010, 0x0195, 0x77, no_upgrade, give_small_key_ring, FOREST_ID, -1), // Forest Temple Small Key Ring + [0xCC] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9011, 0x0195, 0x77, no_upgrade, give_small_key_ring, FIRE_ID, -1), // Fire Temple Small Key Ring + [0xCD] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9012, 0x0195, 0x77, no_upgrade, give_small_key_ring, WATER_ID, -1), // Water Temple Small Key Ring + [0xCE] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9013, 0x0195, 0x77, no_upgrade, give_small_key_ring, SPIRIT_ID, -1), // Spirit Temple Small Key Ring + [0xCF] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9014, 0x0195, 0x77, no_upgrade, give_small_key_ring, SHADOW_ID, -1), // Shadow Temple Small Key Ring + [0xD0] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9015, 0x0195, 0x77, no_upgrade, give_small_key_ring, BOTW_ID, -1), // Bottom of the Well Small Key Ring + [0xD1] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9016, 0x0195, 0x77, no_upgrade, give_small_key_ring, GTG_ID, -1), // Gerudo Training Small Key Ring + [0xD2] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9017, 0x0195, 0x77, no_upgrade, give_small_key_ring, FORT_ID, -1), // Gerudo Fortress Small Key Ring + [0xD3] = ITEM_ROW(0x53, SILVER_CHEST, 0x41, 0, 0x9018, 0x0195, 0x77, no_upgrade, give_small_key_ring, CASTLE_ID, -1), // Ganon's Castle Small Key Ring }; diff --git a/ASM/c/models.c b/ASM/c/models.c index 83bf7594d..04f8bb704 100644 --- a/ASM/c/models.c +++ b/ASM/c/models.c @@ -1,5 +1,5 @@ -#include "models.h" #include +#include "models.h" #include "get_items.h" #include "item_table.h" #include "item_draw_table.h" @@ -21,7 +21,7 @@ typedef struct { } loaded_object_t; extern uint32_t EXTENDED_OBJECT_TABLE; -extern EnItem00* collectible_mutex; +extern EnItem00 *collectible_mutex; loaded_object_t object_slots[slot_count] = { 0 }; @@ -96,22 +96,16 @@ float scale_factor(uint8_t graphic_id, z64_actor_t *actor, float base_scale) { // Draw ocarinas in the moat at vanilla size return 1.0; } - //if (actor->actor_id == 0x15 && (actor->variable & 0xFF) == 0x11) { - // Draw small key actors smaller, so they don't stick out of places - //return base_scale * 0.5; - //} return base_scale; } void draw_model(model_t model, z64_actor_t *actor, z64_game_t *game, float base_scale) { loaded_object_t *object = get_object(model.object_id); - if(object != NULL) - { + if (object != NULL) { set_object_segment(object); scale_top_matrix(scale_factor(model.graphic_id, actor, base_scale)); draw_model_low_level(model.graphic_id - 1, actor, game); } - } void models_init() { @@ -144,18 +138,18 @@ void lookup_model(model_t *model, z64_actor_t *actor, z64_game_t *game, uint16_t lookup_model_by_override(model, override); } -//Collectible draw function for rupees/recovery hearts +// Collectible draw function for rupees/recovery hearts bool collectible_draw(z64_actor_t *actor, z64_game_t *game) { - EnItem00* this = (EnItem00*)actor; + EnItem00 *this = (EnItem00 *)actor; model_t model = { .object_id = 0x0000, .graphic_id = 0x00, }; lookup_model(&model, actor, game, 0); - if(model.object_id != 0x0000 && (this->actor.health==1 || !Get_CollectibleOverrideFlag(this) || (collectible_mutex == this))) - { - if(!(collectible_mutex == this)) + if (model.object_id != 0x0000 && (this->actor.health == 1 || !Get_CollectibleOverrideFlag(this) || (collectible_mutex == this))) { + if (collectible_mutex != this) { draw_model(model, actor, game, 25.0); + } return true; } return false; @@ -171,11 +165,11 @@ void heart_piece_draw(z64_actor_t *actor, z64_game_t *game) { draw_model(model, actor, game, 25.0); } -//collectible draw function for common items (sticks, nuts, arrows/seeds/etc. and keys) +// collectible draw function for common items (sticks, nuts, arrows/seeds/etc. and keys) void collectible_draw_other(z64_actor_t *actor, z64_game_t *game) { - EnItem00* this = (EnItem00*)actor; - - if (!should_override_collectible(this) && !(collectible_mutex == this) && (this->actor.health!=1)) { + EnItem00 *this = (EnItem00 *)actor; + + if (!should_override_collectible(this) && collectible_mutex != this && this->actor.health != 1) { base_collectable_draw(actor, game); return; } @@ -185,8 +179,9 @@ void collectible_draw_other(z64_actor_t *actor, z64_game_t *game) { .graphic_id = 0x00, }; lookup_model(&model, actor, game, 0); - if(!(collectible_mutex == this)) + if (collectible_mutex != this) { draw_model(model, actor, game, 10.0); + } } void heart_container_draw(z64_actor_t *actor, z64_game_t *game) { diff --git a/ASM/c/obj_comb.c b/ASM/c/obj_comb.c index 9fee734fd..c7ebd1c66 100644 --- a/ASM/c/obj_comb.c +++ b/ASM/c/obj_comb.c @@ -4,44 +4,35 @@ #include "textures.h" #include "obj_comb.h" -#define GAMEPLAY_FIELD_KEEP_BEEHIVE_TEXTURE (uint8_t*)0x05008900 +#define GAMEPLAY_FIELD_KEEP_BEEHIVE_TEXTURE (uint8_t *)0x05008900 // Hack beehives to drop a collectible w / an extended flag, based on the grotto param -void obj_comb_drop_collectible(z64_actor_t *actor, int16_t params) -{ +void obj_comb_drop_collectible(z64_actor_t *actor, int16_t params) { // Check if we're in a grotto uint8_t flag = actor->rot_init.z; - if (z64_game.scene_index == 0x3E) - { + if (z64_game.scene_index == 0x3E) { // We're in a grotto so offset by 2x grotto id. The Rz flags for the grottos need to be set to 0/1 beforehand. flag = (2 * (z64_file.grotto_id & 0x1F)) + flag; // and add 0x60 flag += 0x60; } - - if (params >= 0) - { - if(get_beehive_override(actor, &z64_game).key.all != 0) - { + + if (params >= 0) { + if (get_beehive_override(actor, &z64_game).key.all != 0) { // set up params for Item_DropCollectible params |= ((flag & 0x3F) << 8) + (flag & 0xC0); z64_Item_DropCollectible2(&z64_game, &actor->pos_world, params); - } - else //Normal beehive behavior - { - if(z64_Rand_ZeroOne() > 0.5f) - { + } else { // Normal beehive behavior + if (z64_Rand_ZeroOne() > 0.5f) { z64_Item_DropCollectible(&z64_game, &actor->pos_world, params); } } } } -override_t get_beehive_override(z64_actor_t *actor, z64_game_t *game) -{ +override_t get_beehive_override(z64_actor_t *actor, z64_game_t *game) { uint8_t flag = actor->rot_init.z; - if (z64_game.scene_index == 0x3E) - { + if (z64_game.scene_index == 0x3E) { // We're in a grotto so offset by 2x grotto id. The Rz flags for the grottos need to be set to 0/1 beforehand. flag = (2 * (z64_file.grotto_id & 0x1F)) + flag; // and add 0x60 @@ -53,38 +44,32 @@ override_t get_beehive_override(z64_actor_t *actor, z64_game_t *game) dummy.actor.actor_id = 0x15; dummy.actor.dropFlag = 1; dummy.actor.variable = 0; - if (!should_override_collectible(&dummy)) - { - return (override_t){0}; + if (!should_override_collectible(&dummy)) { + return (override_t){ 0 }; } return lookup_override((z64_actor_t *)&dummy, game->scene_index, 0); } - -void ObjComb_Update(z64_actor_t* thisx, z64_game_t* game) -{ - ObjComb* this = (ObjComb*)thisx; - if(this->actor.dropFlag > 0) +void ObjComb_Update(z64_actor_t *thisx, z64_game_t *game) { + ObjComb* this = (ObjComb *)thisx; + if (this->actor.dropFlag > 0) { this->actor.dropFlag --; + } this->unk_1B2 += 0x2EE0; this->actionFunc(this, game); this->actor.rot_2.x = z64_Math_SinS(this->unk_1B2) * this->unk_1B0 + this->actor.rot_init.x; override_t override = get_beehive_override(thisx, game); - if(override.key.all != 0) - { - + if (override.key.all != 0) { uint16_t item_id = resolve_upgrades(override.value.item_id); item_row_t *row = get_item_row(override.value.looks_like_item_id); if (row == NULL) { row = get_item_row(override.value.item_id); } - if (row->chest_type > 0) - { - if(this->unk_1B0 == 0 && this->actor.dropFlag == 0) - { + if (row->chest_type > 0) { + if (this->unk_1B0 == 0 && this->actor.dropFlag == 0) { this->unk_1B0 = 0x0800; this->actor.dropFlag = 0x40; } @@ -92,26 +77,21 @@ void ObjComb_Update(z64_actor_t* thisx, z64_game_t* game) } } -void ObjComb_Draw_Hack(z64_actor_t* this, z64_game_t* game) -{ +void ObjComb_Draw_Hack(z64_actor_t *this, z64_game_t *game) { uint8_t *texture = GAMEPLAY_FIELD_KEEP_BEEHIVE_TEXTURE; override_t override = get_beehive_override(this, game); - if(override.key.all != 0) - { - + if(override.key.all != 0) { uint16_t item_id = resolve_upgrades(override.value.item_id); item_row_t *row = get_item_row(override.value.looks_like_item_id); if (row == NULL) { row = get_item_row(override.value.item_id); } - if (row->chest_type == GILDED_CHEST) - { + if (row->chest_type == GILDED_CHEST) { texture = get_texture(TEXTURE_ID_BEEHIVE_GOLD); } - if (row->chest_type == GOLD_CHEST) - { + if (row->chest_type == GOLD_CHEST) { texture = get_texture(TEXTURE_ID_BEEHIVE_BOSSKEY); } } diff --git a/ASM/c/obj_comb.h b/ASM/c/obj_comb.h index c48f26801..b5d12aa44 100644 --- a/ASM/c/obj_comb.h +++ b/ASM/c/obj_comb.h @@ -2,7 +2,7 @@ struct ObjComb; -typedef void (*ObjCombActionFunc)(struct ObjComb*, z64_game_t*); +typedef void (*ObjCombActionFunc)(struct ObjComb *, z64_game_t *); typedef struct ObjComb { /* 0x0000 */ z64_actor_t actor; @@ -12,4 +12,4 @@ typedef struct ObjComb { /* 0x01A2 */ uint16_t unk_1B2; } ObjComb; // size = 0x01A4 -override_t get_beehive_override(z64_actor_t *actor, z64_game_t *game); \ No newline at end of file +override_t get_beehive_override(z64_actor_t *actor, z64_game_t *game); diff --git a/ASM/c/obj_kibako.c b/ASM/c/obj_kibako.c index c63c1ab34..99f7a61ad 100644 --- a/ASM/c/obj_kibako.c +++ b/ASM/c/obj_kibako.c @@ -7,14 +7,12 @@ #define SMALLCRATE_TEXTURE (uint8_t *)0x05011CA0 extern uint8_t POTCRATE_TEXTURES_MATCH_CONTENTS; -override_t get_smallcrate_override(z64_actor_t *actor, z64_game_t *game) -{ +override_t get_smallcrate_override(z64_actor_t *actor, z64_game_t *game) { // make a dummy EnItem00 with enough info to get the override uint8_t item = (actor->variable & 0x3F); - if (item == 0x3F) - { - return (override_t){0}; + if (item == 0x3F) { + return (override_t){ 0 }; } EnItem00 dummy; @@ -23,44 +21,32 @@ override_t get_smallcrate_override(z64_actor_t *actor, z64_game_t *game) dummy.actor.dropFlag = 1; dummy.actor.variable = item; - if (!should_override_collectible(&dummy)) - { - return (override_t){0}; + if (!should_override_collectible(&dummy)) { + return (override_t){ 0 }; } return lookup_override((z64_actor_t *)&dummy, game->scene_index, 0); } -void ObjKibako_Draw(z64_actor_t *actor, z64_game_t *game) -{ - uint8_t* texture = SMALLCRATE_TEXTURE; // get original texture +void ObjKibako_Draw(z64_actor_t *actor, z64_game_t *game) { + uint8_t *texture = SMALLCRATE_TEXTURE; // get original texture override_t crate_override = get_smallcrate_override(actor, game); - if(POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_UNCHECKED && crate_override.key.all != 0) - { + if (POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_UNCHECKED && crate_override.key.all != 0) { texture = get_texture(TEXTURE_ID_SMALLCRATE_GOLD); - } - else if (POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_CONTENTS && crate_override.key.all != 0) - { + } else if (POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_CONTENTS && crate_override.key.all != 0) { uint16_t item_id = resolve_upgrades(crate_override.value.item_id); item_row_t *row = get_item_row(crate_override.value.looks_like_item_id); if (row == NULL) { row = get_item_row(crate_override.value.item_id); } - if (row->chest_type == GILDED_CHEST) - { + if (row->chest_type == GILDED_CHEST) { texture = get_texture(TEXTURE_ID_SMALLCRATE_GOLD); - } - else if (row->chest_type == SILVER_CHEST) - { + } else if (row->chest_type == SILVER_CHEST) { texture = get_texture(TEXTURE_ID_SMALLCRATE_KEY); - } - else if (row->chest_type == GOLD_CHEST) - { + } else if (row->chest_type == GOLD_CHEST) { texture = get_texture(TEXTURE_ID_SMALLCRATE_BOSSKEY); - } - else if (row->chest_type == SKULL_CHEST_SMALL || row->chest_type == SKULL_CHEST_BIG) - { + } else if (row->chest_type == SKULL_CHEST_SMALL || row->chest_type == SKULL_CHEST_BIG) { texture = get_texture(TEXTURE_ID_SMALLCRATE_SKULL); } } @@ -71,7 +57,6 @@ void ObjKibako_Draw(z64_actor_t *actor, z64_game_t *game) gDPSetTextureImage(gfx->poly_opa.d, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture); gSPEndDisplayList(gfx->poly_opa.d + 1); - gMoveWd(gfx->poly_opa.p++, G_MW_SEGMENT, 9 * sizeof(int), gfx->poly_opa.d); // draw the original dlist that has been hacked in ASM to jump to the custom dlists diff --git a/ASM/c/obj_kibako2.c b/ASM/c/obj_kibako2.c index 280db98fe..f1a6057a1 100644 --- a/ASM/c/obj_kibako2.c +++ b/ASM/c/obj_kibako2.c @@ -12,23 +12,19 @@ extern uint8_t POTCRATE_TEXTURES_MATCH_CONTENTS; // Hacks the regular crate spawn collectible function to use more flag space // The additional flag info is stored in the actors dropFlag variable (unused by collectibles) -void ObjKibako2_SpawnCollectible_Hack(ObjKibako2 *this, z64_game_t *globalCtx) -{ +void ObjKibako2_SpawnCollectible_Hack(ObjKibako2 *this, z64_game_t *globalCtx) { int16_t itemDropped; int16_t collectibleFlagTemp; collectibleFlagTemp = this->collectibleFlag & 0x3F; // Get the vanilla part of the collectible flag uint16_t extendedCollectibleFlag = (this->collectibleFlag & 0x00C0); // Get the upper part of the collectible flag that we'll store elsewhere itemDropped = this->dyna.actor.rot_init.x & 0x1F; - if (itemDropped >= 0 && itemDropped < 0x1A) - { + if (itemDropped >= 0 && itemDropped < 0x1A) { EnItem00 *spawned = z64_Item_DropCollectible(globalCtx, &this->dyna.actor.pos_world, itemDropped | (collectibleFlagTemp << 8) | extendedCollectibleFlag); - // spawned->actor.dropFlag |= (extendedCollectibleFlag << 1) & 0xFE; } } -override_t get_crate_override(z64_actor_t *actor, z64_game_t *game) -{ +override_t get_crate_override(z64_actor_t *actor, z64_game_t *game) { // make a dummy EnItem00 with enough info to get the override ObjKibako2 *this = (ObjKibako2 *)actor; EnItem00 dummy; @@ -36,62 +32,34 @@ override_t get_crate_override(z64_actor_t *actor, z64_game_t *game) dummy.actor.actor_id = 0x15; dummy.actor.dropFlag = 1; dummy.actor.variable = 0; - if (!should_override_collectible(&dummy)) - { - return (override_t){0}; + if (!should_override_collectible(&dummy)) { + return (override_t){ 0 }; } return lookup_override((z64_actor_t *)&dummy, game->scene_index, 0); } -void ObjKibako2_Draw(z64_actor_t *actor, z64_game_t *game) -{ +void ObjKibako2_Draw(z64_actor_t *actor, z64_game_t *game) { uint8_t* texture = get_texture(TEXTURE_ID_CRATE_DEFAULT); - // get original palette and textures - //uint64_t *palette = get_texture(TEXTURE_ID_CRATE_PALETTE_DEFAULT); - //uint64_t *top_texture = get_texture(TEXTURE_ID_CRATE_TOP_DEFAULT); - //uint64_t *side_texture = get_texture(TEXTURE_ID_CRATE_SIDE_DEFAULT); // get override palette and textures override_t crate_override = get_crate_override(actor, game); - if(POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_UNCHECKED && crate_override.key.all != 0) - { + if (POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_UNCHECKED && crate_override.key.all != 0) { texture = get_texture(TEXTURE_ID_CRATE_GOLD); - } - else if (POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_CONTENTS && crate_override.key.all != 0) - { + } else if (POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_CONTENTS && crate_override.key.all != 0) { uint16_t item_id = resolve_upgrades(crate_override.value.item_id); item_row_t *row = get_item_row(crate_override.value.looks_like_item_id); if (row == NULL) { row = get_item_row(crate_override.value.item_id); } - if (row->chest_type == GILDED_CHEST) - { + if (row->chest_type == GILDED_CHEST) { texture = get_texture(TEXTURE_ID_CRATE_GOLD); - //palette = get_texture(TEXTURE_ID_CRATE_PALETTE_GOLD); - //top_texture = get_texture(TEXTURE_ID_CRATE_TOP_GOLD); - //side_texture = get_texture(TEXTURE_ID_CRATE_SIDE_GOLD); - } - else if (row->chest_type == SILVER_CHEST) - { + } else if (row->chest_type == SILVER_CHEST) { texture = get_texture(TEXTURE_ID_CRATE_KEY); - //palette = get_texture(TEXTURE_ID_CRATE_PALETTE_KEY); - //top_texture = get_texture(TEXTURE_ID_CRATE_TOP_KEY); - //side_texture = get_texture(TEXTURE_ID_CRATE_SIDE_KEY); - } - else if (row->chest_type == GOLD_CHEST) - { + } else if (row->chest_type == GOLD_CHEST) { texture = get_texture(TEXTURE_ID_CRATE_BOSSKEY); - //palette = get_texture(TEXTURE_ID_CRATE_PALETTE_BOSSKEY); - //top_texture = get_texture(TEXTURE_ID_CRATE_TOP_BOSSKEY); - //side_texture = get_texture(TEXTURE_ID_CRATE_SIDE_BOSSKEY); - } - else if (row->chest_type == SKULL_CHEST_SMALL || row->chest_type == SKULL_CHEST_BIG) - { + } else if (row->chest_type == SKULL_CHEST_SMALL || row->chest_type == SKULL_CHEST_BIG) { texture = get_texture(TEXTURE_ID_CRATE_SKULL); - //palette = get_texture(TEXTURE_ID_CRATE_PALETTE_SKULL); - //top_texture = get_texture(TEXTURE_ID_CRATE_TOP_SKULL); - //side_texture = get_texture(TEXTURE_ID_CRATE_SIDE_SKULL); } } diff --git a/ASM/c/obj_kibako2.h b/ASM/c/obj_kibako2.h index ca6b81e5b..de10acd77 100644 --- a/ASM/c/obj_kibako2.h +++ b/ASM/c/obj_kibako2.h @@ -4,14 +4,15 @@ #include "item_table.h" #include "get_items.h" #include "z64.h" + struct ObjKibako2; -typedef void (*ObjKibako2ActionFunc)(struct ObjKibako2*, z64_game_t*); +typedef void (*ObjKibako2ActionFunc)(struct ObjKibako2 *, z64_game_t *); typedef struct ObjKibako2 { /* 0x0000 */ DynaPolyActor dyna; /* 0x0164 */ uint8_t collider[0x4c]; - /* 0x01B0 */ void* actionFunc; + /* 0x01B0 */ void *actionFunc; /* 0x01B4 */ int16_t collectibleFlag; } ObjKibako2; // size = 0x01B8 diff --git a/ASM/c/pots.c b/ASM/c/pots.c index 66b6b7e44..a85f432ff 100644 --- a/ASM/c/pots.c +++ b/ASM/c/pots.c @@ -12,14 +12,12 @@ extern uint8_t POTCRATE_TEXTURES_MATCH_CONTENTS; -override_t get_pot_override(z64_actor_t *actor, z64_game_t *game) -{ +override_t get_pot_override(z64_actor_t *actor, z64_game_t *game) { // make sure that the pot is actually supposed to drop something // there are some pots w/ flags that don't drop anything uint8_t pot_item = (actor->variable & 0x3F); - if (pot_item == 0x3F) - { - return (override_t){0}; + if (pot_item == 0x3F) { + return (override_t){ 0 }; } // make a dummy EnItem00 with enough info to get the override @@ -28,68 +26,53 @@ override_t get_pot_override(z64_actor_t *actor, z64_game_t *game) dummy.actor.actor_id = 0x15; dummy.actor.dropFlag = 1; dummy.actor.variable = pot_item; - if (!should_override_collectible(&dummy)) - { - return (override_t){0}; + if (!should_override_collectible(&dummy)) { + return (override_t){ 0 }; } return lookup_override((z64_actor_t *)&dummy, game->scene_index, 0); } -override_t get_flying_pot_override(z64_actor_t *actor, z64_game_t *game) -{ +override_t get_flying_pot_override(z64_actor_t *actor, z64_game_t *game) { EnItem00 dummy; dummy.collectibleFlag = (actor->variable & 0x3F); dummy.actor.actor_id = 0x15; dummy.actor.dropFlag = 1; dummy.actor.variable = 0; - if (!should_override_collectible(&dummy)) - { + if (!should_override_collectible(&dummy)) { return (override_t){0}; } return lookup_override((z64_actor_t *)&dummy, game->scene_index, 0); } -void draw_pot(z64_actor_t *actor, z64_game_t *game, override_t override) -{ +void draw_pot(z64_actor_t *actor, z64_game_t *game, override_t override) { // get original dlist and texture z64_gfx_t *dlist = DUNGEON_POT_DLIST; uint8_t *side_texture = DUNGEON_POT_SIDE_TEXTURE; // overworld pot or hba pot - if ((actor->actor_id == 0x111 && (actor->variable >> 8) & 1) || actor->actor_id == 0x117) - { + if ((actor->actor_id == 0x111 && (actor->variable >> 8) & 1) || actor->actor_id == 0x117) { dlist = POT_DLIST; side_texture = POT_SIDE_TEXTURE; } // get override texture - if(POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_UNCHECKED && override.key.all != 0) - { + if (POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_UNCHECKED && override.key.all != 0) { side_texture = get_texture(TEXTURE_ID_POT_GOLD); - } - else if (POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_CONTENTS && override.key.all != 0) - { + } else if (POTCRATE_TEXTURES_MATCH_CONTENTS == PTMC_CONTENTS && override.key.all != 0) { uint16_t item_id = resolve_upgrades(override.value.item_id); item_row_t *row = get_item_row(override.value.looks_like_item_id); if (row == NULL) { row = get_item_row(override.value.item_id); } - if (row->chest_type == GILDED_CHEST) - { + if (row->chest_type == GILDED_CHEST) { side_texture = get_texture(TEXTURE_ID_POT_GOLD); - } - else if (row->chest_type == SILVER_CHEST) - { + } else if (row->chest_type == SILVER_CHEST) { side_texture = get_texture(TEXTURE_ID_POT_KEY); - } - else if (row->chest_type == GOLD_CHEST) - { + } else if (row->chest_type == GOLD_CHEST) { side_texture = get_texture(TEXTURE_ID_POT_BOSSKEY); - } - else if (row->chest_type == SKULL_CHEST_SMALL || row->chest_type == SKULL_CHEST_BIG) - { + } else if (row->chest_type == SKULL_CHEST_SMALL || row->chest_type == SKULL_CHEST_BIG) { side_texture = get_texture(TEXTURE_ID_POT_SKULL); } } @@ -105,22 +88,18 @@ void draw_pot(z64_actor_t *actor, z64_game_t *game, override_t override) z64_Gfx_DrawDListOpa(game, dlist); } -void draw_pot_hack(z64_actor_t *actor, z64_game_t *game) -{ +void draw_pot_hack(z64_actor_t *actor, z64_game_t *game) { draw_pot(actor, game, get_pot_override(actor, game)); } -void draw_hba_pot_hack(z64_actor_t *actor, z64_game_t *game) -{ +void draw_hba_pot_hack(z64_actor_t *actor, z64_game_t *game) { EnGSwitch *switch_actor = (EnGSwitch *)actor; - if (!switch_actor->broken) - { + if (!switch_actor->broken) { draw_pot(actor, game, (override_t){0}); } } -void draw_flying_pot_hack(z64_actor_t *actor, z64_game_t *game) -{ +void draw_flying_pot_hack(z64_actor_t *actor, z64_game_t *game) { draw_pot(actor, game, get_flying_pot_override(actor, game)); } diff --git a/ASM/c/save.c b/ASM/c/save.c index 076b3cd65..1e82cc831 100644 --- a/ASM/c/save.c +++ b/ASM/c/save.c @@ -7,20 +7,20 @@ #define SRAM_NEWDATA_START 0x5160 #define SRAM_ORIGINAL_SLOT_SIZE 0x1450 #define SAVE_SIZE 0x1354 -#define SLOT_SIZE SRAM_SIZE/SLOT_COUNT - 0x20 +#define SLOT_SIZE SRAM_SIZE/SLOT_COUNT - 0x20 #define CHECKSUM_SIZE 0x9AA #define CHECKSUM_OFFSET 0x1352/2 #define DEATHS_OFFSET OFFSETOF(z64_file_t, deaths) #define NAME_OFFSET OFFSETOF(z64_file_t, file_name) -#define HEALTH_CAP_OFFSET OFFSETOF(z64_file_t, energy_capacity) -#define QUEST_OFFSET OFFSETOF(z64_file_t, quest_items) -#define N64DD_OFFSET OFFSETOF(z64_file_t, n64dd_flag) -#define DEFENSE_OFFSET OFFSETOF(z64_file_t, defense_hearts) -#define HEALTH_OFFSET OFFSETOF(z64_file_t, energy ) +#define HEALTH_CAP_OFFSET OFFSETOF(z64_file_t, energy_capacity) +#define QUEST_OFFSET OFFSETOF(z64_file_t, quest_items) +#define N64DD_OFFSET OFFSETOF(z64_file_t, n64dd_flag) +#define DEFENSE_OFFSET OFFSETOF(z64_file_t, defense_hearts) +#define HEALTH_OFFSET OFFSETOF(z64_file_t, energy ) -extern uint32_t* collectible_override_flags; -extern uint32_t* dropped_collectible_override_flags; +extern uint32_t *collectible_override_flags; +extern uint32_t *dropped_collectible_override_flags; extern uint16_t num_override_flags; extern uint16_t num_drop_override_flags; extern uint16_t SRAM_SLOTS[6]; @@ -28,93 +28,91 @@ extern uint16_t SRAM_SLOTS[6]; typedef void (*Sram_InitNewSave_Func)(void); Sram_InitNewSave_Func Sram_InitNewSave = (Sram_InitNewSave_Func)(0x8008FFC0); -//Override Sram_WriteSave to include the collectible flags in the checksum calculation. -void Sram_WriteSave(SramContext* sramCtx) -{ +// Override Sram_WriteSave to include the collectible flags in the checksum calculation. +void Sram_WriteSave(SramContext *sramCtx) { uint16_t offset; uint16_t checksum; - uint16_t* ptr; + uint16_t *ptr; z64_file.checksum = 0; - ptr = (uint16_t*)&z64_file; + ptr = (uint16_t *)&z64_file; checksum = 0; - //Checksum calculation for original SaveContext data + // Checksum calculation for original SaveContext data for (offset = 0; offset < CHECKSUM_SIZE; offset++) { checksum += *ptr++; } - //Calculate the collectible flags in the checksum - ptr = (uint16_t*)collectible_override_flags; - for(offset = 0; offset < num_override_flags *2; offset++) { + // Calculate the collectible flags in the checksum + ptr = (uint16_t *)collectible_override_flags; + for(offset = 0; offset < num_override_flags * 2; offset++) { checksum += *ptr++; } - ptr = (uint16_t*)dropped_collectible_override_flags; - for(offset = 0; offset < num_drop_override_flags *2; offset++) { + ptr = (uint16_t *)dropped_collectible_override_flags; + for(offset = 0; offset < num_drop_override_flags * 2; offset++) { checksum += *ptr++; } z64_file.checksum = checksum; - //Write the base SaveContext data to the main slot + // Write the base SaveContext data to the main slot offset = SRAM_SLOTS[z64_file.file_index]; SsSram_ReadWrite_Safe(SRAM_BASE + offset, &z64_file, SRAM_ORIGINAL_SLOT_SIZE, OS_WRITE); - //Write the base SaveContext data to the backup slot + // Write the base SaveContext data to the backup slot offset = SRAM_SLOTS[z64_file.file_index + 3]; SsSram_ReadWrite_Safe(SRAM_BASE + offset, &z64_file, SRAM_ORIGINAL_SLOT_SIZE, OS_WRITE); - //Write the collectible flags to the back of the main slot - uint16_t slot_offset = SRAM_SLOTS[z64_file.file_index] + SLOT_SIZE - (4*num_override_flags + 4*num_drop_override_flags); - SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset, collectible_override_flags, 4*num_override_flags, OS_WRITE); - SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset + 4*num_override_flags, dropped_collectible_override_flags, 4*num_drop_override_flags, OS_WRITE); + // Write the collectible flags to the back of the main slot + uint16_t slot_offset = SRAM_SLOTS[z64_file.file_index] + SLOT_SIZE - (4 * num_override_flags + 4 * num_drop_override_flags); + SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset, collectible_override_flags, 4 * num_override_flags, OS_WRITE); + SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset + 4 * num_override_flags, dropped_collectible_override_flags, 4 * num_drop_override_flags, OS_WRITE); - //Write the collectible flags to the back of the backup slot - slot_offset = SRAM_SLOTS[z64_file.file_index + 3] + SLOT_SIZE - (4*num_override_flags + 4*num_drop_override_flags); - SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset, collectible_override_flags, 4*num_override_flags, OS_WRITE); - SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset + 4*num_override_flags, dropped_collectible_override_flags, 4*num_drop_override_flags, OS_WRITE); + // Write the collectible flags to the back of the backup slot + slot_offset = SRAM_SLOTS[z64_file.file_index + 3] + SLOT_SIZE - (4 * num_override_flags + 4 * num_drop_override_flags); + SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset, collectible_override_flags, 4 * num_override_flags, OS_WRITE); + SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset + 4 * num_override_flags, dropped_collectible_override_flags, 4 * num_drop_override_flags, OS_WRITE); } -//Override the Sram_VerifyAndLoadAllSaves function. Only check our new 2 slots (and their backups). -//And include the collectible flags in the checksum. -void Sram_VerifyAndLoadAllSaves(z64_FileChooseContext_t* fileChooseCtx, SramContext* sramCtx) -{ +// Override the Sram_VerifyAndLoadAllSaves function. Only check our new 2 slots (and their backups). +// And include the collectible flags in the checksum. +void Sram_VerifyAndLoadAllSaves(z64_FileChooseContext_t *fileChooseCtx, SramContext *sramCtx) { uint16_t i; uint16_t newChecksum; uint16_t slotNum; uint16_t offset; uint16_t j; uint16_t oldChecksum; - uint16_t* ptr; + uint16_t *ptr; uint16_t dayTime; - //Read SRAM to RAM buffer + // Read SRAM to RAM buffer z64_bzero(sramCtx->readBuff, SRAM_SIZE); SsSram_ReadWrite_Safe(SRAM_BASE, sramCtx->readBuff, SRAM_SIZE, OS_READ); dayTime = ((void)0, z64_file.day_time); - //Loop through each slot and check the checksums + // Loop through each slot and check the checksums for (slotNum = 0; slotNum < 2; slotNum++) { offset = SRAM_SLOTS[slotNum]; z64_memcopy(&z64_file, sramCtx->readBuff + offset, SAVE_SIZE); - z64_memcopy(collectible_override_flags, sramCtx->readBuff + offset + SLOT_SIZE - (4*num_override_flags + 4*num_drop_override_flags), 4*num_override_flags); - z64_memcopy(dropped_collectible_override_flags, sramCtx->readBuff + offset + SLOT_SIZE - 4*num_drop_override_flags, 4*num_drop_override_flags); + z64_memcopy(collectible_override_flags, sramCtx->readBuff + offset + SLOT_SIZE - (4 * num_override_flags + 4 * num_drop_override_flags), 4 * num_override_flags); + z64_memcopy(dropped_collectible_override_flags, sramCtx->readBuff + offset + SLOT_SIZE - 4 * num_drop_override_flags, 4 * num_drop_override_flags); oldChecksum = z64_file.checksum; z64_file.checksum = 0; - ptr = (uint16_t*)&z64_file; + ptr = (uint16_t *)&z64_file; for (i = newChecksum = j = 0; i < CHECKSUM_SIZE; i++) { newChecksum += *ptr++; } - //Calculate the collectible flags in the checksum - ptr = (uint16_t*)collectible_override_flags; - for(i = 0; i < num_override_flags *2; i++) { + // Calculate the collectible flags in the checksum + ptr = (uint16_t *)collectible_override_flags; + for(i = 0; i < num_override_flags * 2; i++) { newChecksum += *ptr++; } - ptr = (uint16_t*)dropped_collectible_override_flags; - for(i = 0; i < num_drop_override_flags *2; i++) { + ptr = (uint16_t *)dropped_collectible_override_flags; + for(i = 0; i < num_drop_override_flags * 2; i++) { newChecksum += *ptr++; } @@ -124,22 +122,22 @@ void Sram_VerifyAndLoadAllSaves(z64_FileChooseContext_t* fileChooseCtx, SramCont // checksum didnt match, try backup save offset = SRAM_SLOTS[slotNum + 3]; z64_memcopy(&z64_file, sramCtx->readBuff + offset, SAVE_SIZE); - z64_memcopy(collectible_override_flags, sramCtx->readBuff + offset + SLOT_SIZE - (4*num_override_flags + 4*num_drop_override_flags), 4*num_override_flags); - z64_memcopy(dropped_collectible_override_flags, sramCtx->readBuff + offset + SLOT_SIZE - 4*num_drop_override_flags, 4*num_drop_override_flags); + z64_memcopy(collectible_override_flags, sramCtx->readBuff + offset + SLOT_SIZE - (4 * num_override_flags + 4 * num_drop_override_flags), 4 * num_override_flags); + z64_memcopy(dropped_collectible_override_flags, sramCtx->readBuff + offset + SLOT_SIZE - 4 * num_drop_override_flags, 4 * num_drop_override_flags); oldChecksum = z64_file.checksum; z64_file.checksum = 0; - ptr = (uint16_t*)&z64_file; + ptr = (uint16_t *)&z64_file; for (i = newChecksum = j = 0; i < CHECKSUM_SIZE; i++) { newChecksum += *ptr++; } - //Calculate the collectible flags in the checksum - ptr = (uint16_t*)collectible_override_flags; - for(i = 0; i < num_override_flags *2; i++) { + // Calculate the collectible flags in the checksum + ptr = (uint16_t *)collectible_override_flags; + for(i = 0; i < num_override_flags * 2; i++) { newChecksum += *ptr++; } - ptr = (uint16_t*)dropped_collectible_override_flags; - for(i = 0; i < num_drop_override_flags *2; i++) { + ptr = (uint16_t *)dropped_collectible_override_flags; + for(i = 0; i < num_drop_override_flags * 2; i++) { newChecksum += *ptr++; } // "(B) SAVE checksum calculation" @@ -157,7 +155,7 @@ void Sram_VerifyAndLoadAllSaves(z64_FileChooseContext_t* fileChooseCtx, SramCont Sram_InitNewSave(); - ptr = (uint16_t*)&z64_file; + ptr = (uint16_t *)&z64_file; for (i = newChecksum = j = 0; i < CHECKSUM_SIZE; i++) { newChecksum += *ptr++; @@ -166,24 +164,23 @@ void Sram_VerifyAndLoadAllSaves(z64_FileChooseContext_t* fileChooseCtx, SramCont i = SRAM_SLOTS[slotNum + 3]; SsSram_ReadWrite_Safe(SRAM_BASE + i, &z64_file, SRAM_ORIGINAL_SLOT_SIZE, OS_WRITE); - z64_bzero(collectible_override_flags, 4*num_override_flags); - z64_bzero(dropped_collectible_override_flags, 4*num_drop_override_flags); + z64_bzero(collectible_override_flags, 4 * num_override_flags); + z64_bzero(dropped_collectible_override_flags, 4 * num_drop_override_flags); } i = SRAM_SLOTS[slotNum]; SsSram_ReadWrite_Safe(SRAM_BASE + i, &z64_file, SRAM_ORIGINAL_SLOT_SIZE, OS_WRITE); - uint16_t slot_offset = i + SLOT_SIZE - (4*num_override_flags + 4*num_drop_override_flags); - SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset, collectible_override_flags, 4*num_override_flags, OS_WRITE); - SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset + 4*num_override_flags, dropped_collectible_override_flags, 4*num_drop_override_flags, OS_WRITE); - } + uint16_t slot_offset = i + SLOT_SIZE - (4 * num_override_flags + 4 * num_drop_override_flags); + SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset, collectible_override_flags, 4 * num_override_flags, OS_WRITE); + SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset + 4 * num_override_flags, dropped_collectible_override_flags, 4 * num_drop_override_flags, OS_WRITE); + } } z64_bzero(sramCtx->readBuff, SRAM_SIZE); SsSram_ReadWrite_Safe(SRAM_BASE, sramCtx->readBuff, SRAM_SIZE, OS_READ); z64_file.day_time = dayTime; - z64_memcopy(&fileChooseCtx->deaths[0], sramCtx->readBuff + SRAM_SLOTS[0] + DEATHS_OFFSET, sizeof(fileChooseCtx->deaths[0])); z64_memcopy(&fileChooseCtx->deaths[1], sramCtx->readBuff + SRAM_SLOTS[1] + DEATHS_OFFSET, sizeof(fileChooseCtx->deaths[0])); z64_memcopy(&fileChooseCtx->deaths[2], sramCtx->readBuff + SRAM_SLOTS[0] + DEATHS_OFFSET, sizeof(fileChooseCtx->deaths[0])); @@ -207,17 +204,16 @@ void Sram_VerifyAndLoadAllSaves(z64_FileChooseContext_t* fileChooseCtx, SramCont z64_memcopy(&fileChooseCtx->defense[0], sramCtx->readBuff + SRAM_SLOTS[0] + DEFENSE_OFFSET, sizeof(fileChooseCtx->defense[0])); z64_memcopy(&fileChooseCtx->defense[1], sramCtx->readBuff + SRAM_SLOTS[1] + DEFENSE_OFFSET, sizeof(fileChooseCtx->defense[0])); z64_memcopy(&fileChooseCtx->defense[2], sramCtx->readBuff + SRAM_SLOTS[0] + DEFENSE_OFFSET, sizeof(fileChooseCtx->defense[0])); - } -//Overrides the original Sram_CopySave function. -//SRAM is now split into 4 equal size slots, instead of the original 6 slots of sizeof(SaveContext). -//So instead of just copying the data for the SaveContext, we just copy the whole slot -void Sram_CopySave(z64_FileChooseContext_t* fileChooseCtx, SramContext* sramCtx) { +// Overrides the original Sram_CopySave function. +// SRAM is now split into 4 equal size slots, instead of the original 6 slots of sizeof(SaveContext). +// So instead of just copying the data for the SaveContext, we just copy the whole slot +void Sram_CopySave(z64_FileChooseContext_t *fileChooseCtx, SramContext *sramCtx) { int32_t src_offset = SRAM_SLOTS[fileChooseCtx->selectedFileIndex]; - int32_t dst_offset = SRAM_SLOTS[fileChooseCtx->copyDestFileIndex]; + int32_t dst_offset = SRAM_SLOTS[fileChooseCtx->copyDestFileIndex]; - //Copy the entire slot + // Copy the entire slot z64_memcopy(sramCtx->readBuff + dst_offset, sramCtx->readBuff + src_offset, SLOT_SIZE); dst_offset = SRAM_SLOTS[fileChooseCtx->copyDestFileIndex + 3]; z64_memcopy(sramCtx->readBuff + dst_offset,sramCtx->readBuff + src_offset, SLOT_SIZE); @@ -241,47 +237,36 @@ void Sram_CopySave(z64_FileChooseContext_t* fileChooseCtx, SramContext* sramCtx) } -//Hook the Save Write function to write the flags to SRAM -void Save_Write_Hook(uint32_t addr, void* dramAddr, size_t size, uint32_t direction) -{ +// Hook the Save Write function to write the flags to SRAM +void Save_Write_Hook(uint32_t addr, void *dramAddr, size_t size, uint32_t direction) { //Save the original data to SRAM SsSram_ReadWrite_Safe(addr, dramAddr, size, direction); - + //Save some additional data to the end of the slot SRAM - uint16_t slot_offset = SRAM_SLOTS[z64_file.file_index] + SLOT_SIZE - (4*num_override_flags + 4*num_drop_override_flags); - SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset, collectible_override_flags, 4*num_override_flags, direction); + uint16_t slot_offset = SRAM_SLOTS[z64_file.file_index] + SLOT_SIZE - (4 * num_override_flags + 4 * num_drop_override_flags); + SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset, collectible_override_flags, 4 * num_override_flags, direction); SsSram_ReadWrite_Safe(SRAM_BASE + slot_offset + 4*num_override_flags, dropped_collectible_override_flags, 4*num_drop_override_flags, direction); - //SsSram_ReadWrite(SRAM_BASE + SRAM_NEWDATA_START + ((z64_file.file_index) * sizeof(uint32_t)*808), &collectible_override_flags, sizeof(uint32_t) *808, 1); - //SsSram_ReadWrite(SRAM_BASE + SRAM_NEWDATA_START + (2*sizeof(uint32_t) *808) + ((z64_file.file_index) * sizeof(uint32_t)*808), &dropped_collectible_override_flags, sizeof(uint32_t) *808, 1); } -//Hook the Save open function to load the saved collectible flags -void Save_Open(char* sramBuffer) -{ - uint16_t slot_offset = SRAM_SLOTS[z64_file.file_index] + SLOT_SIZE - (4*num_override_flags + 4*num_drop_override_flags); - z64_memcopy(collectible_override_flags, sramBuffer + slot_offset, 4*num_override_flags); - z64_memcopy(dropped_collectible_override_flags, sramBuffer + slot_offset + 4*num_override_flags, 4*num_drop_override_flags); - //z64_memcopy(&collectible_override_flags, sramBuffer + SRAM_NEWDATA_START + ((z64_file.file_index) * sizeof(uint32_t)*808), sizeof(uint32_t)*808); - //z64_memcopy(&dropped_collectible_override_flags, sramBuffer + SRAM_NEWDATA_START + (2*sizeof(uint32_t) *808) + ((z64_file.file_index) * sizeof(uint32_t)*808), sizeof(uint32_t)*808); +// Hook the Save open function to load the saved collectible flags +void Save_Open(char *sramBuffer) { + uint16_t slot_offset = SRAM_SLOTS[z64_file.file_index] + SLOT_SIZE - (4 * num_override_flags + 4 * num_drop_override_flags); + z64_memcopy(collectible_override_flags, sramBuffer + slot_offset, 4 * num_override_flags); + z64_memcopy(dropped_collectible_override_flags, sramBuffer + slot_offset + 4 * num_override_flags, 4 * num_drop_override_flags); } -//Hook the init save function's call to SsSram_ReadWrite in order to zeroize the the collectible flags. -void Save_Init_Write_Hook(uint32_t addr, void* dramAddr, size_t size, uint32_t direction) -{ - //zeroize the new collectible flags in the sram buffer (dramAddr) - uint16_t slot_offset = SRAM_SLOTS[z64_file.file_index] + SLOT_SIZE - (4*num_override_flags + 4*num_drop_override_flags); - z64_bzero(dramAddr + slot_offset, 4*num_override_flags + 4*num_drop_override_flags); - //z64_bzero(dramAddr + SRAM_NEWDATA_START + ((z64_file.file_index) * sizeof(uint32_t)*808), sizeof(uint32_t) * 808 ); - //z64_bzero(dramAddr + SRAM_NEWDATA_START + (2*sizeof(uint32_t) *808) + ((z64_file.file_index) * sizeof(uint32_t)*808),sizeof(uint32_t) *808); - - //write to sram +// Hook the init save function's call to SsSram_ReadWrite in order to zeroize the the collectible flags. +void Save_Init_Write_Hook(uint32_t addr, void *dramAddr, size_t size, uint32_t direction) { + // zeroize the new collectible flags in the sram buffer (dramAddr) + uint16_t slot_offset = SRAM_SLOTS[z64_file.file_index] + SLOT_SIZE - (4 * num_override_flags + 4 * num_drop_override_flags); + z64_bzero(dramAddr + slot_offset, 4 * num_override_flags + 4 * num_drop_override_flags); + + // write to sram SsSram_ReadWrite_Safe(SRAM_BASE, dramAddr, SRAM_SIZE, direction); } -void SsSram_ReadWrite_Safe(uint32_t addr, void* dramAddr, size_t size, uint32_t direction) -{ - if(size > 0) - { +void SsSram_ReadWrite_Safe(uint32_t addr, void *dramAddr, size_t size, uint32_t direction) { + if (size > 0) { SsSram_ReadWrite(addr, dramAddr, size, direction); } } diff --git a/ASM/c/textures.c b/ASM/c/textures.c index 4f89a1986..029e9aa3c 100644 --- a/ASM/c/textures.c +++ b/ASM/c/textures.c @@ -1,7 +1,6 @@ #include "textures.h" - #define LEN_TEXTURE_TABLE 20 typedef struct { @@ -9,35 +8,29 @@ typedef struct { file_t file; } texture_t; -texture_t texture_table[LEN_TEXTURE_TABLE] = -{ - [TEXTURE_ID_POT_GOLD] = { .textureID = TEXTURE_ID_POT_GOLD}, - [TEXTURE_ID_POT_KEY] = {.textureID = TEXTURE_ID_POT_KEY}, - [TEXTURE_ID_POT_BOSSKEY] = {.textureID = TEXTURE_ID_POT_BOSSKEY}, - [TEXTURE_ID_POT_SKULL] = {.textureID = TEXTURE_ID_POT_SKULL}, - [TEXTURE_ID_CRATE_DEFAULT] = {.textureID = TEXTURE_ID_CRATE_DEFAULT}, - [TEXTURE_ID_CRATE_GOLD] = {.textureID = TEXTURE_ID_CRATE_GOLD}, - [TEXTURE_ID_CRATE_KEY] = {.textureID = TEXTURE_ID_CRATE_KEY}, - [TEXTURE_ID_CRATE_BOSSKEY] = {.textureID = TEXTURE_ID_CRATE_BOSSKEY}, - [TEXTURE_ID_CRATE_SKULL] = {.textureID = TEXTURE_ID_CRATE_SKULL}, - [TEXTURE_ID_SMALLCRATE_GOLD] = {.textureID = TEXTURE_ID_SMALLCRATE_GOLD}, - [TEXTURE_ID_SMALLCRATE_KEY] = {.textureID = TEXTURE_ID_SMALLCRATE_KEY}, - [TEXTURE_ID_SMALLCRATE_SKULL] = {.textureID = TEXTURE_ID_SMALLCRATE_SKULL}, - [TEXTURE_ID_SMALLCRATE_BOSSKEY] = {.textureID = TEXTURE_ID_SMALLCRATE_BOSSKEY}, - +texture_t texture_table[LEN_TEXTURE_TABLE] = { + [TEXTURE_ID_POT_GOLD] = { .textureID = TEXTURE_ID_POT_GOLD }, + [TEXTURE_ID_POT_KEY] = { .textureID = TEXTURE_ID_POT_KEY }, + [TEXTURE_ID_POT_BOSSKEY] = { .textureID = TEXTURE_ID_POT_BOSSKEY }, + [TEXTURE_ID_POT_SKULL] = { .textureID = TEXTURE_ID_POT_SKULL }, + [TEXTURE_ID_CRATE_DEFAULT] = { .textureID = TEXTURE_ID_CRATE_DEFAULT }, + [TEXTURE_ID_CRATE_GOLD] = { .textureID = TEXTURE_ID_CRATE_GOLD }, + [TEXTURE_ID_CRATE_KEY] = { .textureID = TEXTURE_ID_CRATE_KEY }, + [TEXTURE_ID_CRATE_BOSSKEY] = { .textureID = TEXTURE_ID_CRATE_BOSSKEY }, + [TEXTURE_ID_CRATE_SKULL] = { .textureID = TEXTURE_ID_CRATE_SKULL }, + [TEXTURE_ID_SMALLCRATE_GOLD] = { .textureID = TEXTURE_ID_SMALLCRATE_GOLD }, + [TEXTURE_ID_SMALLCRATE_KEY] = { .textureID = TEXTURE_ID_SMALLCRATE_KEY }, + [TEXTURE_ID_SMALLCRATE_SKULL] = { .textureID = TEXTURE_ID_SMALLCRATE_SKULL }, + [TEXTURE_ID_SMALLCRATE_BOSSKEY] = { .textureID = TEXTURE_ID_SMALLCRATE_BOSSKEY }, }; -uint8_t* get_texture(uint16_t textureID) -{ +uint8_t *get_texture(uint16_t textureID) { return texture_table[textureID].file.buf; } -void init_textures() -{ - for(int i = 0; i < LEN_TEXTURE_TABLE; i++) - { - if(texture_table[i].file.vrom_start != 0x00000000) - { +void init_textures() { + for (int i = 0; i < LEN_TEXTURE_TABLE; i++) { + if (texture_table[i].file.vrom_start != 0x00000000) { file_init(&texture_table[i].file); } } diff --git a/ASM/c/textures.h b/ASM/c/textures.h index 70edc0638..36ba5e1f9 100644 --- a/ASM/c/textures.h +++ b/ASM/c/textures.h @@ -4,31 +4,31 @@ #include "z64.h" #include "util.h" -#define TEXTURE_ID_NONE 0 -#define TEXTURE_ID_POT_GOLD 1 -#define TEXTURE_ID_POT_KEY 2 -#define TEXTURE_ID_POT_BOSSKEY 3 -#define TEXTURE_ID_POT_SKULL 4 +#define TEXTURE_ID_NONE 0 +#define TEXTURE_ID_POT_GOLD 1 +#define TEXTURE_ID_POT_KEY 2 +#define TEXTURE_ID_POT_BOSSKEY 3 +#define TEXTURE_ID_POT_SKULL 4 -#define TEXTURE_ID_CRATE_DEFAULT 5 -#define TEXTURE_ID_CRATE_GOLD 6 -#define TEXTURE_ID_CRATE_KEY 7 -#define TEXTURE_ID_CRATE_SKULL 8 -#define TEXTURE_ID_CRATE_BOSSKEY 9 -#define TEXTURE_ID_SMALLCRATE_GOLD 10 -#define TEXTURE_ID_SMALLCRATE_KEY 11 -#define TEXTURE_ID_SMALLCRATE_SKULL 12 -#define TEXTURE_ID_SMALLCRATE_BOSSKEY 13 -#define TEXTURE_ID_BEEHIVE_GOLD 14 -#define TEXTURE_ID_BEEHIVE_KEY 15 -#define TEXTURE_ID_BEEHIVE_SKULL 16 -#define TEXTURE_ID_BEEHIVE_BOSSKEY 17 +#define TEXTURE_ID_CRATE_DEFAULT 5 +#define TEXTURE_ID_CRATE_GOLD 6 +#define TEXTURE_ID_CRATE_KEY 7 +#define TEXTURE_ID_CRATE_SKULL 8 +#define TEXTURE_ID_CRATE_BOSSKEY 9 +#define TEXTURE_ID_SMALLCRATE_GOLD 10 +#define TEXTURE_ID_SMALLCRATE_KEY 11 +#define TEXTURE_ID_SMALLCRATE_SKULL 12 +#define TEXTURE_ID_SMALLCRATE_BOSSKEY 13 +#define TEXTURE_ID_BEEHIVE_GOLD 14 +#define TEXTURE_ID_BEEHIVE_KEY 15 +#define TEXTURE_ID_BEEHIVE_SKULL 16 +#define TEXTURE_ID_BEEHIVE_BOSSKEY 17 -#define PTMC_OFF 0 -#define PTMC_CONTENTS 1 -#define PTMC_UNCHECKED 2 +#define PTMC_OFF 0 +#define PTMC_CONTENTS 1 +#define PTMC_UNCHECKED 2 -uint8_t* get_texture(uint16_t textureID); +uint8_t *get_texture(uint16_t textureID); void init_textures(); #endif diff --git a/ASM/c/z64.h b/ASM/c/z64.h index 90099636f..830e6a300 100644 --- a/ASM/c/z64.h +++ b/ASM/c/z64.h @@ -23,12 +23,11 @@ #define Z64_ETAB_LENGTH 0x0614 - #define NA_BGM_SMALL_ITEM_GET 0x39 -#define NA_SE_SY_GET_RUPY 0x4803 -#define NA_SE_SY_GET_ITEM 0x4824 +#define NA_SE_SY_GET_RUPY 0x4803 +#define NA_SE_SY_GET_ITEM 0x4824 -#define OFFSETOF(structure, member) ((size_t)&(((structure*)0)->member)) +#define OFFSETOF(structure, member) ((size_t)&(((structure *)0)->member)) typedef struct { @@ -37,8 +36,6 @@ typedef struct int16_t z; } z64_xyz_t; - - typedef struct { float x; @@ -386,23 +383,22 @@ typedef struct /* 0x0FBC */ } z64_gameinfo_t; -typedef struct +typedef struct { /* data */ - uint8_t unk_00_[0x1C9EE]; /* 0x0000 */ - uint16_t deaths[3]; /* 0x1C9EE */ - char fileNames[3][8]; /* 0x1C9F4 */ - uint16_t healthCapacities[3]; /* 0x1CA0C */ - uint32_t questItems[3]; /* 0x1CA14 */ - int16_t n64ddFlags[3]; /* 0x1CA20 */ - int8_t defense[3]; /* 0x1CA26 */ - uint8_t unk_01_[0x0F]; /* 0x1CA29 */ - int16_t selectedFileIndex; /* 0x1CA38 */ - uint8_t unk_02_[0x16]; /* 0x1CA3A */ - int16_t copyDestFileIndex; /* 0x1CA50 */ + uint8_t unk_00_[0x1C9EE]; /* 0x0000 */ + uint16_t deaths[3]; /* 0x1C9EE */ + char fileNames[3][8]; /* 0x1C9F4 */ + uint16_t healthCapacities[3]; /* 0x1CA0C */ + uint32_t questItems[3]; /* 0x1CA14 */ + int16_t n64ddFlags[3]; /* 0x1CA20 */ + int8_t defense[3]; /* 0x1CA26 */ + uint8_t unk_01_[0x0F]; /* 0x1CA29 */ + int16_t selectedFileIndex; /* 0x1CA38 */ + uint8_t unk_02_[0x16]; /* 0x1CA3A */ + int16_t copyDestFileIndex; /* 0x1CA50 */ } z64_FileChooseContext_t; - typedef struct { int32_t entrance_index; /* 0x0000 */ @@ -637,10 +633,9 @@ typedef struct } z64_file_t; typedef struct { - /* 0x00 */ uint8_t* readBuff; + uint8_t *readBuff; /* 0x00 */ } SramContext; // size = 0x4 - typedef struct { uint8_t data[0xBA8]; } extended_save_data_t; @@ -650,21 +645,18 @@ typedef struct { extended_save_data_t additional_save_data; } extended_sram_file_t; - typedef struct { - uint8_t sound_options; /* 0x0000 */ - uint8_t z_target_options; /* 0x0001 */ - uint8_t language_options; /* 0x0002 */ - char verification_string[9]; /* 0x0003 */ - char unk_00_[0x0014]; /* 0x000C */ - extended_sram_file_t primary_saves[2]; /* 0x0020 */ - extended_sram_file_t backup_saves[2]; /* 0x3D10 */ - /* 0x7A00 */ + uint8_t sound_options; /* 0x0000 */ + uint8_t z_target_options; /* 0x0001 */ + uint8_t language_options; /* 0x0002 */ + char verification_string[9]; /* 0x0003 */ + char unk_00_[0x0014]; /* 0x000C */ + extended_sram_file_t primary_saves[2]; /* 0x0020 */ + extended_sram_file_t backup_saves[2]; /* 0x3D10 */ + /* 0x7A00 */ } z64_sram_data_t; - - typedef struct { uint32_t seg[16]; @@ -839,7 +831,6 @@ struct z64_actor_s /* 0x013C */ }; - typedef struct { z64_actor_t common; /* 0x0000 */ @@ -867,17 +858,16 @@ typedef struct /* 0x0888 */ } z64_link_t; - typedef struct DynaPolyActor { - /* 0x000 */ z64_actor_t actor; - /* 0x14C */ int32_t bgId; - /* 0x150 */ float unk_150; - /* 0x154 */ float unk_154; - /* 0x158 */ int16_t unk_158; // y rotation? - /* 0x15A */ uint16_t unk_15A; - /* 0x15C */ uint32_t unk_15C; - /* 0x160 */ uint8_t unk_160; - /* 0x162 */ int16_t unk_162; + z64_actor_t actor; /* 0x000 */ + int32_t bgId; /* 0x14C */ + float unk_150; /* 0x150 */ + float unk_154; /* 0x154 */ + int16_t unk_158; /* 0x158 */ // y rotation? + uint16_t unk_15A; /* 0x15A */ + uint32_t unk_15C; /* 0x15C */ + uint8_t unk_160; /* 0x160 */ + int16_t unk_162; /* 0x162 */ } DynaPolyActor; // size = 0x164 typedef struct @@ -1332,18 +1322,18 @@ typedef struct struct EnItem00; -typedef void(*EnItem00ActionFunc)(struct EnItem00*, z64_game_t*); +typedef void(*EnItem00ActionFunc)(struct EnItem00 *, z64_game_t *); typedef struct EnItem00 { - z64_actor_t actor; - EnItem00ActionFunc actionFunc; - uint16_t collectibleFlag; - uint16_t getItemId; - uint16_t unk_154; - uint16_t unk_156; - uint16_t unk_158; - uint16_t timeToLive; //0x15A - float scale; + z64_actor_t actor; + EnItem00ActionFunc actionFunc; + uint16_t collectibleFlag; + uint16_t getItemId; + uint16_t unk_154; + uint16_t unk_156; + uint16_t unk_158; + uint16_t timeToLive; //0x15A + float scale; } EnItem00; typedef enum { @@ -1374,6 +1364,7 @@ typedef enum { /* 0x18 */ ITEM00_TUNIC_GORON, /* 0x19 */ ITEM00_BOMBS_SPECIAL } Item00Type; + typedef enum { /* 0x00 */ SLOT_STICK, /* 0x01 */ SLOT_NUT, @@ -1684,12 +1675,12 @@ typedef struct EnGSwitch #define z64_ctxt_game_size 0x00012518 /* function prototypes */ -typedef void(*z64_EnItem00ActionFunc)(struct EnItem00*, z64_game_t*); -typedef void(*z64_ActorKillFunc)(z64_actor_t*); -typedef uint8_t(*z64_Message_GetStateFunc)(uint8_t*); -typedef void(*z64_Flags_SetCollectibleFunc)(z64_game_t* game, uint32_t flag); -typedef int32_t (*z64_Flags_GetCollectibleFunc)(z64_game_t* game, uint32_t flag); -typedef void(*z64_Audio_PlaySoundGeneralFunc)(uint16_t sfxId, void* pos, uint8_t token, float* freqScale, float* a4, uint8_t* reverbAdd); +typedef void(*z64_EnItem00ActionFunc)(struct EnItem00 *, z64_game_t *); +typedef void(*z64_ActorKillFunc)(z64_actor_t *); +typedef uint8_t(*z64_Message_GetStateFunc)(uint8_t *); +typedef void(*z64_Flags_SetCollectibleFunc)(z64_game_t *game, uint32_t flag); +typedef int32_t (*z64_Flags_GetCollectibleFunc)(z64_game_t *game, uint32_t flag); +typedef void(*z64_Audio_PlaySoundGeneralFunc)(uint16_t sfxId, void *pos, uint8_t token, float *freqScale, float *a4, uint8_t *reverbAdd); typedef void(*z64_Audio_PlayFanFareFunc)(uint16_t); typedef void (*z64_DrawActors_proc) (z64_game_t *game, void *actor_ctxt); typedef void (*z64_DeleteActor_proc) (z64_game_t *game, void *actor_ctxt, @@ -1713,16 +1704,15 @@ typedef void (*z64_DisplayTextbox_proc) (z64_game_t *game, uint16_t text_id, int unknown_); typedef void (*z64_GiveItem_proc) (z64_game_t *game, uint8_t item); - typedef void(*z64_LinkDamage_proc) (z64_game_t *ctxt, z64_link_t *link, uint8_t damage_type, float unk_00, uint32_t unk_01, uint16_t unk_02); typedef void(*z64_LinkInvincibility_proc) (z64_link_t *link, uint8_t frames); typedef float *(*z64_GetMatrixStackTop_proc)(); -typedef void (*SsSram_ReadWrite_proc)(uint32_t addr, void* dramAddr, size_t size, uint32_t direction); -typedef void* (*z64_memcopy_proc)(void* dest, void* src, uint32_t size); -typedef void (*z64_bzero_proc)(void* __s, uint32_t __n); -typedef EnItem00* (*z64_Item_DropCollectible_proc)(z64_game_t* globalCtx, z64_xyzf_t* spawnPos, int16_t params); +typedef void (*SsSram_ReadWrite_proc)(uint32_t addr, void *dramAddr, size_t size, uint32_t direction); +typedef void *(*z64_memcopy_proc)(void *dest, void *src, uint32_t size); +typedef void (*z64_bzero_proc)(void *__s, uint32_t __n); +typedef EnItem00 *(*z64_Item_DropCollectible_proc)(z64_game_t *globalCtx, z64_xyzf_t *spawnPos, int16_t params); typedef void (*z64_Gfx_DrawDListOpa_proc)(z64_game_t *game, z64_gfx_t *dlist); typedef float (*z64_Math_SinS_proc)(int16_t angle); @@ -1733,7 +1723,6 @@ typedef int32_t(*z64_ActorSetLinkIncomingItemId_proc) (z64_actor_t *actor, z64_g int32_t get_item_id, float xz_range, float y_range); typedef float (*z64_Rand_ZeroOne_proc)(); - /* data */ #define z64_file_mq (*(OSMesgQueue*) z64_file_mq_addr) #define z64_vi_counter (*(uint32_t*) z64_vi_counter_addr) @@ -1768,7 +1757,6 @@ typedef float (*z64_Rand_ZeroOne_proc)(); #define z64_Audio_PlaySoundGeneral ((z64_Audio_PlaySoundGeneralFunc)z64_Audio_PlaySoundGeneral_addr) #define z64_Audio_PlayFanFare ((z64_Audio_PlayFanFareFunc)z64_Audio_PlayFanFare_addr) - #define z64_osSendMesg ((osSendMesg_t) z64_osSendMesg_addr) #define z64_osRecvMesg ((osRecvMesg_t) z64_osRecvMesg_addr) #define z64_osCreateMesgQueue ((osCreateMesgQueue_t) \ @@ -1790,6 +1778,7 @@ typedef float (*z64_Rand_ZeroOne_proc)(); #define z64_DisplayTextbox ((z64_DisplayTextbox_proc) \ z64_DisplayTextbox_addr) #define z64_GiveItem ((z64_GiveItem_proc) z64_GiveItem_addr) + #define z64_LinkDamage ((z64_LinkDamage_proc)z64_LinkDamage_addr) #define z64_LinkInvincibility ((z64_LinkInvincibility_proc) \ z64_LinkInvincibility_addr) diff --git a/ASM/src/drop_overrides/actor.asm b/ASM/src/drop_overrides/actor.asm index e9c549ec0..35c526752 100644 --- a/ASM/src/drop_overrides/actor.asm +++ b/ASM/src/drop_overrides/actor.asm @@ -4,5 +4,5 @@ Actor_SetWorldToHome_Hook: jal Actor_SetWorldToHome_End nop lw ra, 0x1C (sp) - jr ra + jr ra addiu sp, sp, 0x20 diff --git a/ASM/src/drop_overrides/bg_haka_tubo.asm b/ASM/src/drop_overrides/bg_haka_tubo.asm index c3a6ef716..9a45bec4e 100644 --- a/ASM/src/drop_overrides/bg_haka_tubo.asm +++ b/ASM/src/drop_overrides/bg_haka_tubo.asm @@ -1,19 +1,19 @@ -;Hack for shadow temple spinning pot to drop a flagged collectible -;Flag is in a2 -;Actor is in s4 -;Loop index is in s0 +; Hack for shadow temple spinning pot to drop a flagged collectible +; Flag is in a2 +; Actor is in s4 +; Loop index is in s0 bg_haka_tubo_hack: -lh a3, 0x18(s4) ;get our new flag out of the z rotation -beqz a3, bh_haka_tubo_hack_end -nop -add a3, s0 ; add our loop index -;get the lower 0x3F bits and put them in the regular spot in params -andi a1, a3, 0x3F -sll a1, a1, 0x08 -or a2, r0, a1 ;put the lower part of the flag in a2 -;get the upper 0xC0 bits and put them in the extra space in params -andi a1, a3, 0xC0 -or a2, a2, a1 + lh a3, 0x18(s4) ; get our new flag out of the z rotation + beqz a3, bh_haka_tubo_hack_end + nop + add a3, s0 ; add our loop index + ; get the lower 0x3F bits and put them in the regular spot in params + andi a1, a3, 0x3F + sll a1, a1, 0x08 + or a2, r0, a1 ; put the lower part of the flag in a2 + ; get the upper 0xC0 bits and put them in the extra space in params + andi a1, a3, 0xC0 + or a2, a2, a1 bh_haka_tubo_hack_end: -jr ra -addiu a1, sp, 0x005c + jr ra + addiu a1, sp, 0x005c diff --git a/ASM/src/drop_overrides/bg_spot18_basket.asm b/ASM/src/drop_overrides/bg_spot18_basket.asm index 57550fcab..6a3c7bfc6 100644 --- a/ASM/src/drop_overrides/bg_spot18_basket.asm +++ b/ASM/src/drop_overrides/bg_spot18_basket.asm @@ -1,95 +1,95 @@ -;goron spinning pot hacks to drop override collectibles +; goron spinning pot hacks to drop override collectibles -;hack for when it drops bombs -;Loop variable stored in s7 -;flag needs to be stored in a2 -;Actor pointer is stored in s0 hopefully +; hack for when it drops bombs +; Loop variable stored in s7 +; flag needs to be stored in a2 +; Actor pointer is stored in s0 hopefully bg_spot18_basket_bombs_hack: -lh a3, 0x18(s0) ;get our new flag out of the z rotation -ori a2, r0, 0x0000 ; clear a2 -beqz a3, bg_spot18_basket_bombs_end -nop -add a3, s7 ; add our loop index -;get the lower 0x3F bits and put them in the regular spot in params -andi a1, a3, 0x3F -sll a1, a1, 0x08 -or a2, r0, a1 ;put the lower part of the flag in a2 -;get the upper 0xC0 bits and put them in the extra space in params -andi a1, a3, 0xC0 -or a2, a2, a1 + lh a3, 0x18(s0) ; get our new flag out of the z rotation + ori a2, r0, 0x0000 ; clear a2 + beqz a3, bg_spot18_basket_bombs_end + nop + add a3, s7 ; add our loop index + ; get the lower 0x3F bits and put them in the regular spot in params + andi a1, a3, 0x3F + sll a1, a1, 0x08 + or a2, r0, a1 ; put the lower part of the flag in a2 + ; get the upper 0xC0 bits and put them in the extra space in params + andi a1, a3, 0xC0 + or a2, a2, a1 bg_spot18_basket_bombs_end: -jr ra -or a1, s3, r0 + jr ra + or a1, s3, r0 -;hack for when it drops 3 rupees -;Loop variable stored in s7 -;flag needs to be stored in a2 -;Actor pointer is stored in s0 hopefully +; hack for when it drops 3 rupees +; Loop variable stored in s7 +; flag needs to be stored in a2 +; Actor pointer is stored in s0 hopefully bg_spot18_basket_rupees_hack: -lh a3, 0x18(s0) ;get our new flag out of the z rotation -ori a2, r0, 0x0000 ; clear a2. this is also exactly what it needs to be if we dont hack. -beqz a3, bg_spot18_basket_rupees_end -nop -add a3, s7 ; add our loop index -addiu a3, a3, 3 ;add 3 flag because we used 3 for the bomb hack. -;get the lower 0x3F bits and put them in the regular spot in params -andi a1, a3, 0x3F -sll a1, a1, 0x08 -or a2, r0, a1 ;put the lower part of the flag in a2 -;get the upper 0xC0 bits and put them in the extra space in params -andi a1, a3, 0xC0 -or a2, a2, a1 + lh a3, 0x18(s0) ; get our new flag out of the z rotation + ori a2, r0, 0x0000 ; clear a2. this is also exactly what it needs to be if we dont hack. + beqz a3, bg_spot18_basket_rupees_end + nop + add a3, s7 ; add our loop index + addiu a3, a3, 3 ; add 3 flag because we used 3 for the bomb hack. + ; get the lower 0x3F bits and put them in the regular spot in params + andi a1, a3, 0x3F + sll a1, a1, 0x08 + or a2, r0, a1 ; put the lower part of the flag in a2 + ; get the upper 0xC0 bits and put them in the extra space in params + andi a1, a3, 0xC0 + or a2, a2, a1 bg_spot18_basket_rupees_end: -addiu s3, sp, 0x0044 -jr ra -addiu s1, r0, 0x0003 + addiu s3, sp, 0x0044 + jr ra + addiu s1, r0, 0x0003 -;hack for the rupees that drop w/ the heart piece +; hack for the rupees that drop w/ the heart piece bg_spot18_basket_drop_heartpiece_rupees: -addiu sp, sp, -0x0020 -sw ra, 0x0010(sp) -or a0, s4, r0 -addiu a2, r0, 0x0002 -lh a3, 0x18(s0) ;get our new flag out of the z rotation -beqz a3, bg_spot18_basket_drop_heartpiece_redrupee_end -nop -addiu a3, a3, 6 ; add 6 because we used 3 for the bomb hack and 3 for the rupees -;get the lower 0x3F bits and put them in the regular spot in params -andi a1, a3, 0x3F -sll a1, a1, 0x08 -or a2, r0, a1 ;put the lower part of the flag in a2 -;get the upper 0xC0 bits and put them in the extra space in params -andi a1, a3, 0xC0 -or a2, a2, a1 + addiu sp, sp, -0x0020 + sw ra, 0x0010(sp) + or a0, s4, r0 + addiu a2, r0, 0x0002 + lh a3, 0x18(s0) ; get our new flag out of the z rotation + beqz a3, bg_spot18_basket_drop_heartpiece_redrupee_end + nop + addiu a3, a3, 6 ; add 6 because we used 3 for the bomb hack and 3 for the rupees + ; get the lower 0x3F bits and put them in the regular spot in params + andi a1, a3, 0x3F + sll a1, a1, 0x08 + or a2, r0, a1 ; put the lower part of the flag in a2 + ; get the upper 0xC0 bits and put them in the extra space in params + andi a1, a3, 0xC0 + or a2, a2, a1 bg_spot18_basket_drop_heartpiece_redrupee_end: -jal 0x80013678 ;call dropcollectible -or a1, s3, r0 -beqz v0, bg_spot18_basket_drop_heartpiece_bluerupee -or a0, s4, r0 -swc1 f20, 0x0060(v0) -lh t6, 0x0000(s2) -sh t6, 0x0032(v0) + jal 0x80013678 ; call dropcollectible + or a1, s3, r0 + beqz v0, bg_spot18_basket_drop_heartpiece_bluerupee + or a0, s4, r0 + swc1 f20, 0x0060(v0) + lh t6, 0x0000(s2) + sh t6, 0x0032(v0) bg_spot18_basket_drop_heartpiece_bluerupee: -addiu a2, r0, 0x0001 -lh a3, 0x18(s0) ;get our new flag out of the z rotation -beqz a3, bg_spot18_basket_drop_heartpiece_bluerupee_end -addiu a3, a3, 7; add one more to a3 for the other rupee -;get the lower 0x3F bits and put them in the regular spot in params -andi a1, a3, 0x3F -sll a1, a1, 0x08 -or a2, r0, a1 ;put the lower part of the flag in a2 -;get the upper 0xC0 bits and put them in the extra space in params -andi a1, a3, 0xC0 -or a2, a2, a1 + addiu a2, r0, 0x0001 + lh a3, 0x18(s0) ; get our new flag out of the z rotation + beqz a3, bg_spot18_basket_drop_heartpiece_bluerupee_end + addiu a3, a3, 7 ; add one more to a3 for the other rupee + ; get the lower 0x3F bits and put them in the regular spot in params + andi a1, a3, 0x3F + sll a1, a1, 0x08 + or a2, r0, a1 ; put the lower part of the flag in a2 + ; get the upper 0xC0 bits and put them in the extra space in params + andi a1, a3, 0xC0 + or a2, a2, a1 bg_spot18_basket_drop_heartpiece_bluerupee_end: -jal 0x80013678 ;call dropcollectible -or a1, s3, r0 -beqz v0, bg_spot18_basket_drop_heartpiece_rupees_end -or a0, s4, r0 -swc1 f20, 0x0060(v0) -lh t6, 0x0004(s2) -sh t6, 0x0032(v0) + jal 0x80013678 ; call dropcollectible + or a1, s3, r0 + beqz v0, bg_spot18_basket_drop_heartpiece_rupees_end + or a0, s4, r0 + swc1 f20, 0x0060(v0) + lh t6, 0x0004(s2) + sh t6, 0x0032(v0) bg_spot18_basket_drop_heartpiece_rupees_end: -lw ra, 0x0010(sp) -jr ra -addiu sp, sp, 0x0020 + lw ra, 0x0010(sp) + jr ra + addiu sp, sp, 0x0020 diff --git a/ASM/src/drop_overrides/obj_comb.asm b/ASM/src/drop_overrides/obj_comb.asm index d6b68d7cd..100495d29 100644 --- a/ASM/src/drop_overrides/obj_comb.asm +++ b/ASM/src/drop_overrides/obj_comb.asm @@ -1,35 +1,35 @@ -;Hook to c function to drop our collectible for beehives -;put actor in a0 -;put current params into a1. +; Hook to c function to drop our collectible for beehives +; put actor in a0 +; put current params into a1. obj_comb_hook: -or a1, a2, r0 -jal obj_comb_drop_collectible -or a0, r0, a3 ; copy actor point from a3 to a0. -lw ra, 0x0014(sp) -jr ra -addiu sp, sp, 0x20 + or a1, a2, r0 + jal obj_comb_drop_collectible + or a0, r0, a3 ; copy actor point from a3 to a0. + lw ra, 0x0014(sp) + jr ra + addiu sp, sp, 0x20 -;Hook to c function to draw beehive textures +; Hook to c function to draw beehive textures ObjComb_Draw_Hook: -addiu sp, sp, -0x30 -sw ra, 0x001C(sp) -sw s0, 0x0014(sp) -sw s1, 0x0018(sp) -sw a0, 0x0020(sp) -sw a1, 0x0024(sp) + addiu sp, sp, -0x30 + sw ra, 0x001C(sp) + sw s0, 0x0014(sp) + sw s1, 0x0018(sp) + sw a0, 0x0020(sp) + sw a1, 0x0024(sp) -jal ObjComb_Draw_Hack -nop + jal ObjComb_Draw_Hack + nop -lw s1, 0x0018(sp) -lw s0, 0x0014(sp) -lw a0, 0x0020(sp) -lw a1, 0x0024(sp) -lw ra, 0x1C(sp) -addiu sp, sp, 0x30 + lw s1, 0x0018(sp) + lw s0, 0x0014(sp) + lw a0, 0x0020(sp) + lw a1, 0x0024(sp) + lw ra, 0x1C(sp) + addiu sp, sp, 0x30 -;Replaced code -sw s1, 0x0018(sp) -jr ra -sw s0, 0x0014(sp) +; Replaced code + sw s1, 0x0018(sp) + jr ra + sw s0, 0x0014(sp) diff --git a/ASM/src/drop_overrides/obj_mure3.asm b/ASM/src/drop_overrides/obj_mure3.asm index 9a83582af..5a5f78edf 100644 --- a/ASM/src/drop_overrides/obj_mure3.asm +++ b/ASM/src/drop_overrides/obj_mure3.asm @@ -1,39 +1,39 @@ -;Hacks for rupee towers to drop flagged collectibles +; Hacks for rupee towers to drop flagged collectibles -;Add additional params to Item_DropCollectible2 params argument in a2 -;obj_mure3 pointer should be in s2 -;index of the for loop is in s0 -obj_mure3_hack: -lh a3, 0x18(s2) ;get our new flag out of the z rotation -beqz a3, obj_mure3_hack_end -or a2, r0, r0 -add a3, s0 ; add our loop index -;get the lower 0x3F bits and put them in the regular spot in params -andi a1, a3, 0x3F -sll a1, a1, 0x08 -or a2, r0, a1 ;put the lower part of the flag in a2 -;get the upper 0xC0 bits and put them in the extra space in params -andi a1, a3, 0xC0 -or a2, a2, a1 +; Add additional params to Item_DropCollectible2 params argument in a2 +; obj_mure3 pointer should be in s2 +; index of the for loop is in s0 +obj_mure3_hack: + lh a3, 0x18(s2) ; get our new flag out of the z rotation + beqz a3, obj_mure3_hack_end + or a2, r0, r0 + add a3, s0 ; add our loop index + ; get the lower 0x3F bits and put them in the regular spot in params + andi a1, a3, 0x3F + sll a1, a1, 0x08 + or a2, r0, a1 ; put the lower part of the flag in a2 + ; get the upper 0xC0 bits and put them in the extra space in params + andi a1, a3, 0xC0 + or a2, a2, a1 obj_mure3_hack_end: -ori a2, a2, 0x4000 -jr ra -or a1, s6, r0 ;first line of replaced code + ori a2, a2, 0x4000 + jr ra + or a1, s6, r0 ; first line of replaced code -;S0 should still have our loop index and it should be 6 when we call here +; S0 should still have our loop index and it should be 6 when we call here obj_mure3_redrupee_hack: -lh a3, 0x18(s2) ; get our new flag out of the z rotation -beqz a3, obj_mure3_redrupee_hack_end -or a2, r0, r0 -add a3, s0; add the loop index -;get the lower 0x3F bits and put them in the regular spot in params -andi a1, a3, 0x3F -sll a1, a1, 0x08 -or a2, r0, a1 ;put the lower part of the flag in a2 -;get the upper 0xC0 bits and put them in the extra space in params -andi a1, a3, 0xC0 -or a2, a2, a1 + lh a3, 0x18(s2) ; get our new flag out of the z rotation + beqz a3, obj_mure3_redrupee_hack_end + or a2, r0, r0 + add a3, s0 ; add the loop index + ; get the lower 0x3F bits and put them in the regular spot in params + andi a1, a3, 0x3F + sll a1, a1, 0x08 + or a2, r0, a1 ; put the lower part of the flag in a2 + ; get the upper 0xC0 bits and put them in the extra space in params + andi a1, a3, 0xC0 + or a2, a2, a1 obj_mure3_redrupee_hack_end: -or a1, r0, s6 ;we used a1 so put the contents back into it. -jr ra -ori a2, a2, 0x4002 + or a1, r0, s6 ; we used a1 so put the contents back into it. + jr ra + ori a2, a2, 0x4002 diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 8fc5994d4..1a3dfdb17 100644 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -221,114 +221,107 @@ Gameplay_InitSkybox: ; en_item00_update() hacks - 0x80012938 ; Hack to keep collectibles alive if we are overriding them ;.orga 0xA888BC; in Memory 0x8001295C -; jal Item00_KeepAlive +; jal Item00_KeepAlive ; nop ; nop -; LH V0, 0x014A (S0) +; LH V0, 0x014A (S0) ; Runs when player collides w/ Collectible (inside en_item00_update()) start of switch case at 0x80012CA4 ; Override Item_Give(RUPEE_GREEN) ; Replaces: -;OR A0, S1, R0 -;JAL 0x8006FDCC -;addiu a1, r0, 0x0084 +; OR A0, S1, R0 +; JAL 0x8006FDCC +; addiu a1, r0, 0x0084 .orga 0xA88C0C ; In memory: 80012CAC - j item_give_hook - or A2, S0, R0 + j item_give_hook + or A2, S0, R0 ; Override Item_Give(RUPEE_BLUE) ; Replaces: -;OR A0, S1, R0 -;JAL 0x8006FDCC -;addiu a1, r0, 0x0084 +; OR A0, S1, R0 +; JAL 0x8006FDCC +; addiu a1, r0, 0x0084 .orga 0xA88C20 ; In memory: 80012CC0) - j item_give_hook - or A2, S0, R0 + j item_give_hook + or A2, S0, R0 ; Override Item_Give(RUPEE_RED) ; Replaces: -;OR A0, S1, R0 -;JAL 0x8006FDCC -;addiu a1, r0, 0x0084 +; OR A0, S1, R0 +; JAL 0x8006FDCC +; addiu a1, r0, 0x0084 .orga 0xA88C34 ; In memory: 80012CD4) - j item_give_hook - or A2, S0, R0 + j item_give_hook + or A2, S0, R0 ; Override Item_Give(RUPEE_PURPLE) ; Replaces: -;OR A0, S1, R0 -;JAL 0x8006FDCC -;addiu a1, r0, 0x0084 +; OR A0, S1, R0 +; JAL 0x8006FDCC +; addiu a1, r0, 0x0084 .orga 0xA88C48 ; In memory: 80012CE8) - j item_give_hook - or A2, S0, R0 + j item_give_hook + or A2, S0, R0 ; Override Stick Collectible .orga 0xA88C70 ; In memory: 0x80012D10 - j item_give_hook - or A2, S0, R0 - + j item_give_hook + or A2, S0, R0 ; Override Nut Collectible .orga 0xA88C7C ; In memory: 0x80012D1C - j item_give_hook - or A2, S0, R0 - + j item_give_hook + or A2, S0, R0 ; Override Item_Give(ITEM_HEART) ; Replaces: -;or A0, S1, R0 -;JAL 0x8006FDCC -;ADDIU A1, R0, 0x0083 +; or A0, S1, R0 +; JAL 0x8006FDCC +; ADDIU A1, R0, 0x0083 .orga 0xA88C88 ; In memory: 0x80012D28 - j item_give_hook - or A2, S0, R0 ;pass actor pointer to function + j item_give_hook + or A2, S0, R0 ;pass actor pointer to function ; Override Bombs Collectible .orga 0xA88CB0 ; In memory 0x80012D50 - j item_give_hook + j item_give_hook or A2, S0, R0 ; Override Arrows Single Collectible .orga 0xA88CC4 ; In memory 0x80012D64 - j item_give_hook + j item_give_hook or A2, S0, R0 - - ; Override Arrows Small Collectible .orga 0xA88CD8 ; In memory 0x80012D78 - j item_give_hook + j item_give_hook or A2, S0, R0 ; Override Arrows Medium Collectible .orga 0xA88CEC ; In memory 0x80012D8C - j item_give_hook + j item_give_hook or A2, S0, R0 - - ; Override Arrows Large Collectible .orga 0xA88D00 ; In memory 0x80012DA0 - j item_give_hook + j item_give_hook or A2, S0, R0 - ; Override Seeds Collectible (as adult: 0x80012D78 and calls item_give, as child: 0x80012DB4 and uses getitemid) .orga 0xA88D14 ; In memory: 0x80012DB4 - j item_give_hook + j item_give_hook or A2, S0, R0 ; Override Magic Large Collectible .orga 0xA88D44 ; In memory: 0x80012DE4 - j item_give_hook + j item_give_hook or A2, S0, R0 ; Override Magic Small Collectible .orga 0xA88D50 ; In memory: 0x80012DF0 - j item_give_hook + j item_give_hook or A2, S0, R0 ; Hack save slot table offsets to only use 2 saves @@ -346,218 +339,219 @@ SRAM_SLOTS: ; Hack Write_Save function to store additional collectible flags ;.org 0x800905D4 ;.orga 0xB065F4 ; In memory: 0x80090694 -; jal Save_Write_Hook +; jal Save_Write_Hook ;.orga 0xB06668 ; In memory: 0x80090708 -; jal Save_Write_Hook +; jal Save_Write_Hook .org 0x800905D4 - j Sram_WriteSave + j Sram_WriteSave ; Hack Open_Save function to retrieve additional collectible flags ; At the start of the Sram_OpenSave function, SramContext address is stored in A0 and also on the stack at 0x20(SP) ; Overwrite the memcpy function at 0x800902E8 -; jal 0x80057030 -; addu A1, T9, A3 -.orga 0xB06248 ;In memory: 0x800902E8 -jal open_save_hook -nop +; jal 0x80057030 +; addu A1, T9, A3 +.orga 0xB06248 ; In memory: 0x800902E8 + jal open_save_hook + nop ; Hack Init_Save function to zero the additional collectible flags ; Overwrite the SsSram_Read_Write call at 0x80090D84 .orga 0xB06CE4 ; In Memory: 0x80090D84 -jal Save_Init_Write_Hook + jal Save_Init_Write_Hook ; Verify And Load all saves function to only check slots 1 and 2. ; Overwrite the loop calculation at 0x80090974 -; slti at, s4, 0x0003 -;.orga 0xB068D4 ; In memory: 0x80090974 -;slti at, s4, 0x0002 +; slti at, s4, 0x0003 +;.orga 0xB068D4 ; In memory: 0x80090974 +; slti at, s4, 0x0002 .org 0x80090720 -j Sram_VerifyAndLoadAllSaves -nop + j Sram_VerifyAndLoadAllSaves + nop ; Hack Sram_CopySave to use our new version of the function .org 0x80090FD0 -j Sram_CopySave -nop + j Sram_CopySave + nop -;Hack to EnItem00_Init to store if it was dropped by a pot -;replaces -;ANDI t9, v0, 0x00FF -;SH T9, 0x001c(S0) -.orga 0xA87AF0; In memory 0x80011B90 -jal item00_init_hook -nop +; Hack to EnItem00_Init to store if it was dropped by a pot +; replaces +; ANDI t9, v0, 0x00FF +; SH T9, 0x001c(S0) +.orga 0xA87AF0 ; In memory 0x80011B90 + jal item00_init_hook + nop -;Hack EnItem00_Init when it checks the scene flags to prevent killing the actor if its being overridden. -;replaces -;jal 0x80020EB4 +; Hack EnItem00_Init when it checks the scene flags to prevent killing the actor if its being overridden. +; replaces +; jal 0x80020EB4 ;.orga 0x0A87B10; In Memory 0x80011BB0 -;jal Item00_KillActorIfFlagIsSet +; jal Item00_KillActorIfFlagIsSet .headersize(0x80011B98 - 0xA87AF8) -.orga 0xA87AF8; In Memory 0x80011B98 -jal Item00_KillActorIfFlagIsSet -or a0, s0, r0 -bnez v0, 0x800121A4 -lw RA, 0x001c(sp) -b 0x80011Bc0 -nop -nop -nop -nop +.orga 0xA87AF8 ; In Memory 0x80011B98 + jal Item00_KillActorIfFlagIsSet + or a0, s0, r0 + bnez v0, 0x800121A4 + lw RA, 0x001c(sp) + b 0x80011Bc0 + nop + nop + nop + nop .headersize(0) ;Hack Item_DropCollectible to call custom function to determine what item should be dropped based on our override. ;overriding call at 0x8001376C to function 0x80013530 ;replaces -;jal 0x80013530 -;sh T1, 0x0046(sp) -.orga 0xA896CC; in memory 0x8001376C -jal get_override_drop_id_hook -sh T1, 0x0046(sp) +; jal 0x80013530 +; sh T1, 0x0046(sp) +.orga 0xA896CC ; in memory 0x8001376C + jal get_override_drop_id_hook + sh T1, 0x0046(sp) -;Hack Item_DropCollectible2 to call custom function to determine what item should be dropped based on our override. -;replaces -;jal 0x80013530 -;sh T1, 0x0042(sp) -.orga 0xA898F8; in memory 0x80013998 -jal get_override_drop_id_hook -sh T1, 0x0042(sp) - -;Hack Item_DropCollectible to add a flag that this was a dropped collectible (vs spawned) and extended flag -;replaces or t4, t3, t1 -;sw t4, 0x0024(sp) +; Hack Item_DropCollectible2 to call custom function to determine what item should be dropped based on our override. +; replaces +; jal 0x80013530 +; sh T1, 0x0042(sp) +.orga 0xA898F8 ; in memory 0x80013998 + jal get_override_drop_id_hook + sh T1, 0x0042(sp) + +; Hack Item_DropCollectible to add a flag that this was a dropped collectible (vs spawned) and extended flag +; replaces +; or t4, t3, t1 +; sw t4, 0x0024(sp) .orga 0xA89708; in memory 0x800137A8 -jal drop_collectible_hook -or t4, t3, t1 + jal drop_collectible_hook + or t4, t3, t1 -;Hack Item_DropCollectible2 to add dropped collectible flag and extended flag -;replaces or t4, t3, t1 -;sw t4, 0x0024(sp) +; Hack Item_DropCollectible2 to add dropped collectible flag and extended flag +; replaces +; or t4, t3, t1 +; sw t4, 0x0024(sp) .orga 0xA89934; in memory 0x800139D4 -jal drop_collectible2_hook -or t4, t3, t1 + jal drop_collectible2_hook + or t4, t3, t1 -;Hack ObjKibako2_SpawnCollectible (Large crates) to call our overridden spawn function +; Hack ObjKibako2_SpawnCollectible (Large crates) to call our overridden spawn function ; .orga 0xEC8264 -j ObjKibako2_SpawnCollectible_Hack -nop + j ObjKibako2_SpawnCollectible_Hack + nop -;Hack ObjKibako2_Init (Large Crates) to not delete our extended flag +; Hack ObjKibako2_Init (Large Crates) to not delete our extended flag .orga 0xEC832C -or T8, T7, R0 + or T8, T7, R0 -;Hack ObjMure3 Function that spawns the rupee circle (6 green + 1 red in the center) -;replaces -;or a1, s6, r0 -;addiu a2, r0, 0x4000 +; Hack ObjMure3 Function that spawns the rupee circle (6 green + 1 red in the center) +; replaces +; or a1, s6, r0 +; addiu a2, r0, 0x4000 .orga 0xED0AEC -jal obj_mure3_hack -nop -;Hack the red rupee part -;replaces -;lwc1 f8, 0x002c(s2) -;addiu a2, r0, 0x4002 + jal obj_mure3_hack + nop +; Hack the red rupee part +; replaces +; lwc1 f8, 0x002c(s2) +; addiu a2, r0, 0x4002 .orga 0xED0B48 -jal obj_mure3_redrupee_hack -lwc1 f8, 0x002c(s2) + jal obj_mure3_redrupee_hack + lwc1 f8, 0x002c(s2) -;Hack bg_haka_tubo (shadow spinning pots) to drop flagged collectibles -;replaces -;or a0, s6, r0 -;addiu a1, sp, 0x005c +; Hack bg_haka_tubo (shadow spinning pots) to drop flagged collectibles +; replaces +; or a0, s6, r0 +; addiu a1, sp, 0x005c .orga 0xD30FDC -jal bg_haka_tubo_hack -or a0, s6, r0 + jal bg_haka_tubo_hack + or a0, s6, r0 -;Hack bg_spot18_basket (goron city spinning pot), bomb drops -;the actor pointer starts in s0, gets deleted so s0 can be used for the loop variable. -;Need to use a different loop variable and need to move the branch point up to make a little room for the hack -;replaces -;or s0, r0, r0 ;outside the loop -;or a0, s4, r0 ;outside the loop -;or a1, s3, r0 ;inside the loop +; Hack bg_spot18_basket (goron city spinning pot), bomb drops +; the actor pointer starts in s0, gets deleted so s0 can be used for the loop variable. +; Need to use a different loop variable and need to move the branch point up to make a little room for the hack +; replaces +; or s0, r0, r0 ;outside the loop +; or a0, s4, r0 ;outside the loop +; or a1, s3, r0 ;inside the loop .orga 0xE47C08 -or s7, r0, r0 ;use s7 as our loop variable + or s7, r0, r0 ;use s7 as our loop variable bg_spot18_basket_bombs_loopstart: -jal bg_spot18_basket_bombs_hack -or a0, s4, r0 + jal bg_spot18_basket_bombs_hack + or a0, s4, r0 .skip 4 -ori a2, a2, 0x0004 + ori a2, a2, 0x0004 .skip 4 -sll t6, s7, 1 + sll t6, s7, 1 .skip 16 -addiu s7, s7, 0x0001 -bnel s7, s1, bg_spot18_basket_bombs_loopstart ;move the branch point up a little bit + addiu s7, s7, 0x0001 + bnel s7, s1, bg_spot18_basket_bombs_loopstart ; move the branch point up a little bit -;Hack bg_spot18_basket (Goron city spinning pot), 3 green rupee drops -;the actor pointer starts in s0, gets deleted so s0 can be used for the loop variable. -;Need to use a different loop variable and need to move the branch point up to make a little room for the hack -;replaces -;or so, r0, r0 -;addiu s3, sp, 0x0044 -;addiu s1, r0, 0x0003 +; Hack bg_spot18_basket (Goron city spinning pot), 3 green rupee drops +; the actor pointer starts in s0, gets deleted so s0 can be used for the loop variable. +; Need to use a different loop variable and need to move the branch point up to make a little room for the hack +; replaces +; or so, r0, r0 +; addiu s3, sp, 0x0044 +; addiu s1, r0, 0x0003 .orga 0xE47C5C -or s7, r0, r0 ;use s7 as our loop variable -bg_spot18_basket_rupees_loopstart: ;our new loop branch target -jal bg_spot18_basket_rupees_hack + or s7, r0, r0 ; use s7 as our loop variable +bg_spot18_basket_rupees_loopstart: ; our new loop branch target + jal bg_spot18_basket_rupees_hack .skip 16 -nop ;replaces or a2, r0, r0 because our hack will set a2 correctly. + nop ; replaces or a2, r0, r0 because our hack will set a2 correctly. .skip 4 -sll t9, s7, 1 + sll t9, s7, 1 .skip 16 -addiu s7, s7, 0x0001 -bnel s7, s1, bg_spot18_basket_rupees_loopstart + addiu s7, s7, 0x0001 + bnel s7, s1, bg_spot18_basket_rupees_loopstart -;Hack bg_spot18_basket (Goron city spinning pot), rupee drops with heart piece -;Replaces -;or a0, s4, r0 -;or a1, s3, r0 +; Hack bg_spot18_basket (Goron city spinning pot), rupee drops with heart piece +; Replaces +; or a0, s4, r0 +; or a1, s3, r0 .orga 0xE47D6C -jal bg_spot18_basket_drop_heartpiece_rupees -nop -nop -nop -nop -nop -nop -nop -nop -nop -nop -nop -nop -nop -nop -lw ra, 0x0034(sp) + jal bg_spot18_basket_drop_heartpiece_rupees + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + lw ra, 0x0034(sp) .skip 4 -nop - + nop -;Hack obj_comb (beehives) to drop flagged collectibles. Get rid of the random 50% drop -;replaces -;sh a2, 0x001e(sp) <- keep -;jal 0xb00cdccc <- keep -;sw a3, 0x0020(sp) <- keep -;lui at, 0x3F00 -;mtc at, f4 -;lh a2, 0x001e(sp) -;lw a3, 0x0020(sp) -;c.lt.s f0, f4 -;nop -;bc1f 0xb0ec7490 -;nop -;addiu a2, r0, 0xffff +; Hack obj_comb (beehives) to drop flagged collectibles. Get rid of the random 50% drop +; replaces +; sh a2, 0x001e(sp) <- keep +; jal 0xb00cdccc <- keep +; sw a3, 0x0020(sp) <- keep +; lui at, 0x3F00 +; mtc at, f4 +; lh a2, 0x001e(sp) +; lw a3, 0x0020(sp) +; c.lt.s f0, f4 +; nop +; bc1f 0xb0ec7490 +; nop +; addiu a2, r0, 0xffff .orga 0xec746c -j obj_comb_hook -nop -nop -nop -nop -nop -nop -nop -nop + j obj_comb_hook + nop + nop + nop + nop + nop + nop + nop + nop ; Hook at the end of Actor_SetWorldToHome to zeroize anything we use to store additional flag data .orga 0xA96E5C ; In memory: 0x80020EFC @@ -725,27 +719,25 @@ nop ; Freestanding models ;================================================================================================== - ;Replaces: ; who knows ; Draw Rupee Function .headersize(0x80013004 - 0xA88F64) .orga 0xA88F64 ; In memory: 0x80013004 jal rupee_draw_hook -.headersize(0) +.headersize(0) ;Replaces: -; LH V0, 0x014a(A2) -; ADDIU AT, R0, 0xFFFF +; LH V0, 0x014a(A2) +; ADDIU AT, R0, 0xFFFF .headersize(0x8001303C - 0xA88F9C) .orga 0xA88F9C ; In memory: 0x8001303C -; or A0, A2, R0 - jal recovery_heart_draw_hook - nop +; or A0, A2, R0 + jal recovery_heart_draw_hook + nop after_recovery_heart_hook: - .skip 0x6C +.skip 0x6C end_of_recovery_draw: - .headersize(0) - +.headersize(0) ; Replaces: ; jal 0x80013498 ; Piece of Heart draw function @@ -1765,17 +1757,17 @@ skip_GS_BGS_text: ; replaces ObjTsubo_Draw .org 0xDE89FC - j draw_pot_hack + j draw_pot_hack nop ; replaces EnGSwitch_DrawPot .orga 0xDF3FC0 - j draw_hba_pot_hack + j draw_hba_pot_hack nop ; replaces EnTuboTrap_Draw .orga 0xDFAFC4 - j draw_flying_pot_hack + j draw_flying_pot_hack nop .org 0xF6D000 + 0x17870 + 0x18 ; gameplay_dangeon_keep file start + dlist offset + gDPSetTextureImage offset @@ -1792,7 +1784,7 @@ skip_GS_BGS_text: ;================================================================================================== .orga 0xEC8528 - j ObjKibako2_Draw + j ObjKibako2_Draw nop .orga 0x18B6000 + 0x960 + 0x18 ; load top texture @@ -1823,7 +1815,7 @@ skip_GS_BGS_text: ;================================================================================================== .orga 0xDE7AC8 - j ObjKibako_Draw + j ObjKibako_Draw nop .orga 0xF6D000 + 0x5290 + 0x18 ; gameplay_dangeon_keep file start + dlist offset + gDPSetTextureImage offset @@ -1835,21 +1827,21 @@ skip_GS_BGS_text: ;Hook ObjComb_Update to use our new function .orga 0xEC764C - j ObjComb_Update + j ObjComb_Update nop ;Hook ObjComb_Draw call to set up custom dlist stuff ;Replaces: -;addiu sp, sp, -0x30 -;sw s0, 0x0014(sp) -;sw ra, 0x001c(sp) -;sw s1, 0x0018(sp) +; addiu sp, sp, -0x30 +; sw s0, 0x0014(sp) +; sw ra, 0x001c(sp) +; sw s1, 0x0018(sp) ;.orga 0xEC76C4 -;addiu sp, sp, -0x30 -;sw ra, 0x001c(sp) -;jal ObjComb_Draw_Hook -;nop +; addiu sp, sp, -0x30 +; sw ra, 0x001c(sp) +; jal ObjComb_Draw_Hook +; nop ;.orga 0xF5F000 + 0x95B0 + 0x18 ; gameplay_field_keep file start + beehive dlist offset + gDPSetTextureImage offset ;.word 0xDE000000, 0x09000000 ; jump to the custom dlist at segment 09 diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 8d4a928ea..d3684b92a 100644 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -190,198 +190,195 @@ get_item_hook: jr ra addiu sp, sp, 0x20 -;Set actors dropFlag to indicate that it was dropped from something. +; Set actors dropFlag to indicate that it was dropped from something. item00_init_hook: - andi t8, v0, 0x4000 ;get the second highest bit (thats where we stored the flag) in drop_collectible_hook - sra t8, t8, 14 ;shift it over - andi t9, v0, 0x00C0 ;get the 2 highest bits in the lower byte (thats where were storing our extra flag info). - sra t9, t9, 5 ;shift it over - or t8, t8, t9 ; or the two together - sb t8, 0x116(a0) ;store it in drop_flag at offset 0x116 - andi T9, V0, 0x003F ;replaced code but change it to only use 0x3F - jr ra - sh T9, 0x001c(S0) ;replaced code - - + andi t8, v0, 0x4000 ; get the second highest bit (thats where we stored the flag) in drop_collectible_hook + sra t8, t8, 14 ; shift it over + andi t9, v0, 0x00C0 ; get the 2 highest bits in the lower byte (thats where were storing our extra flag info). + sra t9, t9, 5 ; shift it over + or t8, t8, t9 ; or the two together + sb t8, 0x116(a0) ; store it in drop_flag at offset 0x116 + andi T9, V0, 0x003F ; replaced code but change it to only use 0x3F + jr ra + sh T9, 0x001c(S0) ; replaced code get_override_drop_id_hook: - addiu sp, sp, -0x10 - sw ra, 0x00(sp) - or a1, r0, a2 ;pass params which should be in a2 right now. - jal get_override_drop_id + addiu sp, sp, -0x10 + sw ra, 0x00(sp) + or a1, r0, a2 ; pass params which should be in a2 right now. + jal get_override_drop_id nop - lw ra, 0x00(sp) - jr ra - addiu sp, sp, 0x10 + lw ra, 0x00(sp) + jr ra + addiu sp, sp, 0x10 -;hooks Item_DropCollectible to store additional flag data in the variable passed to the EnItem00 spawn. -;0x4000 gets set to indicate that its being dropped, which we use to index a second table that we called the dropped_collectible table -;0x00C0 bits get set to extend the flag +; hooks Item_DropCollectible to store additional flag data in the variable passed to the EnItem00 spawn. +; 0x4000 gets set to indicate that its being dropped, which we use to index a second table that we called the dropped_collectible table +; 0x00C0 bits get set to extend the flag drop_collectible_hook: - ori t4, t4, 0x4000 ;set the drop flag - lw t3, 0x60(sp) ;get the original params variable passed into the function - andi t3, t3, 0x00C0 ;get the extended flag bits - or t4, t4, t3 ;combine it all together - jr ra - sw t4, 0x0024(sp) ;store it where it needs to go to get passed into the actorspawn function + ori t4, t4, 0x4000 ; set the drop flag + lw t3, 0x60(sp) ; get the original params variable passed into the function + andi t3, t3, 0x00C0 ; get the extended flag bits + or t4, t4, t3 ; combine it all together + jr ra + sw t4, 0x0024(sp) ; store it where it needs to go to get passed into the actorspawn function drop_collectible2_hook: - ori t4, t4, 0x4000 ;set the drop flag - lw t3, 0x58(sp) ;get the original params variable passed into the function - andi t3, t3, 0x00C0 ;get the extended flag bits - or t4, t4, t3 ;combine it all together - jr ra - sw t4, 0x0024(sp) ;store it where it needs to go to get passed into the actorspawn function + ori t4, t4, 0x4000 ; set the drop flag + lw t3, 0x58(sp) ; get the original params variable passed into the function + andi t3, t3, 0x00C0 ; get the extended flag bits + or t4, t4, t3 ; combine it all together + jr ra + sw t4, 0x0024(sp) ; store it where it needs to go to get passed into the actorspawn function item_give_hook: addiu sp, sp, -0x80 - sw ra, 0x10(sp) - sw v0, 0x14(sp) - sw v1, 0x18(sp) - sw a0, 0x1C(sp) - sw a1, 0x20(sp) - sw a2, 0x24(sp) - sw a3, 0x28(sp) - sw s0, 0x2c(sp) - sw s1, 0x30(sp) - sw at, 0x34(sp) - or A0, v1, R0 - or A1, S2, R0 ;pass player pointer to function - jal item_give_collectible ;if it was overridden, result will be stored in v0 as a 1. otherwise 0 + sw ra, 0x10(sp) + sw v0, 0x14(sp) + sw v1, 0x18(sp) + sw a0, 0x1C(sp) + sw a1, 0x20(sp) + sw a2, 0x24(sp) + sw a3, 0x28(sp) + sw s0, 0x2c(sp) + sw s1, 0x30(sp) + sw at, 0x34(sp) + or A0, v1, R0 + or A1, S2, R0 ; pass player pointer to function + jal item_give_collectible ; if it was overridden, result will be stored in v0 as a 1. otherwise 0 + nop + bgtz v0, exit_func ; if we overrode, return to our new function, otherwise return to the original nop - bgtz v0, exit_func ;if we overrode, return to our new function, otherwise return to the original - nop return_to_func: - lw ra, 0x10(sp) - lw v0, 0x14(sp) - lw v1, 0x18(sp) - lw a0, 0x1C(sp) - lw a1, 0x20(sp) - lw a2, 0x24(sp) - lw a3, 0x28(sp) - lw s0, 0x2c(sp) - lw s1, 0x30(sp) - lw at, 0x34(sp) - lw t0, 0x003C(sp) ;this is what they do after the branch in the OG function - j 0x80012E28 ; jump back where the OG function would have - addiu sp, sp, 0x80 + lw ra, 0x10(sp) + lw v0, 0x14(sp) + lw v1, 0x18(sp) + lw a0, 0x1C(sp) + lw a1, 0x20(sp) + lw a2, 0x24(sp) + lw a3, 0x28(sp) + lw s0, 0x2c(sp) + lw s1, 0x30(sp) + lw at, 0x34(sp) + lw t0, 0x003C(sp) ; this is what they do after the branch in the OG function + j 0x80012E28 ; jump back where the OG function would have + addiu sp, sp, 0x80 exit_func: - addiu v1, r0, 0x03 - lw ra, 0x10(sp) - lw a0, 0x1C(sp) - lw a1, 0x20(sp) - lw a2, 0x24(sp) - lw a3, 0x28(sp) - lw s0, 0x2c(sp) - lw s1, 0x30(sp) - lw at, 0x34(sp) - beq v0, v1, return_to_func_near_end ;check if our function returned 3. This means that it didnt play the fanfare. Jump back into function near the end so it sets up the proper animation + addiu v1, r0, 0x03 + lw ra, 0x10(sp) + lw a0, 0x1C(sp) + lw a1, 0x20(sp) + lw a2, 0x24(sp) + lw a3, 0x28(sp) + lw s0, 0x2c(sp) + lw s1, 0x30(sp) + lw at, 0x34(sp) + beq v0, v1, return_to_func_near_end ; check if our function returned 3. This means that it didnt play the fanfare. Jump back into function near the end so it sets up the proper animation nop - lw v0, 0x14(sp) - lw v1, 0x18(sp) - ;jr ra - j 0x80012FA4 - addiu sp, sp, 0x80 + lw v0, 0x14(sp) + lw v1, 0x18(sp) + j 0x80012FA4 + addiu sp, sp, 0x80 return_to_func_near_end: - lw v0, 0x14(sp) - lw v1, 0x18(sp) - j 0x80012F58 + lw v0, 0x14(sp) + lw v1, 0x18(sp) + j 0x80012F58 addiu sp, sp, 0x80 rupee_draw_hook: -;push things on the stack - addiu sp, sp, -0x80 - sw ra, 0x10(sp) - sw v0, 0x14(sp) - sw v1, 0x18(sp) - sw a0, 0x1C(sp) - sw a1, 0x20(sp) - sw a2, 0x24(sp) - sw a3, 0x28(sp) - sw s0, 0x2c(sp) - sw s1, 0x30(sp) - sw at, 0x34(sp) - - jal collectible_draw - nop -;pop things off the stack -;put our return value somewhere - bgtz v0, @return - nop +; push things on the stack + addiu sp, sp, -0x80 + sw ra, 0x10(sp) + sw v0, 0x14(sp) + sw v1, 0x18(sp) + sw a0, 0x1C(sp) + sw a1, 0x20(sp) + sw a2, 0x24(sp) + sw a3, 0x28(sp) + sw s0, 0x2c(sp) + sw s1, 0x30(sp) + sw at, 0x34(sp) + + jal collectible_draw + nop +; pop things off the stack +; put our return value somewhere + bgtz v0, @return + nop @rupee_draw_orig: - lw ra, 0x10(sp) - lw v0, 0x14(sp) - lw v1, 0x18(sp) - lw a0, 0x1C(sp) - lw a1, 0x20(sp) - lw a2, 0x24(sp) - lw a3, 0x28(sp) - lw s0, 0x2c(sp) - lw s1, 0x30(sp) - lw at, 0x34(sp) - jal 0x80013150 - nop + lw ra, 0x10(sp) + lw v0, 0x14(sp) + lw v1, 0x18(sp) + lw a0, 0x1C(sp) + lw a1, 0x20(sp) + lw a2, 0x24(sp) + lw a3, 0x28(sp) + lw s0, 0x2c(sp) + lw s1, 0x30(sp) + lw at, 0x34(sp) + jal 0x80013150 + nop @return: - lw ra, 0x10(sp) - lw v0, 0x14(sp) - lw v1, 0x18(sp) - lw a0, 0x1C(sp) - lw a1, 0x20(sp) - lw a2, 0x24(sp) - lw a3, 0x28(sp) - lw s0, 0x2c(sp) - lw s1, 0x30(sp) - lw at, 0x34(sp) - jr ra - addiu sp, sp, 0x80 + lw ra, 0x10(sp) + lw v0, 0x14(sp) + lw v1, 0x18(sp) + lw a0, 0x1C(sp) + lw a1, 0x20(sp) + lw a2, 0x24(sp) + lw a3, 0x28(sp) + lw s0, 0x2c(sp) + lw s1, 0x30(sp) + lw at, 0x34(sp) + jr ra + addiu sp, sp, 0x80 recovery_heart_draw_hook: -;push things on the stack - addiu sp, sp, -0x80 - sw ra, 0x10(sp) - sw v0, 0x14(sp) - sw v1, 0x18(sp) - sw a0, 0x1C(sp) - sw a1, 0x20(sp) - sw a2, 0x24(sp) - sw a3, 0x28(sp) - sw s0, 0x2c(sp) - sw s1, 0x30(sp) - sw at, 0x34(sp) - - jal collectible_draw - nop -;pop things off the stack -;put our return value somewhere - beqz v0, @return_to_func - nop +; push things on the stack + addiu sp, sp, -0x80 + sw ra, 0x10(sp) + sw v0, 0x14(sp) + sw v1, 0x18(sp) + sw a0, 0x1C(sp) + sw a1, 0x20(sp) + sw a2, 0x24(sp) + sw a3, 0x28(sp) + sw s0, 0x2c(sp) + sw s1, 0x30(sp) + sw at, 0x34(sp) + + jal collectible_draw + nop +; pop things off the stack +; put our return value somewhere + beqz v0, @return_to_func + nop @exit_func: - lw ra, 0x10(sp) - lw v0, 0x14(sp) - lw v1, 0x18(sp) - lw a0, 0x1C(sp) - lw a1, 0x20(sp) - lw a2, 0x24(sp) - lw a3, 0x28(sp) - lw s0, 0x2c(sp) - lw s1, 0x30(sp) - lw at, 0x34(sp) - addiu sp, sp, 0x80 - j end_of_recovery_draw - nop + lw ra, 0x10(sp) + lw v0, 0x14(sp) + lw v1, 0x18(sp) + lw a0, 0x1C(sp) + lw a1, 0x20(sp) + lw a2, 0x24(sp) + lw a3, 0x28(sp) + lw s0, 0x2c(sp) + lw s1, 0x30(sp) + lw at, 0x34(sp) + addiu sp, sp, 0x80 + j end_of_recovery_draw + nop @return_to_func: - lw ra, 0x10(sp) - lw v0, 0x14(sp) - lw v1, 0x18(sp) - lw a0, 0x1C(sp) - lw a1, 0x20(sp) - lw a2, 0x24(sp) - lw a3, 0x28(sp) - lw s0, 0x2c(sp) - lw s1, 0x30(sp) - lw at, 0x34(sp) - addiu sp, sp, 0x80 - LH V0, 0x014a(A2) - jr ra - addiu at, r0, 0xFFFF \ No newline at end of file + lw ra, 0x10(sp) + lw v0, 0x14(sp) + lw v1, 0x18(sp) + lw a0, 0x1C(sp) + lw a1, 0x20(sp) + lw a2, 0x24(sp) + lw a3, 0x28(sp) + lw s0, 0x2c(sp) + lw s1, 0x30(sp) + lw at, 0x34(sp) + addiu sp, sp, 0x80 + LH V0, 0x014a(A2) + jr ra + addiu at, r0, 0xFFFF diff --git a/ASM/src/save.asm b/ASM/src/save.asm index e1684f992..cf2d53b2c 100644 --- a/ASM/src/save.asm +++ b/ASM/src/save.asm @@ -1,37 +1,37 @@ open_save_hook: -;push the registers to the stack -addiu sp, sp, -0x40 -sw ra, 0x00(sp) -sw v0, 0x04(sp) -sw v1, 0x08(sp) -sw a0, 0x0C(sp) -sw a1, 0x10(sp) -sw a2, 0x14(sp) -sw a3, 0x18(sp) -sw s0, 0x1c(sp) -sw s1, 0x20(sp) -sw at, 0x24(sp) +; push the registers to the stack + addiu sp, sp, -0x40 + sw ra, 0x00(sp) + sw v0, 0x04(sp) + sw v1, 0x08(sp) + sw a0, 0x0C(sp) + sw a1, 0x10(sp) + sw a2, 0x14(sp) + sw a3, 0x18(sp) + sw s0, 0x1c(sp) + sw s1, 0x20(sp) + sw at, 0x24(sp) -lw a0, 0x60(sp) ;get savecontext variable off the stack -jal Save_Open -lw a0, 0x00(a0) ; get the buffer pointer + lw a0, 0x60(sp) ; get savecontext variable off the stack + jal Save_Open + lw a0, 0x00(a0) ; get the buffer pointer -lw v0, 0x04(sp) -lw v1, 0x08(sp) -lw a0, 0x0C(sp) -lw a1, 0x10(sp) -lw a2, 0x14(sp) -lw a3, 0x18(sp) -lw s0, 0x1c(sp) -lw s1, 0x20(sp) -lw at, 0x24(sp) + lw v0, 0x04(sp) + lw v1, 0x08(sp) + lw a0, 0x0C(sp) + lw a1, 0x10(sp) + lw a2, 0x14(sp) + lw a3, 0x18(sp) + lw s0, 0x1c(sp) + lw s1, 0x20(sp) + lw at, 0x24(sp) ; Replaced code -jal 0x80057030 -addu A1, T9, A3 + jal 0x80057030 + addu A1, T9, A3 -lw ra, 0x00(sp) -jr ra -addiu sp, sp, 0x40 \ No newline at end of file + lw ra, 0x00(sp) + jr ra + addiu sp, sp, 0x40 diff --git a/HintList.py b/HintList.py index c3053cb79..3250408a4 100644 --- a/HintList.py +++ b/HintList.py @@ -1722,13 +1722,13 @@ def tokens_required_by_settings(world): 'replace': { "from #inside Ganon's Castle#": "from #inside my castle#", "from #outside Ganon's Castle#": "from #outside my castle#", - "from #Ganondorf's Chamber#": "from #those pots over there#" + "from #Ganondorf's Chamber#": "from #those pots over there#", }, }, } # Separate table for goal names to avoid duplicates in the hint table. -# Link's Pocket will always be an empty goal, but it's included here to +# Link's Pocket will always be an empty goal, but it's included here to # prevent key errors during the dungeon reward lookup. goalTable = { 'Queen Gohma': ("path to the #Spider#", "path to #Queen Gohma#", "Green"), diff --git a/Hints.py b/Hints.py index e7c486724..752b6f966 100644 --- a/Hints.py +++ b/Hints.py @@ -313,7 +313,7 @@ class HintArea(Enum): HYRULE_CASTLE = 'at', 'at', 'Hyrule Castle', 'Hyrule Castle', 'Light Blue', None OUTSIDE_GANONS_CASTLE = None, None, "outside Ganon's Castle", "Outside Ganon's Castle", 'Light Blue', None INSIDE_GANONS_CASTLE = 'inside', None, "inside Ganon's Castle", "Inside Ganon's Castle", 'Light Blue', 'Ganons Castle' - GANONDORFS_CHAMBER = 'in', 'in', "Ganondorf's Chamber", "Ganondorf's Chamber", 'Light Blue', None + GANONDORFS_CHAMBER = 'in', 'in', "Ganondorf's Chamber", "Ganondorf's Chamber", 'Light Blue', None KOKIRI_FOREST = 'in', 'in', 'Kokiri Forest', "Kokiri Forest", 'Green', None DEKU_TREE = 'inside', 'inside', 'the Deku Tree', "Deku Tree", 'Green', 'Deku Tree' LOST_WOODS = 'in', 'in', 'the Lost Woods', "Lost Woods", 'Green', None @@ -363,7 +363,7 @@ def at(spot, use_alt_hint=False): parent_region = current_spot.parent_region if parent_region.hint and (original_parent.name == 'Root' or parent_region.name != 'Root'): - if(use_alt_hint and parent_region.alt_hint): + if use_alt_hint and parent_region.alt_hint: return parent_region.alt_hint return parent_region.hint @@ -591,12 +591,7 @@ def get_barren_hint(spoiler, world, checked, allChecked): if not hasattr(world, 'get_barren_hint_prev'): world.get_barren_hint_prev = RegionRestriction.NONE - - logger = logging.getLogger('') - logger.debug("***HINTS***") - checked_areas = get_checked_areas(world, checked) - logger.debug(checked_areas) areas = list(filter(lambda area: area not in checked_areas and area not in world.hint_type_overrides['barren'] @@ -616,9 +611,6 @@ def get_barren_hint(spoiler, world, checked, allChecked): # Randomly choose between overworld or dungeon dungeon_areas = list(filter(lambda area: world.empty_areas[area]['dungeon'], areas)) overworld_areas = list(filter(lambda area: not world.empty_areas[area]['dungeon'], areas)) - - for loc in world.empty_areas: - logger.debug(loc) if not dungeon_areas: # no dungeons left, default to overworld world.get_barren_hint_prev = RegionRestriction.OVERWORLD diff --git a/ItemPool.py b/ItemPool.py index 9a5fe27b7..3050122c0 100644 --- a/ItemPool.py +++ b/ItemPool.py @@ -1,15 +1,8 @@ import random -from collections import OrderedDict from decimal import Decimal, ROUND_UP -from itertools import chain -from Location import DisableType, Location -from Utils import random_choices -from Item import ItemFactory -from ItemList import item_table -from LocationList import location_groups -from decimal import Decimal, ROUND_HALF_UP from Item import ItemFactory, ItemInfo +from Location import DisableType, Location from Utils import random_choices @@ -548,7 +541,7 @@ def get_pool_core(world): else: shuffle_item = False location.disabled = DisableType.DISABLED - + # Crates elif location.type == 'Collectable' and ('Crate' in location.filter_tags or 'SmallCrate' in location.filter_tags): if world.settings.shuffle_crates == 'all': @@ -776,7 +769,7 @@ def get_pool_core(world): return pool, placed_items -def is_freestanding_or_potcrate_or_beehive_location(location : Location): +def is_freestanding_or_potcrate_or_beehive_location(location: Location): if 'Pot' in location.filter_tags: return True if 'Crate' in location.filter_tags: @@ -789,4 +782,4 @@ def is_freestanding_or_potcrate_or_beehive_location(location : Location): return True if 'Beehive' in location.filter_tags: return True - return False \ No newline at end of file + return False diff --git a/LocationList.py b/LocationList.py index f83e8308d..55c307195 100644 --- a/LocationList.py +++ b/LocationList.py @@ -35,1954 +35,1952 @@ def shop_address(shop_id, shelf_id): # 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 -#Note: for ActorOverride locations, the "Addresses" variable is in the form ([addresses], [bytes]) where addresses is a list of memory locations in ROM to be updated, and bytes is the data that will be written to that location +# Note: for ActorOverride locations, the "Addresses" variable is in the form ([addresses], [bytes]) where addresses is a list of memory locations in ROM to be updated, and bytes is the data that will be written to that location -# Location: Type Scene Default Addresses Vanilla Item Categories +# 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)), - ("Gift from Sages", ("Cutscene", 0xFF, 0x03, None, None, None)), + ("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)), + ("Gift from Sages", ("Cutscene", 0xFF, 0x03, None, None, 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"))), - ("Song from Royal Familys Tomb", ("Song", 0xFF, 0x29, (0x332A871, 0x332A871), 'Suns Song', ("the Graveyard", "Kakariko", "Songs"))), - ("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"))), + ("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"))), + ("Song from Royal Familys Tomb", ("Song", 0xFF, 0x29, (0x332A871, 0x332A871), 'Suns Song', ("the Graveyard", "Kakariko", "Songs"))), + ("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"))), - ("KF Links House Cow", ("NPC", 0x34, 0x15, None, 'Milk', ("Kokiri Forest", "Forest", "Cow", "Minigames"))), - ("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"))), + ("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"))), + ("KF Links House Cow", ("NPC", 0x34, 0x15, None, 'Milk', ("Kokiri Forest", "Forest", "Cow", "Minigames"))), + ("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"))), # Kokiri Forest Freestanding - ("KF Behind Midos Blue Rupee", ("Collectable", 0x55, 0x12, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Freestanding",))), - ("KF Boulder Maze Blue Rupee 1", ("Collectable", 0x55, 0x0F, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF Boulder Maze Blue Rupee 2", ("Collectable", 0x55, 0x0E, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF End of Bridge Blue Rupee", ("Collectable", 0x55, 0x11, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF Top of Sarias Recovery Heart 1", ("Collectable", 0x55, 0x1C, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF Top of Sarias Recovery Heart 2", ("Collectable", 0x55, 0x1E, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF Top of Sarias Recovery Heart 3", ("Collectable", 0x55, 0x1D, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF Bean Platform Green Rupee 1", ("Collectable", 0x55, 0x40, ([0x020816A0, 0x2081910], None),'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), - ("KF Bean Platform Green Rupee 2", ("Collectable", 0x55, 0x41, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), - ("KF Bean Platform Green Rupee 3", ("Collectable", 0x55, 0x42, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), - ("KF Bean Platform Green Rupee 4", ("Collectable", 0x55, 0x43, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), - ("KF Bean Platform Green Rupee 5", ("Collectable", 0x55, 0x44, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), - ("KF Bean Platform Green Rupee 6", ("Collectable", 0x55, 0x45, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), - ("KF Bean Platform Red Rupee", ("Collectable", 0x55, 0x46, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), - ("KF Grass Near Ramp Green Rupee 1", ("Collectable", 0x55, 0x24, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF Grass Near Ramp Green Rupee 2", ("Collectable", 0x55, 0x27, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF Grass Near Midos Green Rupee 1", ("Collectable", 0x55, 0x25, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF Grass Near Midos Green Rupee 2", ("Collectable", 0x55, 0x26, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Freestanding"))), - ("KF Sarias House Recovery Heart 1", ("Collectable", 0x29, 0x38, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding",))), - ("KF Sarias House Recovery Heart 2", ("Collectable", 0x29, 0x39, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding",))), - ("KF Sarias House Recovery Heart 3", ("Collectable", 0x29, 0x3A, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding",))), - ("KF Sarias House Recovery Heart 4", ("Collectable", 0x29, 0x3B, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding",))), - ("KF Shop Blue Rupee", ("ActorOverride",0x2D, 0x01, ([0x02587098], [0x00, 0x15, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06]), "Rupees (5)", ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Behind Midos Blue Rupee", ("Collectable", 0x55, 0x12, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Boulder Maze Blue Rupee 1", ("Collectable", 0x55, 0x0F, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Boulder Maze Blue Rupee 2", ("Collectable", 0x55, 0x0E, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF End of Bridge Blue Rupee", ("Collectable", 0x55, 0x11, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Top of Sarias Recovery Heart 1", ("Collectable", 0x55, 0x1C, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Top of Sarias Recovery Heart 2", ("Collectable", 0x55, 0x1E, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Top of Sarias Recovery Heart 3", ("Collectable", 0x55, 0x1D, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Bean Platform Green Rupee 1", ("Collectable", 0x55, 0x40, ([0x020816A0, 0x2081910], None), 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), + ("KF Bean Platform Green Rupee 2", ("Collectable", 0x55, 0x41, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), + ("KF Bean Platform Green Rupee 3", ("Collectable", 0x55, 0x42, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), + ("KF Bean Platform Green Rupee 4", ("Collectable", 0x55, 0x43, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), + ("KF Bean Platform Green Rupee 5", ("Collectable", 0x55, 0x44, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), + ("KF Bean Platform Green Rupee 6", ("Collectable", 0x55, 0x45, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), + ("KF Bean Platform Red Rupee", ("Collectable", 0x55, 0x46, None, 'Rupees (20)', ("Kokiri Forest", "Forest", "RupeeTower"))), + ("KF Grass Near Ramp Green Rupee 1", ("Collectable", 0x55, 0x24, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Grass Near Ramp Green Rupee 2", ("Collectable", 0x55, 0x27, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Grass Near Midos Green Rupee 1", ("Collectable", 0x55, 0x25, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Grass Near Midos Green Rupee 2", ("Collectable", 0x55, 0x26, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Sarias House Recovery Heart 1", ("Collectable", 0x29, 0x38, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Sarias House Recovery Heart 2", ("Collectable", 0x29, 0x39, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Sarias House Recovery Heart 3", ("Collectable", 0x29, 0x3A, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Sarias House Recovery Heart 4", ("Collectable", 0x29, 0x3B, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Freestanding"))), + ("KF Shop Blue Rupee", ("ActorOverride",0x2D, 0x01, ([0x02587098], [ + 0x00, 0x15, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06 ]), 'Rupees (5)', ("Kokiri Forest", "Forest", "Freestanding"))), # Kokiri Forest Pots - ("KF Links House Pot", ("Collectable", 0x34, 0x20, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Pot"))), - ("KF Know it All House Pot 1", ("Collectable", 0x26, 0x20, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Pot"))), - ("KF Know it All House Pot 2", ("Collectable", 0x26, 0x21, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Pot"))), - ("KF House of Twins Pot 1", ("Collectable", 0x27, 0x21, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Pot"))), - ("KF House of Twins Pot 2", ("Collectable", 0x27, 0x22, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Pot"))), + ("KF Links House Pot", ("Collectable", 0x34, 0x20, None, 'Recovery Heart', ("Kokiri Forest", "Forest", "Pot"))), + ("KF Know it All House Pot 1", ("Collectable", 0x26, 0x20, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Pot"))), + ("KF Know it All House Pot 2", ("Collectable", 0x26, 0x21, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Pot"))), + ("KF House of Twins Pot 1", ("Collectable", 0x27, 0x21, None, 'Rupee (1)', ("Kokiri Forest", "Forest", "Pot"))), + ("KF House of Twins Pot 2", ("Collectable", 0x27, 0x22, None, 'Rupees (5)', ("Kokiri Forest", "Forest", "Pot"))), # Kokiri Forest Beehives - ("KF Storms Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x0C*2), None, 'Rupees (20)', ("Kokiri Forest", "Forest", "Grottos", "Beehive"))), - ("KF Storms Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x0C*2 + 1), None, 'Rupees (20)', ("Kokiri Forest", "Forest", "Grottos", "Beehive"))), - + ("KF Storms Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x0C * 2), None, 'Rupees (20)', ("Kokiri Forest", "Forest", "Grottos", "Beehive"))), + ("KF Storms Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x0C * 2 + 1), None, 'Rupees (20)', ("Kokiri Forest", "Forest", "Grottos", "Beehive"))), + # 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", ("Scrub", 0x5B, 0x77, None, 'Deku Stick Capacity', ("the Lost Woods", "Forest", "Deku Scrub", "Deku Scrub Upgrades"))), - ("LW Deku Scrub Near Deku Theater Left", ("Scrub", 0x5B, 0x31, None, 'Buy Deku Stick (1)', ("the Lost Woods", "Forest", "Deku Scrub"))), - ("LW Deku Scrub Near Deku Theater Right", ("Scrub", 0x5B, 0x30, None, 'Buy Deku Nut (5)', ("the Lost Woods", "Forest", "Deku Scrub"))), - ("LW Deku Scrub Grotto Front", ("GrottoScrub", 0xF5, 0x79, None, 'Deku Nut Capacity', ("the Lost Woods", "Forest", "Deku Scrub", "Deku Scrub Upgrades", "Grottos"))), - ("LW Deku Scrub Grotto Rear", ("GrottoScrub", 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",))), - # Lost Woods Freestanding - ("LW Under Boulder Blue Rupee", ("Collectable", 0x5B, 0x13, None, 'Rupees (5)', ("the Lost Woods", "Forest","Freestanding",))), - ("LW Underwater Green Rupee 1", ("Collectable", 0x5B, 0x35, None, 'Rupee (1)', ("the Lost Woods", "Forest","Freestanding",))), - ("LW Underwater Green Rupee 2", ("Collectable", 0x5B, 0x36, None, 'Rupee (1)', ("the Lost Woods", "Forest","Freestanding",))), - ("LW Underwater Green Rupee 3", ("Collectable", 0x5B, 0x37, None, 'Rupee (1)', ("the Lost Woods", "Forest","Freestanding",))), - ("LW Underwater Green Rupee 4", ("Collectable", 0x5B, 0x39, None, 'Rupee (1)', ("the Lost Woods", "Forest","Freestanding",))), - ("LW Underwater Green Rupee 5", ("Collectable", 0x5B, 0x3A, None, 'Rupee (1)', ("the Lost Woods", "Forest","Freestanding",))), - ("LW Underwater Green Rupee 6", ("Collectable", 0x5B, 0x3B, None, 'Rupee (1)', ("the Lost Woods", "Forest","Freestanding",))), - ("LW Underwater Green Rupee 7", ("Collectable", 0x5B, 0x3C, None, 'Rupee (1)', ("the Lost Woods", "Forest", "Freestanding",))), - ("LW Underwater Green Rupee Nearest Exit", ("Collectable", 0x5B, 0x34, None, 'Rupee (1)', ("the Lost Woods", "Forest","Freestanding",))), + ("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", ("Scrub", 0x5B, 0x77, None, 'Deku Stick Capacity', ("the Lost Woods", "Forest", "Deku Scrub", "Deku Scrub Upgrades"))), + ("LW Deku Scrub Near Deku Theater Left", ("Scrub", 0x5B, 0x31, None, 'Buy Deku Stick (1)', ("the Lost Woods", "Forest", "Deku Scrub"))), + ("LW Deku Scrub Near Deku Theater Right", ("Scrub", 0x5B, 0x30, None, 'Buy Deku Nut (5)', ("the Lost Woods", "Forest", "Deku Scrub"))), + ("LW Deku Scrub Grotto Front", ("GrottoScrub", 0xF5, 0x79, None, 'Deku Nut Capacity', ("the Lost Woods", "Forest", "Deku Scrub", "Deku Scrub Upgrades", "Grottos"))), + ("LW Deku Scrub Grotto Rear", ("GrottoScrub", 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"))), + # Lost Woods Freestanding + ("LW Under Boulder Blue Rupee", ("Collectable", 0x5B, 0x13, None, 'Rupees (5)', ("the Lost Woods", "Forest", "Freestanding"))), + ("LW Underwater Green Rupee 1", ("Collectable", 0x5B, 0x35, None, 'Rupee (1)', ("the Lost Woods", "Forest", "Freestanding"))), + ("LW Underwater Green Rupee 2", ("Collectable", 0x5B, 0x36, None, 'Rupee (1)', ("the Lost Woods", "Forest", "Freestanding"))), + ("LW Underwater Green Rupee 3", ("Collectable", 0x5B, 0x37, None, 'Rupee (1)', ("the Lost Woods", "Forest", "Freestanding"))), + ("LW Underwater Green Rupee 4", ("Collectable", 0x5B, 0x39, None, 'Rupee (1)', ("the Lost Woods", "Forest", "Freestanding"))), + ("LW Underwater Green Rupee 5", ("Collectable", 0x5B, 0x3A, None, 'Rupee (1)', ("the Lost Woods", "Forest", "Freestanding"))), + ("LW Underwater Green Rupee 6", ("Collectable", 0x5B, 0x3B, None, 'Rupee (1)', ("the Lost Woods", "Forest", "Freestanding"))), + ("LW Underwater Green Rupee 7", ("Collectable", 0x5B, 0x3C, None, 'Rupee (1)', ("the Lost Woods", "Forest", "Freestanding"))), + ("LW Underwater Green Rupee Nearest Exit", ("Collectable", 0x5B, 0x34, None, 'Rupee (1)', ("the Lost Woods", "Forest", "Freestanding"))), # Lost Woods Beehives - ("LW Near Shortcuts Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x14*2), None, 'Rupees (20)', ("the Lost Woods", "Forest", "Grottos", "Beehive"))), - ("LW Near Shortcuts Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x14*2 + 1), None, 'Rupees (20)', ("the Lost Woods", "Forest", "Grottos", "Beehive"))), - ("LW Scrubs Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x15*2), None, 'Rupees (20)', ("the Lost Woods", "Forest", "Grottos", "Beehive"))), - + ("LW Near Shortcuts Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x14 * 2), None, 'Rupees (20)', ("the Lost Woods", "Forest", "Grottos", "Beehive"))), + ("LW Near Shortcuts Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x14 * 2 + 1), None, 'Rupees (20)', ("the Lost Woods", "Forest", "Grottos", "Beehive"))), + ("LW Scrubs Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x15 * 2), None, 'Rupees (20)', ("the Lost Woods", "Forest", "Grottos", "Beehive"))), + # Sacred Forest Meadow - ("SFM Wolfos Grotto Chest", ("Chest", 0x3E, 0x11, None, 'Rupees (50)', ("Sacred Forest Meadow", "Forest", "Grottos"))), - ("SFM Deku Scrub Grotto Front", ("GrottoScrub", 0xEE, 0x3A, None, 'Buy Green Potion', ("Sacred Forest Meadow", "Forest", "Deku Scrub", "Grottos"))), - ("SFM Deku Scrub Grotto Rear", ("GrottoScrub", 0xEE, 0x39, None, 'Buy Red Potion for 30 Rupees', ("Sacred Forest Meadow", "Forest", "Deku Scrub", "Grottos"))), - ("SFM GS", ("GS Token", 0x0D, 0x08, None, 'Gold Skulltula Token', ("Sacred Forest Meadow", "Skulltulas",))), + ("SFM Wolfos Grotto Chest", ("Chest", 0x3E, 0x11, None, 'Rupees (50)', ("Sacred Forest Meadow", "Forest", "Grottos"))), + ("SFM Deku Scrub Grotto Front", ("GrottoScrub", 0xEE, 0x3A, None, 'Buy Green Potion', ("Sacred Forest Meadow", "Forest", "Deku Scrub", "Grottos"))), + ("SFM Deku Scrub Grotto Rear", ("GrottoScrub", 0xEE, 0x39, None, 'Buy Red Potion for 30 Rupees', ("Sacred Forest Meadow", "Forest", "Deku Scrub", "Grottos"))), + ("SFM GS", ("GS Token", 0x0D, 0x08, None, 'Gold Skulltula Token', ("Sacred Forest Meadow", "Skulltulas"))), # Sacred Forest Meadow Beehives - ("SFM Storms Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x0E*2), None, 'Rupees (20)', ("Sacred Forest Meadow", "Forest", "Grottos", "Beehive"))), - + ("SFM Storms Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x0E * 2), None, 'Rupees (20)', ("Sacred Forest Meadow", "Forest", "Grottos", "Beehive"))), + # 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", ("GrottoScrub", 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"))), + ("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", ("GrottoScrub", 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"))), # Hyrule Field Pots - ("HF Cow Grotto Pot 1", ("Collectable", 0x3E, 0x20, None, 'Recovery Heart', ("Hyrule Field", "Grottos", "Pot"))), - ("HF Cow Grotto Pot 2", ("Collectable", 0x3E, 0x21, None, 'Recovery Heart', ("Hyrule Field", "Grottos", "Pot"))), + ("HF Cow Grotto Pot 1", ("Collectable", 0x3E, 0x20, None, 'Recovery Heart', ("Hyrule Field", "Grottos", "Pot"))), + ("HF Cow Grotto Pot 2", ("Collectable", 0x3E, 0x21, None, 'Recovery Heart', ("Hyrule Field", "Grottos", "Pot"))), # Hyrule Field Beehives - ("HF Near Market Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x00*2), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), - ("HF Near Market Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x00*2 + 1), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), - ("HF Open Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x03*2), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), - ("HF Open Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x03*2 + 1), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), - ("HF Southeast Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x02*2), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), - ("HF Southeast Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x02*2 + 1), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), - ("HF Inside Fence Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x06*2), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), - + ("HF Near Market Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x00 * 2), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), + ("HF Near Market Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x00 * 2 + 1), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), + ("HF Open Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x03 * 2), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), + ("HF Open Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x03 * 2 + 1), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), + ("HF Southeast Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x02 * 2), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), + ("HF Southeast Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x02 * 2 + 1), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), + ("HF Inside Fence Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x06 * 2), None, 'Rupees (20)', ("Hyrule Field", "Grottos", "Beehive"))), + # 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", ("NPC", 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) for 35 Rupees', ("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 for 30 Rupees', ("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",))), + ("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", ("NPC", 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) for 35 Rupees', ("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 for 30 Rupees', ("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"))), # Market Pots/Crates - ("Market Night Red Rupee Crate", ("Collectable", 0x21, 0x03, None, 'Rupees (20)', ("the Market", "Market", "Crate"))), - ("Market Night Green Rupee Crate 1", ("Collectable", 0x21, 0x21, None, 'Rupee (1)', ("the Market", "Market", "Crate"))), - ("Market Night Green Rupee Crate 2", ("Collectable", 0x21, 0x22, None, 'Rupee (1)', ("the Market", "Market", "Crate"))), - ("Market Night Green Rupee Crate 3", ("Collectable", 0x21, 0x23, None, 'Rupee (1)', ("the Market", "Market", "Crate"))), - ("Market Dog Lady House Crate", ("Collectable", 0x35, 0x20, None, 'Rupees (5)', ("Market", "Market", "Crate"))), - ("Market Guard House Child Crate", ("Collectable", 0x4D, 0x3C, None, 'Rupee (1)', ("the Market", "Market", "Crate"))), - ("Market Guard House Child Pot 1", ("Collectable", 0x4D, 0x20, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 2", ("Collectable", 0x4D, 0x21, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 3", ("Collectable", 0x4D, 0x22, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 4", ("Collectable", 0x4D, 0x23, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 5", ("Collectable", 0x4D, 0x24, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 6", ("Collectable", 0x4D, 0x25, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 7", ("Collectable", 0x4D, 0x27, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 8", ("Collectable", 0x4D, 0x28, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 9", ("Collectable", 0x4D, 0x29, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 10", ("Collectable", 0x4D, 0x2B, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 11", ("Collectable", 0x4D, 0x2C, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 12", ("Collectable", 0x4D, 0x2D, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 13", ("Collectable", 0x4D, 0x2E, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 14", ("Collectable", 0x4D, 0x30, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 15", ("Collectable", 0x4D, 0x31, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 16", ("Collectable", 0x4D, 0x32, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 17", ("Collectable", 0x4D, 0x33, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 18", ("Collectable", 0x4D, 0x34, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 19", ("Collectable", 0x4D, 0x35, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 20", ("Collectable", 0x4D, 0x36, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 21", ("Collectable", 0x4D, 0x37, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Child Pot 22", ("Collectable", 0x4D, 0x3B, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Adult Pot 1", ("Collectable", 0x4D, 0x2F, ([0x33904C4],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Adult Pot 2", ("Collectable", 0x4D, 0x38, ([0x33904E4],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Adult Pot 3", ("Collectable", 0x4D, 0x39, ([0x33904F4],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Adult Pot 4", ("Collectable", 0x4D, 0x3A, ([0x3390514],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Adult Pot 5", ("Collectable", 0x4D, 0x26, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Adult Pot 6", ("Collectable", 0x4D, 0x3D, ([0x3390544],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Guard House Adult Pot 7", ("Collectable", 0x4D, 0x2A, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), - ("Market Man in Green House Pot 1", ("Collectable", 0x2B, 0x21, None, 'Recovery Heart', ("the Market", "Market", "Pot"))), - ("Market Man in Green House Pot 2", ("Collectable", 0x2B, 0x22, None, 'Recovery Heart', ("the Market", "Market", "Pot"))), - ("Market Man in Green House Pot 3", ("Collectable", 0x2B, 0x23, None, 'Recovery Heart', ("the Market", "Market", "Pot"))), - + ("Market Night Red Rupee Crate", ("Collectable", 0x21, 0x03, None, 'Rupees (20)', ("the Market", "Market", "Crate"))), + ("Market Night Green Rupee Crate 1", ("Collectable", 0x21, 0x21, None, 'Rupee (1)', ("the Market", "Market", "Crate"))), + ("Market Night Green Rupee Crate 2", ("Collectable", 0x21, 0x22, None, 'Rupee (1)', ("the Market", "Market", "Crate"))), + ("Market Night Green Rupee Crate 3", ("Collectable", 0x21, 0x23, None, 'Rupee (1)', ("the Market", "Market", "Crate"))), + ("Market Dog Lady House Crate", ("Collectable", 0x35, 0x20, None, 'Rupees (5)', ("Market", "Market", "Crate"))), + ("Market Guard House Child Crate", ("Collectable", 0x4D, 0x3C, None, 'Rupee (1)', ("the Market", "Market", "Crate"))), + ("Market Guard House Child Pot 1", ("Collectable", 0x4D, 0x20, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 2", ("Collectable", 0x4D, 0x21, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 3", ("Collectable", 0x4D, 0x22, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 4", ("Collectable", 0x4D, 0x23, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 5", ("Collectable", 0x4D, 0x24, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 6", ("Collectable", 0x4D, 0x25, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 7", ("Collectable", 0x4D, 0x27, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 8", ("Collectable", 0x4D, 0x28, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 9", ("Collectable", 0x4D, 0x29, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 10", ("Collectable", 0x4D, 0x2B, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 11", ("Collectable", 0x4D, 0x2C, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 12", ("Collectable", 0x4D, 0x2D, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 13", ("Collectable", 0x4D, 0x2E, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 14", ("Collectable", 0x4D, 0x30, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 15", ("Collectable", 0x4D, 0x31, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 16", ("Collectable", 0x4D, 0x32, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 17", ("Collectable", 0x4D, 0x33, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 18", ("Collectable", 0x4D, 0x34, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 19", ("Collectable", 0x4D, 0x35, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 20", ("Collectable", 0x4D, 0x36, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 21", ("Collectable", 0x4D, 0x37, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Child Pot 22", ("Collectable", 0x4D, 0x3B, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Adult Pot 1", ("Collectable", 0x4D, 0x2F, ([0x33904C4],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Adult Pot 2", ("Collectable", 0x4D, 0x38, ([0x33904E4],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Adult Pot 3", ("Collectable", 0x4D, 0x39, ([0x33904F4],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Adult Pot 4", ("Collectable", 0x4D, 0x3A, ([0x3390514],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Adult Pot 5", ("Collectable", 0x4D, 0x26, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Adult Pot 6", ("Collectable", 0x4D, 0x3D, ([0x3390544],None), 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Guard House Adult Pot 7", ("Collectable", 0x4D, 0x2A, None, 'Rupee (1)', ("the Market", "Market", "Pot"))), + ("Market Man in Green House Pot 1", ("Collectable", 0x2B, 0x21, None, 'Recovery Heart', ("the Market", "Market", "Pot"))), + ("Market Man in Green House Pot 2", ("Collectable", 0x2B, 0x22, None, 'Recovery Heart', ("the Market", "Market", "Pot"))), + ("Market Man in Green House Pot 3", ("Collectable", 0x2B, 0x23, None, 'Recovery Heart', ("the Market", "Market", "Pot"))), + # 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"))), - ("HC Storms Grotto Pot 1", ("Collectable", 0x3E, 0x22, None, 'Recovery Heart', ("Hyrule Castle", "Grottos", "Pot"))), - ("HC Storms Grotto Pot 2", ("Collectable", 0x3E, 0x23, None, 'Recovery Heart', ("Hyrule Castle", "Grottos", "Pot"))), - ("HC Storms Grotto Pot 3", ("Collectable", 0x3E, 0x24, None, 'Recovery Heart', ("Hyrule Castle", "Grottos", "Pot"))), - ("HC Storms Grotto Pot 4", ("Collectable", 0x3E, 0x25, None, 'Recovery Heart', ("Hyrule Castle", "Grottos", "Pot"))), + ("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"))), + ("HC Storms Grotto Pot 1", ("Collectable", 0x3E, 0x22, None, 'Recovery Heart', ("Hyrule Castle", "Grottos", "Pot"))), + ("HC Storms Grotto Pot 2", ("Collectable", 0x3E, 0x23, None, 'Recovery Heart', ("Hyrule Castle", "Grottos", "Pot"))), + ("HC Storms Grotto Pot 3", ("Collectable", 0x3E, 0x24, None, 'Recovery Heart', ("Hyrule Castle", "Grottos", "Pot"))), + ("HC Storms Grotto Pot 4", ("Collectable", 0x3E, 0x25, None, 'Recovery Heart', ("Hyrule Castle", "Grottos", "Pot"))), # Lon Lon Ranch - ("LLR Talons Chickens", ("NPC", 0x4C, 0x14, None, 'Bottle with Milk', ("Lon Lon Ranch", "Minigames"))), - ("LLR Freestanding PoH", ("Collectable", 0x4C, 0x01, None, 'Piece of Heart', ("Lon Lon Ranch",))), - ("LLR Deku Scrub Grotto Left", ("GrottoScrub", 0xFC, 0x30, None, 'Buy Deku Nut (5)', ("Lon Lon Ranch", "Deku Scrub", "Grottos"))), - ("LLR Deku Scrub Grotto Center", ("GrottoScrub", 0xFC, 0x33, None, 'Buy Deku Seeds (30)', ("Lon Lon Ranch", "Deku Scrub", "Grottos"))), - ("LLR Deku Scrub Grotto Right", ("GrottoScrub", 0xFC, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("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",))), + ("LLR Talons Chickens", ("NPC", 0x4C, 0x14, None, 'Bottle with Milk', ("Lon Lon Ranch", "Minigames"))), + ("LLR Freestanding PoH", ("Collectable", 0x4C, 0x01, None, 'Piece of Heart', ("Lon Lon Ranch"))), + ("LLR Deku Scrub Grotto Left", ("GrottoScrub", 0xFC, 0x30, None, 'Buy Deku Nut (5)', ("Lon Lon Ranch", "Deku Scrub", "Grottos"))), + ("LLR Deku Scrub Grotto Center", ("GrottoScrub", 0xFC, 0x33, None, 'Buy Deku Seeds (30)', ("Lon Lon Ranch", "Deku Scrub", "Grottos"))), + ("LLR Deku Scrub Grotto Right", ("GrottoScrub", 0xFC, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("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"))), # Lon Lon Ranch Pots/Crates - ("LLR Front Pot 1", ("Collectable", 0x63, 0x20, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), - ("LLR Front Pot 2", ("Collectable", 0x63, 0x21, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), - ("LLR Front Pot 3", ("Collectable", 0x63, 0x22, None, 'Rupee (1)', ("Lon Lon Ranch", "Pot"))), - ("LLR Front Pot 4", ("Collectable", 0x63, 0x23, None, 'Rupee (1)', ("Lon Lon Ranch", "Pot"))), - ("LLR Rain Shed Pot 1", ("Collectable", 0x63, 0x26, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), - ("LLR Rain Shed Pot 2", ("Collectable", 0x63, 0x27, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), - ("LLR Rain Shed Pot 3", ("Collectable", 0x63, 0x28, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), - ("LLR Talons House Pot 1", ("Collectable", 0x4C, 0x29, None, 'Rupees (5)', ("Lon Lon Ranch", "Pot"))), - ("LLR Talons House Pot 2", ("Collectable", 0x4C, 0x2A, None, 'Rupees (5)', ("Lon Lon Ranch", "Pot"))), - ("LLR Talons House Pot 3", ("Collectable", 0x4C, 0x2B, None, 'Rupees (5)', ("Lon Lon Ranch", "Pot"))), - ("LLR Child Crate", ("Collectable", 0x63, 0x40, ([0x29ce204, 0x29ce84c],None),'Rupee (1)', ("Lon Lon Ranch", "Crate"))), + ("LLR Front Pot 1", ("Collectable", 0x63, 0x20, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), + ("LLR Front Pot 2", ("Collectable", 0x63, 0x21, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), + ("LLR Front Pot 3", ("Collectable", 0x63, 0x22, None, 'Rupee (1)', ("Lon Lon Ranch", "Pot"))), + ("LLR Front Pot 4", ("Collectable", 0x63, 0x23, None, 'Rupee (1)', ("Lon Lon Ranch", "Pot"))), + ("LLR Rain Shed Pot 1", ("Collectable", 0x63, 0x26, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), + ("LLR Rain Shed Pot 2", ("Collectable", 0x63, 0x27, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), + ("LLR Rain Shed Pot 3", ("Collectable", 0x63, 0x28, None, 'Recovery Heart', ("Lon Lon Ranch", "Pot"))), + ("LLR Talons House Pot 1", ("Collectable", 0x4C, 0x29, None, 'Rupees (5)', ("Lon Lon Ranch", "Pot"))), + ("LLR Talons House Pot 2", ("Collectable", 0x4C, 0x2A, None, 'Rupees (5)', ("Lon Lon Ranch", "Pot"))), + ("LLR Talons House Pot 3", ("Collectable", 0x4C, 0x2B, None, 'Rupees (5)', ("Lon Lon Ranch", "Pot"))), + ("LLR Child Crate", ("Collectable", 0x63, 0x40, ([0x29ce204, 0x29ce84c], None), 'Rupee (1)', ("Lon Lon Ranch", "Crate"))), # Lon Lon Ranch Beehives - ("LLR Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x1C*2), None, 'Rupees (20)', ("Lon Lon Ranch", "Grottos", "Beehive"))), + ("LLR Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x1C * 2), None, 'Rupees (20)', ("Lon Lon Ranch", "Grottos", "Beehive"))), - # 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 Near Gate Guard", ("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) for 35 Rupees', ("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 for 30 Rupees', ("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"))), + ("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 Near Gate Guard", ("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) for 35 Rupees', ("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 for 30 Rupees', ("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"))), # Kak Pots - ("Kak Near Potion Shop Pot 1", ("Collectable", 0x52, 0x20, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Potion Shop Pot 2", ("Collectable", 0x52, 0x21, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Potion Shop Pot 3", ("Collectable", 0x52, 0x22, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Impas House Pot 1", ("Collectable", 0x52, 0x23, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Impas House Pot 2", ("Collectable", 0x52, 0x24, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Impas House Pot 3", ("Collectable", 0x52, 0x25, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Guards House Pot 1", ("Collectable", 0x52, 0x26, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Guards House Pot 2", ("Collectable", 0x52, 0x27, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Guards House Pot 3", ("Collectable", 0x52, 0x28, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Odd Medicine Building Pot 1", ("Collectable", 0x52, 0x29, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Near Odd Medicine Building Pot 2", ("Collectable", 0x52, 0x2A, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), - ("Kak Adult Red Rupee Crate", ("Collectable", 0x52, 0x2B, ([0x201689C, 0x2016BFC], None), 'Rupees (20)', ("Kakariko Village", "Kakariko", "Crate"))), #update crate flags to not conflict w/ child pots. These move day/night - ("Kak Adult Arrows Crate", ("Collectable", 0x52, 0x2C, ([0x201680C, 0x2016BCC],None), 'Arrows (10)', ("Kakariko Village", "Kakariko", "Crate"))), #update crate flags to not conflict w/ child pots. These move day/night + ("Kak Near Potion Shop Pot 1", ("Collectable", 0x52, 0x20, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Potion Shop Pot 2", ("Collectable", 0x52, 0x21, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Potion Shop Pot 3", ("Collectable", 0x52, 0x22, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Impas House Pot 1", ("Collectable", 0x52, 0x23, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Impas House Pot 2", ("Collectable", 0x52, 0x24, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Impas House Pot 3", ("Collectable", 0x52, 0x25, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Guards House Pot 1", ("Collectable", 0x52, 0x26, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Guards House Pot 2", ("Collectable", 0x52, 0x27, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Guards House Pot 3", ("Collectable", 0x52, 0x28, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Odd Medicine Building Pot 1", ("Collectable", 0x52, 0x29, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Near Odd Medicine Building Pot 2", ("Collectable", 0x52, 0x2A, None, 'Recovery Heart', ("Kakariko Village", "Kakariko", "Pot"))), + ("Kak Adult Red Rupee Crate", ("Collectable", 0x52, 0x2B, ([0x201689C, 0x2016BFC], None), 'Rupees (20)', ("Kakariko Village", "Kakariko", "Crate"))), # update crate flags to not conflict w/ child pots. These move day/night + ("Kak Adult Arrows Crate", ("Collectable", 0x52, 0x2C, ([0x201680C, 0x2016BCC], None), 'Arrows (10)', ("Kakariko Village", "Kakariko", "Crate"))), # update crate flags to not conflict w/ child pots. These move day/night # Kak Beehives - ("Kak Open Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x08*2), None, 'Rupees (20)', ("Kakariko Village", "Kakariko", "Grottos", "Beehive"))), - ("Kak Open Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x08*2 + 1),None, 'Rupees (20)', ("Kakariko Village", "Kakariko", "Grottos", "Beehive"))), + ("Kak Open Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x08 * 2), None, 'Rupees (20)', ("Kakariko Village", "Kakariko", "Grottos", "Beehive"))), + ("Kak Open Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x08 * 2 + 1), None, 'Rupees (20)', ("Kakariko Village", "Kakariko", "Grottos", "Beehive"))), # 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",))), - ("Graveyard Royal Familys Tomb Chest", ("Chest", 0x41, 0x00, None, 'Bombs (5)', ("the Graveyard", "Kakariko",))), - ("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", "Drop"))), - ("Graveyard Dampe Race 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", "Drop"))), - ("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",))), - #Graveyard Freestanding - ("Graveyard Dampe Race Rupee 1", ("Collectable", 0x48, 0x38, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding",))), - ("Graveyard Dampe Race Rupee 2", ("Collectable", 0x48, 0x39, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding",))), - ("Graveyard Dampe Race Rupee 3", ("Collectable", 0x48, 0x3A, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding",))), - ("Graveyard Dampe Race Rupee 4", ("Collectable", 0x48, 0x3B, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding",))), - ("Graveyard Dampe Race Rupee 5", ("Collectable", 0x48, 0x3C, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding",))), - ("Graveyard Dampe Race Rupee 6", ("Collectable", 0x48, 0x3D, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding",))), - ("Graveyard Dampe Race Rupee 7", ("Collectable", 0x48, 0x3E, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding",))), - ("Graveyard Dampe Race Rupee 8", ("Collectable", 0x48, 0x3F, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding",))), - #Graveyard Pots/Crates - ("Graveyard Dampe Pot 1", ("Collectable", 0x48, 0x22, None, 'Recovery Heart', ("the Graveyard", "Kakariko", "Pot"))), - ("Graveyard Dampe Pot 2", ("Collectable", 0x48, 0x23, None, 'Deku Nuts (5)', ("the Graveyard", "Kakariko", "Pot"))), - ("Graveyard Dampe Pot 3", ("Collectable", 0x48, 0x24, None, 'Bombs (5)', ("the Graveyard", "Kakariko", "Pot"))), - ("Graveyard Dampe Pot 4", ("Collectable", 0x48, 0x25, None, 'Arrows (10)', ("the Graveyard", "Kakariko", "Pot"))), - ("Graveyard Dampe Pot 5", ("Collectable", 0x48, 0x26, None, 'Rupees (20)', ("the Graveyard", "Kakariko", "Pot"))), - ("Graveyard Dampe Pot 6", ("Collectable", 0x48, 0x27, None, 'Rupees (20)', ("the Graveyard", "Kakariko", "Pot"))), - + ("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"))), + ("Graveyard Royal Familys Tomb Chest", ("Chest", 0x41, 0x00, None, 'Bombs (5)', ("the Graveyard", "Kakariko"))), + ("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", "Drop"))), + ("Graveyard Dampe Race 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", "Drop"))), + ("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"))), + # Graveyard Freestanding + ("Graveyard Dampe Race Rupee 1", ("Collectable", 0x48, 0x38, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding"))), + ("Graveyard Dampe Race Rupee 2", ("Collectable", 0x48, 0x39, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding"))), + ("Graveyard Dampe Race Rupee 3", ("Collectable", 0x48, 0x3A, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding"))), + ("Graveyard Dampe Race Rupee 4", ("Collectable", 0x48, 0x3B, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding"))), + ("Graveyard Dampe Race Rupee 5", ("Collectable", 0x48, 0x3C, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding"))), + ("Graveyard Dampe Race Rupee 6", ("Collectable", 0x48, 0x3D, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding"))), + ("Graveyard Dampe Race Rupee 7", ("Collectable", 0x48, 0x3E, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding"))), + ("Graveyard Dampe Race Rupee 8", ("Collectable", 0x48, 0x3F, None, 'Rupee (1)', ("the Graveyard", "Kakariko", "Freestanding"))), + # Graveyard Pots/Crates + ("Graveyard Dampe Pot 1", ("Collectable", 0x48, 0x22, None, 'Recovery Heart', ("the Graveyard", "Kakariko", "Pot"))), + ("Graveyard Dampe Pot 2", ("Collectable", 0x48, 0x23, None, 'Deku Nuts (5)', ("the Graveyard", "Kakariko", "Pot"))), + ("Graveyard Dampe Pot 3", ("Collectable", 0x48, 0x24, None, 'Bombs (5)', ("the Graveyard", "Kakariko", "Pot"))), + ("Graveyard Dampe Pot 4", ("Collectable", 0x48, 0x25, None, 'Arrows (10)', ("the Graveyard", "Kakariko", "Pot"))), + ("Graveyard Dampe Pot 5", ("Collectable", 0x48, 0x26, None, 'Rupees (20)', ("the Graveyard", "Kakariko", "Pot"))), + ("Graveyard Dampe Pot 6", ("Collectable", 0x48, 0x27, None, 'Rupees (20)', ("the Graveyard", "Kakariko", "Pot"))), + # 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 Rock Red Rupee", ("Collectable", 0x60, 0x0A, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Freestanding"))), - ("DMT Rock Blue Rupee", ("Collectable", 0x60, 0x07, None, 'Rupees (5)', ("Death Mountain Trail", "Death Mountain", "Freestanding" ))), - ("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",))), + ("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 Rock Red Rupee", ("Collectable", 0x60, 0x0A, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Freestanding"))), + ("DMT Rock Blue Rupee", ("Collectable", 0x60, 0x07, None, 'Rupees (5)', ("Death Mountain Trail", "Death Mountain", "Freestanding"))), + ("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",))), # Death Mountain Trail Freestanding - ("DMT Cow Grotto Green Rupee 1", ("Collectable", 0x3E, 0x40, ([0x026D2098], None), 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), - ("DMT Cow Grotto Green Rupee 2", ("Collectable", 0x3E, 0x41, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), - ("DMT Cow Grotto Green Rupee 3", ("Collectable", 0x3E, 0x42, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), - ("DMT Cow Grotto Green Rupee 4", ("Collectable", 0x3E, 0x43, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), - ("DMT Cow Grotto Green Rupee 5", ("Collectable", 0x3E, 0x44, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), - ("DMT Cow Grotto Green Rupee 6", ("Collectable", 0x3E, 0x45, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), - ("DMT Cow Grotto Red Rupee", ("Collectable", 0x3E, 0x46, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), - ("DMT Cow Grotto Recovery Heart 1", ("Collectable", 0x3E, 0x28, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos","Freestanding",))), - ("DMT Cow Grotto Recovery Heart 2", ("Collectable", 0x3E, 0x29, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos","Freestanding",))), - ("DMT Cow Grotto Recovery Heart 3", ("Collectable", 0x3E, 0x2A, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos","Freestanding",))), - ("DMT Cow Grotto Recovery Heart 4", ("Collectable", 0x3E, 0x2B, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos","Freestanding",))), + ("DMT Cow Grotto Green Rupee 1", ("Collectable", 0x3E, 0x40, ([0x026D2098], None), 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), + ("DMT Cow Grotto Green Rupee 2", ("Collectable", 0x3E, 0x41, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), + ("DMT Cow Grotto Green Rupee 3", ("Collectable", 0x3E, 0x42, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), + ("DMT Cow Grotto Green Rupee 4", ("Collectable", 0x3E, 0x43, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), + ("DMT Cow Grotto Green Rupee 5", ("Collectable", 0x3E, 0x44, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), + ("DMT Cow Grotto Green Rupee 6", ("Collectable", 0x3E, 0x45, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), + ("DMT Cow Grotto Red Rupee", ("Collectable", 0x3E, 0x46, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "RupeeTower"))), + ("DMT Cow Grotto Recovery Heart 1", ("Collectable", 0x3E, 0x28, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Freestanding"))), + ("DMT Cow Grotto Recovery Heart 2", ("Collectable", 0x3E, 0x29, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Freestanding"))), + ("DMT Cow Grotto Recovery Heart 3", ("Collectable", 0x3E, 0x2A, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Freestanding"))), + ("DMT Cow Grotto Recovery Heart 4", ("Collectable", 0x3E, 0x2B, None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Freestanding"))), # Death Mountain Trial Beehives - ("DMT Cow Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x18*2), None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Beehive"))), - ("DMT Storms Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x17*2), None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Beehive"))), - ("DMT Storms Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x17*2 + 1), None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Beehive"))), + ("DMT Cow Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x18 * 2), None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Beehive"))), + ("DMT Storms Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x17 * 2), None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Beehive"))), + ("DMT Storms Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x17 * 2 + 1), None, 'Rupees (20)', ("Death Mountain Trail", "Death Mountain", "Grottos", "Beehive"))), # 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", "Drop"))), - ("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", ("GrottoScrub", 0xFB, 0x30, None, 'Buy Deku Nut (5)', ("Goron City", "Deku Scrub", "Grottos"))), - ("GC Deku Scrub Grotto Center", ("GrottoScrub", 0xFB, 0x33, None, 'Buy Arrows (30)', ("Goron City", "Deku Scrub", "Grottos"))), - ("GC Deku Scrub Grotto Right", ("GrottoScrub", 0xFB, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("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) for 25 Rupees', ("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 for 40 Rupees', ("Goron City", "Shops",))), - ("GC Shop Item 8", ("Shop", 0x2E, 0x37, (shop_address(8, 7), None), 'Buy Heart', ("Goron City", "Shops",))), - ("GC Spinning Pot Bomb Drop 1", ("Collectable", 0x62, 0x41, ([0x22A82F4], None), 'Bombs (5)', ("Goron City", "RupeeTower"))), - ("GC Spinning Pot Bomb Drop 2", ("Collectable", 0x62, 0x42, None, 'Bombs (5)', ("Goron City", "RupeeTower"))), - ("GC Spinning Pot Bomb Drop 3", ("Collectable", 0x62, 0x43, None, 'Bombs (5)', ("Goron City", "RupeeTower"))), - ("GC Spinning Pot Rupee Drop 1", ("Collectable", 0x62, 0x44, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), - ("GC Spinning Pot Rupee Drop 2", ("Collectable", 0x62, 0x45, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), - ("GC Spinning Pot Rupee Drop 3", ("Collectable", 0x62, 0x46, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), - ("GC Spinning Pot PoH Drop Rupee 1", ("Collectable", 0x62, 0x47, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), - ("GC Spinning Pot PoH Drop Rupee 2", ("Collectable", 0x62, 0x48, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), - # Goron City Pots. Reassign some flags because nintendo decided adult pots should share flags... - ("GC Darunia Pot 1", ("Collectable", 0x62, 0x38, None, 'Deku Stick (1)', ("Goron City", "Pot"))), - ("GC Darunia Pot 2", ("Collectable", 0x62, 0x39, None, 'Rupee (1)', ("Goron City", "Pot"))), - ("GC Darunia Pot 3", ("Collectable", 0x62, 0x3A, None, 'Deku Stick (1)', ("Goron City", "Pot"))), - ("GC Medigoron Pot", ("Collectable", 0x62, 0x33, ([0x22961D0], None), 'Rupees (5)', ("Goron City", "Pot"))), - ("GC Lower Staircase Pot 1", ("Collectable", 0x62, 0x34, ([0x22A84D8], None), 'Deku Stick (1)', ("Goron City", "Pot"))), - ("GC Lower Staircase Pot 2", ("Collectable", 0x62, 0x3C, ([0x22A8518], None), 'Recovery Heart', ("Goron City", "Pot"))), - ("GC Upper Staircase Pot 1", ("Collectable", 0x62, 0x35, ([0x22A84E8], None), 'Rupees (5)', ("Goron City", "Pot"))), - ("GC Upper Staircase Pot 2", ("Collectable", 0x62, 0x36, ([0x22A84F8], None), 'Rupee (1)', ("Goron City", "Pot"))), - ("GC Upper Staircase Pot 3", ("Collectable", 0x62, 0x3B, ([0x22A8508], None), 'Rupees (5)', ("Goron City", "Pot"))), - ("GC Boulder Maze Crate", ("Collectable", 0x62, 0x40, ([0x227c6ec, 0x227C37C],None),'Rupee (1)', ("Goron City", "Crate"))), + ("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", "Drop"))), + ("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", ("GrottoScrub", 0xFB, 0x30, None, 'Buy Deku Nut (5)', ("Goron City", "Deku Scrub", "Grottos"))), + ("GC Deku Scrub Grotto Center", ("GrottoScrub", 0xFB, 0x33, None, 'Buy Arrows (30)', ("Goron City", "Deku Scrub", "Grottos"))), + ("GC Deku Scrub Grotto Right", ("GrottoScrub", 0xFB, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("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) for 25 Rupees', ("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 for 40 Rupees', ("Goron City", "Shops"))), + ("GC Shop Item 8", ("Shop", 0x2E, 0x37, (shop_address(8, 7), None), 'Buy Heart', ("Goron City", "Shops"))), + ("GC Spinning Pot Bomb Drop 1", ("Collectable", 0x62, 0x41, ([0x22A82F4], None), 'Bombs (5)', ("Goron City", "RupeeTower"))), + ("GC Spinning Pot Bomb Drop 2", ("Collectable", 0x62, 0x42, None, 'Bombs (5)', ("Goron City", "RupeeTower"))), + ("GC Spinning Pot Bomb Drop 3", ("Collectable", 0x62, 0x43, None, 'Bombs (5)', ("Goron City", "RupeeTower"))), + ("GC Spinning Pot Rupee Drop 1", ("Collectable", 0x62, 0x44, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), + ("GC Spinning Pot Rupee Drop 2", ("Collectable", 0x62, 0x45, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), + ("GC Spinning Pot Rupee Drop 3", ("Collectable", 0x62, 0x46, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), + ("GC Spinning Pot PoH Drop Rupee 1", ("Collectable", 0x62, 0x47, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), + ("GC Spinning Pot PoH Drop Rupee 2", ("Collectable", 0x62, 0x48, None, 'Rupee (1)', ("Goron City", "RupeeTower"))), + # Goron City Pots. Reassign some flags because Nintendo decided adult pots should share flags... + ("GC Darunia Pot 1", ("Collectable", 0x62, 0x38, None, 'Deku Stick (1)', ("Goron City", "Pot"))), + ("GC Darunia Pot 2", ("Collectable", 0x62, 0x39, None, 'Rupee (1)', ("Goron City", "Pot"))), + ("GC Darunia Pot 3", ("Collectable", 0x62, 0x3A, None, 'Deku Stick (1)', ("Goron City", "Pot"))), + ("GC Medigoron Pot", ("Collectable", 0x62, 0x33, ([0x22961D0], None), 'Rupees (5)', ("Goron City", "Pot"))), + ("GC Lower Staircase Pot 1", ("Collectable", 0x62, 0x34, ([0x22A84D8], None), 'Deku Stick (1)', ("Goron City", "Pot"))), + ("GC Lower Staircase Pot 2", ("Collectable", 0x62, 0x3C, ([0x22A8518], None), 'Recovery Heart', ("Goron City", "Pot"))), + ("GC Upper Staircase Pot 1", ("Collectable", 0x62, 0x35, ([0x22A84E8], None), 'Rupees (5)', ("Goron City", "Pot"))), + ("GC Upper Staircase Pot 2", ("Collectable", 0x62, 0x36, ([0x22A84F8], None), 'Rupee (1)', ("Goron City", "Pot"))), + ("GC Upper Staircase Pot 3", ("Collectable", 0x62, 0x3B, ([0x22A8508], None), 'Rupees (5)', ("Goron City", "Pot"))), + ("GC Boulder Maze Crate", ("Collectable", 0x62, 0x40, ([0x227c6ec, 0x227C37C], None), 'Rupee (1)', ("Goron City", "Crate"))), # Goron City Beehives - ("GC Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x1B*2), None, 'Rupees (20)', ("Goron City", "Grottos", "Beehive"))), + ("GC Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x1B * 2), None, 'Rupees (20)', ("Goron City", "Grottos", "Beehive"))), # 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", ("Scrub", 0x61, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("Death Mountain Crater", "Death Mountain", "Deku Scrub"))), - ("DMC Deku Scrub Grotto Left", ("GrottoScrub", 0xF9, 0x30, None, 'Buy Deku Nut (5)', ("Death Mountain Crater", "Death Mountain", "Deku Scrub", "Grottos"))), - ("DMC Deku Scrub Grotto Center", ("GrottoScrub", 0xF9, 0x33, None, 'Buy Arrows (30)', ("Death Mountain Crater", "Death Mountain", "Deku Scrub", "Grottos"))), - ("DMC Deku Scrub Grotto Right", ("GrottoScrub", 0xF9, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("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",))), + ("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", ("Scrub", 0x61, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("Death Mountain Crater", "Death Mountain", "Deku Scrub"))), + ("DMC Deku Scrub Grotto Left", ("GrottoScrub", 0xF9, 0x30, None, 'Buy Deku Nut (5)', ("Death Mountain Crater", "Death Mountain", "Deku Scrub", "Grottos"))), + ("DMC Deku Scrub Grotto Center", ("GrottoScrub", 0xF9, 0x33, None, 'Buy Arrows (30)', ("Death Mountain Crater", "Death Mountain", "Deku Scrub", "Grottos"))), + ("DMC Deku Scrub Grotto Right", ("GrottoScrub", 0xF9, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("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"))), # Death Mountain Crater Freestanding - ("DMC Adult Green Rupee 1", ("Collectable", 0x61, 0x40,([0x0225E63C], None ), 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), - ("DMC Adult Green Rupee 2", ("Collectable", 0x61, 0x41, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), - ("DMC Adult Green Rupee 3", ("Collectable", 0x61, 0x42, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), - ("DMC Adult Green Rupee 4", ("Collectable", 0x61, 0x43, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), - ("DMC Adult Green Rupee 5", ("Collectable", 0x61, 0x44, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), - ("DMC Adult Green Rupee 6", ("Collectable", 0x61, 0x45, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), - ("DMC Adult Red Rupee", ("Collectable", 0x61, 0x46, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), - ("DMC Child Red Rupee 1", ("Collectable", 0x61, 0x20, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain","Freestanding",))), - ("DMC Child Red Rupee 2", ("Collectable", 0x61, 0x21, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "Freestanding",))), - ("DMC Child Blue Rupee 1", ("Collectable", 0x61, 0x22, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding",))), - ("DMC Child Blue Rupee 2", ("Collectable", 0x61, 0x23, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding",))), - ("DMC Child Blue Rupee 3", ("Collectable", 0x61, 0x24, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding",))), - ("DMC Child Blue Rupee 4", ("Collectable", 0x61, 0x25, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding",))), - ("DMC Child Blue Rupee 5", ("Collectable", 0x61, 0x26, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding",))), - ("DMC Child Blue Rupee 6", ("Collectable", 0x61, 0x27, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding",))), + ("DMC Adult Green Rupee 1", ("Collectable", 0x61, 0x40, ([0x0225E63C], None), 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), + ("DMC Adult Green Rupee 2", ("Collectable", 0x61, 0x41, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), + ("DMC Adult Green Rupee 3", ("Collectable", 0x61, 0x42, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), + ("DMC Adult Green Rupee 4", ("Collectable", 0x61, 0x43, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), + ("DMC Adult Green Rupee 5", ("Collectable", 0x61, 0x44, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), + ("DMC Adult Green Rupee 6", ("Collectable", 0x61, 0x45, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), + ("DMC Adult Red Rupee", ("Collectable", 0x61, 0x46, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "RupeeTower"))), + ("DMC Child Red Rupee 1", ("Collectable", 0x61, 0x20, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain","Freestanding"))), + ("DMC Child Red Rupee 2", ("Collectable", 0x61, 0x21, None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "Freestanding"))), + ("DMC Child Blue Rupee 1", ("Collectable", 0x61, 0x22, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding"))), + ("DMC Child Blue Rupee 2", ("Collectable", 0x61, 0x23, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding"))), + ("DMC Child Blue Rupee 3", ("Collectable", 0x61, 0x24, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding"))), + ("DMC Child Blue Rupee 4", ("Collectable", 0x61, 0x25, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding"))), + ("DMC Child Blue Rupee 5", ("Collectable", 0x61, 0x26, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding"))), + ("DMC Child Blue Rupee 6", ("Collectable", 0x61, 0x27, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Freestanding"))), # Death Mountain Crater Pots - ("DMC Near GC Pot 1", ("Collectable", 0x61, 0x20, None, 'Recovery Heart', ("Death Mountain Crater", "Death Mountain", "Pot",))), - ("DMC Near GC Pot 2", ("Collectable", 0x61, 0x21, None, 'Arrows (10)', ("Death Mountain Crater", "Death Mountain", "Pot",))), - ("DMC Near GC Pot 3", ("Collectable", 0x61, 0x22, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Pot",))), - ("DMC Near GC Pot 4", ("Collectable", 0x61, 0x23, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Pot",))), + ("DMC Near GC Pot 1", ("Collectable", 0x61, 0x20, None, 'Recovery Heart', ("Death Mountain Crater", "Death Mountain", "Pot"))), + ("DMC Near GC Pot 2", ("Collectable", 0x61, 0x21, None, 'Arrows (10)', ("Death Mountain Crater", "Death Mountain", "Pot"))), + ("DMC Near GC Pot 3", ("Collectable", 0x61, 0x22, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Pot"))), + ("DMC Near GC Pot 4", ("Collectable", 0x61, 0x23, None, 'Rupees (5)', ("Death Mountain Crater", "Death Mountain", "Pot"))), # Death mountain Crater Beehives - ("DMC Upper Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x1A*2), None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "Grottos", "Beehive"))), - ("DMC Upper Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x1A*2+1), None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "Grottos", "Beehive"))), - ("DMC Hammer Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x19*2), None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "Grottos", "Beehive"))), + ("DMC Upper Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x1A * 2), None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "Grottos", "Beehive"))), + ("DMC Upper Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x1A * 2 + 1), None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "Grottos", "Beehive"))), + ("DMC Hammer Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x19 * 2), None, 'Rupees (20)', ("Death Mountain Crater", "Death Mountain", "Grottos", "Beehive"))), # Zora's River - ("ZR Magic Bean Salesman", ("NPC", 0x54, 0x16, None, 'Buy Magic Bean', ("Zora's River",))), - ("ZR Open Grotto Chest", ("Chest", 0x3E, 0x09, None, 'Rupees (20)', ("Zora's River", "Grottos",))), - ("ZR Frogs Zeldas Lullaby", ("NPC", 0x54, 0x65, None, 'Rupees (50)', ("Zora's River", "Minigames",))), - ("ZR Frogs Eponas Song", ("NPC", 0x54, 0x66, None, 'Rupees (50)', ("Zora's River", "Minigames",))), - ("ZR Frogs Sarias Song", ("NPC", 0x54, 0x67, None, 'Rupees (50)', ("Zora's River", "Minigames",))), - ("ZR Frogs Suns Song", ("NPC", 0x54, 0x68, None, 'Rupees (50)', ("Zora's River", "Minigames",))), - ("ZR Frogs Song of Time", ("NPC", 0x54, 0x69, None, 'Rupees (50)', ("Zora's River", "Minigames",))), - ("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", ("GrottoScrub", 0xEB, 0x3A, None, 'Buy Green Potion', ("Zora's River", "Deku Scrub", "Grottos"))), - ("ZR Deku Scrub Grotto Rear", ("GrottoScrub", 0xEB, 0x39, None, 'Buy Red Potion for 30 Rupees', ("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",))), + ("ZR Magic Bean Salesman", ("NPC", 0x54, 0x16, None, 'Buy Magic Bean', ("Zora's River"))), + ("ZR Open Grotto Chest", ("Chest", 0x3E, 0x09, None, 'Rupees (20)', ("Zora's River", "Grottos"))), + ("ZR Frogs Zeldas Lullaby", ("NPC", 0x54, 0x65, None, 'Rupees (50)', ("Zora's River", "Minigames"))), + ("ZR Frogs Eponas Song", ("NPC", 0x54, 0x66, None, 'Rupees (50)', ("Zora's River", "Minigames"))), + ("ZR Frogs Sarias Song", ("NPC", 0x54, 0x67, None, 'Rupees (50)', ("Zora's River", "Minigames"))), + ("ZR Frogs Suns Song", ("NPC", 0x54, 0x68, None, 'Rupees (50)', ("Zora's River", "Minigames"))), + ("ZR Frogs Song of Time", ("NPC", 0x54, 0x69, None, 'Rupees (50)', ("Zora's River", "Minigames"))), + ("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", ("GrottoScrub", 0xEB, 0x3A, None, 'Buy Green Potion', ("Zora's River", "Deku Scrub", "Grottos"))), + ("ZR Deku Scrub Grotto Rear", ("GrottoScrub", 0xEB, 0x39, None, 'Buy Red Potion for 30 Rupees', ("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 River Freestanding - ("ZR Waterfall Red Rupee 1", ("Collectable", 0x54, 0x20, None, 'Rupees (20)', ("Zora's River", "Freestanding"))), - ("ZR Waterfall Red Rupee 2", ("Collectable", 0x54, 0x21, None, 'Rupees (20)', ("Zora's River", "Freestanding"))), - ("ZR Waterfall Red Rupee 3", ("Collectable", 0x54, 0x22, None, 'Rupees (20)', ("Zora's River", "Freestanding"))), - ("ZR Waterfall Red Rupee 4", ("Collectable", 0x54, 0x23, None, 'Rupees (20)', ("Zora's River", "Freestanding"))), + ("ZR Waterfall Red Rupee 1", ("Collectable", 0x54, 0x20, None, 'Rupees (20)', ("Zora's River", "Freestanding"))), + ("ZR Waterfall Red Rupee 2", ("Collectable", 0x54, 0x21, None, 'Rupees (20)', ("Zora's River", "Freestanding"))), + ("ZR Waterfall Red Rupee 3", ("Collectable", 0x54, 0x22, None, 'Rupees (20)', ("Zora's River", "Freestanding"))), + ("ZR Waterfall Red Rupee 4", ("Collectable", 0x54, 0x23, None, 'Rupees (20)', ("Zora's River", "Freestanding"))), # Zora's River Beehives - ("ZR Open Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x09*2), None, 'Rupees (20)', ("Zora's River", "Grottos", "Beehive"))), - ("ZR Open Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x09*2+1), None, 'Rupees (20)', ("Zora's River", "Grottos", "Beehive"))), - ("ZR Storms Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x0B*2), None, 'Rupees (20)', ("Zora's River", "Grottos", "Beehive"))), - + ("ZR Open Grotto Beehive 1", ("Collectable", 0x3E, 0x60 + (0x09 * 2), None, 'Rupees (20)', ("Zora's River", "Grottos", "Beehive"))), + ("ZR Open Grotto Beehive 2", ("Collectable", 0x3E, 0x60 + (0x09 * 2 + 1), None, 'Rupees (20)', ("Zora's River", "Grottos", "Beehive"))), + ("ZR Storms Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x0B * 2), None, 'Rupees (20)', ("Zora's River", "Grottos", "Beehive"))), + # 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 for 50 Rupees', ("Zora's Domain", "Shops",))), + ("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 for 50 Rupees', ("Zora's Domain", "Shops"))), # Zora's Domain Pots - ("ZD Pot 1", ("Collectable", 0x58, 0x24, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), - ("ZD Pot 2", ("Collectable", 0x58, 0x23, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), - ("ZD Pot 3", ("Collectable", 0x58, 0x22, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), - ("ZD Pot 4", ("Collectable", 0x58, 0x21, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), - ("ZD Pot 5", ("Collectable", 0x58, 0x20, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), + ("ZD Pot 1", ("Collectable", 0x58, 0x24, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), + ("ZD Pot 2", ("Collectable", 0x58, 0x23, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), + ("ZD Pot 3", ("Collectable", 0x58, 0x22, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), + ("ZD Pot 4", ("Collectable", 0x58, 0x21, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), + ("ZD Pot 5", ("Collectable", 0x58, 0x20, None, 'Deku Stick (1)', ("Zora's Domain", "Pot"))), # Zora's Domain Beehives - ("ZD In Front of King Zora Beehive 1", ("Collectable", 0x58, 0x40, ([0x20FC0F8], None), 'Rupees (20)', ("Zora's Domain", "Beehive"))), - ("ZD In Front of King Zora Beehive 2", ("Collectable", 0x58, 0x41, ([0x20FC108], None), 'Rupees (20)', ("Zora's Domain", "Beehive"))), - ("ZD Behind King Zora Beehive", ("Collectable", 0x58, 0x42, ([0x20FC118], None), 'Rupees (20)', ("Zora's Domain", "Beehive"))), - + ("ZD In Front of King Zora Beehive 1", ("Collectable", 0x58, 0x40, ([0x20FC0F8], None), 'Rupees (20)', ("Zora's Domain", "Beehive"))), + ("ZD In Front of King Zora Beehive 2", ("Collectable", 0x58, 0x41, ([0x20FC108], None), 'Rupees (20)', ("Zora's Domain", "Beehive"))), + ("ZD Behind King Zora Beehive", ("Collectable", 0x58, 0x42, ([0x20FC118], None), 'Rupees (20)', ("Zora's Domain", "Beehive"))), + # 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",))), + ("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"))), # Zora's Fountain Freestanding - ("ZF Bottom Green Rupee 1", ("Collectable", 0x59, 0x20, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 2", ("Collectable", 0x59, 0x21, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 3", ("Collectable", 0x59, 0x22, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 4", ("Collectable", 0x59, 0x23, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 5", ("Collectable", 0x59, 0x24, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 6", ("Collectable", 0x59, 0x25, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 7", ("Collectable", 0x59, 0x26, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 8", ("Collectable", 0x59, 0x27, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 9", ("Collectable", 0x59, 0x28, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 10", ("Collectable", 0x59, 0x29, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 11", ("Collectable", 0x59, 0x2A, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 12", ("Collectable", 0x59, 0x2B, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 13", ("Collectable", 0x59, 0x2C, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 14", ("Collectable", 0x59, 0x2D, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 15", ("Collectable", 0x59, 0x2E, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 16", ("Collectable", 0x59, 0x2F, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 17", ("Collectable", 0x59, 0x30, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), - ("ZF Bottom Green Rupee 18", ("Collectable", 0x59, 0x31, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 1", ("Collectable", 0x59, 0x20, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 2", ("Collectable", 0x59, 0x21, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 3", ("Collectable", 0x59, 0x22, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 4", ("Collectable", 0x59, 0x23, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 5", ("Collectable", 0x59, 0x24, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 6", ("Collectable", 0x59, 0x25, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 7", ("Collectable", 0x59, 0x26, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 8", ("Collectable", 0x59, 0x27, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 9", ("Collectable", 0x59, 0x28, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 10", ("Collectable", 0x59, 0x29, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 11", ("Collectable", 0x59, 0x2A, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 12", ("Collectable", 0x59, 0x2B, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 13", ("Collectable", 0x59, 0x2C, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 14", ("Collectable", 0x59, 0x2D, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 15", ("Collectable", 0x59, 0x2E, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 16", ("Collectable", 0x59, 0x2F, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 17", ("Collectable", 0x59, 0x30, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), + ("ZF Bottom Green Rupee 18", ("Collectable", 0x59, 0x31, None, 'Rupee (1)', ("Zora's Fountain", "Freestanding"))), # Zora's Fountain Pots - ("ZF Hidden Cave Pot 1", ("Collectable", 0x59, 0x3F, ([0x2122624],None), 'Rupees (5)', ("Zora's Fountain", "Pot"))), - ("ZF Hidden Cave Pot 2", ("Collectable", 0x59, 0x3C, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), - ("ZF Hidden Cave Pot 3", ("Collectable", 0x59, 0x3E, ([0x2122644],None), 'Rupees (5)', ("Zora's Fountain", "Pot"))), - ("ZF Near Jabu Pot 1", ("Collectable", 0x59, 0x38, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), - ("ZF Near Jabu Pot 2", ("Collectable", 0x59, 0x39, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), - ("ZF Near Jabu Pot 3", ("Collectable", 0x59, 0x3B, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), - ("ZF Near Jabu Pot 4", ("Collectable", 0x59, 0x3D, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), + ("ZF Hidden Cave Pot 1", ("Collectable", 0x59, 0x3F, ([0x2122624], None), 'Rupees (5)', ("Zora's Fountain", "Pot"))), + ("ZF Hidden Cave Pot 2", ("Collectable", 0x59, 0x3C, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), + ("ZF Hidden Cave Pot 3", ("Collectable", 0x59, 0x3E, ([0x2122644], None), 'Rupees (5)', ("Zora's Fountain", "Pot"))), + ("ZF Near Jabu Pot 1", ("Collectable", 0x59, 0x38, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), + ("ZF Near Jabu Pot 2", ("Collectable", 0x59, 0x39, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), + ("ZF Near Jabu Pot 3", ("Collectable", 0x59, 0x3B, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), + ("ZF Near Jabu Pot 4", ("Collectable", 0x59, 0x3D, None, 'Rupees (5)', ("Zora's Fountain", "Pot"))), # 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", ("GrottoScrub", 0xEF, 0x30, None, 'Buy Deku Nut (5)', ("Lake Hylia", "Deku Scrub", "Grottos"))), - ("LH Deku Scrub Grotto Center", ("GrottoScrub", 0xEF, 0x33, None, 'Buy Deku Seeds (30)', ("Lake Hylia", "Deku Scrub", "Grottos"))), - ("LH Deku Scrub Grotto Right", ("GrottoScrub", 0xEF, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("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",))), + ("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", ("GrottoScrub", 0xEF, 0x30, None, 'Buy Deku Nut (5)', ("Lake Hylia", "Deku Scrub", "Grottos"))), + ("LH Deku Scrub Grotto Center", ("GrottoScrub", 0xEF, 0x33, None, 'Buy Deku Seeds (30)', ("Lake Hylia", "Deku Scrub", "Grottos"))), + ("LH Deku Scrub Grotto Right", ("GrottoScrub", 0xEF, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("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"))), # Lake Hylia Freestanding - ("LH Underwater Near Shore Green Rupee", ("Collectable", 0x57, 0x20, None, 'Rupee (1)', ("Lake Hylia", "Freestanding"))), - ("LH Underwater Green Rupee 1", ("Collectable", 0x57, 0x21, None, 'Rupee (1)', ("Lake Hylia","Freestanding"))), - ("LH Underwater Green Rupee 2", ("Collectable", 0x57, 0x22, None, 'Rupee (1)', ("Lake Hylia","Freestanding"))), - ("LH Lab Dive Red Rupee 1", ("Collectable", 0x38, 0x01, None, 'Rupees (20)', ("Lake Hylia","Freestanding"))), - ("LH Lab Dive Red Rupee 2", ("Collectable", 0x38, 0x02, None, 'Rupees (20)', ("Lake Hylia","Freestanding"))), - ("LH Lab Dive Red Rupee 3", ("Collectable", 0x38, 0x03, None, 'Rupees (20)', ("Lake Hylia","Freestanding"))), + ("LH Underwater Near Shore Green Rupee", ("Collectable", 0x57, 0x20, None, 'Rupee (1)', ("Lake Hylia", "Freestanding"))), + ("LH Underwater Green Rupee 1", ("Collectable", 0x57, 0x21, None, 'Rupee (1)', ("Lake Hylia", "Freestanding"))), + ("LH Underwater Green Rupee 2", ("Collectable", 0x57, 0x22, None, 'Rupee (1)', ("Lake Hylia", "Freestanding"))), + ("LH Lab Dive Red Rupee 1", ("Collectable", 0x38, 0x01, None, 'Rupees (20)', ("Lake Hylia", "Freestanding"))), + ("LH Lab Dive Red Rupee 2", ("Collectable", 0x38, 0x02, None, 'Rupees (20)', ("Lake Hylia", "Freestanding"))), + ("LH Lab Dive Red Rupee 3", ("Collectable", 0x38, 0x03, None, 'Rupees (20)', ("Lake Hylia", "Freestanding"))), #Lake Hylia Beehives - ("LH Grotto Beehive", ("Collectable", 0x3E, 0x60+(0x0F*2), None, 'Rupees (20)', ("Lake Hylia", "Grottos", "Beehive"))), - + ("LH Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x0F * 2), None, 'Rupees (20)', ("Lake Hylia", "Grottos", "Beehive"))), + # 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", ("GrottoScrub", 0xF0, 0x3A, None, 'Buy Green Potion', ("Gerudo Valley", "Gerudo", "Deku Scrub", "Grottos"))), - ("GV Deku Scrub Grotto Rear", ("GrottoScrub", 0xF0, 0x39, None, 'Buy Red Potion for 30 Rupees', ("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",))), + ("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", ("GrottoScrub", 0xF0, 0x3A, None, 'Buy Green Potion', ("Gerudo Valley", "Gerudo", "Deku Scrub", "Grottos"))), + ("GV Deku Scrub Grotto Rear", ("GrottoScrub", 0xF0, 0x39, None, 'Buy Red Potion for 30 Rupees', ("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"))), # Gerudo Valley Freestanding - ("GV Octorok Grotto Red Rupee", ("Collectable", 0x3E, 0x3F, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), - ("GV Octorok Grotto Blue Rupee 1", ("Collectable", 0x3E, 0x38, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), - ("GV Octorok Grotto Blue Rupee 2", ("Collectable", 0x3E, 0x39, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), - ("GV Octorok Grotto Blue Rupee 3", ("Collectable", 0x3E, 0x3A, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), - ("GV Octorok Grotto Green Rupee 1", ("Collectable", 0x3E, 0x3B, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), - ("GV Octorok Grotto Green Rupee 2", ("Collectable", 0x3E, 0x3C, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), - ("GV Octorok Grotto Green Rupee 3", ("Collectable", 0x3E, 0x3D, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), - ("GV Octorok Grotto Green Rupee 4", ("Collectable", 0x3E, 0x3E, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), + ("GV Octorok Grotto Red Rupee", ("Collectable", 0x3E, 0x3F, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), + ("GV Octorok Grotto Blue Rupee 1", ("Collectable", 0x3E, 0x38, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), + ("GV Octorok Grotto Blue Rupee 2", ("Collectable", 0x3E, 0x39, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), + ("GV Octorok Grotto Blue Rupee 3", ("Collectable", 0x3E, 0x3A, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), + ("GV Octorok Grotto Green Rupee 1", ("Collectable", 0x3E, 0x3B, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), + ("GV Octorok Grotto Green Rupee 2", ("Collectable", 0x3E, 0x3C, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), + ("GV Octorok Grotto Green Rupee 3", ("Collectable", 0x3E, 0x3D, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), + ("GV Octorok Grotto Green Rupee 4", ("Collectable", 0x3E, 0x3E, None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Freestanding"))), # Gerudo Valley Pots/Crates - ("GV Crate Near Cow", ("Collectable", 0x5A, 0x40, ([0x213D2CC],None), 'Rupee (1)', ("Gerudo Valley", "Gerudo", "Crate"))), - ("GV Freestanding PoH Crate", ("Collectable", 0x5A, 0x41, ([0x213D2DC, 0x213d548],None),'Rupee (1)', ("Gerudo Valley", "Gerudo", "Crate"))), + ("GV Crate Near Cow", ("Collectable", 0x5A, 0x40, ([0x213D2CC], None), 'Rupee (1)', ("Gerudo Valley", "Gerudo", "Crate"))), + ("GV Freestanding PoH Crate", ("Collectable", 0x5A, 0x41, ([0x213D2DC, 0x213d548], None), 'Rupee (1)', ("Gerudo Valley", "Gerudo", "Crate"))), # Gerudo Valley Beehives - ("GV Storms Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x10*2), None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Beehive"))), - + ("GV Storms Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x10 * 2), None, 'Rupees (20)', ("Gerudo Valley", "Gerudo", "Grottos", "Beehive"))), + # 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",))), + ("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"))), # Gerudo's Fortress Crates/Pots - ("GF Above Jail Crate", ("Collectable", 0x5D, 0x1F, None, 'Rupees (50)', ("Gerudo's Fortress", "Gerudo", "Crate"))), + ("GF Above Jail Crate", ("Collectable", 0x5D, 0x1F, None, 'Rupees (50)', ("Gerudo's Fortress", "Gerudo", "Crate"))), # Thieves' Hideout - ("Hideout 1 Torch Jail Gerudo Key", ("Collectable", 0x0C, 0x0C, None, 'Small Key (Thieves Hideout)', ("Thieves' Hideout", "Gerudo", "Drop"))), - ("Hideout 2 Torches Jail Gerudo Key", ("Collectable", 0x0C, 0x0F, None, 'Small Key (Thieves Hideout)', ("Thieves' Hideout", "Gerudo", "Drop"))), - ("Hideout 3 Torches Jail Gerudo Key", ("Collectable", 0x0C, 0x0A, None, 'Small Key (Thieves Hideout)', ("Thieves' Hideout", "Gerudo", "Drop"))), - ("Hideout 4 Torches Jail Gerudo Key", ("Collectable", 0x0C, 0x0E, None, 'Small Key (Thieves Hideout)', ("Thieves' Hideout", "Gerudo", "Drop"))), - ("Hideout Gerudo Membership Card", ("NPC", 0x0C, 0x3A, None, 'Gerudo Membership Card', ("Thieves' Hideout", "Gerudo",))), - # Thieve's Hideout Pots/Crates - ("Hideout Break Room Pot 1", ("Collectable", 0x0C, 0x2A, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout Break Room Pot 2", ("Collectable", 0x0C, 0x2B, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 1 Torch Jail Pot 1", ("Collectable", 0x0C, 0x20, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 1 Torch Jail Pot 2", ("Collectable", 0x0C, 0x21, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 1 Torch Jail Pot 3", ("Collectable", 0x0C, 0x22, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout Kitchen Pot 1", ("Collectable", 0x0C, 0x23, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout Kitchen Pot 2", ("Collectable", 0x0C, 0x24, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 4 Torch Jail Pot 1", ("Collectable", 0x0C, 0x25, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 4 Torch Jail Pot 2", ("Collectable", 0x0C, 0x26, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 2 Torch Jail Pot 1", ("Collectable", 0x0C, 0x27, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 2 Torch Jail Pot 2", ("Collectable", 0x0C, 0x28, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 2 Torch Jail Pot 3", ("Collectable", 0x0C, 0x29, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 2 Torch Jail In Cell Pot 1", ("Collectable", 0x0C, 0x2C, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 2 Torch Jail In Cell Pot 2", ("Collectable", 0x0C, 0x2D, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 2 Torch Jail In Cell Pot 3", ("Collectable", 0x0C, 0x2E, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout 2 Torch Jail In Cell Pot 4", ("Collectable", 0x0C, 0x2F, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), - ("Hideout Break Room Crate 1", ("Collectable", 0x0C, 0x40, ([0x32a00b0],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout Break Room Crate 2", ("Collectable", 0x0C, 0x41, ([0x32a00c0],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout Break Room Hallway Crate 1", ("Collectable", 0x0C, 0x42, ([0x32a00d0],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout Break Room Hallway Crate 2", ("Collectable", 0x0C, 0x43, ([0x32a00e0],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout 3 Torch Jail Crate", ("Collectable", 0x0C, 0x44, ([0x32a50f0],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout 1 Torch Jail Crate", ("Collectable", 0x0C, 0x45, ([0x32ad0f0],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout Near Kitchen Crate 1", ("Collectable", 0x0C, 0x46, ([0x32b10c0],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout Near Kitchen Crate 2", ("Collectable", 0x0C, 0x47, ([0x32b10f0],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout Near Kitchen Crate 3", ("Collectable", 0x0C, 0x48, ([0x32b1100],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout Near Kitchen Crate 4", ("Collectable", 0x0C, 0x49, ([0x32b1110],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout Near Kitchen Crate 5", ("Collectable", 0x0C, 0x4A, ([0x32b1120],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout 2 Torch Jail Crate 1", ("Collectable", 0x0C, 0x4B, ([0x32c1140],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), - ("Hideout 2 Torch Jail Crate 2", ("Collectable", 0x0C, 0x4C, ([0x32c1150],None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout 1 Torch Jail Gerudo Key", ("Collectable", 0x0C, 0x0C, None, 'Small Key (Thieves Hideout)', ("Thieves' Hideout", "Gerudo", "Drop"))), + ("Hideout 2 Torches Jail Gerudo Key", ("Collectable", 0x0C, 0x0F, None, 'Small Key (Thieves Hideout)', ("Thieves' Hideout", "Gerudo", "Drop"))), + ("Hideout 3 Torches Jail Gerudo Key", ("Collectable", 0x0C, 0x0A, None, 'Small Key (Thieves Hideout)', ("Thieves' Hideout", "Gerudo", "Drop"))), + ("Hideout 4 Torches Jail Gerudo Key", ("Collectable", 0x0C, 0x0E, None, 'Small Key (Thieves Hideout)', ("Thieves' Hideout", "Gerudo", "Drop"))), + ("Hideout Gerudo Membership Card", ("NPC", 0x0C, 0x3A, None, 'Gerudo Membership Card', ("Thieves' Hideout", "Gerudo"))), + # Thieves' Hideout Pots/Crates + ("Hideout Break Room Pot 1", ("Collectable", 0x0C, 0x2A, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout Break Room Pot 2", ("Collectable", 0x0C, 0x2B, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 1 Torch Jail Pot 1", ("Collectable", 0x0C, 0x20, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 1 Torch Jail Pot 2", ("Collectable", 0x0C, 0x21, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 1 Torch Jail Pot 3", ("Collectable", 0x0C, 0x22, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout Kitchen Pot 1", ("Collectable", 0x0C, 0x23, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout Kitchen Pot 2", ("Collectable", 0x0C, 0x24, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 4 Torch Jail Pot 1", ("Collectable", 0x0C, 0x25, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 4 Torch Jail Pot 2", ("Collectable", 0x0C, 0x26, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 2 Torch Jail Pot 1", ("Collectable", 0x0C, 0x27, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 2 Torch Jail Pot 2", ("Collectable", 0x0C, 0x28, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 2 Torch Jail Pot 3", ("Collectable", 0x0C, 0x29, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 2 Torch Jail In Cell Pot 1", ("Collectable", 0x0C, 0x2C, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 2 Torch Jail In Cell Pot 2", ("Collectable", 0x0C, 0x2D, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 2 Torch Jail In Cell Pot 3", ("Collectable", 0x0C, 0x2E, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout 2 Torch Jail In Cell Pot 4", ("Collectable", 0x0C, 0x2F, None, 'Recovery Heart', ("Thieves' Hideout", "Gerudo", "Pot"))), + ("Hideout Break Room Crate 1", ("Collectable", 0x0C, 0x40, ([0x32a00b0], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout Break Room Crate 2", ("Collectable", 0x0C, 0x41, ([0x32a00c0], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout Break Room Hallway Crate 1", ("Collectable", 0x0C, 0x42, ([0x32a00d0], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout Break Room Hallway Crate 2", ("Collectable", 0x0C, 0x43, ([0x32a00e0], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout 3 Torch Jail Crate", ("Collectable", 0x0C, 0x44, ([0x32a50f0], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout 1 Torch Jail Crate", ("Collectable", 0x0C, 0x45, ([0x32ad0f0], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout Near Kitchen Crate 1", ("Collectable", 0x0C, 0x46, ([0x32b10c0], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout Near Kitchen Crate 2", ("Collectable", 0x0C, 0x47, ([0x32b10f0], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout Near Kitchen Crate 3", ("Collectable", 0x0C, 0x48, ([0x32b1100], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout Near Kitchen Crate 4", ("Collectable", 0x0C, 0x49, ([0x32b1110], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout Near Kitchen Crate 5", ("Collectable", 0x0C, 0x4A, ([0x32b1120], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout 2 Torch Jail Crate 1", ("Collectable", 0x0C, 0x4B, ([0x32c1140], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), + ("Hideout 2 Torch Jail Crate 2", ("Collectable", 0x0C, 0x4C, ([0x32c1150], None), 'Rupee (1)', ("Thieves' Hideout", "Gerudo", "Crate"))), # 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",))), + ("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"))), # Wasteland Pots/Crates - ("Wasteland Near GS Pot 1", ("Collectable", 0x5E, 0x20, None, 'Recovery Heart', ("Haunted Wasteland", "Pot"))), - ("Wasteland Near GS Pot 2", ("Collectable", 0x5E, 0x21, None, 'Deku Nuts (5)', ("Haunted Wasteland", "Pot"))), - #("Wasteland Near GS Pot 3", ("Collectable", 0x5E, 0x22, None, 'Rupees (5)', ("Haunted Wasteland", "Pot"))), - ("Wasteland Near GS Pot 3", ("Collectable", 0x5E, 0x23, None, 'Rupees (5)', ("Haunted Wasteland", "Pot"))), - ("Wasteland Crate Before Quicksand", ("Collectable", 0x5E, 0x40, ([0x21e32B0],None), 'Rupee (1)', ("Haunted Wasteland", "Crate"))), - ("Wasteland Crate After Quicksand 1", ("Collectable", 0x5E, 0x41, ([0x21e3280],None), 'Rupee (1)', ("Haunted Wasteland", "Crate"))), - ("Wasteland Crate After Quicksand 2", ("Collectable", 0x5E, 0x42, ([0x21e3290],None), 'Rupee (1)', ("Haunted Wasteland","Crate"))), - ("Wasteland Crate After Quicksand 3", ("Collectable", 0x5E, 0x43, ([0x21e32A0],None), 'Rupee (1)', ("Haunted Wasteland","Crate"))), - ("Wasteland Crate Near Colossus", ("Collectable", 0x5E, 0x44, ([0x21e3270],None), 'Rupee (1)', ("Haunted Wasteland", "Crate"))), + ("Wasteland Near GS Pot 1", ("Collectable", 0x5E, 0x20, None, 'Recovery Heart', ("Haunted Wasteland", "Pot"))), + ("Wasteland Near GS Pot 2", ("Collectable", 0x5E, 0x21, None, 'Deku Nuts (5)', ("Haunted Wasteland", "Pot"))), + #("Wasteland Near GS Pot 3", ("Collectable", 0x5E, 0x22, None, 'Rupees (5)', ("Haunted Wasteland", "Pot"))), + ("Wasteland Near GS Pot 3", ("Collectable", 0x5E, 0x23, None, 'Rupees (5)', ("Haunted Wasteland", "Pot"))), + ("Wasteland Crate Before Quicksand", ("Collectable", 0x5E, 0x40, ([0x21e32B0],None), 'Rupee (1)', ("Haunted Wasteland", "Crate"))), + ("Wasteland Crate After Quicksand 1", ("Collectable", 0x5E, 0x41, ([0x21e3280],None), 'Rupee (1)', ("Haunted Wasteland", "Crate"))), + ("Wasteland Crate After Quicksand 2", ("Collectable", 0x5E, 0x42, ([0x21e3290],None), 'Rupee (1)', ("Haunted Wasteland", "Crate"))), + ("Wasteland Crate After Quicksand 3", ("Collectable", 0x5E, 0x43, ([0x21e32A0],None), 'Rupee (1)', ("Haunted Wasteland", "Crate"))), + ("Wasteland Crate Near Colossus", ("Collectable", 0x5E, 0x44, ([0x21e3270],None), 'Rupee (1)', ("Haunted Wasteland", "Crate"))), # 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", ("GrottoScrub", 0xFD, 0x3A, None, 'Buy Green Potion', ("Desert Colossus", "Deku Scrub", "Grottos"))), - ("Colossus Deku Scrub Grotto Rear", ("GrottoScrub", 0xFD, 0x39, None, 'Buy Red Potion for 30 Rupees', ("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",))), + ("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", ("GrottoScrub", 0xFD, 0x3A, None, 'Buy Green Potion', ("Desert Colossus", "Deku Scrub", "Grottos"))), + ("Colossus Deku Scrub Grotto Rear", ("GrottoScrub", 0xFD, 0x39, None, 'Buy Red Potion for 30 Rupees', ("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"))), # Colossus Beehives - ("Colossus Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x1D*2), None, 'Rupees (20)', ("Desert Colossus", "Grottos", "Beehive"))), - + ("Colossus Grotto Beehive", ("Collectable", 0x3E, 0x60 + (0x1D * 2), None, 'Rupees (20)', ("Desert Colossus", "Grottos", "Beehive"))), + # Outside Ganon's Castle - ("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",))), + ("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"))), ## 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 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 Freestanding - ("Deku Tree Lower Lobby Recovery Heart", ("Collectable", 0x00, 0x2C, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), - ("Deku Tree Upper Lobby Recovery Heart", ("Collectable", 0x00, 0x2D, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), - ("Deku Tree Basement Recovery Heart 1", ("Collectable", 0x00, 0x2E, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), - ("Deku Tree Basement Recovery Heart 2", ("Collectable", 0x00, 0x30, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), - ("Deku Tree Basement Recovery Heart 3", ("Collectable", 0x00, 0x31, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), - + ("Deku Tree Lower Lobby Recovery Heart", ("Collectable", 0x00, 0x2C, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), + ("Deku Tree Upper Lobby Recovery Heart", ("Collectable", 0x00, 0x2D, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), + ("Deku Tree Basement Recovery Heart 1", ("Collectable", 0x00, 0x2E, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), + ("Deku Tree Basement Recovery Heart 2", ("Collectable", 0x00, 0x30, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), + ("Deku Tree Basement Recovery Heart 3", ("Collectable", 0x00, 0x31, None, 'Recovery Heart', ("Deku Tree", "Vanilla", "Freestanding"))), + # 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", ("Scrub", 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 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", ("Scrub", 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 MQ Freestanding - ("Deku Tree MQ Lower Lobby Recovery Heart", ("Collectable", 0x00, 0x24, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), - ("Deku Tree MQ Near Compass Room Recovery Heart", ("Collectable", 0x00, 0x23, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), - ("Deku Tree MQ Compass Room Recovery Heart", ("Collectable", 0x00, 0x22, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), - ("Deku Tree MQ Basement Recovery Heart 1", ("Collectable", 0x00, 0x2E, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), - ("Deku Tree MQ Basement Recovery Heart 2", ("Collectable", 0x00, 0x30, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), - ("Deku Tree MQ Basement Recovery Heart 3", ("Collectable", 0x00, 0x31, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), - ("Deku Tree MQ Slingshot Room Recovery Heart", ("Collectable", 0x00, 0x26, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), + ("Deku Tree MQ Lower Lobby Recovery Heart", ("Collectable", 0x00, 0x24, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), + ("Deku Tree MQ Near Compass Room Recovery Heart", ("Collectable", 0x00, 0x23, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), + ("Deku Tree MQ Compass Room Recovery Heart", ("Collectable", 0x00, 0x22, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), + ("Deku Tree MQ Basement Recovery Heart 1", ("Collectable", 0x00, 0x2E, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), + ("Deku Tree MQ Basement Recovery Heart 2", ("Collectable", 0x00, 0x30, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), + ("Deku Tree MQ Basement Recovery Heart 3", ("Collectable", 0x00, 0x31, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), + ("Deku Tree MQ Slingshot Room Recovery Heart", ("Collectable", 0x00, 0x26, None, 'Recovery Heart', ("Deku Tree", "Master Quest", "Freestanding"))), # Deku Tree MQ Pots/Crates - ("Deku Tree MQ Lobby Crate", ("Collectable", 0x0, 0x40, ([0x24bc4cc],None), 'Rupee (1)', ("Deku Tree", "Master Quest", "Crate"))), - ("Deku Tree MQ Slingshot Room Crate 1", ("Collectable", 0x0, 0x41, ([0x2508e94],None), 'Rupee (1)', ("Deku Tree", "Master Quest", "Crate"))), - ("Deku Tree MQ Slingshot Room Crate 2", ("Collectable", 0x0, 0x42, ([0x2508ea4],None), 'Rupee (1)', ("Deku Tree", "Master Quest", "Crate"))), - + ("Deku Tree MQ Lobby Crate", ("Collectable", 0x0, 0x40, ([0x24bc4cc], None), 'Rupee (1)', ("Deku Tree", "Master Quest", "Crate"))), + ("Deku Tree MQ Slingshot Room Crate 1", ("Collectable", 0x0, 0x41, ([0x2508e94], None), 'Rupee (1)', ("Deku Tree", "Master Quest", "Crate"))), + ("Deku Tree MQ Slingshot Room Crate 2", ("Collectable", 0x0, 0x42, ([0x2508ea4], None), 'Rupee (1)', ("Deku Tree", "Master Quest", "Crate"))), + # Deku Tree shared - ("Deku Tree Queen Gohma Heart", ("BossHeart", 0x11, 0x4F, None, 'Heart Container', ("Deku Tree", "Vanilla", "Master Quest",))), + ("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", ("Scrub", 0x01, 0x31, None, 'Buy Deku Stick (1)', ("Dodongo's Cavern", "Vanilla", "Deku Scrub",))), - ("Dodongos Cavern Deku Scrub Lobby", ("Scrub", 0x01, 0x34, None, 'Buy Deku Shield', ("Dodongo's Cavern", "Vanilla", "Deku Scrub",))), - ("Dodongos Cavern Deku Scrub Near Bomb Bag Left", ("Scrub", 0x01, 0x30, None, 'Buy Deku Nut (5)', ("Dodongo's Cavern", "Vanilla", "Deku Scrub",))), - ("Dodongos Cavern Deku Scrub Near Bomb Bag Right", ("Scrub", 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",))), + ("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", ("Scrub", 0x01, 0x31, None, 'Buy Deku Stick (1)', ("Dodongo's Cavern", "Vanilla", "Deku Scrub"))), + ("Dodongos Cavern Deku Scrub Lobby", ("Scrub", 0x01, 0x34, None, 'Buy Deku Shield', ("Dodongo's Cavern", "Vanilla", "Deku Scrub"))), + ("Dodongos Cavern Deku Scrub Near Bomb Bag Left", ("Scrub", 0x01, 0x30, None, 'Buy Deku Nut (5)', ("Dodongo's Cavern", "Vanilla", "Deku Scrub"))), + ("Dodongos Cavern Deku Scrub Near Bomb Bag Right", ("Scrub", 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 Vanilla Freestanding - ("Dodongos Cavern Lizalfos Upper Recovery Heart 1", ("Collectable", 0x01, 0x24, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Freestanding",))), - ("Dodongos Cavern Lizalfos Upper Recovery Heart 2", ("Collectable", 0x01, 0x25, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Freestanding",))), - ("Dodongos Cavern Blade Room Behind Block Recovery Heart", ("Collectable", 0x01, 0x30, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Freestanding",))), + ("Dodongos Cavern Lizalfos Upper Recovery Heart 1", ("Collectable", 0x01, 0x24, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Freestanding"))), + ("Dodongos Cavern Lizalfos Upper Recovery Heart 2", ("Collectable", 0x01, 0x25, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Freestanding"))), + ("Dodongos Cavern Blade Room Behind Block Recovery Heart", ("Collectable", 0x01, 0x30, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Freestanding"))), # Dodongo's Cavern Vanilla Pots - ("Dodongos Cavern Right Side Pot 1", ("Collectable", 0x01, 0x22, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Right Side Pot 2", ("Collectable", 0x01, 0x23, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Right Side Pot 3", ("Collectable", 0x01, 0x26, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Right Side Pot 4", ("Collectable", 0x01, 0x27, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Right Side Pot 5", ("Collectable", 0x01, 0x28, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Right Side Pot 6", ("Collectable", 0x01, 0x29, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Lower Lizalfos Pot 1", ("Collectable", 0x01, 0x2A, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Lower Lizalfos Pot 2", ("Collectable", 0x01, 0x2B, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Lower Lizalfos Pot 3", ("Collectable", 0x01, 0x2C, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Lower Lizalfos Pot 4", ("Collectable", 0x01, 0x2D, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Torch Room Pot 1", ("Collectable", 0x01, 0x2E, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Torch Room Pot 2", ("Collectable", 0x01, 0x2F, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Torch Room Pot 3", ("Collectable", 0x01, 0x31, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Torch Room Pot 4", ("Collectable", 0x01, 0x32, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Staircase Pot 1", ("Collectable", 0x01, 0x33, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Staircase Pot 2", ("Collectable", 0x01, 0x34, None, 'Rupees (20)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Staircase Pot 3", ("Collectable", 0x01, 0x35, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Staircase Pot 4", ("Collectable", 0x01, 0x36, None, 'Rupees (20)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Last Block Pot 1", ("Collectable", 0x01, 0x3D, None, 'Bombs (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Last Block Pot 2", ("Collectable", 0x01, 0x3E, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Last Block Pot 3", ("Collectable", 0x01, 0x20, None, 'Deku Seeds (30)', ("Dodongo's Cavern", "Vanilla", "Pot"))), -# ("Dodongos Cavern Last Block Pot 4", ("Collectable", 0x01, 0x21, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Blade Room Pot 1", ("Collectable", 0x01, 0x37, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Blade Room Pot 2", ("Collectable", 0x01, 0x38, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Single Eye Switch Room Pot 1", ("Collectable", 0x01, 0x39, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Single Eye Switch Room Pot 2", ("Collectable", 0x01, 0x3A, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Double Eye Switch Room Pot 1", ("Collectable", 0x01, 0x3B, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), - ("Dodongos Cavern Double Eye Switch Room Pot 2", ("Collectable", 0x01, 0x3C, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), - + ("Dodongos Cavern Right Side Pot 1", ("Collectable", 0x01, 0x22, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Right Side Pot 2", ("Collectable", 0x01, 0x23, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Right Side Pot 3", ("Collectable", 0x01, 0x26, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Right Side Pot 4", ("Collectable", 0x01, 0x27, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Right Side Pot 5", ("Collectable", 0x01, 0x28, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Right Side Pot 6", ("Collectable", 0x01, 0x29, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Lower Lizalfos Pot 1", ("Collectable", 0x01, 0x2A, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Lower Lizalfos Pot 2", ("Collectable", 0x01, 0x2B, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Lower Lizalfos Pot 3", ("Collectable", 0x01, 0x2C, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Lower Lizalfos Pot 4", ("Collectable", 0x01, 0x2D, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Torch Room Pot 1", ("Collectable", 0x01, 0x2E, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Torch Room Pot 2", ("Collectable", 0x01, 0x2F, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Torch Room Pot 3", ("Collectable", 0x01, 0x31, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Torch Room Pot 4", ("Collectable", 0x01, 0x32, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Staircase Pot 1", ("Collectable", 0x01, 0x33, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Staircase Pot 2", ("Collectable", 0x01, 0x34, None, 'Rupees (20)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Staircase Pot 3", ("Collectable", 0x01, 0x35, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Staircase Pot 4", ("Collectable", 0x01, 0x36, None, 'Rupees (20)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Last Block Pot 1", ("Collectable", 0x01, 0x3D, None, 'Bombs (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Last Block Pot 2", ("Collectable", 0x01, 0x3E, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Last Block Pot 3", ("Collectable", 0x01, 0x20, None, 'Deku Seeds (30)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + #("Dodongos Cavern Last Block Pot 4", ("Collectable", 0x01, 0x21, None, 'Rupee (1)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Blade Room Pot 1", ("Collectable", 0x01, 0x37, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Blade Room Pot 2", ("Collectable", 0x01, 0x38, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Single Eye Switch Room Pot 1", ("Collectable", 0x01, 0x39, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Single Eye Switch Room Pot 2", ("Collectable", 0x01, 0x3A, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Double Eye Switch Room Pot 1", ("Collectable", 0x01, 0x3B, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Pot"))), + ("Dodongos Cavern Double Eye Switch Room Pot 2", ("Collectable", 0x01, 0x3C, None, 'Rupees (5)', ("Dodongo's Cavern", "Vanilla", "Pot"))), # 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", ("Scrub", 0x01, 0x33, None, 'Buy Deku Seeds (30)', ("Dodongo's Cavern", "Master Quest", "Deku Scrub",))), - ("Dodongos Cavern MQ Deku Scrub Lobby Rear", ("Scrub", 0x01, 0x31, None, 'Buy Deku Stick (1)', ("Dodongo's Cavern", "Master Quest", "Deku Scrub",))), - ("Dodongos Cavern MQ Deku Scrub Side Room Near Lower Lizalfos", ("Scrub", 0x01, 0x39, None, 'Buy Red Potion for 30 Rupees', ("Dodongo's Cavern", "Master Quest", "Deku Scrub",))), - ("Dodongos Cavern MQ Deku Scrub Staircase", ("Scrub", 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",))), + ("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", ("Scrub", 0x01, 0x33, None, 'Buy Deku Seeds (30)', ("Dodongo's Cavern", "Master Quest", "Deku Scrub"))), + ("Dodongos Cavern MQ Deku Scrub Lobby Rear", ("Scrub", 0x01, 0x31, None, 'Buy Deku Stick (1)', ("Dodongo's Cavern", "Master Quest", "Deku Scrub"))), + ("Dodongos Cavern MQ Deku Scrub Side Room Near Lower Lizalfos", ("Scrub", 0x01, 0x39, None, 'Buy Red Potion for 30 Rupees', ("Dodongo's Cavern", "Master Quest", "Deku Scrub"))), + ("Dodongos Cavern MQ Deku Scrub Staircase", ("Scrub", 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 MQ Freestanding - ("Dodongos Cavern MQ Torch Puzzle Room Recovery Heart", ("Collectable", 0x01, 0x30, None, 'Recovery Heart', ("Dodongo's Cavern", "Master Quest", "Freestanding"))), + ("Dodongos Cavern MQ Torch Puzzle Room Recovery Heart", ("Collectable", 0x01, 0x30, None, 'Recovery Heart', ("Dodongo's Cavern", "Master Quest", "Freestanding"))), # Dodongo's Cavern MQ Pots - ("Dodongos Cavern MQ Right Side Pot 1", ("Collectable", 0x01, 0x22, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Right Side Pot 2", ("Collectable", 0x01, 0x23, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Right Side Pot 3", ("Collectable", 0x01, 0x28, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Right Side Pot 4", ("Collectable", 0x01, 0x29, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Staircase Pot 1", ("Collectable", 0x01, 0x33, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Staircase Pot 2", ("Collectable", 0x01, 0x34, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Staircase Pot 3", ("Collectable", 0x01, 0x35, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Staircase Pot 4", ("Collectable", 0x01, 0x36, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Upper Lizalfos Pot 1", ("Collectable", 0x01, 0x2A, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Upper Lizalfos Pot 2", ("Collectable", 0x01, 0x2B, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Upper Lizalfos Pot 3", ("Collectable", 0x01, 0x2C, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Upper Lizalfos Pot 4", ("Collectable", 0x01, 0x2D, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Poes Room Pot 1", ("Collectable", 0x01, 0x2E, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Poes Room Pot 2", ("Collectable", 0x01, 0x2F, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Poes Room Pot 3", ("Collectable", 0x01, 0x31, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Poes Room Pot 4", ("Collectable", 0x01, 0x32, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Room Before Boss Pot 1", ("Collectable", 0x01, 0x3D, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Room Before Boss Pot 2", ("Collectable", 0x01, 0x3E, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Armos Army Room Upper Pot", ("Collectable", 0x01, 0x20, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Armos Army Room Pot 1", ("Collectable", 0x01, 0x37, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Armos Army Room Pot 2", ("Collectable", 0x01, 0x21, ([0x1f88578], None), 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Torch Puzzle Room Pot Pillar", ("Collectable", 0x01, 0x26, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Torch Puzzle Room Pot Corner", ("Collectable", 0x01, 0x27, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Before Upper Lizalfos Pot 1", ("Collectable", 0x01, 0x39, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Before Upper Lizalfos Pot 2", ("Collectable", 0x01, 0x3A, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ After Upper Lizalfos Pot 1", ("Collectable", 0x01, 0x3B, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ After Upper Lizalfos Pot 2", ("Collectable", 0x01, 0x3C, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Back Poe Room Pot 1", ("Collectable", 0x01, 0x38, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), - ("Dodongos Cavern MQ Back Poe Room Pot 2", ("Collectable", 0x01, 0x3F, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Right Side Pot 1", ("Collectable", 0x01, 0x22, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Right Side Pot 2", ("Collectable", 0x01, 0x23, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Right Side Pot 3", ("Collectable", 0x01, 0x28, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Right Side Pot 4", ("Collectable", 0x01, 0x29, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Staircase Pot 1", ("Collectable", 0x01, 0x33, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Staircase Pot 2", ("Collectable", 0x01, 0x34, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Staircase Pot 3", ("Collectable", 0x01, 0x35, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Staircase Pot 4", ("Collectable", 0x01, 0x36, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Upper Lizalfos Pot 1", ("Collectable", 0x01, 0x2A, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Upper Lizalfos Pot 2", ("Collectable", 0x01, 0x2B, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Upper Lizalfos Pot 3", ("Collectable", 0x01, 0x2C, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Upper Lizalfos Pot 4", ("Collectable", 0x01, 0x2D, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Poes Room Pot 1", ("Collectable", 0x01, 0x2E, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Poes Room Pot 2", ("Collectable", 0x01, 0x2F, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Poes Room Pot 3", ("Collectable", 0x01, 0x31, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Poes Room Pot 4", ("Collectable", 0x01, 0x32, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Room Before Boss Pot 1", ("Collectable", 0x01, 0x3D, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Room Before Boss Pot 2", ("Collectable", 0x01, 0x3E, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Armos Army Room Upper Pot", ("Collectable", 0x01, 0x20, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Armos Army Room Pot 1", ("Collectable", 0x01, 0x37, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Armos Army Room Pot 2", ("Collectable", 0x01, 0x21, ([0x1f88578], None), 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Torch Puzzle Room Pot Pillar", ("Collectable", 0x01, 0x26, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Torch Puzzle Room Pot Corner", ("Collectable", 0x01, 0x27, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Before Upper Lizalfos Pot 1", ("Collectable", 0x01, 0x39, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Before Upper Lizalfos Pot 2", ("Collectable", 0x01, 0x3A, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ After Upper Lizalfos Pot 1", ("Collectable", 0x01, 0x3B, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ After Upper Lizalfos Pot 2", ("Collectable", 0x01, 0x3C, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Back Poe Room Pot 1", ("Collectable", 0x01, 0x38, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), + ("Dodongos Cavern MQ Back Poe Room Pot 2", ("Collectable", 0x01, 0x3F, None, 'Rupees (5)', ("Dodongo's Cavern", "Master Quest", "Pot"))), # Dodongo's Cavern MQ Crates - ("Dodongos Cavern MQ Staircase Crate Bottom Left", ("Collectable", 0x1, 0x40, ([0x1f55d04],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Staircase Crate Bottom Right", ("Collectable", 0x1, 0x41, ([0x1f55d14],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Staircase Crate Mid Left", ("Collectable", 0x1, 0x42, ([0x1f55ce4],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Staircase Crate Top Left", ("Collectable", 0x1, 0x43, ([0x1f55cf4],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Staircase Crate Mid Right", ("Collectable", 0x1, 0x44, ([0x1f55d24],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Staircase Crate Top Right", ("Collectable", 0x1, 0x45, ([0x1f55d34],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Poes Room Crate 5", ("Collectable", 0x1, 0x46, ([0x1f6d9bc],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Poes Room Crate 6", ("Collectable", 0x1, 0x47, ([0x1f6d9cc],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Poes Room Crate 1", ("Collectable", 0x1, 0x48, ([0x1f6d9dc],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Poes Room Crate 2", ("Collectable", 0x1, 0x49, ([0x1f6d9ec],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Poes Room Crate 3", ("Collectable", 0x1, 0x4A, ([0x1f6d9fc],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Poes Room Crate 4", ("Collectable", 0x1, 0x4B, ([0x1f6da0c],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Poes Room Crate Near Bombflower", ("Collectable", 0x1, 0x4C, ([0x1f6da1c],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Poes Room Crate 7", ("Collectable", 0x1, 0x4D, ([0x1f6da2c],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Larvae Room Crate 1", ("Collectable", 0x1, 0x4E, ([0x1f7646c],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Larvae Room Crate 2", ("Collectable", 0x1, 0x4F, ([0x1f7647c],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Larvae Room Crate 3", ("Collectable", 0x1, 0x50, ([0x1f7648c],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Larvae Room Crate 4", ("Collectable", 0x1, 0x51, ([0x1f7649c],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Larvae Room Crate 5", ("Collectable", 0x1, 0x52, ([0x1f764ac],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ Larvae Room Crate 6", ("Collectable", 0x1, 0x53, ([0x1f764bc],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ After Upper Lizalfos Crate 1", ("Collectable", 0x1, 0x54, ([0x1fa87f0],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), - ("Dodongos Cavern MQ After Upper Lizalfos Crate 2", ("Collectable", 0x1, 0x55, ([0x1fa8800],None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Staircase Crate Bottom Left", ("Collectable", 0x1, 0x40, ([0x1f55d04], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Staircase Crate Bottom Right", ("Collectable", 0x1, 0x41, ([0x1f55d14], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Staircase Crate Mid Left", ("Collectable", 0x1, 0x42, ([0x1f55ce4], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Staircase Crate Top Left", ("Collectable", 0x1, 0x43, ([0x1f55cf4], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Staircase Crate Mid Right", ("Collectable", 0x1, 0x44, ([0x1f55d24], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Staircase Crate Top Right", ("Collectable", 0x1, 0x45, ([0x1f55d34], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Poes Room Crate 5", ("Collectable", 0x1, 0x46, ([0x1f6d9bc], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Poes Room Crate 6", ("Collectable", 0x1, 0x47, ([0x1f6d9cc], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Poes Room Crate 1", ("Collectable", 0x1, 0x48, ([0x1f6d9dc], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Poes Room Crate 2", ("Collectable", 0x1, 0x49, ([0x1f6d9ec], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Poes Room Crate 3", ("Collectable", 0x1, 0x4A, ([0x1f6d9fc], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Poes Room Crate 4", ("Collectable", 0x1, 0x4B, ([0x1f6da0c], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Poes Room Crate Near Bomb Flower", ("Collectable", 0x1, 0x4C, ([0x1f6da1c], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Poes Room Crate 7", ("Collectable", 0x1, 0x4D, ([0x1f6da2c], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Larvae Room Crate 1", ("Collectable", 0x1, 0x4E, ([0x1f7646c], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Larvae Room Crate 2", ("Collectable", 0x1, 0x4F, ([0x1f7647c], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Larvae Room Crate 3", ("Collectable", 0x1, 0x50, ([0x1f7648c], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Larvae Room Crate 4", ("Collectable", 0x1, 0x51, ([0x1f7649c], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Larvae Room Crate 5", ("Collectable", 0x1, 0x52, ([0x1f764ac], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ Larvae Room Crate 6", ("Collectable", 0x1, 0x53, ([0x1f764bc], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ After Upper Lizalfos Crate 1", ("Collectable", 0x1, 0x54, ([0x1fa87f0], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), + ("Dodongos Cavern MQ After Upper Lizalfos Crate 2", ("Collectable", 0x1, 0x55, ([0x1fa8800], None), 'Rupee (1)', ("Dodongo's Cavern", "Master Quest", "Crate"))), # Dodongo's Cavern shared - ("Dodongos Cavern Lower Lizalfos Hidden Recovery Heart", ("Collectable", 0x01, 0x18, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Master Quest", "Freestanding",))), - ("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",))), + ("Dodongos Cavern Lower Lizalfos Hidden Recovery Heart", ("Collectable", 0x01, 0x18, None, 'Recovery Heart', ("Dodongo's Cavern", "Vanilla", "Master Quest", "Freestanding"))), + ("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", ("Scrub", 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 Vanilla Pots - #("Jabu Jabus Belly Above Big Octo Pot X", ("Collectable", 0x02, 0x28, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - ("Jabu Jabus Belly Above Big Octo Pot 1", ("Collectable", 0x02, 0x29, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - ("Jabu Jabus Belly Above Big Octo Pot 2", ("Collectable", 0x02, 0x2A, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - #("Jabu Jabus Belly DLC Pot X", ("Collectable", 0x02, 0x20, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - ("Jabu Jabus Belly Basement 2 Octoroks Pot 1", ("Collectable", 0x02, 0x21, None, 'Rupees (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - ("Jabu Jabus Belly Basement 2 Octoroks Pot 2", ("Collectable", 0x02, 0x22, None, 'Rupees (20)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - ("Jabu Jabus Belly Basement 2 Octoroks Pot 3", ("Collectable", 0x02, 0x23, None, 'Rupees (20)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - ("Jabu Jabus Belly Basement 2 Octoroks Pot 4", ("Collectable", 0x02, 0x24, None, 'Rupees (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - ("Jabu Jabus Belly Basement Switch Room Pot 1", ("Collectable", 0x02, 0x25, None, 'Deku Seeds (30)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - #("Jabu Jabus Belly Basement Switch Room Pot X", ("Collectable", 0x02, 0x26, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - ("Jabu Jabus Belly Basement Switch Room Pot 2", ("Collectable", 0x02, 0x27, None, 'Deku Seeds (30)', ("Jabu Jabu's Belly", "Vanilla", "Pot",))), - ("Jabu Jabus Belly Small Wooden Crate", ("Collectable", 0x2, 0x3F, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "SmallCrate"))), + ("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", ("Scrub", 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 Vanilla Pots + #("Jabu Jabus Belly Above Big Octo Pot X", ("Collectable", 0x02, 0x28, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + ("Jabu Jabus Belly Above Big Octo Pot 1", ("Collectable", 0x02, 0x29, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + ("Jabu Jabus Belly Above Big Octo Pot 2", ("Collectable", 0x02, 0x2A, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + #("Jabu Jabus Belly DLC Pot X", ("Collectable", 0x02, 0x20, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + ("Jabu Jabus Belly Basement 2 Octoroks Pot 1", ("Collectable", 0x02, 0x21, None, 'Rupees (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + ("Jabu Jabus Belly Basement 2 Octoroks Pot 2", ("Collectable", 0x02, 0x22, None, 'Rupees (20)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + ("Jabu Jabus Belly Basement 2 Octoroks Pot 3", ("Collectable", 0x02, 0x23, None, 'Rupees (20)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + ("Jabu Jabus Belly Basement 2 Octoroks Pot 4", ("Collectable", 0x02, 0x24, None, 'Rupees (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + ("Jabu Jabus Belly Basement Switch Room Pot 1", ("Collectable", 0x02, 0x25, None, 'Deku Seeds (30)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + #("Jabu Jabus Belly Basement Switch Room Pot X", ("Collectable", 0x02, 0x26, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + ("Jabu Jabus Belly Basement Switch Room Pot 2", ("Collectable", 0x02, 0x27, None, 'Deku Seeds (30)', ("Jabu Jabu's Belly", "Vanilla", "Pot"))), + ("Jabu Jabus Belly Small Wooden Crate", ("Collectable", 0x02, 0x3F, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "SmallCrate"))), # 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 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 MQ Freestanding - ("Jabu Jabus Belly MQ Underwater Green Rupee 1", ("Collectable", 0x02, 0x01, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), - ("Jabu Jabus Belly MQ Underwater Green Rupee 2", ("Collectable", 0x02, 0x02, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), - ("Jabu Jabus Belly MQ Underwater Green Rupee 3", ("Collectable", 0x02, 0x03, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), - ("Jabu Jabus Belly MQ Recovery Heart 1", ("Collectable", 0x02, 0x27, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), - ("Jabu Jabus Belly MQ Recovery Heart 2", ("Collectable", 0x02, 0x28, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), + ("Jabu Jabus Belly MQ Underwater Green Rupee 1", ("Collectable", 0x02, 0x01, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), + ("Jabu Jabus Belly MQ Underwater Green Rupee 2", ("Collectable", 0x02, 0x02, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), + ("Jabu Jabus Belly MQ Underwater Green Rupee 3", ("Collectable", 0x02, 0x03, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), + ("Jabu Jabus Belly MQ Recovery Heart 1", ("Collectable", 0x02, 0x27, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), + ("Jabu Jabus Belly MQ Recovery Heart 2", ("Collectable", 0x02, 0x28, None, 'Rupee (1)', ("Jabu Jabu's Belly", "Master Quest", "Freestanding"))), # Jabu Jabu's Belly MQ Pots - ("Jabu Jabus Belly MQ First Room Pot 1", ("Collectable", 0x02, 0x3C, None, 'Bombs (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), - ("Jabu Jabus Belly MQ First Room Pot 2", ("Collectable", 0x02, 0x32, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), - ("Jabu Jabus Belly MQ Elevator Room Pot 1", ("Collectable", 0x02, 0x39, None, 'Arrows (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), - ("Jabu Jabus Belly MQ Elevator Room Pot 2", ("Collectable", 0x02, 0x3A, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), - #("Jabu Jabus Belly MQ Near Boss Pot", ("Collectable", 0x02, 0x31, None, 'N/A', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), - ("Jabu Jabus Belly MQ Falling Like Like Room Pot 1", ("Collectable", 0x02, 0x3D, None, 'Arrows (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), - ("Jabu Jabus Belly MQ Falling Like Like Room Pot 2", ("Collectable", 0x02, 0x3F, None, 'Bombs (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), - ("Jabu Jabus Belly MQ Boomerang Room Pot 1", ("Collectable", 0x02, 0x33, None, 'Bombs (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), - ("Jabu Jabus Belly MQ Boomerang Room Pot 2", ("Collectable", 0x02, 0x34, None, 'Bombs (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), + ("Jabu Jabus Belly MQ First Room Pot 1", ("Collectable", 0x02, 0x3C, None, 'Bombs (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), + ("Jabu Jabus Belly MQ First Room Pot 2", ("Collectable", 0x02, 0x32, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), + ("Jabu Jabus Belly MQ Elevator Room Pot 1", ("Collectable", 0x02, 0x39, None, 'Arrows (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), + ("Jabu Jabus Belly MQ Elevator Room Pot 2", ("Collectable", 0x02, 0x3A, None, 'Deku Nuts (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), + #("Jabu Jabus Belly MQ Near Boss Pot", ("Collectable", 0x02, 0x31, None, 'N/A', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), + ("Jabu Jabus Belly MQ Falling Like Like Room Pot 1", ("Collectable", 0x02, 0x3D, None, 'Arrows (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), + ("Jabu Jabus Belly MQ Falling Like Like Room Pot 2", ("Collectable", 0x02, 0x3F, None, 'Bombs (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), + ("Jabu Jabus Belly MQ Boomerang Room Pot 1", ("Collectable", 0x02, 0x33, None, 'Bombs (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), + ("Jabu Jabus Belly MQ Boomerang Room Pot 2", ("Collectable", 0x02, 0x34, None, 'Bombs (5)', ("Jabu Jabu's Belly", "Master Quest", "Pot"))), # Jabu Jabu's Belly shared - ("Jabu Jabus Belly Barinade Heart", ("BossHeart", 0x13, 0x4F, None, 'Heart Container', ("Jabu Jabu's Belly", "Vanilla", "Master Quest",))), - ("Jabu Jabus Belly Barinade Pot 1", ("Collectable", 0x13, 0x20, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), - ("Jabu Jabus Belly Barinade Pot 2", ("Collectable", 0x13, 0x21, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), - ("Jabu Jabus Belly Barinade Pot 3", ("Collectable", 0x13, 0x22, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), - ("Jabu Jabus Belly Barinade Pot 4", ("Collectable", 0x13, 0x23, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), - ("Jabu Jabus Belly Barinade Pot 5", ("Collectable", 0x13, 0x24, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), - ("Jabu Jabus Belly Barinade Pot 6", ("Collectable", 0x13, 0x25, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), + ("Jabu Jabus Belly Barinade Heart", ("BossHeart", 0x13, 0x4F, None, 'Heart Container', ("Jabu Jabu's Belly", "Vanilla", "Master Quest"))), + ("Jabu Jabus Belly Barinade Pot 1", ("Collectable", 0x13, 0x20, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), + ("Jabu Jabus Belly Barinade Pot 2", ("Collectable", 0x13, 0x21, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), + ("Jabu Jabus Belly Barinade Pot 3", ("Collectable", 0x13, 0x22, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), + ("Jabu Jabus Belly Barinade Pot 4", ("Collectable", 0x13, 0x23, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), + ("Jabu Jabus Belly Barinade Pot 5", ("Collectable", 0x13, 0x24, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), + ("Jabu Jabus Belly Barinade Pot 6", ("Collectable", 0x13, 0x25, None, 'Recovery Heart', ("Jabu Jabu's Belly", "Vanilla", "Master Quest", "Pot"))), # 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 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 Vanilla Freestanding - ("Bottom of the Well Center Room Pit Fall Blue Rupee 1", ("Collectable", 0x08, 0x02, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), - ("Bottom of the Well Center Room Pit Fall Blue Rupee 2", ("Collectable", 0x08, 0x03, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), - ("Bottom of the Well Center Room Pit Fall Blue Rupee 3", ("Collectable", 0x08, 0x04, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), - ("Bottom of the Well Center Room Pit Fall Blue Rupee 4", ("Collectable", 0x08, 0x05, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), - ("Bottom of the Well Center Room Pit Fall Blue Rupee 5", ("Collectable", 0x08, 0x06, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), - ("Bottom of the Well Coffin Recovery Heart 1", ("Collectable", 0x08, 0x1F, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Freestanding"))), - ("Bottom of the Well Coffin Recovery Heart 2", ("Collectable", 0x08, 0x20, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Freestanding"))), + ("Bottom of the Well Center Room Pit Fall Blue Rupee 1", ("Collectable", 0x08, 0x02, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), + ("Bottom of the Well Center Room Pit Fall Blue Rupee 2", ("Collectable", 0x08, 0x03, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), + ("Bottom of the Well Center Room Pit Fall Blue Rupee 3", ("Collectable", 0x08, 0x04, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), + ("Bottom of the Well Center Room Pit Fall Blue Rupee 4", ("Collectable", 0x08, 0x05, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), + ("Bottom of the Well Center Room Pit Fall Blue Rupee 5", ("Collectable", 0x08, 0x06, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Freestanding"))), + ("Bottom of the Well Coffin Recovery Heart 1", ("Collectable", 0x08, 0x1F, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Freestanding"))), + ("Bottom of the Well Coffin Recovery Heart 2", ("Collectable", 0x08, 0x20, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Freestanding"))), # Bottom of the Well Vanilla Pots - ("Bottom of the Well Left Side Pot 1", ("Collectable", 0x08, 0x21, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Left Side Pot 2", ("Collectable", 0x08, 0x22, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Left Side Pot 3", ("Collectable", 0x08, 0x23, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Near Entrance Pot 1", ("Collectable", 0x08, 0x24, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Near Entrance Pot 2", ("Collectable", 0x08, 0x25, None, 'Rupees (20)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Underwater Pot", ("Collectable", 0x08, 0x26, None, 'Bombs (10)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 1", ("Collectable", 0x08, 0x27, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 2", ("Collectable", 0x08, 0x28, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 3", ("Collectable", 0x08, 0x29, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 4", ("Collectable", 0x08, 0x2A, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 5", ("Collectable", 0x08, 0x2B, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 6", ("Collectable", 0x08, 0x2C, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 7", ("Collectable", 0x08, 0x2D, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 8", ("Collectable", 0x08, 0x2E, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 9", ("Collectable", 0x08, 0x2F, None, 'Deku Nuts (5)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 10", ("Collectable", 0x08, 0x30, None, 'Rupees (20)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 11", ("Collectable", 0x08, 0x31, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Basement Pot 12", ("Collectable", 0x08, 0x32, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well Fire Keese Pot", ("Collectable", 0x08, 0x33, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), - ("Bottom of the Well West Inner Room Flying Pot 1", ("Collectable", 0x08, 0x34, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "FlyingPot"))), - ("Bottom of the Well West Inner Room Flying Pot 2", ("Collectable", 0x08, 0x35, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "FlyingPot"))), - ("Bottom of the Well West Inner Room Flying Pot 3", ("Collectable", 0x08, 0x36, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "FlyingPot"))), + ("Bottom of the Well Left Side Pot 1", ("Collectable", 0x08, 0x21, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Left Side Pot 2", ("Collectable", 0x08, 0x22, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Left Side Pot 3", ("Collectable", 0x08, 0x23, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Near Entrance Pot 1", ("Collectable", 0x08, 0x24, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Near Entrance Pot 2", ("Collectable", 0x08, 0x25, None, 'Rupees (20)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Underwater Pot", ("Collectable", 0x08, 0x26, None, 'Bombs (10)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 1", ("Collectable", 0x08, 0x27, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 2", ("Collectable", 0x08, 0x28, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 3", ("Collectable", 0x08, 0x29, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 4", ("Collectable", 0x08, 0x2A, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 5", ("Collectable", 0x08, 0x2B, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 6", ("Collectable", 0x08, 0x2C, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 7", ("Collectable", 0x08, 0x2D, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 8", ("Collectable", 0x08, 0x2E, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 9", ("Collectable", 0x08, 0x2F, None, 'Deku Nuts (5)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 10", ("Collectable", 0x08, 0x30, None, 'Rupees (20)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 11", ("Collectable", 0x08, 0x31, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Basement Pot 12", ("Collectable", 0x08, 0x32, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well Fire Keese Pot", ("Collectable", 0x08, 0x33, None, 'Rupees (5)', ("Bottom of the Well", "Vanilla", "Pot"))), + ("Bottom of the Well West Inner Room Flying Pot 1", ("Collectable", 0x08, 0x34, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "FlyingPot"))), + ("Bottom of the Well West Inner Room Flying Pot 2", ("Collectable", 0x08, 0x35, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "FlyingPot"))), + ("Bottom of the Well West Inner Room Flying Pot 3", ("Collectable", 0x08, 0x36, None, 'Recovery Heart', ("Bottom of the Well", "Vanilla", "FlyingPot"))), # 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",))), + ("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"))), # Bottom of the Well MQ Freestanding - ("Bottom of the Well MQ Bombable Recovery Heart 1", ("Collectable", 0x08, 0x21, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), - ("Bottom of the Well MQ Bombable Recovery Heart 2", ("Collectable", 0x08, 0x22, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), - ("Bottom of the Well MQ Basement Recovery Heart 1", ("Collectable", 0x08, 0x3C, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), - ("Bottom of the Well MQ Basement Recovery Heart 2", ("Collectable", 0x08, 0x3D, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), - ("Bottom of the Well MQ Basement Recovery Heart 3", ("Collectable", 0x08, 0x3E, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), - ("Bottom of the Well MQ Coffin Recovery Heart 1", ("Collectable", 0x08, 0x20, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), - ("Bottom of the Well MQ Coffin Recovery Heart 2", ("Collectable", 0x08, 0x23, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), + ("Bottom of the Well MQ Bombable Recovery Heart 1", ("Collectable", 0x08, 0x21, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), + ("Bottom of the Well MQ Bombable Recovery Heart 2", ("Collectable", 0x08, 0x22, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), + ("Bottom of the Well MQ Basement Recovery Heart 1", ("Collectable", 0x08, 0x3C, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), + ("Bottom of the Well MQ Basement Recovery Heart 2", ("Collectable", 0x08, 0x3D, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), + ("Bottom of the Well MQ Basement Recovery Heart 3", ("Collectable", 0x08, 0x3E, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), + ("Bottom of the Well MQ Coffin Recovery Heart 1", ("Collectable", 0x08, 0x20, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), + ("Bottom of the Well MQ Coffin Recovery Heart 2", ("Collectable", 0x08, 0x23, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Freestanding"))), # Bottom of the Well MQ Pots - ("Bottom of the Well MQ Center Room Right Pot 1", ("Collectable", 0x08, 0x29, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Pot"))), - ("Bottom of the Well MQ Center Room Right Pot 2", ("Collectable", 0x08, 0x27, None, 'Arrows (10)', ("Bottom of the Well", "Master Quest", "Pot"))), - ("Bottom of the Well MQ Center Room Right Pot 3", ("Collectable", 0x08, 0x28, None, 'Bombs (5)', ("Bottom of the Well", "Master Quest", "Pot"))), - #("Bottom of the Well MQ Perimiter Behind Gate Bot", ("Collectable", 0x08, 0x2A, None, 'N/A', ("Bottom of the Well", "Master Quest", "Pot"))), - ("Bottom of the Well MQ East Inner Room Pot 1", ("Collectable", 0x08, 0x26, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Pot"))), - ("Bottom of the Well MQ East Inner Room Pot 2", ("Collectable", 0x08, 0x25, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Pot"))), - ("Bottom of the Well MQ East Inner Room Pot 3", ("Collectable", 0x08, 0x24, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Pot"))), + ("Bottom of the Well MQ Center Room Right Pot 1", ("Collectable", 0x08, 0x29, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Pot"))), + ("Bottom of the Well MQ Center Room Right Pot 2", ("Collectable", 0x08, 0x27, None, 'Arrows (10)', ("Bottom of the Well", "Master Quest", "Pot"))), + ("Bottom of the Well MQ Center Room Right Pot 3", ("Collectable", 0x08, 0x28, None, 'Bombs (5)', ("Bottom of the Well", "Master Quest", "Pot"))), + #("Bottom of the Well MQ Perimiter Behind Gate Bot", ("Collectable", 0x08, 0x2A, None, 'N/A', ("Bottom of the Well", "Master Quest", "Pot"))), + ("Bottom of the Well MQ East Inner Room Pot 1", ("Collectable", 0x08, 0x26, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Pot"))), + ("Bottom of the Well MQ East Inner Room Pot 2", ("Collectable", 0x08, 0x25, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Pot"))), + ("Bottom of the Well MQ East Inner Room Pot 3", ("Collectable", 0x08, 0x24, None, 'Recovery Heart', ("Bottom of the Well", "Master Quest", "Pot"))), # 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 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 Vanilla Freestanding - ("Forest Temple Courtyard Recovery Heart 1", ("Collectable", 0x03, 0x2D, None, 'Recovery Heart', ("Forest Temple", "Vanilla", "Freestanding"))), - ("Forest Temple Courtyard Recovery Heart 2", ("Collectable", 0x03, 0x2E, None, 'Recovery Heart', ("Forest Temple", "Vanilla", "Freestanding"))), - ("Forest Temple Well Recovery Heart 1", ("Collectable", 0x03, 0x2F, None, 'Recovery Heart', ("Forest Temple", "Vanilla", "Freestanding"))), - ("Forest Temple Well Recovery Heart 2", ("Collectable", 0x03, 0x30, None, 'Recovery Heart', ("Forest Temple", "Vanilla", "Freestanding"))), + ("Forest Temple Courtyard Recovery Heart 1", ("Collectable", 0x03, 0x2D, None, 'Recovery Heart', ("Forest Temple", "Vanilla", "Freestanding"))), + ("Forest Temple Courtyard Recovery Heart 2", ("Collectable", 0x03, 0x2E, None, 'Recovery Heart', ("Forest Temple", "Vanilla", "Freestanding"))), + ("Forest Temple Well Recovery Heart 1", ("Collectable", 0x03, 0x2F, None, 'Recovery Heart', ("Forest Temple", "Vanilla", "Freestanding"))), + ("Forest Temple Well Recovery Heart 2", ("Collectable", 0x03, 0x30, None, 'Recovery Heart', ("Forest Temple", "Vanilla", "Freestanding"))), # Forest Temple Vanilla Pots - ("Forest Temple Center Room Right Pot 1", ("Collectable", 0x03, 0x24, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Center Room Right Pot 2", ("Collectable", 0x03, 0x20, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Center Room Right Pot 3", ("Collectable", 0x03, 0x22, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Center Room Left Pot 1", ("Collectable", 0x03, 0x25, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Center Room Left Pot 2", ("Collectable", 0x03, 0x21, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Center Room Left Pot 3", ("Collectable", 0x03, 0x23, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Lower Stalfos Pot", ("Collectable", 0x03, 0x31, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - #("Forest Temple Lower Stalfos Pot 2", ("Collectable", 0x03, 0x32, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Upper Stalfos Pot 1", ("Collectable", 0x03, 0x33, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Upper Stalfos Pot 2", ("Collectable", 0x03, 0x34, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Upper Stalfos Pot 3", ("Collectable", 0x03, 0x35, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Upper Stalfos Pot 4", ("Collectable", 0x03, 0x36, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Blue Poe Room Pot 1", ("Collectable", 0x03, 0x26, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Blue Poe Room Pot 2", ("Collectable", 0x03, 0x27, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Blue Poe Room Pot 3", ("Collectable", 0x03, 0x28, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Frozen Eye Switch Room Pot 1", ("Collectable", 0x03, 0x29, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Frozen Eye Switch Room Pot 2", ("Collectable", 0x03, 0x2A, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Green Poe Room Pot 1", ("Collectable", 0x03, 0x2B, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - ("Forest Temple Green Poe Room Pot 2", ("Collectable", 0x03, 0x2C, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), - + ("Forest Temple Center Room Right Pot 1", ("Collectable", 0x03, 0x24, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Center Room Right Pot 2", ("Collectable", 0x03, 0x20, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Center Room Right Pot 3", ("Collectable", 0x03, 0x22, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Center Room Left Pot 1", ("Collectable", 0x03, 0x25, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Center Room Left Pot 2", ("Collectable", 0x03, 0x21, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Center Room Left Pot 3", ("Collectable", 0x03, 0x23, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Lower Stalfos Pot", ("Collectable", 0x03, 0x31, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + #("Forest Temple Lower Stalfos Pot 2", ("Collectable", 0x03, 0x32, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Upper Stalfos Pot 1", ("Collectable", 0x03, 0x33, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Upper Stalfos Pot 2", ("Collectable", 0x03, 0x34, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Upper Stalfos Pot 3", ("Collectable", 0x03, 0x35, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Upper Stalfos Pot 4", ("Collectable", 0x03, 0x36, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Blue Poe Room Pot 1", ("Collectable", 0x03, 0x26, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Blue Poe Room Pot 2", ("Collectable", 0x03, 0x27, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Blue Poe Room Pot 3", ("Collectable", 0x03, 0x28, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Frozen Eye Switch Room Pot 1", ("Collectable", 0x03, 0x29, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Frozen Eye Switch Room Pot 2", ("Collectable", 0x03, 0x2A, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Green Poe Room Pot 1", ("Collectable", 0x03, 0x2B, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + ("Forest Temple Green Poe Room Pot 2", ("Collectable", 0x03, 0x2C, None, 'Rupees (20)', ("Forest Temple", "Vanilla", "Pot"))), + # 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 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 MQ Freestanding - ("Forest Temple MQ Courtyard Recovery Heart 1", ("Collectable", 0x03, 0x2D, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), - ("Forest Temple MQ Courtyard Recovery Heart 2", ("Collectable", 0x03, 0x2E, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), - ("Forest Temple MQ Courtyard Recovery Heart 3", ("Collectable", 0x03, 0x2F, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), - ("Forest Temple MQ Well Recovery Heart 1", ("Collectable", 0x03, 0x38, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), - ("Forest Temple MQ Well Recovery Heart 2", ("Collectable", 0x03, 0x39, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), - ("Forest Temple MQ Well Recovery Heart 3", ("Collectable", 0x03, 0x3A, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), + ("Forest Temple MQ Courtyard Recovery Heart 1", ("Collectable", 0x03, 0x2D, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), + ("Forest Temple MQ Courtyard Recovery Heart 2", ("Collectable", 0x03, 0x2E, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), + ("Forest Temple MQ Courtyard Recovery Heart 3", ("Collectable", 0x03, 0x2F, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), + ("Forest Temple MQ Well Recovery Heart 1", ("Collectable", 0x03, 0x38, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), + ("Forest Temple MQ Well Recovery Heart 2", ("Collectable", 0x03, 0x39, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), + ("Forest Temple MQ Well Recovery Heart 3", ("Collectable", 0x03, 0x3A, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Freestanding"))), # Forest Temple MQ Pots - ("Forest Temple MQ Center Room Right Pot 1", ("Collectable", 0x03, 0x20, None, 'Rupees (5)', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Center Room Right Pot 2", ("Collectable", 0x03, 0x22, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Center Room Right Pot 3", ("Collectable", 0x03, 0x24, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Center Room Left Pot 1", ("Collectable", 0x03, 0x21, None, 'Rupees (5)', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Center Room Left Pot 2", ("Collectable", 0x03, 0x23, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Center Room Left Pot 3", ("Collectable", 0x03, 0x25, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Wolfos Room Pot", ("Collectable", 0x03, 0x31, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - #("Forest Temple MQ Wolfos Room Pot 2", ("Collectable", 0x03, 0x32, None, 'N/A', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Upper Stalfos Pot 1", ("Collectable", 0x03, 0x33, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Upper Stalfos Pot 2", ("Collectable", 0x03, 0x34, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Upper Stalfos Pot 3", ("Collectable", 0x03, 0x35, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Upper Stalfos Pot 4", ("Collectable", 0x03, 0x36, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Blue Poe Room Pot 1", ("Collectable", 0x03, 0x26, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Blue Poe Room Pot 2", ("Collectable", 0x03, 0x27, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Blue Poe Room Pot 3", ("Collectable", 0x03, 0x28, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Green Poe Room Pot 1", ("Collectable", 0x03, 0x2B, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Green Poe Room Pot 2", ("Collectable", 0x03, 0x2C, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Basement Pot 1", ("Collectable", 0x03, 0x38, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Basement Pot 2", ("Collectable", 0x03, 0x39, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Basement Pot 3", ("Collectable", 0x03, 0x3A, None, 'Bombs (5)', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Basement Pot 4", ("Collectable", 0x03, 0x3B, None, 'Arrows (5)', ("Forest Temple", "Master Quest", "Pot"))), - ("Forest Temple MQ Frozen Eye Switch Room Small Wooden Crate 1", ("Collectable", 0x03, 0x3C, ([0x247dc34],None), 'Recovery Heart', ("Forest Temple", "Master Quest", "SmallCrate"))), - ("Forest Temple MQ Frozen Eye Switch Room Small Wooden Crate 2", ("Collectable", 0x03, 0x3D, ([0x247dc44],None), 'Arrows (5)', ("Forest Temple", "Master Quest", "SmallCrate"))), - ("Forest Temple MQ Frozen Eye Switch Room Small Wooden Crate 3", ("Collectable", 0x03, 0x3E, ([0x247dc54],None), 'Arrows (5)', ("Forest Temple", "Master Quest", "SmallCrate"))), + ("Forest Temple MQ Center Room Right Pot 1", ("Collectable", 0x03, 0x20, None, 'Rupees (5)', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Center Room Right Pot 2", ("Collectable", 0x03, 0x22, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Center Room Right Pot 3", ("Collectable", 0x03, 0x24, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Center Room Left Pot 1", ("Collectable", 0x03, 0x21, None, 'Rupees (5)', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Center Room Left Pot 2", ("Collectable", 0x03, 0x23, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Center Room Left Pot 3", ("Collectable", 0x03, 0x25, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Wolfos Room Pot", ("Collectable", 0x03, 0x31, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + #("Forest Temple MQ Wolfos Room Pot 2", ("Collectable", 0x03, 0x32, None, 'N/A', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Upper Stalfos Pot 1", ("Collectable", 0x03, 0x33, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Upper Stalfos Pot 2", ("Collectable", 0x03, 0x34, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Upper Stalfos Pot 3", ("Collectable", 0x03, 0x35, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Upper Stalfos Pot 4", ("Collectable", 0x03, 0x36, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Blue Poe Room Pot 1", ("Collectable", 0x03, 0x26, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Blue Poe Room Pot 2", ("Collectable", 0x03, 0x27, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Blue Poe Room Pot 3", ("Collectable", 0x03, 0x28, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Green Poe Room Pot 1", ("Collectable", 0x03, 0x2B, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Green Poe Room Pot 2", ("Collectable", 0x03, 0x2C, None, 'Arrows (10)', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Basement Pot 1", ("Collectable", 0x03, 0x38, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Basement Pot 2", ("Collectable", 0x03, 0x39, None, 'Recovery Heart', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Basement Pot 3", ("Collectable", 0x03, 0x3A, None, 'Bombs (5)', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Basement Pot 4", ("Collectable", 0x03, 0x3B, None, 'Arrows (5)', ("Forest Temple", "Master Quest", "Pot"))), + ("Forest Temple MQ Frozen Eye Switch Room Small Wooden Crate 1", ("Collectable", 0x03, 0x3C, ([0x247dc34], None), 'Recovery Heart', ("Forest Temple", "Master Quest", "SmallCrate"))), + ("Forest Temple MQ Frozen Eye Switch Room Small Wooden Crate 2", ("Collectable", 0x03, 0x3D, ([0x247dc44], None), 'Arrows (5)', ("Forest Temple", "Master Quest", "SmallCrate"))), + ("Forest Temple MQ Frozen Eye Switch Room Small Wooden Crate 3", ("Collectable", 0x03, 0x3E, ([0x247dc54], None), 'Arrows (5)', ("Forest Temple", "Master Quest", "SmallCrate"))), # Forest Temple shared - ("Forest Temple Phantom Ganon Heart", ("BossHeart", 0x14, 0x4F, None, 'Heart Container', ("Forest Temple", "Vanilla", "Master Quest",))), + ("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 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 Vanilla Freestanding - ("Fire Temple Elevator Room Recovery Heart 1", ("Collectable", 0x04, 0x2F, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), - ("Fire Temple Elevator Room Recovery Heart 2", ("Collectable", 0x04, 0x30, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), - ("Fire Temple Elevator Room Recovery Heart 3", ("Collectable", 0x04, 0x34, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), - ("Fire Temple Narrow Path Room Recovery Heart 1", ("Collectable", 0x04, 0x35, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), - ("Fire Temple Narrow Path Room Recovery Heart 2", ("Collectable", 0x04, 0x36, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), - ("Fire Temple Narrow Path Room Recovery Heart 3", ("Collectable", 0x04, 0x37, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), - ("Fire Temple Moving Fire Room Recovery Heart 1", ("Collectable", 0x04, 0x31, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), - ("Fire Temple Moving Fire Room Recovery Heart 2", ("Collectable", 0x04, 0x32, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), - ("Fire Temple Moving Fire Room Recovery Heart 3", ("Collectable", 0x04, 0x33, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), + ("Fire Temple Elevator Room Recovery Heart 1", ("Collectable", 0x04, 0x2F, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), + ("Fire Temple Elevator Room Recovery Heart 2", ("Collectable", 0x04, 0x30, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), + ("Fire Temple Elevator Room Recovery Heart 3", ("Collectable", 0x04, 0x34, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), + ("Fire Temple Narrow Path Room Recovery Heart 1", ("Collectable", 0x04, 0x35, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), + ("Fire Temple Narrow Path Room Recovery Heart 2", ("Collectable", 0x04, 0x36, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), + ("Fire Temple Narrow Path Room Recovery Heart 3", ("Collectable", 0x04, 0x37, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), + ("Fire Temple Moving Fire Room Recovery Heart 1", ("Collectable", 0x04, 0x31, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), + ("Fire Temple Moving Fire Room Recovery Heart 2", ("Collectable", 0x04, 0x32, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), + ("Fire Temple Moving Fire Room Recovery Heart 3", ("Collectable", 0x04, 0x33, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Freestanding"))), # Fire Temple Vanilla Pots - ("Fire Temple Big Lava Room Pot 1", ("Collectable", 0x04, 0x20, None, 'Arrows (10)', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Big Lava Room Pot 2", ("Collectable", 0x04, 0x21, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Big Lava Room Pot 3", ("Collectable", 0x04, 0x22, None, 'Arrows (10)', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Near Boss Pot 1", ("Collectable", 0x04, 0x2C, None, 'Bombs (10)', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Near Boss Pot 2", ("Collectable", 0x04, 0x2D, None, 'Bombs (10)', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Flame Maze Right Side Pot 1", ("Collectable", 0x04, 0x23, None, 'Bombs (10)', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Flame Maze Right Side Pot 2", ("Collectable", 0x04, 0x24, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Flame Maze Right Side Pot 3", ("Collectable", 0x04, 0x25, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Flame Maze Right Side Pot 4", ("Collectable", 0x04, 0x26, None, 'Bombs (10)', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Flame Maze Left Side Pot 1", ("Collectable", 0x04, 0x27, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Flame Maze Left Side Pot 2", ("Collectable", 0x04, 0x28, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Flame Maze Left Side Pot 3", ("Collectable", 0x04, 0x29, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), - ("Fire Temple Flame Maze Left Side Pot 4", ("Collectable", 0x04, 0x2A, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), - + ("Fire Temple Big Lava Room Pot 1", ("Collectable", 0x04, 0x20, None, 'Arrows (10)', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Big Lava Room Pot 2", ("Collectable", 0x04, 0x21, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Big Lava Room Pot 3", ("Collectable", 0x04, 0x22, None, 'Arrows (10)', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Near Boss Pot 1", ("Collectable", 0x04, 0x2C, None, 'Bombs (10)', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Near Boss Pot 2", ("Collectable", 0x04, 0x2D, None, 'Bombs (10)', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Flame Maze Right Side Pot 1", ("Collectable", 0x04, 0x23, None, 'Bombs (10)', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Flame Maze Right Side Pot 2", ("Collectable", 0x04, 0x24, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Flame Maze Right Side Pot 3", ("Collectable", 0x04, 0x25, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Flame Maze Right Side Pot 4", ("Collectable", 0x04, 0x26, None, 'Bombs (10)', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Flame Maze Left Side Pot 1", ("Collectable", 0x04, 0x27, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Flame Maze Left Side Pot 2", ("Collectable", 0x04, 0x28, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Flame Maze Left Side Pot 3", ("Collectable", 0x04, 0x29, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), + ("Fire Temple Flame Maze Left Side Pot 4", ("Collectable", 0x04, 0x2A, None, 'Recovery Heart', ("Fire Temple", "Vanilla", "Pot"))), + # 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 Flame Maze Center", ("GS Token", 0x04, 0x08, None, 'Gold Skulltula Token', ("Fire Temple", "Master Quest", "Skulltulas",))), - ("Fire Temple MQ GS Flame Maze Side Room", ("GS Token", 0x04, 0x10, None, 'Gold Skulltula Token', ("Fire Temple", "Master Quest", "Skulltulas",))), - ("Fire Temple MQ GS Above Flame Maze", ("GS Token", 0x04, 0x02, None, 'Gold Skulltula Token', ("Fire Temple", "Master Quest", "Skulltulas",))), + ("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 Flame Maze Center", ("GS Token", 0x04, 0x08, None, 'Gold Skulltula Token', ("Fire Temple", "Master Quest", "Skulltulas"))), + ("Fire Temple MQ GS Flame Maze Side Room", ("GS Token", 0x04, 0x10, None, 'Gold Skulltula Token', ("Fire Temple", "Master Quest", "Skulltulas"))), + ("Fire Temple MQ GS Above Flame Maze", ("GS Token", 0x04, 0x02, None, 'Gold Skulltula Token', ("Fire Temple", "Master Quest", "Skulltulas"))), # Fire Temple MQ Freestanding - ("Fire Temple MQ Elevator Room Recovery Heart 1", ("Collectable", 0x04, 0x2F, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Freestanding"))), - ("Fire Temple MQ Elevator Room Recovery Heart 2", ("Collectable", 0x04, 0x30, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Freestanding"))), - ("Fire Temple MQ Elevator Room Recovery Heart 3", ("Collectable", 0x04, 0x34, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Freestanding"))), + ("Fire Temple MQ Elevator Room Recovery Heart 1", ("Collectable", 0x04, 0x2F, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Freestanding"))), + ("Fire Temple MQ Elevator Room Recovery Heart 2", ("Collectable", 0x04, 0x30, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Freestanding"))), + ("Fire Temple MQ Elevator Room Recovery Heart 3", ("Collectable", 0x04, 0x34, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Freestanding"))), # Fire Temple MQ Pots/Crates - ("Fire Temple MQ First Room Pot 1", ("Collectable", 0x04, 0x2B, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ First Room Pot 2", ("Collectable", 0x04, 0x2C, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Big Lava Room Left Pot", ("Collectable", 0x04, 0x20, None, 'Arrows (10)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Big Lava Room Right Pot", ("Collectable", 0x04, 0x22, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Big Lava Room Alcove Pot", ("Collectable", 0x04, 0x21, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Near Boss Pot 1", ("Collectable", 0x04, 0x2D, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Near Boss Pot 2", ("Collectable", 0x04, 0x2E, None, 'Arrows (30)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Narrow Path Room Pot 1", ("Collectable", 0x04, 0x3A, None, 'Arrows (10)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Narrow Path Room Pot 2", ("Collectable", 0x04, 0x3B, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Narrow Path Room Pot 3", ("Collectable", 0x04, 0x39, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Flame Maze Right Upper Pot 1", ("Collectable", 0x04, 0x23, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Flame Maze Right Upper Pot 2", ("Collectable", 0x04, 0x24, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Flame Maze Right Pot 1", ("Collectable", 0x04, 0x26, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Flame Maze Right Pot 2", ("Collectable", 0x04, 0x25, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Flame Maze Left Pot 2", ("Collectable", 0x04, 0x27, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Flame Maze Left Pot 1", ("Collectable", 0x04, 0x28, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Shoot Torch On Wall Room Pot 1", ("Collectable", 0x04, 0x29, None, 'Arrows (10)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Shoot Torch On Wall Room Pot 2", ("Collectable", 0x04, 0x2A, None, 'Arrows (10)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Iron Knuckle Room Pot 1", ("Collectable", 0x04, 0x30, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Iron Knuckle Room Pot 2", ("Collectable", 0x04, 0x32, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Iron Knuckle Room Pot 3", ("Collectable", 0x04, 0x33, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Iron Knuckle Room Pot 4", ("Collectable", 0x04, 0x34, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Iron Knuckle Room Pot 5", ("Collectable", 0x04, 0x2F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Iron Knuckle Room Pot 6", ("Collectable", 0x04, 0x35, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Iron Knuckle Room Pot 7", ("Collectable", 0x04, 0x36, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Iron Knuckle Room Pot 8", ("Collectable", 0x04, 0x31, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - ("Fire Temple MQ Boss Key Chest Room Pot", ("Collectable", 0x04, 0x38, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Boss Key Chest Room Pot 2", ("Collectable", 0x04, 0x37, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Upper Maze Small Wooden Crate 1", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Upper Maze Small Wooden Crate 2", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 1", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 2", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 3", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 4", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), - #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 5", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ First Room Pot 1", ("Collectable", 0x04, 0x2B, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ First Room Pot 2", ("Collectable", 0x04, 0x2C, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Big Lava Room Left Pot", ("Collectable", 0x04, 0x20, None, 'Arrows (10)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Big Lava Room Right Pot", ("Collectable", 0x04, 0x22, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Big Lava Room Alcove Pot", ("Collectable", 0x04, 0x21, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Near Boss Pot 1", ("Collectable", 0x04, 0x2D, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Near Boss Pot 2", ("Collectable", 0x04, 0x2E, None, 'Arrows (30)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Narrow Path Room Pot 1", ("Collectable", 0x04, 0x3A, None, 'Arrows (10)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Narrow Path Room Pot 2", ("Collectable", 0x04, 0x3B, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Narrow Path Room Pot 3", ("Collectable", 0x04, 0x39, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Flame Maze Right Upper Pot 1", ("Collectable", 0x04, 0x23, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Flame Maze Right Upper Pot 2", ("Collectable", 0x04, 0x24, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Flame Maze Right Pot 1", ("Collectable", 0x04, 0x26, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Flame Maze Right Pot 2", ("Collectable", 0x04, 0x25, None, 'Recovery Heart', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Flame Maze Left Pot 2", ("Collectable", 0x04, 0x27, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Flame Maze Left Pot 1", ("Collectable", 0x04, 0x28, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Shoot Torch On Wall Room Pot 1", ("Collectable", 0x04, 0x29, None, 'Arrows (10)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Shoot Torch On Wall Room Pot 2", ("Collectable", 0x04, 0x2A, None, 'Arrows (10)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Iron Knuckle Room Pot 1", ("Collectable", 0x04, 0x30, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Iron Knuckle Room Pot 2", ("Collectable", 0x04, 0x32, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Iron Knuckle Room Pot 3", ("Collectable", 0x04, 0x33, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Iron Knuckle Room Pot 4", ("Collectable", 0x04, 0x34, None, 'Bombs (5)', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Iron Knuckle Room Pot 5", ("Collectable", 0x04, 0x2F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Iron Knuckle Room Pot 6", ("Collectable", 0x04, 0x35, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Iron Knuckle Room Pot 7", ("Collectable", 0x04, 0x36, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Iron Knuckle Room Pot 8", ("Collectable", 0x04, 0x31, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + ("Fire Temple MQ Boss Key Chest Room Pot", ("Collectable", 0x04, 0x38, None, 'Rupees (5)', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Boss Key Chest Room Pot 2", ("Collectable", 0x04, 0x37, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Upper Maze Small Wooden Crate 1", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Upper Maze Small Wooden Crate 2", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 1", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 2", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 3", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 4", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), + #("Fire Temple MQ Shoot Torch On Wall Room Small Wooden Crate 5", ("Collectable", 0x04, 0x3F, None, 'N/A', ("Fire Temple", "Master Quest", "Pot"))), # Fire Temple MQ Crates - ("Fire Temple MQ Near Boss Left Crate 1", ("Collectable", 0x04, 0x40, ([0x2317bf8],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Near Boss Left Crate 2", ("Collectable", 0x04, 0x41, ([0x2317be8],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Near Boss Right Lower Crate 1", ("Collectable", 0x04, 0x42, ([0x2317bc8],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Near Boss Right Lower Crate 2", ("Collectable", 0x04, 0x43, ([0x2317bb8],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Near Boss Right Mid Crate", ("Collectable", 0x04, 0x44, ([0x2317bd8],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Near Boss Right Upper Crate", ("Collectable", 0x04, 0x45, ([0x2317c08],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shortcut Crate 1", ("Collectable", 0x04, 0x46, ([0x2322944],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shortcut Crate 2", ("Collectable", 0x04, 0x47, ([0x2322954],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shortcut Crate 3", ("Collectable", 0x04, 0x48, ([0x2322964],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shortcut Crate 4", ("Collectable", 0x04, 0x49, ([0x2322974],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shortcut Crate 5", ("Collectable", 0x04, 0x4A, ([0x2322984],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shortcut Crate 6", ("Collectable", 0x04, 0x4B, ([0x2322994],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Lower Lizalfos Maze Crate 1", ("Collectable", 0x04, 0x4C, ([0x232d3f4],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Lower Lizalfos Maze Crate 2", ("Collectable", 0x04, 0x4D, ([0x232d404],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Lower Lizalfos Maze Crate 3", ("Collectable", 0x04, 0x4E, ([0x232d414],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Upper Lizalfos Maze Crate 1", ("Collectable", 0x04, 0x4F, ([0x232d3c4],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Upper Lizalfos Maze Crate 2", ("Collectable", 0x04, 0x50, ([0x232d3d4],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Upper Lizalfos Maze Crate 3", ("Collectable", 0x04, 0x51, ([0x232d3e4],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shoot Torch On Wall Room Right Crate 1", ("Collectable", 0x04, 0x52, ([0x2389a1c],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shoot Torch On Wall Room Right Crate 2", ("Collectable", 0x04, 0x53, ([0x2389a3c],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shoot Torch On Wall Room Center Crate", ("Collectable", 0x04, 0x54, ([0x2389a0c],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shoot Torch On Wall Room Left Crate 1", ("Collectable", 0x04, 0x55, ([0x2389a2c],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), - ("Fire Temple MQ Shoot Torch On Wall Room Left Crate 2", ("Collectable", 0x04, 0x56, ([0x23899fc],None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Near Boss Left Crate 1", ("Collectable", 0x04, 0x40, ([0x2317bf8], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Near Boss Left Crate 2", ("Collectable", 0x04, 0x41, ([0x2317be8], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Near Boss Right Lower Crate 1", ("Collectable", 0x04, 0x42, ([0x2317bc8], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Near Boss Right Lower Crate 2", ("Collectable", 0x04, 0x43, ([0x2317bb8], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Near Boss Right Mid Crate", ("Collectable", 0x04, 0x44, ([0x2317bd8], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Near Boss Right Upper Crate", ("Collectable", 0x04, 0x45, ([0x2317c08], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shortcut Crate 1", ("Collectable", 0x04, 0x46, ([0x2322944], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shortcut Crate 2", ("Collectable", 0x04, 0x47, ([0x2322954], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shortcut Crate 3", ("Collectable", 0x04, 0x48, ([0x2322964], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shortcut Crate 4", ("Collectable", 0x04, 0x49, ([0x2322974], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shortcut Crate 5", ("Collectable", 0x04, 0x4A, ([0x2322984], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shortcut Crate 6", ("Collectable", 0x04, 0x4B, ([0x2322994], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Lower Lizalfos Maze Crate 1", ("Collectable", 0x04, 0x4C, ([0x232d3f4], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Lower Lizalfos Maze Crate 2", ("Collectable", 0x04, 0x4D, ([0x232d404], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Lower Lizalfos Maze Crate 3", ("Collectable", 0x04, 0x4E, ([0x232d414], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Upper Lizalfos Maze Crate 1", ("Collectable", 0x04, 0x4F, ([0x232d3c4], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Upper Lizalfos Maze Crate 2", ("Collectable", 0x04, 0x50, ([0x232d3d4], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Upper Lizalfos Maze Crate 3", ("Collectable", 0x04, 0x51, ([0x232d3e4], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shoot Torch On Wall Room Right Crate 1", ("Collectable", 0x04, 0x52, ([0x2389a1c], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shoot Torch On Wall Room Right Crate 2", ("Collectable", 0x04, 0x53, ([0x2389a3c], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shoot Torch On Wall Room Center Crate", ("Collectable", 0x04, 0x54, ([0x2389a0c], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shoot Torch On Wall Room Left Crate 1", ("Collectable", 0x04, 0x55, ([0x2389a2c], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), + ("Fire Temple MQ Shoot Torch On Wall Room Left Crate 2", ("Collectable", 0x04, 0x56, ([0x23899fc], None), 'Rupee (1)', ("Fire Temple", "Master Quest", "Crate"))), # Fire Temple shared - ("Fire Temple Volvagia Heart", ("BossHeart", 0x15, 0x4F, None, 'Heart Container', ("Fire Temple", "Vanilla", "Master Quest",))), + ("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 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 Vanilla Freestanding - ("Water Temple River Recovery Heart 1", ("Collectable", 0x05, 0x2A, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Freestanding"))), - ("Water Temple River Recovery Heart 2", ("Collectable", 0x05, 0x2D, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Freestanding"))), - ("Water Temple River Recovery Heart 3", ("Collectable", 0x05, 0x32, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Freestanding"))), - ("Water Temple River Recovery Heart 4", ("Collectable", 0x05, 0x34, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Freestanding"))), + ("Water Temple River Recovery Heart 1", ("Collectable", 0x05, 0x2A, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Freestanding"))), + ("Water Temple River Recovery Heart 2", ("Collectable", 0x05, 0x2D, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Freestanding"))), + ("Water Temple River Recovery Heart 3", ("Collectable", 0x05, 0x32, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Freestanding"))), + ("Water Temple River Recovery Heart 4", ("Collectable", 0x05, 0x34, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Freestanding"))), # Water Temple Vanilla Pots - ("Water Temple Main Room L2 Pot 1", ("Collectable", 0x05, 0x22, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Main Room L2 Pot 2", ("Collectable", 0x05, 0x23, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Behind Gate Pot 1", ("Collectable", 0x05, 0x21, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Behind Gate Pot 2", ("Collectable", 0x05, 0x24, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Behind Gate Pot 3", ("Collectable", 0x05, 0x29, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Behind Gate Pot 4", ("Collectable", 0x05, 0x35, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Near Compass Pot 1", ("Collectable", 0x05, 0x20, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Near Compass Pot 2", ("Collectable", 0x05, 0x27, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Near Compass Pot 3", ("Collectable", 0x05, 0x28, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Like Like Pot 1", ("Collectable", 0x05, 0x2B, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Like Like Pot 2", ("Collectable", 0x05, 0x2C, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple North Basement Block Puzzle Pot 1", ("Collectable", 0x05, 0x3B, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple North Basement Block Puzzle Pot 2", ("Collectable", 0x05, 0x3C, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - #("Water Temple Boss Key Pot 1", ("Collectable", 0x05, 0x3D, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - #("Water Temple Boss Key Pot 2", ("Collectable", 0x05, 0x3E, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple L1 Torch Pot 1", ("Collectable", 0x05, 0x25, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple L1 Torch Pot 2", ("Collectable", 0x05, 0x26, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple River Pot 1", ("Collectable", 0x05, 0x2F, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - #("Water Temple River Pot 2", ("Collectable", 0x05, 0x26, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Central Bow Target Pot 1", ("Collectable", 0x05, 0x37, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), - ("Water Temple Central Bow Target Pot 2", ("Collectable", 0x05, 0x3F, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Main Room L2 Pot 1", ("Collectable", 0x05, 0x22, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Main Room L2 Pot 2", ("Collectable", 0x05, 0x23, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Behind Gate Pot 1", ("Collectable", 0x05, 0x21, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Behind Gate Pot 2", ("Collectable", 0x05, 0x24, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Behind Gate Pot 3", ("Collectable", 0x05, 0x29, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Behind Gate Pot 4", ("Collectable", 0x05, 0x35, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Near Compass Pot 1", ("Collectable", 0x05, 0x20, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Near Compass Pot 2", ("Collectable", 0x05, 0x27, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Near Compass Pot 3", ("Collectable", 0x05, 0x28, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Like Like Pot 1", ("Collectable", 0x05, 0x2B, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Like Like Pot 2", ("Collectable", 0x05, 0x2C, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple North Basement Block Puzzle Pot 1", ("Collectable", 0x05, 0x3B, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple North Basement Block Puzzle Pot 2", ("Collectable", 0x05, 0x3C, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + #("Water Temple Boss Key Pot 1", ("Collectable", 0x05, 0x3D, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + #("Water Temple Boss Key Pot 2", ("Collectable", 0x05, 0x3E, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple L1 Torch Pot 1", ("Collectable", 0x05, 0x25, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple L1 Torch Pot 2", ("Collectable", 0x05, 0x26, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple River Pot 1", ("Collectable", 0x05, 0x2F, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + #("Water Temple River Pot 2", ("Collectable", 0x05, 0x26, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Central Bow Target Pot 1", ("Collectable", 0x05, 0x37, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), + ("Water Temple Central Bow Target Pot 2", ("Collectable", 0x05, 0x3F, None, 'Recovery Heart', ("Water Temple", "Vanilla", "Pot"))), # 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 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 MQ Pots - ("Water Temple MQ Triple Wall Torch Pot 1", ("Collectable", 0x05, 0x29, None, 'Arrows (10)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Triple Wall Torch Pot 2", ("Collectable", 0x05, 0x35, None, 'Arrows (10)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Triple Wall Torch Pot 3", ("Collectable", 0x05, 0x24, None, 'Bombs (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Triple Wall Torch Pot 4", ("Collectable", 0x05, 0x21, None, 'Bombs (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Storage Room Pot 1", ("Collectable", 0x05, 0x20, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Storage Room Pot 2", ("Collectable", 0x05, 0x28, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Storage Room Pot 3", ("Collectable", 0x05, 0x27, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Before Dark Link Top Pot 1", ("Collectable", 0x05, 0x2B, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Before Dark Link Top Pot 2", ("Collectable", 0x05, 0x2C, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Before Dark Link Lower Pot", ("Collectable", 0x05, 0x2D, None, 'Deku Nuts (5)', ("Water Temple", "Master Quest", "Pot"))), - #("Water Tempe MQ Before Dark Link Lower Pot 2", ("Collectable", 0x05, 0x2E, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))) - #("Water Tempe MQ Before Dark Link Lower Pot 3", ("Collectable", 0x05, 0x30, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))) - ("Water Temple MQ Room After Dark Link Pot", ("Collectable", 0x05, 0x32, None, 'Arrows (30)', ("Water Temple", "Master Quest", "Pot"))), - #("Water Tempe MQ Room After Dark Link Pot 2", ("Collectable", 0x05, 0x33, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))) - ("Water Temple MQ Boss Key Chest Room Pot", ("Collectable", 0x05, 0x34, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Before Upper Water Switch Pot 1", ("Collectable", 0x05, 0x38, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Before Upper Water Switch Pot 2", ("Collectable", 0x05, 0x39, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Before Upper Water Switch Pot 3", ("Collectable", 0x05, 0x3A, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Dodongo Room Pot 1", ("Collectable", 0x05, 0x3C, None, 'Bombs (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Dodongo Room Pot 2", ("Collectable", 0x05, 0x3B, None, 'Bombs (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Freestanding Key Room Pot", ("Collectable", 0x05, 0x3E, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), - #("Water Temple MQ Freestanding Item Room Pot 2", ("Collectable", 0x05, 0x3D, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))) - ("Water Temple MQ L1 Torch Pot 1", ("Collectable", 0x05, 0x25, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ L1 Torch Pot 2", ("Collectable", 0x05, 0x26, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Lizalfos Hallway Pot 1", ("Collectable", 0x05, 0x22, None, 'Rupees (20)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Lizalfos Hallway Pot 2", ("Collectable", 0x05, 0x23, None, 'Arrows (10)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Lizalfos Hallway Pot 3", ("Collectable", 0x05, 0x2A, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Lizalfos Hallway Gate Pot 1", ("Collectable", 0x05, 0x3F, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ Lizalfos Hallway Gate Pot 2", ("Collectable", 0x05, 0x37, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), - ("Water Temple MQ River Pot", ("Collectable", 0x05, 0x2F, None, 'Arrows (10)', ("Water Temple", "Master Quest", "Pot"))), - #("Water Temple MQ River Pot 2", ("Collectable", 0x05, 0x31, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))) + ("Water Temple MQ Triple Wall Torch Pot 1", ("Collectable", 0x05, 0x29, None, 'Arrows (10)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Triple Wall Torch Pot 2", ("Collectable", 0x05, 0x35, None, 'Arrows (10)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Triple Wall Torch Pot 3", ("Collectable", 0x05, 0x24, None, 'Bombs (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Triple Wall Torch Pot 4", ("Collectable", 0x05, 0x21, None, 'Bombs (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Storage Room Pot 1", ("Collectable", 0x05, 0x20, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Storage Room Pot 2", ("Collectable", 0x05, 0x28, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Storage Room Pot 3", ("Collectable", 0x05, 0x27, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Before Dark Link Top Pot 1", ("Collectable", 0x05, 0x2B, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Before Dark Link Top Pot 2", ("Collectable", 0x05, 0x2C, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Before Dark Link Lower Pot", ("Collectable", 0x05, 0x2D, None, 'Deku Nuts (5)', ("Water Temple", "Master Quest", "Pot"))), + #("Water Tempe MQ Before Dark Link Lower Pot 2", ("Collectable", 0x05, 0x2E, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))), + #("Water Tempe MQ Before Dark Link Lower Pot 3", ("Collectable", 0x05, 0x30, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Room After Dark Link Pot", ("Collectable", 0x05, 0x32, None, 'Arrows (30)', ("Water Temple", "Master Quest", "Pot"))), + #("Water Tempe MQ Room After Dark Link Pot 2", ("Collectable", 0x05, 0x33, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Boss Key Chest Room Pot", ("Collectable", 0x05, 0x34, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Before Upper Water Switch Pot 1", ("Collectable", 0x05, 0x38, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Before Upper Water Switch Pot 2", ("Collectable", 0x05, 0x39, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Before Upper Water Switch Pot 3", ("Collectable", 0x05, 0x3A, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Dodongo Room Pot 1", ("Collectable", 0x05, 0x3C, None, 'Bombs (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Dodongo Room Pot 2", ("Collectable", 0x05, 0x3B, None, 'Bombs (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Freestanding Key Room Pot", ("Collectable", 0x05, 0x3E, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), + #("Water Temple MQ Freestanding Item Room Pot 2", ("Collectable", 0x05, 0x3D, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ L1 Torch Pot 1", ("Collectable", 0x05, 0x25, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ L1 Torch Pot 2", ("Collectable", 0x05, 0x26, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Lizalfos Hallway Pot 1", ("Collectable", 0x05, 0x22, None, 'Rupees (20)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Lizalfos Hallway Pot 2", ("Collectable", 0x05, 0x23, None, 'Arrows (10)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Lizalfos Hallway Pot 3", ("Collectable", 0x05, 0x2A, None, 'Rupees (5)', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Lizalfos Hallway Gate Pot 1", ("Collectable", 0x05, 0x3F, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ Lizalfos Hallway Gate Pot 2", ("Collectable", 0x05, 0x37, None, 'Recovery Heart', ("Water Temple", "Master Quest", "Pot"))), + ("Water Temple MQ River Pot", ("Collectable", 0x05, 0x2F, None, 'Arrows (10)', ("Water Temple", "Master Quest", "Pot"))), + #("Water Temple MQ River Pot 2", ("Collectable", 0x05, 0x31, None, 'N/A', ("Water Temple", "Master Quest", "Pot"))), # Water Temple MQ Crates - ("Water Temple MQ Central Pillar Upper Crate 1", ("Collectable", 0x05, 0x40, ([0x25ee1a0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Upper Crate 2", ("Collectable", 0x05, 0x41, ([0x25ee1b0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 1", ("Collectable", 0x05, 0x42, ([0x25f4c30],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 2", ("Collectable", 0x05, 0x43, ([0x25f4c40],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 3", ("Collectable", 0x05, 0x44, ([0x25f4c50],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 4", ("Collectable", 0x05, 0x45, ([0x25f4c60],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 5", ("Collectable", 0x05, 0x46, ([0x25f4c70],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 6", ("Collectable", 0x05, 0x47, ([0x25f4c80],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 7", ("Collectable", 0x05, 0x48, ([0x25f4c90],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 8", ("Collectable", 0x05, 0x49, ([0x25f4ca0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 9", ("Collectable", 0x05, 0x4A, ([0x25f4cb0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 10", ("Collectable", 0x05, 0x4B, ([0x25f4cc0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 11", ("Collectable", 0x05, 0x4C, ([0x25f4cd0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 12", ("Collectable", 0x05, 0x4D, ([0x25f4ce0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 13", ("Collectable", 0x05, 0x4E, ([0x25f4cf0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Central Pillar Lower Crate 14", ("Collectable", 0x05, 0x4F, ([0x25f4d00],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Triple Wall Torch Submerged Crate 1", ("Collectable", 0x05, 0x50, ([0x25fb790],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Triple Wall Torch Submerged Crate 2", ("Collectable", 0x05, 0x51, ([0x25fb7a0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Triple Wall Torch Submerged Crate 3", ("Collectable", 0x05, 0x52, ([0x25fb7b0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Triple Wall Torch Submerged Crate 4", ("Collectable", 0x05, 0x53, ([0x25fb7c0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Triple Wall Torch Submerged Crate 5", ("Collectable", 0x05, 0x54, ([0x25fb7d0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Triple Wall Torch Submerged Crate 6", ("Collectable", 0x05, 0x55, ([0x25fb7e0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Triple Wall Torch Behind Gate Crate 1", ("Collectable", 0x05, 0x56, ([0x25fb7f0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Triple Wall Torch Behind Gate Crate 2", ("Collectable", 0x05, 0x57, ([0x25fb800],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Triple Wall Torch Behind Gate Crate 3", ("Collectable", 0x05, 0x58, ([0x25fb810],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Storage Room Crate 1", ("Collectable", 0x05, 0x59, ([0x26018dc],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Storage Room Crate 2", ("Collectable", 0x05, 0x5A, ([0x26018ec],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Storage Room Crate 3", ("Collectable", 0x05, 0x5B, ([0x26018fc],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Storage Room Crate 4", ("Collectable", 0x05, 0x5C, ([0x260190c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Storage Room Crate 5", ("Collectable", 0x05, 0x5D, ([0x260191c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Storage Room Crate 6", ("Collectable", 0x05, 0x5E, ([0x260192c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Storage Room Crate 7", ("Collectable", 0x05, 0x5F, ([0x260193c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dragon Statue By Torches Crate 1", ("Collectable", 0x05, 0x60, ([0x262cc5c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dragon Statue By Torches Crate 2", ("Collectable", 0x05, 0x61, ([0x262cc6c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dragon Statue Submerged Crate 1", ("Collectable", 0x05, 0x62, ([0x262cc9c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dragon Statue Submerged Crate 2", ("Collectable", 0x05, 0x63, ([0x262ccac],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dragon Statue Submerged Crate 3", ("Collectable", 0x05, 0x64, ([0x262ccbc],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dragon Statue Submerged Crate 4", ("Collectable", 0x05, 0x65, ([0x262cccc],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dragon Statue Near Door Crate 1", ("Collectable", 0x05, 0x66, ([0x262cc7c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dragon Statue Near Door Crate 2", ("Collectable", 0x05, 0x67, ([0x262cc8c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Boss Key Chest Room Upper Crate", ("Collectable", 0x05, 0x68, ([0x2634d3c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Boss Key Chest Room Lower Crate 1", ("Collectable", 0x05, 0x69, ([0x2634d2c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Boss Key Chest Room Lower Crate 2", ("Collectable", 0x05, 0x6A, ([0x2634d4c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Boss Key Chest Room Lower Crate 3", ("Collectable", 0x05, 0x6B, ([0x2634d5c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Boss Key Chest Room Lower Crate 4", ("Collectable", 0x05, 0x6C, ([0x2634d6c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Before Upper Water Switch Lower Crate 1", ("Collectable", 0x05, 0x6D, ([0x263ae30],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Before Upper Water Switch Lower Crate 2", ("Collectable", 0x05, 0x6E, ([0x263ae40],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Before Upper Water Switch Lower Crate 3", ("Collectable", 0x05, 0x6F, ([0x263ae50],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Before Upper Water Switch Lower Crate 4", ("Collectable", 0x05, 0x70, ([0x263ae60],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Before Upper Water Switch Lower Crate 5", ("Collectable", 0x05, 0x71, ([0x263ae70],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Before Upper Water Switch Lower Crate 6", ("Collectable", 0x05, 0x72, ([0x263aea0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Before Upper Water Switch Upper Crate 1", ("Collectable", 0x05, 0x73, ([0x263ae80],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Before Upper Water Switch Upper Crate 2", ("Collectable", 0x05, 0x74, ([0x263ae90],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Behind Gate Crate 1", ("Collectable", 0x05, 0x75, ([0x2646e30],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Behind Gate Crate 2", ("Collectable", 0x05, 0x76, ([0x2646e40],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Behind Gate Crate 3", ("Collectable", 0x05, 0x77, ([0x2646e50],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Behind Gate Crate 4", ("Collectable", 0x05, 0x78, ([0x2646e60],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Front Crate 1", ("Collectable", 0x05, 0x79, ([0x2646e70],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Front Crate 2", ("Collectable", 0x05, 0x7A, ([0x2646e80],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Submerged Crate 1", ("Collectable", 0x05, 0x7B, ([0x2646e90],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Submerged Crate 2", ("Collectable", 0x05, 0x7C, ([0x2646ea0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Submerged Crate 3", ("Collectable", 0x05, 0x7D, ([0x2646eb0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Submerged Crate 4", ("Collectable", 0x05, 0x7E, ([0x2646ec0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Submerged Crate 5", ("Collectable", 0x05, 0x7F, ([0x2646ed0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Area Submerged Crate 6", ("Collectable", 0x05, 0x80, ([0x2646ee0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dodongo Room Lower Crate 1", ("Collectable", 0x05, 0x81, ([0x264eeec],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dodongo Room Lower Crate 2", ("Collectable", 0x05, 0x82, ([0x264eefc],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dodongo Room Lower Crate 3", ("Collectable", 0x05, 0x83, ([0x264ef2c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dodongo Room Upper Crate", ("Collectable", 0x05, 0x84, ([0x264ef0c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Dodongo Room Hall Crate", ("Collectable", 0x05, 0x85, ([0x264ef1c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Room Crate 1", ("Collectable", 0x05, 0x86, ([0x265aafc],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Room Crate 2", ("Collectable", 0x05, 0x87, ([0x265ab0c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Room Crate 3", ("Collectable", 0x05, 0x88, ([0x265ab1c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Room Crate 4", ("Collectable", 0x05, 0x89, ([0x265ab2c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Freestanding Key Room Crate 5", ("Collectable", 0x05, 0x8A, ([0x265ab3c],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Gate Crate 1", ("Collectable", 0x05, 0x8B, ([0x2673790],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Gate Crate 2", ("Collectable", 0x05, 0x8C, ([0x26737a0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Room Crate 1", ("Collectable", 0x05, 0x8D, ([0x26737b0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Room Crate 2", ("Collectable", 0x05, 0x8E, ([0x26737c0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Room Crate 3", ("Collectable", 0x05, 0x8F, ([0x26737d0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Room Crate 4", ("Collectable", 0x05, 0x90, ([0x26737e0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Room Crate 5", ("Collectable", 0x05, 0x91, ([0x26737f0],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Hall Crate 1", ("Collectable", 0x05, 0x92, ([0x2673800],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Hall Crate 2", ("Collectable", 0x05, 0x93, ([0x2673810],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), - ("Water Temple MQ Lizalfos Hallway Hall Crate 3", ("Collectable", 0x05, 0x94, ([0x2673820],None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Upper Crate 1", ("Collectable", 0x05, 0x40, ([0x25ee1a0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Upper Crate 2", ("Collectable", 0x05, 0x41, ([0x25ee1b0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 1", ("Collectable", 0x05, 0x42, ([0x25f4c30], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 2", ("Collectable", 0x05, 0x43, ([0x25f4c40], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 3", ("Collectable", 0x05, 0x44, ([0x25f4c50], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 4", ("Collectable", 0x05, 0x45, ([0x25f4c60], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 5", ("Collectable", 0x05, 0x46, ([0x25f4c70], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 6", ("Collectable", 0x05, 0x47, ([0x25f4c80], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 7", ("Collectable", 0x05, 0x48, ([0x25f4c90], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 8", ("Collectable", 0x05, 0x49, ([0x25f4ca0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 9", ("Collectable", 0x05, 0x4A, ([0x25f4cb0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 10", ("Collectable", 0x05, 0x4B, ([0x25f4cc0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 11", ("Collectable", 0x05, 0x4C, ([0x25f4cd0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 12", ("Collectable", 0x05, 0x4D, ([0x25f4ce0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 13", ("Collectable", 0x05, 0x4E, ([0x25f4cf0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Central Pillar Lower Crate 14", ("Collectable", 0x05, 0x4F, ([0x25f4d00], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Triple Wall Torch Submerged Crate 1", ("Collectable", 0x05, 0x50, ([0x25fb790], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Triple Wall Torch Submerged Crate 2", ("Collectable", 0x05, 0x51, ([0x25fb7a0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Triple Wall Torch Submerged Crate 3", ("Collectable", 0x05, 0x52, ([0x25fb7b0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Triple Wall Torch Submerged Crate 4", ("Collectable", 0x05, 0x53, ([0x25fb7c0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Triple Wall Torch Submerged Crate 5", ("Collectable", 0x05, 0x54, ([0x25fb7d0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Triple Wall Torch Submerged Crate 6", ("Collectable", 0x05, 0x55, ([0x25fb7e0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Triple Wall Torch Behind Gate Crate 1", ("Collectable", 0x05, 0x56, ([0x25fb7f0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Triple Wall Torch Behind Gate Crate 2", ("Collectable", 0x05, 0x57, ([0x25fb800], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Triple Wall Torch Behind Gate Crate 3", ("Collectable", 0x05, 0x58, ([0x25fb810], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Storage Room Crate 1", ("Collectable", 0x05, 0x59, ([0x26018dc], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Storage Room Crate 2", ("Collectable", 0x05, 0x5A, ([0x26018ec], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Storage Room Crate 3", ("Collectable", 0x05, 0x5B, ([0x26018fc], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Storage Room Crate 4", ("Collectable", 0x05, 0x5C, ([0x260190c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Storage Room Crate 5", ("Collectable", 0x05, 0x5D, ([0x260191c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Storage Room Crate 6", ("Collectable", 0x05, 0x5E, ([0x260192c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Storage Room Crate 7", ("Collectable", 0x05, 0x5F, ([0x260193c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dragon Statue By Torches Crate 1", ("Collectable", 0x05, 0x60, ([0x262cc5c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dragon Statue By Torches Crate 2", ("Collectable", 0x05, 0x61, ([0x262cc6c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dragon Statue Submerged Crate 1", ("Collectable", 0x05, 0x62, ([0x262cc9c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dragon Statue Submerged Crate 2", ("Collectable", 0x05, 0x63, ([0x262ccac], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dragon Statue Submerged Crate 3", ("Collectable", 0x05, 0x64, ([0x262ccbc], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dragon Statue Submerged Crate 4", ("Collectable", 0x05, 0x65, ([0x262cccc], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dragon Statue Near Door Crate 1", ("Collectable", 0x05, 0x66, ([0x262cc7c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dragon Statue Near Door Crate 2", ("Collectable", 0x05, 0x67, ([0x262cc8c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Boss Key Chest Room Upper Crate", ("Collectable", 0x05, 0x68, ([0x2634d3c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Boss Key Chest Room Lower Crate 1", ("Collectable", 0x05, 0x69, ([0x2634d2c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Boss Key Chest Room Lower Crate 2", ("Collectable", 0x05, 0x6A, ([0x2634d4c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Boss Key Chest Room Lower Crate 3", ("Collectable", 0x05, 0x6B, ([0x2634d5c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Boss Key Chest Room Lower Crate 4", ("Collectable", 0x05, 0x6C, ([0x2634d6c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Before Upper Water Switch Lower Crate 1", ("Collectable", 0x05, 0x6D, ([0x263ae30], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Before Upper Water Switch Lower Crate 2", ("Collectable", 0x05, 0x6E, ([0x263ae40], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Before Upper Water Switch Lower Crate 3", ("Collectable", 0x05, 0x6F, ([0x263ae50], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Before Upper Water Switch Lower Crate 4", ("Collectable", 0x05, 0x70, ([0x263ae60], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Before Upper Water Switch Lower Crate 5", ("Collectable", 0x05, 0x71, ([0x263ae70], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Before Upper Water Switch Lower Crate 6", ("Collectable", 0x05, 0x72, ([0x263aea0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Before Upper Water Switch Upper Crate 1", ("Collectable", 0x05, 0x73, ([0x263ae80], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Before Upper Water Switch Upper Crate 2", ("Collectable", 0x05, 0x74, ([0x263ae90], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Behind Gate Crate 1", ("Collectable", 0x05, 0x75, ([0x2646e30], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Behind Gate Crate 2", ("Collectable", 0x05, 0x76, ([0x2646e40], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Behind Gate Crate 3", ("Collectable", 0x05, 0x77, ([0x2646e50], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Behind Gate Crate 4", ("Collectable", 0x05, 0x78, ([0x2646e60], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Front Crate 1", ("Collectable", 0x05, 0x79, ([0x2646e70], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Front Crate 2", ("Collectable", 0x05, 0x7A, ([0x2646e80], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Submerged Crate 1", ("Collectable", 0x05, 0x7B, ([0x2646e90], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Submerged Crate 2", ("Collectable", 0x05, 0x7C, ([0x2646ea0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Submerged Crate 3", ("Collectable", 0x05, 0x7D, ([0x2646eb0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Submerged Crate 4", ("Collectable", 0x05, 0x7E, ([0x2646ec0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Submerged Crate 5", ("Collectable", 0x05, 0x7F, ([0x2646ed0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Area Submerged Crate 6", ("Collectable", 0x05, 0x80, ([0x2646ee0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dodongo Room Lower Crate 1", ("Collectable", 0x05, 0x81, ([0x264eeec], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dodongo Room Lower Crate 2", ("Collectable", 0x05, 0x82, ([0x264eefc], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dodongo Room Lower Crate 3", ("Collectable", 0x05, 0x83, ([0x264ef2c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dodongo Room Upper Crate", ("Collectable", 0x05, 0x84, ([0x264ef0c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Dodongo Room Hall Crate", ("Collectable", 0x05, 0x85, ([0x264ef1c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Room Crate 1", ("Collectable", 0x05, 0x86, ([0x265aafc], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Room Crate 2", ("Collectable", 0x05, 0x87, ([0x265ab0c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Room Crate 3", ("Collectable", 0x05, 0x88, ([0x265ab1c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Room Crate 4", ("Collectable", 0x05, 0x89, ([0x265ab2c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Freestanding Key Room Crate 5", ("Collectable", 0x05, 0x8A, ([0x265ab3c], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Gate Crate 1", ("Collectable", 0x05, 0x8B, ([0x2673790], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Gate Crate 2", ("Collectable", 0x05, 0x8C, ([0x26737a0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Room Crate 1", ("Collectable", 0x05, 0x8D, ([0x26737b0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Room Crate 2", ("Collectable", 0x05, 0x8E, ([0x26737c0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Room Crate 3", ("Collectable", 0x05, 0x8F, ([0x26737d0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Room Crate 4", ("Collectable", 0x05, 0x90, ([0x26737e0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Room Crate 5", ("Collectable", 0x05, 0x91, ([0x26737f0], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Hall Crate 1", ("Collectable", 0x05, 0x92, ([0x2673800], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Hall Crate 2", ("Collectable", 0x05, 0x93, ([0x2673810], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), + ("Water Temple MQ Lizalfos Hallway Hall Crate 3", ("Collectable", 0x05, 0x94, ([0x2673820], None), 'Rupee (1)', ("Water Temple", "Master Quest", "Crate"))), # Water Temple shared - ("Water Temple Morpha Heart", ("BossHeart", 0x16, 0x4F, None, 'Heart Container', ("Water Temple", "Vanilla", "Master Quest",))), + ("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", "Drop"))), - ("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 Invisible Blades 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 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", "Drop"))), + ("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 Invisible Blades 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 Vanilla Freestanding - ("Shadow Temple Invisible Blades Recovery Heart 1", ("Collectable", 0x07, 0x20, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), - ("Shadow Temple Invisible Blades Recovery Heart 2", ("Collectable", 0x07, 0x21, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), - ("Shadow Temple Before Boat Recovery Heart 1", ("Collectable", 0x07, 0x22, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), - ("Shadow Temple Before Boat Recovery Heart 2", ("Collectable", 0x07, 0x23, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), - ("Shadow Temple After Boat Upper Recovery Heart 1", ("Collectable", 0x07, 0x39, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), - ("Shadow Temple After Boat Upper Recovery Heart 2", ("Collectable", 0x07, 0x3A, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), - ("Shadow Temple After Boat Lower Recovery Heart", ("Collectable", 0x07, 0x3C, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), - ("Shadow Temple 3 Spinning Pots Rupee 1", ("Collectable", 0x07, 0x40, ([0x280D0D4, 0x280D0E4, 0x280D0F4], None), 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple 3 Spinning Pots Rupee 2", ("Collectable", 0x07, 0x41, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple 3 Spinning Pots Rupee 3", ("Collectable", 0x07, 0x42, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple 3 Spinning Pots Rupee 4", ("Collectable", 0x07, 0x43, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple 3 Spinning Pots Rupee 5", ("Collectable", 0x07, 0x44, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple 3 Spinning Pots Rupee 6", ("Collectable", 0x07, 0x45, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple 3 Spinning Pots Rupee 7", ("Collectable", 0x07, 0x46, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple 3 Spinning Pots Rupee 8", ("Collectable", 0x07, 0x47, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple 3 Spinning Pots Rupee 9", ("Collectable", 0x07, 0x48, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple Invisible Blades Recovery Heart 1", ("Collectable", 0x07, 0x20, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), + ("Shadow Temple Invisible Blades Recovery Heart 2", ("Collectable", 0x07, 0x21, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), + ("Shadow Temple Before Boat Recovery Heart 1", ("Collectable", 0x07, 0x22, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), + ("Shadow Temple Before Boat Recovery Heart 2", ("Collectable", 0x07, 0x23, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), + ("Shadow Temple After Boat Upper Recovery Heart 1", ("Collectable", 0x07, 0x39, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), + ("Shadow Temple After Boat Upper Recovery Heart 2", ("Collectable", 0x07, 0x3A, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), + ("Shadow Temple After Boat Lower Recovery Heart", ("Collectable", 0x07, 0x3C, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Freestanding"))), + ("Shadow Temple 3 Spinning Pots Rupee 1", ("Collectable", 0x07, 0x40, ([0x280D0D4, 0x280D0E4, 0x280D0F4], None), 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple 3 Spinning Pots Rupee 2", ("Collectable", 0x07, 0x41, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple 3 Spinning Pots Rupee 3", ("Collectable", 0x07, 0x42, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple 3 Spinning Pots Rupee 4", ("Collectable", 0x07, 0x43, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple 3 Spinning Pots Rupee 5", ("Collectable", 0x07, 0x44, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple 3 Spinning Pots Rupee 6", ("Collectable", 0x07, 0x45, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple 3 Spinning Pots Rupee 7", ("Collectable", 0x07, 0x46, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple 3 Spinning Pots Rupee 8", ("Collectable", 0x07, 0x47, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple 3 Spinning Pots Rupee 9", ("Collectable", 0x07, 0x48, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), #Shadow Temple Vanilla Pots - ("Shadow Temple Whispering Walls Near Dead Hand Pot", ("Collectable", 0x07, 0x28, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Whispering Walls Left Pot 1", ("Collectable", 0x07, 0x29, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Whispering Walls Left Pot 2", ("Collectable", 0x07, 0x2A, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Whispering Walls Left Pot 3", ("Collectable", 0x07, 0x2F, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Whispering Walls Front Pot 1", ("Collectable", 0x07, 0x30, None, 'Deku Nuts (5)', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Whispering Walls Front Pot 2", ("Collectable", 0x07, 0x31, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Map Chest Room Pot 1", ("Collectable", 0x07, 0x27, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Map Chest Room Pot 2", ("Collectable", 0x07, 0x2C, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Falling Spikes Lower Pot 2", ("Collectable", 0x07, 0x25, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Falling Spikes Lower Pot 1", ("Collectable", 0x07, 0x24, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Falling Spikes Upper Pot 1", ("Collectable", 0x07, 0x2B, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Falling Spikes Upper Pot 2", ("Collectable", 0x07, 0x2D, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Spike Walls Pot", ("Collectable", 0x07, 0x26, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Invisible Floormaster Pot 1", ("Collectable", 0x07, 0x33, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Invisible Floormaster Pot 2", ("Collectable", 0x07, 0x34, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple After Wind Pot 1", ("Collectable", 0x07, 0x2E, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple After Wind Pot 2", ("Collectable", 0x07, 0x32, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple After Wind Flying Pot 1", ("Collectable", 0x07, 0x36, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "FlyingPot"))), - ("Shadow Temple After Wind Flying Pot 2", ("Collectable", 0x07, 0x37, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "FlyingPot"))), - ("Shadow Temple After Boat Pot", ("Collectable", 0x07, 0x38, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - #("Shadow Temple After Boat Pot 2" ("Collectable", 0x07, 0x3B, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Near Boss Pot 1", ("Collectable", 0x07, 0x3D, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Near Boss Pot 2", ("Collectable", 0x07, 0x3E, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), - ("Shadow Temple Whispering Walls Flying Pot", ("Collectable", 0x07, 0x35, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "FlyingPot"))), + ("Shadow Temple Whispering Walls Near Dead Hand Pot", ("Collectable", 0x07, 0x28, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Whispering Walls Left Pot 1", ("Collectable", 0x07, 0x29, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Whispering Walls Left Pot 2", ("Collectable", 0x07, 0x2A, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Whispering Walls Left Pot 3", ("Collectable", 0x07, 0x2F, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Whispering Walls Front Pot 1", ("Collectable", 0x07, 0x30, None, 'Deku Nuts (5)', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Whispering Walls Front Pot 2", ("Collectable", 0x07, 0x31, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Map Chest Room Pot 1", ("Collectable", 0x07, 0x27, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Map Chest Room Pot 2", ("Collectable", 0x07, 0x2C, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Falling Spikes Lower Pot 2", ("Collectable", 0x07, 0x25, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Falling Spikes Lower Pot 1", ("Collectable", 0x07, 0x24, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Falling Spikes Upper Pot 1", ("Collectable", 0x07, 0x2B, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Falling Spikes Upper Pot 2", ("Collectable", 0x07, 0x2D, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Spike Walls Pot", ("Collectable", 0x07, 0x26, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Invisible Floormaster Pot 1", ("Collectable", 0x07, 0x33, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Invisible Floormaster Pot 2", ("Collectable", 0x07, 0x34, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple After Wind Pot 1", ("Collectable", 0x07, 0x2E, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple After Wind Pot 2", ("Collectable", 0x07, 0x32, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple After Wind Flying Pot 1", ("Collectable", 0x07, 0x36, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "FlyingPot"))), + ("Shadow Temple After Wind Flying Pot 2", ("Collectable", 0x07, 0x37, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "FlyingPot"))), + ("Shadow Temple After Boat Pot", ("Collectable", 0x07, 0x38, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + #("Shadow Temple After Boat Pot 2" ("Collectable", 0x07, 0x3B, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Near Boss Pot 1", ("Collectable", 0x07, 0x3D, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Near Boss Pot 2", ("Collectable", 0x07, 0x3E, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "Pot"))), + ("Shadow Temple Whispering Walls Flying Pot", ("Collectable", 0x07, 0x35, None, 'Recovery Heart', ("Shadow Temple", "Vanilla", "FlyingPot"))), # 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 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 MQ Freestanding - ("Shadow Temple MQ Invisible Blades Recovery Heart 1", ("Collectable", 0x07, 0x20, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), - ("Shadow Temple MQ Invisible Blades Recovery Heart 2", ("Collectable", 0x07, 0x21, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), - ("Shadow Temple MQ Before Boat Recovery Heart 1", ("Collectable", 0x07, 0x22, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), - ("Shadow Temple MQ Before Boat Recovery Heart 2", ("Collectable", 0x07, 0x23, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), - ("Shadow Temple MQ After Boat Upper Recovery Heart 1", ("Collectable", 0x07, 0x39, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), - ("Shadow Temple MQ After Boat Upper Recovery Heart 2", ("Collectable", 0x07, 0x3A, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), - ("Shadow Temple MQ After Boat Lower Recovery Heart", ("Collectable", 0x07, 0x3C, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), - ("Shadow Temple MQ 3 Spinning Pots Rupee 1", ("Collectable", 0x07, 0x40, ([0x28127b8, 0x28127c8, 0x28127d8], None), 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple MQ 3 Spinning Pots Rupee 2", ("Collectable", 0x07, 0x41, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple MQ 3 Spinning Pots Rupee 3", ("Collectable", 0x07, 0x42, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple MQ 3 Spinning Pots Rupee 4", ("Collectable", 0x07, 0x43, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple MQ 3 Spinning Pots Rupee 5", ("Collectable", 0x07, 0x44, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple MQ 3 Spinning Pots Rupee 6", ("Collectable", 0x07, 0x45, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple MQ 3 Spinning Pots Rupee 7", ("Collectable", 0x07, 0x46, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple MQ 3 Spinning Pots Rupee 8", ("Collectable", 0x07, 0x47, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), - ("Shadow Temple MQ 3 Spinning Pots Rupee 9", ("Collectable", 0x07, 0x48, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple MQ Invisible Blades Recovery Heart 1", ("Collectable", 0x07, 0x20, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), + ("Shadow Temple MQ Invisible Blades Recovery Heart 2", ("Collectable", 0x07, 0x21, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), + ("Shadow Temple MQ Before Boat Recovery Heart 1", ("Collectable", 0x07, 0x22, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), + ("Shadow Temple MQ Before Boat Recovery Heart 2", ("Collectable", 0x07, 0x23, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), + ("Shadow Temple MQ After Boat Upper Recovery Heart 1", ("Collectable", 0x07, 0x39, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), + ("Shadow Temple MQ After Boat Upper Recovery Heart 2", ("Collectable", 0x07, 0x3A, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), + ("Shadow Temple MQ After Boat Lower Recovery Heart", ("Collectable", 0x07, 0x3C, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Freestanding"))), + ("Shadow Temple MQ 3 Spinning Pots Rupee 1", ("Collectable", 0x07, 0x40, ([0x28127b8, 0x28127c8, 0x28127d8], None), 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple MQ 3 Spinning Pots Rupee 2", ("Collectable", 0x07, 0x41, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple MQ 3 Spinning Pots Rupee 3", ("Collectable", 0x07, 0x42, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple MQ 3 Spinning Pots Rupee 4", ("Collectable", 0x07, 0x43, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple MQ 3 Spinning Pots Rupee 5", ("Collectable", 0x07, 0x44, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple MQ 3 Spinning Pots Rupee 6", ("Collectable", 0x07, 0x45, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple MQ 3 Spinning Pots Rupee 7", ("Collectable", 0x07, 0x46, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple MQ 3 Spinning Pots Rupee 8", ("Collectable", 0x07, 0x47, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), + ("Shadow Temple MQ 3 Spinning Pots Rupee 9", ("Collectable", 0x07, 0x48, None, 'Rupees (5)', ("Shadow Temple", "Vanilla", "RupeeTower"))), # Shadow Temple MQ Pots/Crates - ("Shadow Temple MQ Whispering Walls Pot 1", ("Collectable", 0x07, 0x28, ([0x27cb110],None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Whispering Walls Pot 2", ("Collectable", 0x07, 0x39, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Whispering Walls After Time Block Flying Pot 1",("Collectable",0x07, 0x20, ([0x27cb130],None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), - ("Shadow Temple MQ Whispering Walls After Time Block Flying Pot 2",("Collectable",0x07, 0x22, ([0x27cb150],None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), - ("Shadow Temple MQ Whispering Walls Before Time Block Flying Pot 1",("Collectable",0x07, 0x21, ([0x27cb140],None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), - ("Shadow Temple MQ Whispering Walls Before Time Block Flying Pot 2",("Collectable",0x07, 0x23, ([0x27cb160],None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), - ("Shadow Temple MQ Compass Room Pot 1", ("Collectable", 0x07, 0x2C, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Compass Room Pot 2", ("Collectable", 0x07, 0x27, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Falling Spikes Lower Pot 1", ("Collectable", 0x07, 0x24, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Falling Spikes Lower Pot 2", ("Collectable", 0x07, 0x25, None, 'Bombs (5)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Falling Spikes Upper Pot 1", ("Collectable", 0x07, 0x2B, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Falling Spikes Upper Pot 2", ("Collectable", 0x07, 0x2D, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ After Wind Pot 1", ("Collectable", 0x07, 0x2E, None, 'Rupees (5)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ After Wind Pot 2", ("Collectable", 0x07, 0x32, None, 'Deku Nuts (5)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ After Wind Flying Pot 1", ("Collectable", 0x07, 0x36, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), - ("Shadow Temple MQ After Wind Flying Pot 2", ("Collectable", 0x07, 0x37, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), - ("Shadow Temple MQ After Boat Pot 1", ("Collectable", 0x07, 0x3B, None, 'Arrows (10)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ After Boat Pot 2", ("Collectable", 0x07, 0x38, None, 'Arrows (10)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Near Boss Pot 1", ("Collectable", 0x07, 0x3E, None, 'Rupees (5)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Near Boss Pot 2", ("Collectable", 0x07, 0x3D, None, 'Arrows (30)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Bomb Flower Room Pot 1", ("Collectable", 0x07, 0x34, None, 'Arrows (30)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Bomb Flower Room Pot 2", ("Collectable", 0x07, 0x33, None, 'Bombs (5)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Spike Walls Pot", ("Collectable", 0x07, 0x26, None, 'Rupees (5)', ("Shadow Temple", "Master Quest", "Pot"))), - ("Shadow Temple MQ Truth Spinner Small Wooden Crate 1", ("Collectable", 0x07, 0x30, None, 'Arrows (10)', ("Shadow Temple", "Master Quest", "SmallCrate"))), - ("Shadow Temple MQ Truth Spinner Small Wooden Crate 2", ("Collectable", 0x07, 0x31, None, 'Rupees (5)', ("Shadow Temple", "Master Quest", "SmallCrate"))), - ("Shadow Temple MQ Truth Spinner Small Wooden Crate 3", ("Collectable", 0x07, 0x3F, ([0x27d8a2c],None), 'Bombs (5)', ("Shadow Temple", "Master Quest", "SmallCrate"))), - ("Shadow Temple MQ Truth Spinner Small Wooden Crate 4", ("Collectable", 0x07, 0x3A, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "SmallCrate"))), + ("Shadow Temple MQ Whispering Walls Pot 1", ("Collectable", 0x07, 0x28, ([0x27cb110], None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Whispering Walls Pot 2", ("Collectable", 0x07, 0x39, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Whispering Walls After Time Block Flying Pot 1",("Collectable",0x07, 0x20, ([0x27cb130], None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), + ("Shadow Temple MQ Whispering Walls After Time Block Flying Pot 2",("Collectable",0x07, 0x22, ([0x27cb150], None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), + ("Shadow Temple MQ Whispering Walls Before Time Block Flying Pot 1",("Collectable",0x07, 0x21, ([0x27cb140], None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), + ("Shadow Temple MQ Whispering Walls Before Time Block Flying Pot 2",("Collectable",0x07, 0x23, ([0x27cb160], None), 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), + ("Shadow Temple MQ Compass Room Pot 1", ("Collectable", 0x07, 0x2C, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Compass Room Pot 2", ("Collectable", 0x07, 0x27, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Falling Spikes Lower Pot 1", ("Collectable", 0x07, 0x24, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Falling Spikes Lower Pot 2", ("Collectable", 0x07, 0x25, None, 'Bombs (5)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Falling Spikes Upper Pot 1", ("Collectable", 0x07, 0x2B, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Falling Spikes Upper Pot 2", ("Collectable", 0x07, 0x2D, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ After Wind Pot 1", ("Collectable", 0x07, 0x2E, None, 'Rupees (5)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ After Wind Pot 2", ("Collectable", 0x07, 0x32, None, 'Deku Nuts (5)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ After Wind Flying Pot 1", ("Collectable", 0x07, 0x36, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), + ("Shadow Temple MQ After Wind Flying Pot 2", ("Collectable", 0x07, 0x37, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "FlyingPot"))), + ("Shadow Temple MQ After Boat Pot 1", ("Collectable", 0x07, 0x3B, None, 'Arrows (10)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ After Boat Pot 2", ("Collectable", 0x07, 0x38, None, 'Arrows (10)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Near Boss Pot 1", ("Collectable", 0x07, 0x3E, None, 'Rupees (5)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Near Boss Pot 2", ("Collectable", 0x07, 0x3D, None, 'Arrows (30)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Bomb Flower Room Pot 1", ("Collectable", 0x07, 0x34, None, 'Arrows (30)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Bomb Flower Room Pot 2", ("Collectable", 0x07, 0x33, None, 'Bombs (5)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Spike Walls Pot", ("Collectable", 0x07, 0x26, None, 'Rupees (5)', ("Shadow Temple", "Master Quest", "Pot"))), + ("Shadow Temple MQ Truth Spinner Small Wooden Crate 1", ("Collectable", 0x07, 0x30, None, 'Arrows (10)', ("Shadow Temple", "Master Quest", "SmallCrate"))), + ("Shadow Temple MQ Truth Spinner Small Wooden Crate 2", ("Collectable", 0x07, 0x31, None, 'Rupees (5)', ("Shadow Temple", "Master Quest", "SmallCrate"))), + ("Shadow Temple MQ Truth Spinner Small Wooden Crate 3", ("Collectable", 0x07, 0x3F, ([0x27d8a2c], None), 'Bombs (5)', ("Shadow Temple", "Master Quest", "SmallCrate"))), + ("Shadow Temple MQ Truth Spinner Small Wooden Crate 4", ("Collectable", 0x07, 0x3A, None, 'Recovery Heart', ("Shadow Temple", "Master Quest", "SmallCrate"))), # Shadow Temple shared - ("Shadow Temple Bongo Bongo Heart", ("BossHeart", 0x18, 0x4F, None, 'Heart Container', ("Shadow Temple", "Vanilla", "Master Quest",))), + ("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 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",))), + ("Spirit Temple Twinrova Heart", ("BossHeart", 0x17, 0x4F, None, 'Heart Container', ("Spirit Temple", "Vanilla", "Master Quest"))), # Spirit Temple Freestanding - ("Spirit Temple Shifting Wall Recovery Heart 1", ("Collectable", 0x06, 0x01, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Freestanding"))), - ("Spirit Temple Shifting Wall Recovery Heart 2", ("Collectable", 0x06, 0x02, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Freestanding"))), - ("Spirit Temple MQ Child Recovery Heart 1", ("Collectable", 0x06, 0x2C, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Freestanding"))), - ("Spirit Temple MQ Child Recovery Heart 2", ("Collectable", 0x06, 0x2E, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Freestanding"))), - + ("Spirit Temple Shifting Wall Recovery Heart 1", ("Collectable", 0x06, 0x01, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Freestanding"))), + ("Spirit Temple Shifting Wall Recovery Heart 2", ("Collectable", 0x06, 0x02, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Freestanding"))), + ("Spirit Temple MQ Child Recovery Heart 1", ("Collectable", 0x06, 0x2C, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Freestanding"))), + ("Spirit Temple MQ Child Recovery Heart 2", ("Collectable", 0x06, 0x2E, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Freestanding"))), + # Spirit Temple Vanilla Pots/Crates - ("Spirit Temple Lobby Pot 1", ("Collectable", 0x06, 0x21, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - ("Spirit Temple Lobby Pot 2", ("Collectable", 0x06, 0x22, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - ("Spirit Temple Child Climb Pot", ("Collectable", 0x06, 0x23, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - #("Spirit Temple Statue Room Pot 1", ("Collectable", 0x06, 0x24, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - #("Spirit Temple Statue Room Pot 2", ("Collectable", 0x06, 0x25, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - #("Spirit Temple Statue Room Pot 3", ("Collectable", 0x06, 0x26, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - #("Spirit Temple Statue Room Pot 4", ("Collectable", 0x06, 0x27, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - #("Spirit Temple Statue Room Pot 5", ("Collectable", 0x06, 0x28, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - #("Spirit Temple Statue Room Pot 6", ("Collectable", 0x06, 0x29, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - ("Spirit Temple Hall After Sun Block Room Pot 1", ("Collectable", 0x06, 0x2A, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - ("Spirit Temple Hall After Sun Block Room Pot 2", ("Collectable", 0x06, 0x2B, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - ("Spirit Temple Beamos Hall Pot", ("Collectable", 0x06, 0x2C, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - ("Spirit Temple Child Anubis Pot", ("Collectable", 0x06, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - ("Spirit Temple Lobby Flying Pot 1", ("Collectable", 0x06, 0x31, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Lobby Flying Pot 2", ("Collectable", 0x06, 0x32, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Child Bridge Flying Pot", ("Collectable", 0x06, 0x34, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Before Child Climb Small Wooden Crate 1", ("Collectable", 0x06, 0x3F, ([0x2B090E0],None), 'Deku Nuts (5)', ("Spirit Temple", "Vanilla", "SmallCrate"))), #Overwrite original flag 0x2C because it conflicts w/ Beamos hall pot - ("Spirit Temple Before Child Climb Small Wooden Crate 2", ("Collectable", 0x06, 0x2E, None, 'Bombs (5)', ("Spirit Temple", "Vanilla", "SmallCrate"))), - #("Spirit Temple Child Anubis Pot", ("Collectable", 0x07, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - #("Spirit Temple Child Anubis Pot", ("Collectable", 0x07, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - #("Spirit Temple Child Anubis Pot", ("Collectable", 0x07, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), - ("Spirit Temple Central Chamber Flying Pot 1", ("Collectable", 0x06, 0x35, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Central Chamber Flying Pot 2", ("Collectable", 0x06, 0x36, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Adult Climb Flying Pot 1", ("Collectable", 0x06, 0x37, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Adult Climb Flying Pot 2", ("Collectable", 0x06, 0x38, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Big Mirror Flying Pot 1", ("Collectable", 0x06, 0x39, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Big Mirror Flying Pot 2", ("Collectable", 0x06, 0x3A, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Big Mirror Flying Pot 3", ("Collectable", 0x06, 0x3B, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Big Mirror Flying Pot 4", ("Collectable", 0x06, 0x3C, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Big Mirror Flying Pot 5", ("Collectable", 0x06, 0x3D, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - ("Spirit Temple Big Mirror Flying Pot 6", ("Collectable", 0x06, 0x3E, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), - + ("Spirit Temple Lobby Pot 1", ("Collectable", 0x06, 0x21, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + ("Spirit Temple Lobby Pot 2", ("Collectable", 0x06, 0x22, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + ("Spirit Temple Child Climb Pot", ("Collectable", 0x06, 0x23, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + #("Spirit Temple Statue Room Pot 1", ("Collectable", 0x06, 0x24, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + #("Spirit Temple Statue Room Pot 2", ("Collectable", 0x06, 0x25, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + #("Spirit Temple Statue Room Pot 3", ("Collectable", 0x06, 0x26, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + #("Spirit Temple Statue Room Pot 4", ("Collectable", 0x06, 0x27, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + #("Spirit Temple Statue Room Pot 5", ("Collectable", 0x06, 0x28, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + #("Spirit Temple Statue Room Pot 6", ("Collectable", 0x06, 0x29, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + ("Spirit Temple Hall After Sun Block Room Pot 1", ("Collectable", 0x06, 0x2A, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + ("Spirit Temple Hall After Sun Block Room Pot 2", ("Collectable", 0x06, 0x2B, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + ("Spirit Temple Beamos Hall Pot", ("Collectable", 0x06, 0x2C, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + ("Spirit Temple Child Anubis Pot", ("Collectable", 0x06, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + ("Spirit Temple Lobby Flying Pot 1", ("Collectable", 0x06, 0x31, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Lobby Flying Pot 2", ("Collectable", 0x06, 0x32, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Child Bridge Flying Pot", ("Collectable", 0x06, 0x34, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Before Child Climb Small Wooden Crate 1", ("Collectable", 0x06, 0x3F, ([0x2B090E0], None), 'Deku Nuts (5)', ("Spirit Temple", "Vanilla", "SmallCrate"))), # Overwrite original flag 0x2C because it conflicts w/ Beamos hall pot + ("Spirit Temple Before Child Climb Small Wooden Crate 2", ("Collectable", 0x06, 0x2E, None, 'Bombs (5)', ("Spirit Temple", "Vanilla", "SmallCrate"))), + #("Spirit Temple Child Anubis Pot", ("Collectable", 0x07, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + #("Spirit Temple Child Anubis Pot", ("Collectable", 0x07, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + #("Spirit Temple Child Anubis Pot", ("Collectable", 0x07, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "Pot"))), + ("Spirit Temple Central Chamber Flying Pot 1", ("Collectable", 0x06, 0x35, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Central Chamber Flying Pot 2", ("Collectable", 0x06, 0x36, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Adult Climb Flying Pot 1", ("Collectable", 0x06, 0x37, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Adult Climb Flying Pot 2", ("Collectable", 0x06, 0x38, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Big Mirror Flying Pot 1", ("Collectable", 0x06, 0x39, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Big Mirror Flying Pot 2", ("Collectable", 0x06, 0x3A, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Big Mirror Flying Pot 3", ("Collectable", 0x06, 0x3B, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Big Mirror Flying Pot 4", ("Collectable", 0x06, 0x3C, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Big Mirror Flying Pot 5", ("Collectable", 0x06, 0x3D, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + ("Spirit Temple Big Mirror Flying Pot 6", ("Collectable", 0x06, 0x3E, None, 'Recovery Heart', ("Spirit Temple", "Vanilla", "FlyingPot"))), + # Spirit Temple MQ Pots - ("Spirit Temple MQ Lobby Pot 1", ("Collectable", 0x06, 0x31, None, 'Bombs (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Lobby Pot 2", ("Collectable", 0x06, 0x21, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Lobby Pot 3", ("Collectable", 0x06, 0x22, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Lobby Pot 4", ("Collectable", 0x06, 0x32, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Child Torch Slugs Room Pot", ("Collectable", 0x06, 0x3F, ([0x2b123c4], None), 'Bombs (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Child 3 Gibdo Room Pot 1", ("Collectable", 0x06, 0x33, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Child 3 Gibdo Room Pot 2", ("Collectable", 0x06, 0x34, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Child Stalfos Fight Pot 1", ("Collectable", 0x06, 0x30, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Child Stalfos Fight Pot 2", ("Collectable", 0x06, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Child Stalfos Fight Pot 3", ("Collectable", 0x06, 0x2E, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - #("Spirit Temple MQ Child Stalfos Fight Pot 4", ("Collectable", 0x06, 0x2D, None, 'N/A', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Child Climb Pot", ("Collectable", 0x06, 0x23, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), - #("Spirit Temple MQ Central Chamber Flying Pot 1", ("Collectable", 0x06, 0x25, None, 'N/A', ("Spirit Temple", "Master Quest", "FlyingPot"))), - #("Spirit Temple MQ Central Chamber Flying Pot 2", ("Collectable", 0x06, 0x28, None, 'N/A', ("Spirit Temple", "Master Quest", "FlyingPot"))), - #("Spirit Temple MQ Central Chamber Flying Pot 3", ("Collectable", 0x06, 0x36, None, 'N/A', ("Spirit Temple", "Master Quest", "FlyingPot"))), - ("Spirit Temple MQ Central Chamber Floor Pot 1", ("Collectable", 0x06, 0x35, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Central Chamber Floor Pot 2", ("Collectable", 0x06, 0x27, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Central Chamber Floor Pot 3", ("Collectable", 0x06, 0x29, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Central Chamber Top Left Pot (Left)", ("Collectable", 0x06, 0x24, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Central Chamber Top Left Pot (Right)", ("Collectable", 0x06, 0x26, None, 'Arrows (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Sun Block Room Pot 1", ("Collectable", 0x06, 0x2A, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Sun Block Room Pot 2", ("Collectable", 0x06, 0x2B, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Below 4 Wallmasters Pot 1", ("Collectable", 0x06, 0x38, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Below 4 Wallmasters Pot 2", ("Collectable", 0x06, 0x37, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Shifting Wall Pot 1", ("Collectable", 0x06, 0x01, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Shifting Wall Pot 2", ("Collectable", 0x06, 0x02, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ After Shifting Wall Room Pot 1", ("Collectable", 0x06, 0x39, None, 'Bombs (5)', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ After Shifting Wall Room Pot 2", ("Collectable", 0x06, 0x3A, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Big Mirror Pot 1", ("Collectable", 0x06, 0x3E, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Big Mirror Pot 2", ("Collectable", 0x06, 0x3C, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Big Mirror Pot 3", ("Collectable", 0x06, 0x3D, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), - ("Spirit Temple MQ Big Mirror Pot 4", ("Collectable", 0x06, 0x3B, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Lobby Pot 1", ("Collectable", 0x06, 0x31, None, 'Bombs (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Lobby Pot 2", ("Collectable", 0x06, 0x21, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Lobby Pot 3", ("Collectable", 0x06, 0x22, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Lobby Pot 4", ("Collectable", 0x06, 0x32, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Child Torch Slugs Room Pot", ("Collectable", 0x06, 0x3F, ([0x2b123c4], None), 'Bombs (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Child 3 Gibdo Room Pot 1", ("Collectable", 0x06, 0x33, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Child 3 Gibdo Room Pot 2", ("Collectable", 0x06, 0x34, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Child Stalfos Fight Pot 1", ("Collectable", 0x06, 0x30, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Child Stalfos Fight Pot 2", ("Collectable", 0x06, 0x2F, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Child Stalfos Fight Pot 3", ("Collectable", 0x06, 0x2E, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + #("Spirit Temple MQ Child Stalfos Fight Pot 4", ("Collectable", 0x06, 0x2D, None, 'N/A', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Child Climb Pot", ("Collectable", 0x06, 0x23, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), + #("Spirit Temple MQ Central Chamber Flying Pot 1", ("Collectable", 0x06, 0x25, None, 'N/A', ("Spirit Temple", "Master Quest", "FlyingPot"))), + #("Spirit Temple MQ Central Chamber Flying Pot 2", ("Collectable", 0x06, 0x28, None, 'N/A', ("Spirit Temple", "Master Quest", "FlyingPot"))), + #("Spirit Temple MQ Central Chamber Flying Pot 3", ("Collectable", 0x06, 0x36, None, 'N/A', ("Spirit Temple", "Master Quest", "FlyingPot"))), + ("Spirit Temple MQ Central Chamber Floor Pot 1", ("Collectable", 0x06, 0x35, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Central Chamber Floor Pot 2", ("Collectable", 0x06, 0x27, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Central Chamber Floor Pot 3", ("Collectable", 0x06, 0x29, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Central Chamber Top Left Pot (Left)", ("Collectable", 0x06, 0x24, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Central Chamber Top Left Pot (Right)", ("Collectable", 0x06, 0x26, None, 'Arrows (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Sun Block Room Pot 1", ("Collectable", 0x06, 0x2A, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Sun Block Room Pot 2", ("Collectable", 0x06, 0x2B, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Below 4 Wallmasters Pot 1", ("Collectable", 0x06, 0x38, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Below 4 Wallmasters Pot 2", ("Collectable", 0x06, 0x37, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Shifting Wall Pot 1", ("Collectable", 0x06, 0x01, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Shifting Wall Pot 2", ("Collectable", 0x06, 0x02, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ After Shifting Wall Room Pot 1", ("Collectable", 0x06, 0x39, None, 'Bombs (5)', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ After Shifting Wall Room Pot 2", ("Collectable", 0x06, 0x3A, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Big Mirror Pot 1", ("Collectable", 0x06, 0x3E, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Big Mirror Pot 2", ("Collectable", 0x06, 0x3C, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Big Mirror Pot 3", ("Collectable", 0x06, 0x3D, None, 'Recovery Heart', ("Spirit Temple", "Master Quest", "Pot"))), + ("Spirit Temple MQ Big Mirror Pot 4", ("Collectable", 0x06, 0x3B, None, 'Rupees (5)', ("Spirit Temple", "Master Quest", "Pot"))), # Spirit Temple MQ Crates - ("Spirit Temple MQ Central Chamber Crate 1", ("Collectable", 0x06, 0x40, ([0x2b3c38c],None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), - ("Spirit Temple MQ Central Chamber Crate 2", ("Collectable", 0x06, 0x41, ([0x2b3c39c],None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), - ("Spirit Temple MQ Big Mirror Crate 1", ("Collectable", 0x06, 0x42, ([0x2bceb9c],None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), - ("Spirit Temple MQ Big Mirror Crate 2", ("Collectable", 0x06, 0x43, ([0x2bcebac],None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), - ("Spirit Temple MQ Big Mirror Crate 3", ("Collectable", 0x06, 0x44, ([0x2bcebbc],None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), - ("Spirit Temple MQ Big Mirror Crate 4", ("Collectable", 0x06, 0x45, ([0x2bcebcc],None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), + ("Spirit Temple MQ Central Chamber Crate 1", ("Collectable", 0x06, 0x40, ([0x2b3c38c], None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), + ("Spirit Temple MQ Central Chamber Crate 2", ("Collectable", 0x06, 0x41, ([0x2b3c39c], None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), + ("Spirit Temple MQ Big Mirror Crate 1", ("Collectable", 0x06, 0x42, ([0x2bceb9c], None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), + ("Spirit Temple MQ Big Mirror Crate 2", ("Collectable", 0x06, 0x43, ([0x2bcebac], None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), + ("Spirit Temple MQ Big Mirror Crate 3", ("Collectable", 0x06, 0x44, ([0x2bcebbc], None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), + ("Spirit Temple MQ Big Mirror Crate 4", ("Collectable", 0x06, 0x45, ([0x2bcebcc], None), 'Rupee (1)', ("Spirit Temple", "Master Quest", "Crate"))), # 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 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 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 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 Vanilla Freestanding - ("Ice Cavern Frozen Blue Rupee", ("Collectable", 0x09, 0x21, None, 'Rupees (5)', ("Ice Cavern", "Vanilla", "Freestanding"))), - ("Ice Cavern Map Room Recovery Heart 1", ("Collectable", 0x09, 0x22, None, 'Recovery Heart', ("Ice Cavern", "Vanilla","Freestanding"))), - ("Ice Cavern Map Room Recovery Heart 2", ("Collectable", 0x09, 0x23, None, 'Recovery Heart', ("Ice Cavern", "Vanilla","Freestanding"))), - ("Ice Cavern Map Room Recovery Heart 3", ("Collectable", 0x09, 0x24, None, 'Recovery Heart', ("Ice Cavern", "Vanilla","Freestanding"))), - ("Ice Cavern Block Room Red Rupee 1", ("Collectable", 0x09, 0x2E, None, 'Rupees (20)', ("Ice Cavern", "Vanilla","Freestanding"))), - ("Ice Cavern Block Room Red Rupee 2", ("Collectable", 0x09, 0x2F, None, 'Rupees (20)', ("Ice Cavern", "Vanilla","Freestanding"))), - ("Ice Cavern Block Room Red Rupee 3", ("Collectable", 0x09, 0x30, None, 'Rupees (20)', ("Ice Cavern", "Vanilla","Freestanding"))), - ("Ice Cavern Freestanding PoH", ("Collectable", 0x09, 0x01, None, 'Piece of Heart', ("Ice Cavern", "Vanilla",))), + ("Ice Cavern Frozen Blue Rupee", ("Collectable", 0x09, 0x21, None, 'Rupees (5)', ("Ice Cavern", "Vanilla", "Freestanding"))), + ("Ice Cavern Map Room Recovery Heart 1", ("Collectable", 0x09, 0x22, None, 'Recovery Heart', ("Ice Cavern", "Vanilla","Freestanding"))), + ("Ice Cavern Map Room Recovery Heart 2", ("Collectable", 0x09, 0x23, None, 'Recovery Heart', ("Ice Cavern", "Vanilla","Freestanding"))), + ("Ice Cavern Map Room Recovery Heart 3", ("Collectable", 0x09, 0x24, None, 'Recovery Heart', ("Ice Cavern", "Vanilla","Freestanding"))), + ("Ice Cavern Block Room Red Rupee 1", ("Collectable", 0x09, 0x2E, None, 'Rupees (20)', ("Ice Cavern", "Vanilla","Freestanding"))), + ("Ice Cavern Block Room Red Rupee 2", ("Collectable", 0x09, 0x2F, None, 'Rupees (20)', ("Ice Cavern", "Vanilla","Freestanding"))), + ("Ice Cavern Block Room Red Rupee 3", ("Collectable", 0x09, 0x30, None, 'Rupees (20)', ("Ice Cavern", "Vanilla","Freestanding"))), + ("Ice Cavern Freestanding PoH", ("Collectable", 0x09, 0x01, None, 'Piece of Heart', ("Ice Cavern", "Vanilla"))), # Ice Cavern Vanilla Pots - ("Ice Cavern Hall Pot 1", ("Collectable", 0x09, 0x25, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), - ("Ice Cavern Hall Pot 2", ("Collectable", 0x09, 0x26, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), - ("Ice Cavern Spinning Blade Pot 1", ("Collectable", 0x09, 0x27, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), - ("Ice Cavern Spinning Blade Pot 2", ("Collectable", 0x09, 0x28, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), - ("Ice Cavern Spinning Blade Pot 3", ("Collectable", 0x09, 0x29, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), - ("Ice Cavern Near End Pot 1", ("Collectable", 0x09, 0x2A, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), - ("Ice Cavern Near End Pot 2", ("Collectable", 0x09, 0x2B, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), - ("Ice Cavern Frozen Pot", ("Collectable", 0x09, 0x2D, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), - ("Ice Cavern Spinning Blade Flying Pot", ("Collectable", 0x09, 0x2C, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "FlyingPot"))), - + ("Ice Cavern Hall Pot 1", ("Collectable", 0x09, 0x25, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), + ("Ice Cavern Hall Pot 2", ("Collectable", 0x09, 0x26, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), + ("Ice Cavern Spinning Blade Pot 1", ("Collectable", 0x09, 0x27, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), + ("Ice Cavern Spinning Blade Pot 2", ("Collectable", 0x09, 0x28, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), + ("Ice Cavern Spinning Blade Pot 3", ("Collectable", 0x09, 0x29, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), + ("Ice Cavern Near End Pot 1", ("Collectable", 0x09, 0x2A, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), + ("Ice Cavern Near End Pot 2", ("Collectable", 0x09, 0x2B, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), + ("Ice Cavern Frozen Pot", ("Collectable", 0x09, 0x2D, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "Pot"))), + ("Ice Cavern Spinning Blade Flying Pot", ("Collectable", 0x09, 0x2C, None, 'Recovery Heart', ("Ice Cavern", "Vanilla", "FlyingPot"))), + # 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",))), + ("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"))), # Ice Cavern MQ Pots - ("Ice Cavern MQ First Hall Pot", ("Collectable", 0x09, 0x20, None, 'Recovery Heart', ("Ice Cavern", "Master Quest", "Pot"))), - ("Ice Cavern MQ Tektite Room Pot 1", ("Collectable", 0x09, 0x26, None, 'Recovery Heart', ("Ice Cavern", "Master Quest", "Pot"))), - ("Ice Cavern MQ Tektite Room Pot 2", ("Collectable", 0x09, 0x25, None, 'Recovery Heart', ("Ice Cavern", "Master Quest", "Pot"))), - ("Ice Cavern MQ Center Room Pot 1", ("Collectable", 0x09, 0x28, None, 'Rupees (5)', ("Ice Cavern", "Master Quest", "Pot"))), - ("Ice Cavern MQ Center Room Pot 2", ("Collectable", 0x09, 0x29, None, 'Recovery Heart', ("Ice Cavern", "Master Quest", "Pot"))), - #("Ice Cavern MQ Center Room Pot 3", ("Collectable", 0x09, 0x2C, None, 'N/A', ("Ice Cavern", "Master Quest", "Pot"))), - #("Ice Cavern MQ Center Room Pot 4", ("Collectable", 0x09, 0x27, None, 'N/A', ("Ice Cavern", "Master Quest", "Pot"))), - ("Ice Cavern MQ Near End Pot", ("Collectable", 0x09, 0x2B, None, 'Rupees (5)', ("Ice Cavern", "Master Quest", "Pot"))), - #("Ice Cavern MQ Near End Pot 2", ("Collectable", 0x09, 0x2A, None, 'N/A', ("Ice Cavern", "Master Quest", "Pot"))), - ("Ice Cavern MQ Compass Room Pot 1", ("Collectable", 0x09, 0x36, None, 'Bombs (5)', ("Ice Cavern", "Master Quest", "Pot"))), - ("Ice Cavern MQ Compass Room Pot 2", ("Collectable", 0x09, 0x37, None, 'Bombs (5)', ("Ice Cavern", "Master Quest", "Pot"))), + ("Ice Cavern MQ First Hall Pot", ("Collectable", 0x09, 0x20, None, 'Recovery Heart', ("Ice Cavern", "Master Quest", "Pot"))), + ("Ice Cavern MQ Tektite Room Pot 1", ("Collectable", 0x09, 0x26, None, 'Recovery Heart', ("Ice Cavern", "Master Quest", "Pot"))), + ("Ice Cavern MQ Tektite Room Pot 2", ("Collectable", 0x09, 0x25, None, 'Recovery Heart', ("Ice Cavern", "Master Quest", "Pot"))), + ("Ice Cavern MQ Center Room Pot 1", ("Collectable", 0x09, 0x28, None, 'Rupees (5)', ("Ice Cavern", "Master Quest", "Pot"))), + ("Ice Cavern MQ Center Room Pot 2", ("Collectable", 0x09, 0x29, None, 'Recovery Heart', ("Ice Cavern", "Master Quest", "Pot"))), + #("Ice Cavern MQ Center Room Pot 3", ("Collectable", 0x09, 0x2C, None, 'N/A', ("Ice Cavern", "Master Quest", "Pot"))), + #("Ice Cavern MQ Center Room Pot 4", ("Collectable", 0x09, 0x27, None, 'N/A', ("Ice Cavern", "Master Quest", "Pot"))), + ("Ice Cavern MQ Near End Pot", ("Collectable", 0x09, 0x2B, None, 'Rupees (5)', ("Ice Cavern", "Master Quest", "Pot"))), + #("Ice Cavern MQ Near End Pot 2", ("Collectable", 0x09, 0x2A, None, 'N/A', ("Ice Cavern", "Master Quest", "Pot"))), + ("Ice Cavern MQ Compass Room Pot 1", ("Collectable", 0x09, 0x36, None, 'Bombs (5)', ("Ice Cavern", "Master Quest", "Pot"))), + ("Ice Cavern MQ Compass Room Pot 2", ("Collectable", 0x09, 0x37, None, 'Bombs (5)', ("Ice Cavern", "Master Quest", "Pot"))), # 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 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 Vanilla Freestanding - ("Gerudo Training Ground Beamos Recovery Heart 1", ("Collectable", 0x0B, 0x22, None, 'Recovery Heart', ("Gerudo Training Ground", "Vanilla", "Freestanding"))), - ("Gerudo Training Ground Beamos Recovery Heart 2", ("Collectable", 0x0B, 0x23, None, 'Recovery Heart', ("Gerudo Training Ground", "Vanilla", "Freestanding"))), + ("Gerudo Training Ground Beamos Recovery Heart 1", ("Collectable", 0x0B, 0x22, None, 'Recovery Heart', ("Gerudo Training Ground", "Vanilla", "Freestanding"))), + ("Gerudo Training Ground Beamos Recovery Heart 2", ("Collectable", 0x0B, 0x23, None, 'Recovery Heart', ("Gerudo Training Ground", "Vanilla", "Freestanding"))), # 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",))), + ("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"))), # Gerudo Training Ground MQ Pots/Crates - ("Gerudo Training Ground MQ Lobby Left Pot 1", ("Collectable", 0x0B, 0x3B, None, 'Recovery Heart', ("Gerudo Training Ground", "Master Quest", "Pot"))), - ("Gerudo Training Ground MQ Lobby Left Pot 2", ("Collectable", 0x0B, 0x3C, None, 'Rupees (5)', ("Gerudo Training Ground", "Master Quest", "Pot"))), - ("Gerudo Training Ground MQ Lobby Right Pot 1", ("Collectable", 0x0B, 0x3D, None, 'Rupees (5)', ("Gerudo Training Ground", "Master Quest", "Pot"))), - ("Gerudo Training Ground MQ Lobby Right Pot 2", ("Collectable", 0x0B, 0x3E, None, 'Recovery Heart', ("Gerudo Training Ground", "Master Quest", "Pot"))), - ("Gerudo Training Ground MQ Maze Crate", ("Collectable", 0x0B, 0x40, ([0x28d8234],None), 'Rupee (1)', ("Gerudo Training Ground", "Master Quest", "Crate"))), - + ("Gerudo Training Ground MQ Lobby Left Pot 1", ("Collectable", 0x0B, 0x3B, None, 'Recovery Heart', ("Gerudo Training Ground", "Master Quest", "Pot"))), + ("Gerudo Training Ground MQ Lobby Left Pot 2", ("Collectable", 0x0B, 0x3C, None, 'Rupees (5)', ("Gerudo Training Ground", "Master Quest", "Pot"))), + ("Gerudo Training Ground MQ Lobby Right Pot 1", ("Collectable", 0x0B, 0x3D, None, 'Rupees (5)', ("Gerudo Training Ground", "Master Quest", "Pot"))), + ("Gerudo Training Ground MQ Lobby Right Pot 2", ("Collectable", 0x0B, 0x3E, None, 'Recovery Heart', ("Gerudo Training Ground", "Master Quest", "Pot"))), + ("Gerudo Training Ground MQ Maze Crate", ("Collectable", 0x0B, 0x40, ([0x28d8234], None), 'Rupee (1)', ("Gerudo Training Ground", "Master Quest", "Crate"))), + # 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", ("Scrub", 0x0D, 0x3A, None, 'Buy Green Potion', ("Ganon's Castle", "Vanilla", "Deku Scrub",))), - ("Ganons Castle Deku Scrub Center-Left", ("Scrub", 0x0D, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("Ganon's Castle", "Vanilla", "Deku Scrub",))), - ("Ganons Castle Deku Scrub Center-Right", ("Scrub", 0x0D, 0x33, None, 'Buy Arrows (30)', ("Ganon's Castle", "Vanilla", "Deku Scrub",))), - ("Ganons Castle Deku Scrub Right", ("Scrub", 0x0D, 0x39, None, 'Buy Red Potion for 30 Rupees', ("Ganon's Castle", "Vanilla", "Deku Scrub",))), + ("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", ("Scrub", 0x0D, 0x3A, None, 'Buy Green Potion', ("Ganon's Castle", "Vanilla", "Deku Scrub"))), + ("Ganons Castle Deku Scrub Center-Left", ("Scrub", 0x0D, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("Ganon's Castle", "Vanilla", "Deku Scrub"))), + ("Ganons Castle Deku Scrub Center-Right", ("Scrub", 0x0D, 0x33, None, 'Buy Arrows (30)', ("Ganon's Castle", "Vanilla", "Deku Scrub"))), + ("Ganons Castle Deku Scrub Right", ("Scrub", 0x0D, 0x39, None, 'Buy Red Potion for 30 Rupees', ("Ganon's Castle", "Vanilla", "Deku Scrub"))), # Ganons Castle Vanilla Freestanding - ("Ganons Castle Shadow Trial Recovery Heart 1", ("Collectable", 0x0D, 0x21, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), - ("Ganons Castle Shadow Trial Recovery Heart 2", ("Collectable", 0x0D, 0x22, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), - ("Ganons Castle Shadow Trial Recovery Heart 3", ("Collectable", 0x0D, 0x23, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), - ("Ganons Castle Fire Trial Recovery Heart", ("Collectable", 0x0D, 0x24, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), - ("Ganons Castle Spirit Trial Recovery Heart", ("Collectable", 0x0D, 0x26, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), + ("Ganons Castle Shadow Trial Recovery Heart 1", ("Collectable", 0x0D, 0x21, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), + ("Ganons Castle Shadow Trial Recovery Heart 2", ("Collectable", 0x0D, 0x22, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), + ("Ganons Castle Shadow Trial Recovery Heart 3", ("Collectable", 0x0D, 0x23, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), + ("Ganons Castle Fire Trial Recovery Heart", ("Collectable", 0x0D, 0x24, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), + ("Ganons Castle Spirit Trial Recovery Heart", ("Collectable", 0x0D, 0x26, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Freestanding"))), # Ganons Castle Vanilla Pots - ("Ganons Castle Water Trial Pot 1", ("Collectable", 0x0D, 0x39, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Water Trial Pot 2", ("Collectable", 0x0D, 0x3A, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Forest Trial Pot 1", ("Collectable", 0x0D, 0x35, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Forest Trial Pot 2", ("Collectable", 0x0D, 0x36, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Light Trial Boulder Pot", ("Collectable", 0x0D, 0x25, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Light Trial Pot 1", ("Collectable", 0x0D, 0x3B, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Light Trial Pot 2", ("Collectable", 0x0D, 0x3C, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Shadow Trial Like Like Pot 1", ("Collectable", 0x0D, 0x2D, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Shadow Trial Like Like Pot 2", ("Collectable", 0x0D, 0x2F, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Shadow Trial Pot 1", ("Collectable", 0x0D, 0x31, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Shadow Trial Pot 2", ("Collectable", 0x0D, 0x32, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Fire Trial Pot 1", ("Collectable", 0x0D, 0x30, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Fire Trial Pot 2", ("Collectable", 0x0D, 0x37, ([0x325409C],None), 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Spirit Trial Pot 1", ("Collectable", 0x0D, 0x33, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - ("Ganons Castle Spirit Trial Pot 2", ("Collectable", 0x0D, 0x34, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), - + ("Ganons Castle Water Trial Pot 1", ("Collectable", 0x0D, 0x39, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Water Trial Pot 2", ("Collectable", 0x0D, 0x3A, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Forest Trial Pot 1", ("Collectable", 0x0D, 0x35, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Forest Trial Pot 2", ("Collectable", 0x0D, 0x36, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Light Trial Boulder Pot", ("Collectable", 0x0D, 0x25, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Light Trial Pot 1", ("Collectable", 0x0D, 0x3B, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Light Trial Pot 2", ("Collectable", 0x0D, 0x3C, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Shadow Trial Like Like Pot 1", ("Collectable", 0x0D, 0x2D, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Shadow Trial Like Like Pot 2", ("Collectable", 0x0D, 0x2F, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Shadow Trial Pot 1", ("Collectable", 0x0D, 0x31, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Shadow Trial Pot 2", ("Collectable", 0x0D, 0x32, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Fire Trial Pot 1", ("Collectable", 0x0D, 0x30, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Fire Trial Pot 2", ("Collectable", 0x0D, 0x37, ([0x325409C], None), 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Spirit Trial Pot 1", ("Collectable", 0x0D, 0x33, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + ("Ganons Castle Spirit Trial Pot 2", ("Collectable", 0x0D, 0x34, None, 'Recovery Heart', ("Ganon's Castle", "Vanilla", "Pot"))), + # 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", ("Scrub", 0x0D, 0x3A, None, 'Buy Green Potion', ("Ganon's Castle", "Master Quest", "Deku Scrub",))), - ("Ganons Castle MQ Deku Scrub Center-Left", ("Scrub", 0x0D, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("Ganon's Castle", "Master Quest", "Deku Scrub",))), - ("Ganons Castle MQ Deku Scrub Center", ("Scrub", 0x0D, 0x33, None, 'Buy Arrows (30)', ("Ganon's Castle", "Master Quest", "Deku Scrub",))), - ("Ganons Castle MQ Deku Scrub Center-Right", ("Scrub", 0x0D, 0x39, None, 'Buy Red Potion for 30 Rupees', ("Ganon's Castle", "Master Quest", "Deku Scrub",))), - ("Ganons Castle MQ Deku Scrub Right", ("Scrub", 0x0D, 0x30, None, 'Buy Deku Nut (5)', ("Ganon's Castle", "Master Quest", "Deku Scrub",))), + ("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", ("Scrub", 0x0D, 0x3A, None, 'Buy Green Potion', ("Ganon's Castle", "Master Quest", "Deku Scrub"))), + ("Ganons Castle MQ Deku Scrub Center-Left", ("Scrub", 0x0D, 0x37, None, 'Buy Bombs (5) for 35 Rupees', ("Ganon's Castle", "Master Quest", "Deku Scrub"))), + ("Ganons Castle MQ Deku Scrub Center", ("Scrub", 0x0D, 0x33, None, 'Buy Arrows (30)', ("Ganon's Castle", "Master Quest", "Deku Scrub"))), + ("Ganons Castle MQ Deku Scrub Center-Right", ("Scrub", 0x0D, 0x39, None, 'Buy Red Potion for 30 Rupees', ("Ganon's Castle", "Master Quest", "Deku Scrub"))), + ("Ganons Castle MQ Deku Scrub Right", ("Scrub", 0x0D, 0x30, None, 'Buy Deku Nut (5)', ("Ganon's Castle", "Master Quest", "Deku Scrub"))), # Ganon's Castle MQ Freestanding - ("Ganons Castle MQ Water Trial Recovery Heart", ("Collectable", 0x0D, 0x3F, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Freestanding"))), - ("Ganons Castle MQ Light Trial Recovery Heart 1", ("Collectable", 0x0D, 0x3D, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Freestanding"))), - ("Ganons Castle MQ Light Trial Recovery Heart 2", ("Collectable", 0x0D, 0x3E, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Freestanding"))), + ("Ganons Castle MQ Water Trial Recovery Heart", ("Collectable", 0x0D, 0x3F, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Freestanding"))), + ("Ganons Castle MQ Light Trial Recovery Heart 1", ("Collectable", 0x0D, 0x3D, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Freestanding"))), + ("Ganons Castle MQ Light Trial Recovery Heart 2", ("Collectable", 0x0D, 0x3E, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Freestanding"))), # Ganon's Castle MQ Pots - ("Ganons Castle MQ Water Trial Pot 1", ("Collectable", 0x0D, 0x39, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Water Trial Pot 2", ("Collectable", 0x0D, 0x3A, None, 'Arrows (10)', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Forest Trial Pot 1", ("Collectable", 0x0D, 0x35, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Forest Trial Pot 2", ("Collectable", 0x0D, 0x36, None, 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Light Trial Pot 1", ("Collectable", 0x0D, 0x3B, None, 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Light Trial Pot 2", ("Collectable", 0x0D, 0x3C, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Shadow Trial Pot 1", ("Collectable", 0x0D, 0x32, None, 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Shadow Trial Pot 2", ("Collectable", 0x0D, 0x38, None, 'Arrows (10)', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Fire Trial Pot 1", ("Collectable", 0x0D, 0x31, ([0x325bd9c], None), 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Fire Trial Pot 2", ("Collectable", 0x0D, 0x37, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Spirit Trial Pot 1", ("Collectable", 0x0D, 0x34, None, 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), - ("Ganons Castle MQ Spirit Trial Pot 2", ("Collectable", 0x0D, 0x33, None, 'Deku Nuts (5)', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Water Trial Pot 1", ("Collectable", 0x0D, 0x39, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Water Trial Pot 2", ("Collectable", 0x0D, 0x3A, None, 'Arrows (10)', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Forest Trial Pot 1", ("Collectable", 0x0D, 0x35, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Forest Trial Pot 2", ("Collectable", 0x0D, 0x36, None, 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Light Trial Pot 1", ("Collectable", 0x0D, 0x3B, None, 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Light Trial Pot 2", ("Collectable", 0x0D, 0x3C, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Shadow Trial Pot 1", ("Collectable", 0x0D, 0x32, None, 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Shadow Trial Pot 2", ("Collectable", 0x0D, 0x38, None, 'Arrows (10)', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Fire Trial Pot 1", ("Collectable", 0x0D, 0x31, ([0x325bd9c], None), 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Fire Trial Pot 2", ("Collectable", 0x0D, 0x37, None, 'Recovery Heart', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Spirit Trial Pot 1", ("Collectable", 0x0D, 0x34, None, 'Rupees (5)', ("Ganon's Castle", "Master Quest", "Pot"))), + ("Ganons Castle MQ Spirit Trial Pot 2", ("Collectable", 0x0D, 0x33, None, 'Deku Nuts (5)', ("Ganon's Castle", "Master Quest", "Pot"))), # Ganon's Castle shared - ("Ganons Tower Boss Key Chest", ("Chest", 0x0A, 0x0B, None, 'Boss Key (Ganons Castle)', ("Ganon's Castle", "Vanilla", "Master Quest",))), + ("Ganons Tower Boss Key Chest", ("Chest", 0x0A, 0x0B, None, 'Boss Key (Ganons Castle)', ("Ganon's Castle", "Vanilla", "Master Quest"))), # Ganon's Tower Pots - ("Ganons Tower Pot 1", ("Collectable", 0x19, 0x20, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 2", ("Collectable", 0x19, 0x21, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 3", ("Collectable", 0x19, 0x25, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 4", ("Collectable", 0x19, 0x22, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 5", ("Collectable", 0x19, 0x26, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 6", ("Collectable", 0x19, 0x27, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 7", ("Collectable", 0x19, 0x23, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 8", ("Collectable", 0x19, 0x24, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 9", ("Collectable", 0x19, 0x2A, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 10", ("Collectable", 0x19, 0x2B, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 11", ("Collectable", 0x19, 0x2C, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 12", ("Collectable", 0x19, 0x2D, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 13", ("Collectable", 0x19, 0x2E, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), - ("Ganons Tower Pot 14", ("Collectable", 0x19, 0x31, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 1", ("Collectable", 0x19, 0x20, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 2", ("Collectable", 0x19, 0x21, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 3", ("Collectable", 0x19, 0x25, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 4", ("Collectable", 0x19, 0x22, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 5", ("Collectable", 0x19, 0x26, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 6", ("Collectable", 0x19, 0x27, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 7", ("Collectable", 0x19, 0x23, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 8", ("Collectable", 0x19, 0x24, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 9", ("Collectable", 0x19, 0x2A, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 10", ("Collectable", 0x19, 0x2B, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 11", ("Collectable", 0x19, 0x2C, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 12", ("Collectable", 0x19, 0x2D, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 13", ("Collectable", 0x19, 0x2E, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), + ("Ganons Tower Pot 14", ("Collectable", 0x19, 0x31, None, 'Recovery Heart', ("Ganon's Tower", "Pot"))), ## 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)), - ("Deku Shield Pot", ("Drop", None, None, None, 'Deku Shield Drop', None)), + ("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)), - - ("ToT Child Altar Hint", ("Hint", None, None, None, None, None)), - ("ToT Adult Altar Hint", ("Hint", None, None, None, None, None)), - ("Dampe Diary Hint", ("Hint", None, None, None, None, None)), - ("Ganondorf Hint", ("Hint", None, None, None, None, None)), + ("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)), + + ("ToT Child Altar Hint", ("Hint", None, None, None, None, None)), + ("ToT Adult Altar Hint", ("Hint", None, None, None, None, None)), + ("Dampe Diary Hint", ("Hint", None, None, None, None, None)), + ("Ganondorf Hint", ("Hint", None, None, None, None, None)), ]) location_sort_order = { diff --git a/MQ.py b/MQ.py index 1318d53e6..7368bd568 100644 --- a/MQ.py +++ b/MQ.py @@ -43,7 +43,6 @@ # the floor map data is missing a vertex pointer that would point within kaleido_scope. # As such, if the file moves, the patch will break. -import logging from Utils import data_path from Rom import Rom import json @@ -378,10 +377,12 @@ def write_data(self, rom:Rom): self.file.relocate(rom) headcur = self.file.start + code = rom.read_byte(headcur) loop = 0x20 while loop != 0 and code != 0x14: #terminator - loop -= 1 + loop -= 1 + if code == 0x01: # actors offset = self.file.end - self.file.start write_actor_data(rom, self.file.end, self.actors) diff --git a/Patches.py b/Patches.py index 8f20029b4..077d6b2ed 100644 --- a/Patches.py +++ b/Patches.py @@ -24,8 +24,7 @@ from version import __version__ from ItemPool import song_list from SceneFlags import get_scene_flag_table, get_scene_flag_table_bytes -from texture_util import ci4_texture_apply_rgba16patch_and_convert_to_ci8, rgba16_patch, rgba16_from_file -import StartingItems +from texture_util import ci4_texture_apply_rgba16patch_and_convert_to_ci8, rgba16_patch def patch_rom(spoiler:Spoiler, world:World, rom:Rom): @@ -99,10 +98,10 @@ def patch_rom(spoiler:Spoiler, world:World, rom:Rom): # Crates are ci4 textures in the normal ROM but for pot/crate textures match contents were upgraded to ci8 to support more colors # Pot textures are rgba16 # Get the texture table from rom (see textures.c) - texture_table_start = rom.sym('texture_table') #Get the address of the texture table + texture_table_start = rom.sym('texture_table') # Get the address of the texture table - #texture list. See textures.h for texture IDs - #(texture_id, texture_name, rom_address_base, rom_address_palette (for ci4), size (pixels), patching function, patch file (None for default)) + # texture list. See textures.h for texture IDs + # (texture_id, texture_name, rom_address_base, rom_address_palette (for ci4), size (pixels), patching function, patch file (None for default)) crate_textures = [ (1, 'texture_pot_gold', 0x01738000, None, 2048, rgba16_patch, 'textures/pot/pot_gold_rgba16_patch.bin'), (2, 'texture_pot_key', 0x01738000, None, 2048, rgba16_patch, 'textures/pot/pot_key_rgba16_patch.bin'), @@ -118,19 +117,18 @@ def patch_rom(spoiler:Spoiler, world:World, rom:Rom): (12, 'texture_smallcrate_skull', 0xF7ECA0, None, 2048, rgba16_patch, 'textures/crate/smallcrate_skull_rgba16_patch.bin'), (13, 'texture_smallcrate_bosskey', 0xF7ECA0, None, 2048, rgba16_patch, 'textures/crate/smallcrate_bosskey_rgba16_patch.bin') ] - + # Loop through the textures and apply the patch. Add the new texture as a new file in rom. for texture_id, texture_name, rom_address_base, rom_address_palette, size,func, patchfile in crate_textures: - texture_file = File({'Name':texture_name}) # Create a new file for the texture - texture_file.copy(rom) # Relocate this file to free space is the rom + texture_file = File({'Name': texture_name}) # Create a new file for the texture + texture_file.copy(rom) # Relocate this file to free space is the rom texture_data = func(rom, rom_address_base, rom_address_palette, size, data_path(patchfile) if patchfile else None) # Apply the texture patch. Resulting texture will be stored in texture_data as a bytearray rom.write_bytes(texture_file.start, texture_data) # write the bytes to our new file texture_file.end = texture_file.start + len(texture_data) # Get size of the new texture update_dmadata(rom, texture_file) # Update DMA table with new file - #update the texture table with the rom addresses of the texture files - entry_addr = texture_table_start + (texture_id * texture_struct.size) - entry = read_rom_texture(rom, texture_id ) + # update the texture table with the rom addresses of the texture files + entry = read_rom_texture(rom, texture_id) entry['file_vrom_start'] = texture_file.start entry['file_size'] = texture_file.end - texture_file.start write_rom_texture(rom, texture_id, entry) @@ -158,7 +156,6 @@ def patch_rom(spoiler:Spoiler, world:World, rom:Rom): # Create an option so that recovery hearts no longer drop by changing the code which checks Link's health when an item is spawned. if world.settings.no_collectible_hearts: - #rom.write_byte(0xA895B7, 0x2E) symbol = rom.sym('NO_COLLECTIBLE_HEARTS') rom.write_byte(symbol, 0x01) @@ -1572,6 +1569,7 @@ def set_entrance_updates(entrances): messages = read_messages(rom) remove_unused_messages(messages) shop_items = read_shop_items(rom, shop_item_file.start + 0x1DEC) + # Set Big Poe count to get reward from buyer poe_points = world.settings.big_poe_count * 100 rom.write_int16(0xEE69CE, poe_points) @@ -1706,18 +1704,18 @@ def set_entrance_updates(entrances): # Patch freestanding items if world.settings.shuffle_freestanding_items: # Get freestanding item locations - actor_override_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'ActorOverride' ] + actor_override_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'ActorOverride'] freestanding_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and 'Freestanding' in location.filter_tags] rupeetower_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and 'RupeeTower' in location.filter_tags] - + for location in actor_override_locations: patch_actor_override(location, rom) for location in freestanding_locations: patch_freestanding_collectible(location, rom) for location in rupeetower_locations: patch_rupee_tower(location, rom) - - # Patch beehives + + # Patch beehives if world.settings.shuffle_beehives: beehive_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and 'Beehive' in location.filter_tags] for location in beehive_locations: @@ -1726,9 +1724,9 @@ def set_entrance_updates(entrances): # Patch pots if world.settings.shuffle_pots: - pot_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and ('Pot' in location.filter_tags)] - flying_pot_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and ('FlyingPot' in location.filter_tags)] - + pot_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and 'Pot' in location.filter_tags] + flying_pot_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and 'FlyingPot' in location.filter_tags] + for location in pot_locations: patch_pot(location, rom) for location in flying_pot_locations: @@ -1736,8 +1734,8 @@ def set_entrance_updates(entrances): # Patch crates if world.settings.shuffle_crates: - crate_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and ('Crate' in location.filter_tags)] - smallcrate_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and ('SmallCrate' in location.filter_tags)] + crate_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and 'Crate' in location.filter_tags] + smallcrate_locations = [location for location in world.get_locations() if location.disabled == DisableType.ENABLED and location.type == 'Collectable' and 'SmallCrate' in location.filter_tags] for location in crate_locations: patch_crate(location, rom) @@ -1756,7 +1754,7 @@ def set_entrance_updates(entrances): check_location_dupes(world) override_table = get_override_table(world) if len(override_table) >= 1536: - raise(RuntimeError("Exceeded override table size: " + str(len(override_table)))) + raise(RuntimeError(f'Exceeded override table size: {len(override_table)}')) rom.write_bytes(rom.sym('cfg_item_overrides'), get_override_table_bytes(override_table)) rom.write_byte(rom.sym('PLAYER_ID'), world.id + 1) # Write player ID @@ -2041,10 +2039,10 @@ def update_scrub_text(message, text_replacement, default_price, price, item_name update_message_by_id(messages, 0x304D, "How do you like it?\x02") update_message_by_id(messages, 0x304F, "How about buying this cool item for \x01200 Rupees?\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40\x02") - if(world.settings.shuffle_pots != 'off'): #Update the first BK door in ganon's castle to use a separate flag so it can be unlocked to get to the pots - patch_ganons_tower_bk_door(rom, 0x15) #Using flag 0x15 for the door. GBK doors normally use 0x14. + if world.settings.shuffle_pots != 'off': # Update the first BK door in ganon's castle to use a separate flag so it can be unlocked to get to the pots + patch_ganons_tower_bk_door(rom, 0x15) # Using flag 0x15 for the door. GBK doors normally use 0x14. locked_doors = get_doors_to_unlock(rom, world) - for _,[door_byte, door_bits] in locked_doors.items(): + for _, [door_byte, door_bits] in locked_doors.items(): save_context.write_bits(door_byte, door_bits) # Fix chest animations @@ -2124,12 +2122,12 @@ def update_scrub_text(message, text_replacement, default_price, price, item_name if world.settings.invisible_chests: symbol = rom.sym('CHEST_LENS_ONLY') rom.write_int32(symbol, 0x00000001) - + # Update pot type appearance ptmc_options = { 'off': 0, 'textures_content' : 1, - 'textures_unchecked': 2 + 'textures_unchecked': 2, } symbol = rom.sym('POTCRATE_TEXTURES_MATCH_CONTENTS') rom.write_byte(symbol, ptmc_options[world.settings.correct_potcrate_appearances]) @@ -2347,7 +2345,6 @@ def add_to_extended_object_table(rom, object_id, object_file): 'upgrade_fn', 'effect_fn', 'effect_arg1', 'effect_arg2', 'collectible', ] - def read_rom_item(rom, item_id): addr = rom.sym('item_table') + (item_id * item_row_struct.size) row_bytes = rom.read_bytes(addr, item_row_struct.size) @@ -2360,16 +2357,15 @@ def write_rom_item(rom, item_id, item): row_bytes = item_row_struct.pack(*row) rom.write_bytes(addr, row_bytes) -texture_struct = struct.Struct('>HBxxxxxII') # Match item_row_t in item_table.h -texture_fields = [ - 'texture_id', 'file_buf', 'file_vrom_start', 'file_size', - ] + +texture_struct = struct.Struct('>HBxxxxxII') # Match texture_t in textures.c +texture_fields = ['texture_id', 'file_buf', 'file_vrom_start', 'file_size'] def read_rom_texture(rom, texture_id): addr = rom.sym('texture_table') + (texture_id * texture_struct.size) row_bytes = rom.read_bytes(addr, texture_struct.size) row = texture_struct.unpack(row_bytes) - return { texture_fields[i]: row[i] for i in range(len(texture_fields)) } + return {texture_fields[i]: row[i] for i in range(len(texture_fields))} def write_rom_texture(rom, texture_id, texture): addr = rom.sym('texture_table') + (texture_id * texture_struct.size) @@ -2377,24 +2373,13 @@ def write_rom_texture(rom, texture_id, texture): row_bytes = texture_struct.pack(*row) rom.write_bytes(addr, row_bytes) + def get_override_table(world): return list(filter(lambda val: val != None, map(get_override_entry, world.get_filled_locations()))) -def check_location_dupes(world): - locations = list(world.get_filled_locations()) - for i in range(0, len(locations)): - for j in range(0, len(locations)): - check_i = locations[i] - check_j = locations[j] - if(check_i.name == check_j.name and i != j): - raise(Exception("Discovered duplicate location: " + check_i.name)) - override_struct = struct.Struct('>xBBBHBB') # match override_t in get_items.c - def get_override_table_bytes(override_table): - table_bytes = itertools.starmap(override_struct.pack, override_table) - i = 0 return b''.join(sorted(itertools.starmap(override_struct.pack, override_table))) @@ -2405,16 +2390,16 @@ def get_override_entry(location): if None in [scene, default, item_id]: return None - #Don't add freestanding items to the override table if they're disabled. We use this check to determine how to draw and interact with them. - if (location.type == "ActorOverride" or (location.type == "Collectable" and ("Freestanding" in location.filter_tags or "RupeeTower" in location.filter_tags))) and location.disabled != DisableType.ENABLED : + # Don't add freestanding items to the override table if they're disabled. We use this check to determine how to draw and interact with them. + if (location.type == "ActorOverride" or (location.type == "Collectable" and ("Freestanding" in location.filter_tags or "RupeeTower" in location.filter_tags))) and location.disabled != DisableType.ENABLED: return None - #Don't add beehive items to the override table if they're disabled. - if (location.type == "Collectable" and "Beehive" in location.filter_tags and location.disabled != DisableType.ENABLED): + # Don't add beehive items to the override table if they're disabled. + if location.type == "Collectable" and "Beehive" in location.filter_tags and location.disabled != DisableType.ENABLED: return None - #Don't add pots/crates to the override table if they're disabled. We use this check to determine how to draw and interact with them - if (location.type == "Collectable" and ("Pot" in location.filter_tags or "Crate" in location.filter_tags or "FlyingPot" in location.filter_tags or "SmallCrate" in location.filter_tags)) and location.disabled != DisableType.ENABLED : + # Don't add pots/crates to the override table if they're disabled. We use this check to determine how to draw and interact with them + if location.type == "Collectable" and any(kind in location.filter_tags for kind in ("Pot", "Crate", "FlyingPot", "SmallCrate")) and location.disabled != DisableType.ENABLED: return None player_id = location.item.world.id + 1 @@ -2431,7 +2416,7 @@ def get_override_entry(location): elif location.type == 'ActorOverride': type = 2 elif location.type == 'Collectable': - if "Pot" in location.filter_tags or "Crate" in location.filter_tags or "Drop" in location.filter_tags or "FlyingPot" in location.filter_tags or "SmallCrate" in location.filter_tags or "RupeeTower" in location.filter_tags or "Beehive" in location.filter_tags: + if any(kind in location.filter_tags for kind in ("Pot", "Crate", "Drop", "FlyingPot", "SmallCrate", "RupeeTower", "Beehive")): type = 6 else: type = 2 @@ -2449,6 +2434,16 @@ def get_override_entry(location): return (scene, type, default, item_id, player_id, looks_like_item_id) +def check_location_dupes(world): + locations = list(world.get_filled_locations()) + for i in range(0, len(locations)): + for j in range(0, len(locations)): + check_i = locations[i] + check_j = locations[j] + if(check_i.name == check_j.name and i != j): + raise Exception(f'Discovered duplicate location: {check_i.name}') + + chestTypeMap = { # small big boss 0x0000: [0x5000, 0x0000, 0x2000], #Large @@ -2803,7 +2798,7 @@ def configure_dungeon_info(rom, world): rom.write_bytes(rom.sym('CFG_DUNGEON_IS_MQ'), dungeon_is_mq) rom.write_bytes(rom.sym('CFG_DUNGEON_REWARD_AREAS'), dungeon_reward_areas) -#Overwrite an actor in rom w/ the actor data from LocationList +# Overwrite an actor in rom w/ the actor data from LocationList def patch_actor_override(location, rom: Rom): addresses = location.address patch = location.address2 @@ -2816,20 +2811,20 @@ def patch_rupee_tower(location, rom: Rom): for address in location.address: rom.write_byte(address + 13, location.default) -#Patch the flag of a freestanding collectible +# Patch the flag of a freestanding collectible def patch_freestanding_collectible(location, rom: Rom): if location.address: for address in location.address: rom.write_byte(address + 14, location.default) -#Patch the collectible flag used by a crate -def patch_crate(location, rom : Rom): +# Patch the collectible flag used by a crate +def patch_crate(location, rom: Rom): if location.address: for address in location.address: rom.write_byte(address + 13, location.default) -#Patch the collectible flag used by a flying pot -def patch_flying_pot(location, rom : Rom): +# Patch the collectible flag used by a flying pot +def patch_flying_pot(location, rom: Rom): if location.address: for address in location.address: byte = rom.read_byte(address + 15) @@ -2837,14 +2832,14 @@ def patch_flying_pot(location, rom : Rom): byte |= (location.default & 0x3F) rom.write_byte(address + 15, byte) -#Patch the collectible flag used by a small crate -def patch_small_crate(location, rom : Rom): +# Patch the collectible flag used by a small crate +def patch_small_crate(location, rom: Rom): if location.address: for address in location.address: rom.write_byte(address + 14, location.default) -#Patch the collectible flag used by a pot -def patch_pot(location, rom : Rom): +# Patch the collectible flag used by a pot +def patch_pot(location, rom: Rom): if location.address: for address in location.address: byte = rom.read_byte(address + 14) @@ -2853,18 +2848,18 @@ def patch_pot(location, rom : Rom): rom.write_byte(address + 14, byte) -#patch the second beehive in generic grottos to distinguish it from the first. +# patch the second beehive in generic grottos to distinguish it from the first. def patch_grotto_beehive_2(rom: Rom): - rom.write_byte(0x26C10C4+13, 1) + rom.write_byte(0x26C10C4 + 13, 1) -#Patch collectible flag used by a beehive. Only used outside of grottos. +# Patch collectible flag used by a beehive. Only used outside of grottos. def patch_beehive(location, rom: Rom): if location.address: for address in location.address: rom.write_byte(address + 13, location.default) -#Patch the first boss key door in ganons tower that leads to the room w/ the pots +# Patch the first boss key door in ganons tower that leads to the room w/ the pots def patch_ganons_tower_bk_door(rom: Rom, flag): var = (0x05 << 6) + (flag & 0x3F) bytes = [(var & 0xFF00) >> 8, var & 0xFF] diff --git a/README.md b/README.md index b5f79f642..0e5f07dcf 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,6 @@ This is a randomizer for _The Legend of Zelda: Ocarina of Time_ for the Nintendo 64. -**WARNING:** This branch is a modified version of the randomizer. It is **not** officially supported and may be **very unstable**. -Please refrain from asking questions and from reporting issues in the main Randomizer Discord when using this branch. -Instead, you can open an issue on this fork [here](https://github.com/rrealmuto/OoT-Randomizer/issues) or contact me directly on discord (RealRob#4093) for any help, report or request. - -Differences between this branch and the main Dev branch (on [Testrunner's Fork](https://github.com/TestRunnerSRL/OoT-Randomizer/tree/Dev)): -* Shuffle Freestanding Hearts/Rupees -* Shuffle Pots/Crates -* Pot/Crate Textures Match Contents - * [Installation](#installation) * [General Description](#general-description) * [Getting Stuck](#getting-stuck) diff --git a/Region.py b/Region.py index 50118faaa..4a00e316d 100644 --- a/Region.py +++ b/Region.py @@ -87,7 +87,7 @@ def can_fill(self, item, manual=False): for dungeon in item.world.dungeons: if item.world.empty_dungeons[dungeon.name].empty and dungeon.is_dungeon_item(item): return False - + from Hints import HintArea is_self_dungeon_restricted = False @@ -132,11 +132,11 @@ def can_fill(self, item, manual=False): def get_scene(self): - if self.scene: + if self.scene: return self.scene elif self.dungeon: return self.dungeon.name - else: + else: return None diff --git a/SceneFlags.py b/SceneFlags.py index 28ad488f1..c60072dd5 100644 --- a/SceneFlags.py +++ b/SceneFlags.py @@ -1,8 +1,9 @@ -from LocationList import location_table from math import ceil -import logging -# Creates a list containing the highest flag used for each scene. +from LocationList import location_table + + +# Creates a list containing the highest flag used for each scene. # Returns: List of tuples (scene, max_freestanding_flag, max_drop_flag) def get_scene_flag_table(world): scene_flags = [] @@ -10,31 +11,33 @@ def get_scene_flag_table(world): max_freestanding_flag = 0 max_drop_flag = 0 for location in world.get_locations(): - if(location.type == "Collectable" and location.scene == i): - if(("Freestanding" in location.filter_tags or "ActorOverride" in location.filter_tags) and - location.default > max_freestanding_flag): - max_freestanding_flag = location.default - if(("Crate" in location.filter_tags or "SmallCrate" in location.filter_tags or - "Pot" in location.filter_tags or "FlyingPot" in location.filter_tags or - "Beehive" in location.filter_tags or "Drop" in location.filter_tags or "RupeeTower" in location.filter_tags) and - location.default > max_drop_flag): - max_drop_flag = location.default + if location.type == "Collectable" and location.scene == i: + if ( + ("Freestanding" in location.filter_tags or "ActorOverride" in location.filter_tags) + and location.default > max_freestanding_flag + ): + max_freestanding_flag = location.default + if ( + any(kind in location.filter_tags for kind in ("Crate", "SmallCrate", "Pot", "FlyingPot", "Beehive", "Drop", "RupeeTower")) + and location.default > max_drop_flag + ): + max_drop_flag = location.default scene_flags.append((i, max_freestanding_flag, max_drop_flag)) return scene_flags # Convert the scene flag table generated using get_scene_flag_table to byte arrays to be stored in the ROM # Returns: tuple (freestanding_flag_table_bytes, drop_flag_table_bytes, num_freestanding_flags, num_drop_flags) def get_scene_flag_table_bytes(scene_flag_table): - #Create the byte arrays + # Create the byte arrays freestanding_flag_table_bytes = bytearray(101) drop_flag_table_bytes = bytearray(101) num_freestanding_flags = 0 num_drop_flags = 0 - + # Loop through each scene in the table, setting the value for each scene to the cumulative count of words used. for scene in scene_flag_table: freestanding_flag_table_bytes[scene[0]] = num_freestanding_flags drop_flag_table_bytes[scene[0]] = num_drop_flags - num_freestanding_flags += 0 if scene[1] == 0 else ceil((scene[1] + 1)/32) - num_drop_flags += 0 if scene[2] == 0 else ceil((scene[2] + 1)/32) - return (freestanding_flag_table_bytes, drop_flag_table_bytes, num_freestanding_flags, num_drop_flags) \ No newline at end of file + num_freestanding_flags += 0 if scene[1] == 0 else ceil((scene[1] + 1) / 32) + num_drop_flags += 0 if scene[2] == 0 else ceil((scene[2] + 1) / 32) + return freestanding_flag_table_bytes, drop_flag_table_bytes, num_freestanding_flags, num_drop_flags diff --git a/SettingsList.py b/SettingsList.py index 324c51d86..d5ddcebde 100644 --- a/SettingsList.py +++ b/SettingsList.py @@ -1669,8 +1669,7 @@ def __init__(self, name, gui_text, min, max, default, step=1, Removes the requirements for the Lens of Truth in Spirit Temple. '''}, - } - +} # a list of the possible settings @@ -3124,14 +3123,14 @@ def __init__(self, name, gui_text, min, max, default, step=1, shared = True, ), Combobox( - name = 'shuffle_freestanding_items', - gui_text = 'Rupee & Heart Shuffle', - default = 'off', - choices = { - 'off': 'Off', - 'all': 'All', - 'overworld' : 'Overworld Only', - 'dungeons' : 'Dungeons Only' + name = 'shuffle_freestanding_items', + gui_text = 'Rupee & Heart Shuffle', + default = 'off', + choices = { + 'off': 'Off', + 'all': 'All', + 'overworld': 'Overworld Only', + 'dungeons': 'Dungeons Only', }, gui_tooltip = '''\ Shuffles freestanding rupees and recovery hearts, also shuffles: @@ -3149,14 +3148,14 @@ def __init__(self, name, gui_text, min, max, default, step=1, shared = True, ), Combobox( - name = 'shuffle_pots', - gui_text = 'Pot Shuffle', - default = 'off', - choices = { - 'off': 'Off', - 'all': 'All', - 'overworld' : 'Overworld Only', - 'dungeons' : 'Dungeons Only' + name = 'shuffle_pots', + gui_text = 'Pot Shuffle', + default = 'off', + choices = { + 'off': 'Off', + 'all': 'All', + 'overworld': 'Overworld Only', + 'dungeons': 'Dungeons Only', }, gui_tooltip = '''\ Shuffles pots, flying pots into the location pool. @@ -3166,7 +3165,7 @@ def __init__(self, name, gui_text, min, max, default, step=1, Overworld Only: Only overworld pots/flying pots are shuffled. Dungeons Only: Only dungeon pots/flying pots are shuffled. - Note: Only pots which normally drop an item are shuffled. + Note: Only pots which normally drop an item are shuffled. Empty pots are not shuffled. Pots containing fairies are not shuffled. When this setting is enabled, the pots in Ganon's Tower will be @@ -3179,14 +3178,14 @@ def __init__(self, name, gui_text, min, max, default, step=1, shared = True, ), Combobox( - name = 'shuffle_crates', - gui_text = 'Crate Shuffle', - default = 'off', - choices = { - 'off': 'Off', - 'all': 'All', - 'overworld' : 'Overworld Only', - 'dungeons' : 'Dungeons Only' + name = 'shuffle_crates', + gui_text = 'Crate Shuffle', + default = 'off', + choices = { + 'off': 'Off', + 'all': 'All', + 'overworld': 'Overworld Only', + 'dungeons': 'Dungeons Only', }, gui_tooltip = '''\ Shuffles large and small crates into the location pool. @@ -3203,7 +3202,6 @@ def __init__(self, name, gui_text, min, max, default, step=1, }, shared = True, ), - Checkbutton( name = 'shuffle_cows', gui_text = 'Shuffle Cows', @@ -4578,9 +4576,9 @@ def __init__(self, name, gui_text, min, max, default, step=1, gui_text = 'Pot & Crate Appearance Matches Contents', default = 'off', choices = { - 'off': 'Off', - 'textures_content': 'Texture (Match Content)', - 'textures_unchecked' : 'Texture (Unchecked)', + 'off': 'Off', + 'textures_content': 'Texture (Match Content)', + 'textures_unchecked': 'Texture (Unchecked)', }, gui_tooltip = '''\ If enabled, pot/crate textures will reflect its contents. @@ -4588,15 +4586,15 @@ def __init__(self, name, gui_text, min, max, default, step=1, Off - Pot and crates will appear as vanilla Texture (Match Content) - Pot and crate textures will reflect the contents. - Golden Pots/crates will contain major items. + Golden Pots/crates will contain major items. Pots/crates with keys on them will contain small keys. - Pots/crates containing boss keys will use a variation of the boss key crate texture. + Pots/crates containing boss keys will use a variation of the boss key crate texture. Pots/crates with a spider web on them contain Gold Skulltula tokens. All other items will use the original texture. The texture will revert to the original texture once the item is collected. - - Texture (Unchecked) - All pots/crates containing shuffled items - will appear with a golden texture. The texture will revert to the + + Texture (Unchecked) - All pots/crates containing shuffled items + will appear with a golden texture. The texture will revert to the original texture once the item is collected. ''', shared = True, diff --git a/Unittest.py b/Unittest.py index 235700ea0..00751e22c 100644 --- a/Unittest.py +++ b/Unittest.py @@ -18,9 +18,8 @@ from ItemPool import remove_junk_items, remove_junk_ludicrous_items, ludicrous_items_base, ludicrous_items_extended, trade_items, ludicrous_exclusions from LocationList import location_is_viewable from Main import main, resolve_settings, build_world_graphs +from Messages import Message from Settings import Settings, get_preset_files -from Messages import Message, read_messages -from Rom import Rom test_dir = os.path.join(os.path.dirname(__file__), 'tests') output_dir = os.path.join(test_dir, 'Output') @@ -293,7 +292,7 @@ def test_should_not_throw_exception(self): "plando-potscrates-nomq", "plando-potscrates-allmq", "plando-beehives", - "plando-freestanding-pots-crates-beehives-triforcehunt" + "plando-freestanding-pots-crates-beehives-triforcehunt", ] for filename in filenames: with self.subTest(filename): @@ -592,17 +591,15 @@ def test_those_pots_over_there(self): filename = "those_pots_over_there" # Ganondorf should say "those pots over there" when light arrows are in a pot below _, spoiler = generate_with_plandomizer(filename, live_copy=True) - world = spoiler.worlds[0] location = spoiler.worlds[0].misc_hint_item_locations["ganondorf"] area = HintArea.at(location, use_alt_hint=True).text(world.settings.clearer_hints, world=None if location.world.id == world.id else location.world.id + 1) self.assertEqual(area, "#Ganondorf's Chamber#") - #messages = read_messages(Rom) - #Build a test message with the same ID as the ganondorf hint (0x70CC) - messages = [ Message("Test", 0, 0x70CC, 0,0,0) ] + # Build a test message with the same ID as the ganondorf hint (0x70CC) + messages = [Message("Test", 0, 0x70CC, 0,0,0)] buildMiscItemHints(spoiler.worlds[0], messages) for message in messages: - if(message.id == 0x70CC): #Ganondorf hint message + if(message.id == 0x70CC): # Ganondorf hint message self.assertTrue("thosepotsoverthere" in message.text.replace('\n', '').replace(' ', '')) class TestEntranceRandomizer(unittest.TestCase): diff --git a/World.py b/World.py index 04e84c16a..efb49539f 100644 --- a/World.py +++ b/World.py @@ -419,7 +419,7 @@ def resolve_random_settings(self): if self.settings.chicken_count_random and 'chicken_count' not in dist_keys: self.settings.chicken_count = random.randint(0, 7) self.randomized_list.append('chicken_count') - + # Determine dungeons with shortcuts dungeons = ['Deku Tree', 'Dodongos Cavern', 'Jabu Jabus Belly', 'Forest Temple', 'Fire Temple', 'Water Temple', 'Shadow Temple', 'Spirit Temple'] if (self.settings.dungeon_shortcuts_choice == 'random'): @@ -460,7 +460,7 @@ def resolve_random_settings(self): for trial in self.skipped_trials: if trial not in chosen_trials and trial not in dist_chosen: self.skipped_trials[trial] = True - + # Determine empty and MQ Dungeons (avoid having both empty & MQ dungeons unless necessary) mq_dungeon_pool = list(self.dungeon_mq) @@ -482,7 +482,7 @@ def resolve_random_settings(self): if len(empty_dungeon_pool) < nb_to_pick: non_empty = 8 - dist_num_empty - len(empty_dungeon_pool) raise RuntimeError(f"On world {self.id+1}, {dist_num_empty} dungeons are set to empty and {non_empty} to non-empty. Can't reach {self.settings.empty_dungeons_count} empty dungeons.") - + # Prioritize non-MQ dungeons non_mq, mq = [], [] for dung in empty_dungeon_pool: @@ -508,7 +508,7 @@ def resolve_random_settings(self): if len(mq_dungeon_pool) < nb_to_pick: non_mq = 8 - dist_num_mq - len(mq_dungeon_pool) raise RuntimeError(f"On world {self.id+1}, {dist_num_mq} dungeons are set to MQ and {non_mq} to non-MQ. Can't reach {self.settings.mq_dungeons_count} MQ dungeons.") - + # Prioritize non-empty dungeons non_empty, empty = [], [] for dung in mq_dungeon_pool: @@ -519,7 +519,7 @@ def resolve_random_settings(self): if nb_to_pick > 0: for dung in random.sample(empty, nb_to_pick): self.dungeon_mq[dung] = True - + self.settings.mq_dungeons_count = list(self.dungeon_mq.values()).count(True) self.distribution.configure_randomized_settings(self) diff --git a/data/Glitched World/Overworld.json b/data/Glitched World/Overworld.json index 0dba63af9..cd26f9ad4 100644 --- a/data/Glitched World/Overworld.json +++ b/data/Glitched World/Overworld.json @@ -328,7 +328,7 @@ "GF Gate Open": "is_adult and Gerudo_Membership_Card" }, "locations": { - "GF Chest": "(is_child and can_mega) or + "GF Chest": "(is_child and can_mega) or (is_adult and can_use(Hover_Boots) or can_use(Scarecrow) or can_use(Longshot) or can_mega)", #// known softlock if child opens this chest, so only put it in logic for adult "GF HBA 1000 Points": " diff --git a/data/Glitched World/Shadow Temple.json b/data/Glitched World/Shadow Temple.json index 247514d51..e152ec280 100644 --- a/data/Glitched World/Shadow Temple.json +++ b/data/Glitched World/Shadow Temple.json @@ -43,7 +43,7 @@ "Shadow Temple Falling Spikes Switch Chest": "is_adult or can_hover", "Shadow Temple Invisible Spikes Chest": "(Small_Key_Shadow_Temple, 5) and (can_jumpslash or can_use(Dins_Fire))", "Shadow Temple Freestanding Key": " - (Small_Key_Shadow_Temple, 5) and (can_use(Hookshot) or can_hover) + (Small_Key_Shadow_Temple, 5) and (can_use(Hookshot) or can_hover) and (Progressive_Strength_Upgrade or has_explosives)", "Shadow Temple GS Invisible Blades Room": "is_adult or can_use(Boomerang) or can_hover", "Shadow Temple GS Falling Spikes Room": "can_use(Hookshot) or (is_adult and can_mega) or (is_child and can_hover)", diff --git a/data/LogicHelpers.json b/data/LogicHelpers.json index 58ac274c3..cd68ed102 100644 --- a/data/LogicHelpers.json +++ b/data/LogicHelpers.json @@ -29,6 +29,7 @@ "Fish": "'Fish' or Buy_Fish", "Fairy": "'Fairy' or Buy_Fairys_Spirit", # "Big_Poe": "'Big Poe'", + "has_bombchus": "(Buy_Bombchu_5 or Buy_Bombchu_10 or Buy_Bombchu_20 or Bombchu_Drop) and (bombchus_in_logic or Bomb_Bag)", "found_bombchus": "(bombchus_in_logic and (Bombchus or Bombchus_5 or Bombchus_10 or Bombchus_20)) or (not bombchus_in_logic and Bomb_Bag)", "has_explosives": "Bombs or (bombchus_in_logic and has_bombchus)", diff --git a/data/World/Bosses.json b/data/World/Bosses.json index a6a718022..99785aab9 100644 --- a/data/World/Bosses.json +++ b/data/World/Bosses.json @@ -28,6 +28,7 @@ "Deku Tree Boss Door": "True" } }, + { "region_name": "Dodongos Cavern Boss Door", "scene": "Dodongos Cavern", @@ -54,6 +55,7 @@ "Dodongos Cavern Boss Door": "True" } }, + { "region_name": "Jabu Jabus Belly Boss Door", "scene": "Jabu Jabus Belly", @@ -79,6 +81,7 @@ "Jabu Jabus Belly Boss Door": "False" } }, + { "region_name": "Forest Temple Boss Door", "scene": "Forest Temple", @@ -100,6 +103,7 @@ "Forest Temple Boss Door": "False" } }, + { "region_name": "Fire Temple Boss Door", "scene": "Fire Temple", @@ -141,6 +145,7 @@ "Water Temple Boss Door": "False" } }, + { "region_name": "Shadow Temple Boss Door", "scene": "Shadow Temple", @@ -166,6 +171,7 @@ "Shadow Temple Boss Door": "False" } }, + { "region_name": "Spirit Temple Boss Door", "scene": "Spirit Temple", diff --git a/data/World/Bottom of the Well.json b/data/World/Bottom of the Well.json index f0a63cd30..d46ee1427 100644 --- a/data/World/Bottom of the Well.json +++ b/data/World/Bottom of the Well.json @@ -18,7 +18,7 @@ "Bottom of the Well Map Chest": " has_explosives or (Progressive_Strength_Upgrade and - (at('Bottom of the Well Behind Locked Doors', True) or + (at('Bottom of the Well Behind Locked Doors', True) or can_use(Dins_Fire) or (logic_botw_basement and Sticks)))", "Bottom of the Well Invisible Chest": " can_play(Zeldas_Lullaby) and (logic_lens_botw or can_use(Lens_of_Truth))", diff --git a/data/World/Deku Tree MQ.json b/data/World/Deku Tree MQ.json index a1126946a..3f3436b53 100644 --- a/data/World/Deku Tree MQ.json +++ b/data/World/Deku Tree MQ.json @@ -17,14 +17,14 @@ ((Slingshot or Boomerang) and can_break_crate)", "Deku Baba Sticks": "is_adult or Kokiri_Sword or Boomerang", "Deku Baba Nuts": " - is_adult or Slingshot or Sticks or + is_adult or Slingshot or Sticks or has_explosives or Kokiri_Sword or can_use(Dins_Fire)" }, "exits": { "KF Outside Deku Tree": "True", "Deku Tree Near Compass Room": "here(has_fire_source_with_torch or can_use(Bow))", "Deku Tree Basement Water Room Front": " - here(can_use(Slingshot) or can_use(Bow)) and here(has_fire_source_with_torch)", + here(can_use(Slingshot) or can_use(Bow)) and here(has_fire_source_with_torch)", "Deku Tree Basement Ledge": "deku_tree_shortcuts or here(is_adult) or logic_deku_b1_skip" } }, diff --git a/data/World/Deku Tree.json b/data/World/Deku Tree.json index 2e0a557fe..d7ffb045f 100644 --- a/data/World/Deku Tree.json +++ b/data/World/Deku Tree.json @@ -11,7 +11,7 @@ "Deku Tree GS Compass Room": "is_adult or can_child_attack", "Deku Baba Sticks": "is_adult or Kokiri_Sword or Boomerang", "Deku Baba Nuts": " - is_adult or Slingshot or Sticks or + is_adult or Slingshot or Sticks or has_explosives or Kokiri_Sword or can_use(Dins_Fire)" }, "exits": { diff --git a/data/World/Dodongos Cavern MQ.json b/data/World/Dodongos Cavern MQ.json index eca654467..35b9d66de 100644 --- a/data/World/Dodongos Cavern MQ.json +++ b/data/World/Dodongos Cavern MQ.json @@ -174,7 +174,7 @@ "Dodongos Cavern MQ Poes Room Crate 5": "can_break_crate or Progressive_Strength_Upgrade", "Dodongos Cavern MQ Poes Room Crate 6": "can_break_crate or Progressive_Strength_Upgrade", "Dodongos Cavern MQ Poes Room Crate 7": "can_break_crate or Progressive_Strength_Upgrade", - "Dodongos Cavern MQ Poes Room Crate Near Bombflower": " + "Dodongos Cavern MQ Poes Room Crate Near Bomb Flower": " can_break_crate or Progressive_Strength_Upgrade or can_use(Bow) or can_use(Dins_Fire)", "Dodongos Cavern MQ GS Scrub Room": " (here(can_use(Bow)) or Progressive_Strength_Upgrade or diff --git a/data/World/Dodongos Cavern.json b/data/World/Dodongos Cavern.json index 5003d2cd8..9f9489e7a 100644 --- a/data/World/Dodongos Cavern.json +++ b/data/World/Dodongos Cavern.json @@ -79,7 +79,7 @@ }, "exits": { "Dodongos Cavern Climb": " - has_explosives or Progressive_Strength_Upgrade or + has_explosives or Progressive_Strength_Upgrade or can_use(Dins_Fire) or (logic_dc_staircase and can_use(Bow))" } }, diff --git a/data/World/Fire Temple.json b/data/World/Fire Temple.json index a1138a427..5c8e9b983 100644 --- a/data/World/Fire Temple.json +++ b/data/World/Fire Temple.json @@ -1,4 +1,4 @@ -[ +[ { "region_name": "Fire Temple Lower", "dungeon": "Fire Temple", diff --git a/data/World/Forest Temple MQ.json b/data/World/Forest Temple MQ.json index a132bdda4..1da309b82 100644 --- a/data/World/Forest Temple MQ.json +++ b/data/World/Forest Temple MQ.json @@ -106,7 +106,7 @@ }, "exits": { "Forest Temple NE Outdoors": " - can_use(Iron_Boots) or can_use(Longshot) or + can_use(Iron_Boots) or can_use(Longshot) or (Progressive_Scale, 2) or (logic_forest_well_swim and can_use(Hookshot))", "Forest Temple Outdoors High Balconies": "can_use(Fire_Arrows)" } @@ -127,13 +127,13 @@ (can_use(Iron_Boots) and can_use(Hookshot)) or can_use(Bow) or can_use(Slingshot)", "Deku Baba Sticks": "is_adult or Kokiri_Sword or Boomerang", "Deku Baba Nuts": " - is_adult or Slingshot or Sticks or + is_adult or Slingshot or Sticks or has_explosives or Kokiri_Sword or can_use(Dins_Fire)" }, "exits": { "Forest Temple Outdoors High Balconies": " can_use(Hookshot) and - (can_use(Longshot) or can_use(Hover_Boots) or can_play(Song_of_Time) or + (can_use(Longshot) or can_use(Hover_Boots) or can_play(Song_of_Time) or logic_forest_vines)", "Forest Temple NE Outdoors Ledge": "can_use(Longshot)" } diff --git a/data/World/Gerudo Training Ground MQ.json b/data/World/Gerudo Training Ground MQ.json index 20b7015f5..7961e539b 100644 --- a/data/World/Gerudo Training Ground MQ.json +++ b/data/World/Gerudo Training Ground MQ.json @@ -26,7 +26,7 @@ "dungeon": "Gerudo Training Ground", "locations": { "Gerudo Training Ground MQ Dinolfos Chest": "is_adult", - # In the Dinalfos, room shoot the Gerudo symbol above the door to the lava room. + # In the Dinalfos room, shoot the Gerudo symbol above the door to the lava room. "Wall Fairy": "has_bottle and can_use(Bow)" }, "exits": { diff --git a/data/World/Overworld.json b/data/World/Overworld.json index ddcb56bb7..e2630c090 100644 --- a/data/World/Overworld.json +++ b/data/World/Overworld.json @@ -1806,7 +1806,7 @@ can_blast_or_smash or can_use(Dins_Fire) or can_use(Bow) or Progressive_Strength_Upgrade or 'Goron City Child Fire'", "Stop GC Rolling Goron as Adult": " - is_adult and + is_adult and (Progressive_Strength_Upgrade or has_explosives or Bow or (logic_link_goron_dins and can_use(Dins_Fire)))" }, @@ -1817,7 +1817,7 @@ "GC Maze Center Chest": "can_blast_or_smash or can_use(Silver_Gauntlets)", "GC Maze Right Chest": "can_blast_or_smash or can_use(Silver_Gauntlets)", "GC Rolling Goron as Child": " - is_child and + is_child and (has_explosives or (Progressive_Strength_Upgrade and logic_child_rolling_with_strength))", "GC Medigoron": " is_adult and Progressive_Wallet and @@ -2865,4 +2865,4 @@ "GV Fortress Side": "True" } } -] \ No newline at end of file +] diff --git a/data/World/Water Temple.json b/data/World/Water Temple.json index f529c6c01..cce5ecb63 100644 --- a/data/World/Water Temple.json +++ b/data/World/Water Temple.json @@ -3,13 +3,13 @@ "region_name": "Water Temple Lobby", "dungeon": "Water Temple", "events": { + # Child can access only falling platform room and L2 pots as the sole entrant into the temple + # Use Child_Water_Temple for cases where child assists after the water is lowered "Child Water Temple": "is_child", - # Child can access only falling platform room and L2 pots as the sole entrant into the temple - # Use Child_Water_Temple for cases where child assists after the water is lowered + # Use Raise_Water_Level to ensure the water level can be raised if it were to be lowered. "Raise Water Level": " (is_adult and (Hookshot or Hover_Boots or Bow)) or (has_fire_source_with_torch and can_use_projectile)" - # Use to ensure the water level can be raised if it were to be lowered. }, "locations": { "Water Temple Main Room L2 Pot 1": " @@ -137,9 +137,9 @@ "locations": { "Water Temple North Basement Block Puzzle Pot 1": "True", "Water Temple North Basement Block Puzzle Pot 2": "True", + # Longshot reaches without the need to actually go near + # Otherwise you have Hovers and can you hover over and collect with a jumpslash "Water Temple GS Near Boss Key Chest": "True" - # Longshot reaches without the need to actually go near - # Otherwise you have Hovers and can you hover over and collect with a jumpslash }, "exits": { "Water Temple Boss Key Chest Room": " diff --git a/data/presets_default.json b/data/presets_default.json index 62b4a99f4..c13264e4f 100644 --- a/data/presets_default.json +++ b/data/presets_default.json @@ -31,9 +31,9 @@ "shopsanity": "off", "tokensanity": "off", "shuffle_scrubs": "off", - "shuffle_freestanding_items": "off", - "shuffle_pots": "off", - "shuffle_crates": "off", + "shuffle_freestanding_items": "off", + "shuffle_pots": "off", + "shuffle_crates": "off", "shuffle_cows": false, "shuffle_beehives": false, "shuffle_kokiri_sword": false, @@ -78,7 +78,7 @@ "big_poe_count": 1, "ocarina_songs": "off", "correct_chest_appearances": "off", - "correct_potcrate_appearances" : "off", + "correct_potcrate_appearances": "off", "clearer_hints": true, "hints": "always", "hint_dist": "very_strong", @@ -323,6 +323,7 @@ "ocarina_songs": "off", "correct_chest_appearances": "both", "correct_potcrate_appearances" : "off", + "clearer_hints": true, "no_collectible_hearts": false, "hints": "always", "hint_dist": "weekly", @@ -727,9 +728,9 @@ "shopsanity": "0", "tokensanity": "all", "shuffle_scrubs": "random", - "shuffle_freestanding_items": "all", - "shuffle_pots": "all", - "shuffle_crates": "all", + "shuffle_freestanding_items": "all", + "shuffle_pots": "all", + "shuffle_crates": "all", "shuffle_cows": true, "shuffle_beehives": true, "shuffle_kokiri_sword": true, @@ -929,7 +930,7 @@ "big_poe_count": 10, "ocarina_songs": "all", "correct_chest_appearances": "off", - "correct_potcrate_appearances" : "off", + "correct_potcrate_appearances": "off", "clearer_hints": false, "no_collectible_hearts": true, "hints": "none", diff --git a/texture_util.py b/texture_util.py index 2b8cce011..813a0ab3c 100644 --- a/texture_util.py +++ b/texture_util.py @@ -1,4 +1,3 @@ -from distutils.command.build import build from Rom import Rom from Utils import * @@ -7,9 +6,9 @@ # address - address of the ci4 texture in Rom # length - size of the texture in PIXELS # palette - 4-bit color palette to use (max of 16 colors) -def ci4_to_rgba16(rom:Rom, address, length, palette): +def ci4_to_rgba16(rom: Rom, address, length, palette): newPixels = [] - texture = rom.read_bytes(address, int(length/2)) + texture = rom.read_bytes(address, length // 2) for byte in texture: newPixels.append(palette[(byte & 0xF0) >> 4]) newPixels.append(palette[byte & 0x0F]) @@ -26,7 +25,7 @@ def rgba16_to_ci8(rgba16_texture): if len(palette) < 0x100: #Pad the palette with 0x0001 #Pad the palette with 0001s to take up the full 256 colors for i in range(0, 0x100 - len(palette)): palette.append(0x0001) - + # Create the new ci8 texture (list of bytes) by locating the index of each color from the rgba16 texture in the color palette. for pixel in rgba16_texture: if pixel in palette: @@ -34,10 +33,10 @@ def rgba16_to_ci8(rgba16_texture): return (ci8_texture, palette) # Load a palette (essentially just an rgba16 texture) from rom -def load_palette(rom:Rom, address, length): +def load_palette(rom: Rom, address, length): palette = [] for i in range(0, length): - palette.append(rom.read_int16(address + 2*i)) + palette.append(rom.read_int16(address + 2 * i)) return palette # Get a list of unique colors (palette) from an rgba16 texture @@ -55,7 +54,7 @@ def get_colors_from_rgba16(rgba16_texture): def apply_rgba16_patch(rgba16_texture, rgba16_patch): if rgba16_patch is not None and (len(rgba16_texture) != len(rgba16_patch)): raise(Exception("OG Texture and Patch not the same length!")) - + new_texture = [] if not rgba16_patch: for i in range(0, len(rgba16_texture)): @@ -91,7 +90,7 @@ def save_ci8_texture(ci8_texture, fileStr): def load_rgba16_texture_from_rom(rom: Rom, base_texture_address, size): texture = [] for i in range(0, size): - texture.append(int.from_bytes(rom.read_bytes(base_texture_address + 2*i,2), 'big')) + texture.append(int.from_bytes(rom.read_bytes(base_texture_address + 2 * i, 2), 'big')) return texture # Load an rgba16 texture from a binary file. @@ -125,7 +124,7 @@ def rgba16_from_file(rom: Rom, base_texture_address, base_palette_address, size, # base_texture_address - Address of the original rbga16 texture in ROM # base_palette_address - Unused. Set to None (this is only used for CI4 style textures) # size - Size of the texture in PIXELS -# patchfile - file path of a rgba16 binary texture to patch +# patchfile - file path of a rgba16 binary texture to patch # returns - bytearray of the new texture def rgba16_patch(rom: Rom, base_texture_address, base_palette_address, size, patchfile): base_texture_rgba16 = load_rgba16_texture_from_rom(rom, base_texture_address, size) @@ -143,17 +142,17 @@ def rgba16_patch(rom: Rom, base_texture_address, base_palette_address, size, pat # base_texture_address - Address of the original ci4 texture in ROM # base_palette_address - Address of the ci4 palette in ROM # size - Size of the texture in PIXELS -# patchfile - file path of a rgba16 binary texture to patch +# patchfile - file path of a rgba16 binary texture to patch # returns - bytearray of the new texture def ci4_texture_apply_rgba16patch_and_convert_to_ci8(rom, base_texture_address, base_palette_address, size, patchfile): - palette = load_palette(rom, base_palette_address, 16) #load the original palette from rom - base_texture_rgba16 = ci4_to_rgba16(rom, base_texture_address, size, palette) #load the original texture from rom and convert to ci8 + palette = load_palette(rom, base_palette_address, 16) # load the original palette from rom + base_texture_rgba16 = ci4_to_rgba16(rom, base_texture_address, size, palette) # load the original texture from rom and convert to ci8 patch_rgba16 = None if patchfile: patch_rgba16 = load_rgba16_texture(patchfile, size) new_texture_rgba16 = apply_rgba16_patch(base_texture_rgba16, patch_rgba16) ci8_texture, ci8_palette = rgba16_to_ci8(new_texture_rgba16) - #merge the palette and the texture + # merge the palette and the texture bytes = bytearray() for pixel in ci8_palette: bytes.extend(int.to_bytes(pixel, 2, 'big')) @@ -163,61 +162,59 @@ def ci4_texture_apply_rgba16patch_and_convert_to_ci8(rom, base_texture_address, # Function to create rgba16 texture patches for crates def build_crate_ci8_patches(): - #load crate textures from rom + # load crate textures from rom object_kibako2_addr = 0x018B6000 SIZE_CI4_32X128 = 4096 rom = Rom("ZOOTDEC.z64") crate_palette = load_palette(rom, object_kibako2_addr + 0x00, 16) - crate_texture_rgba16 = ci4_to_rgba16(rom, object_kibako2_addr + 0x20,SIZE_CI4_32X128, crate_palette) + crate_texture_rgba16 = ci4_to_rgba16(rom, object_kibako2_addr + 0x20, SIZE_CI4_32X128, crate_palette) - #load new textures + # load new textures crate_texture_gold_rgba16 = load_rgba16_texture('crate_gold_rgba16.bin', 0x1000) crate_texture_skull_rgba16 = load_rgba16_texture('crate_skull_rgba16.bin', 0x1000) crate_texture_key_rgba16 = load_rgba16_texture('crate_key_rgba16.bin', 0x1000) crate_texture_bosskey_rgba16 = load_rgba16_texture('crate_bosskey_rgba16.bin', 0x1000) - #create patches + # create patches gold_patch = apply_rgba16_patch(crate_texture_rgba16, crate_texture_gold_rgba16) key_patch = apply_rgba16_patch(crate_texture_rgba16, crate_texture_key_rgba16) skull_patch = apply_rgba16_patch(crate_texture_rgba16, crate_texture_skull_rgba16) bosskey_patch = apply_rgba16_patch(crate_texture_rgba16, crate_texture_bosskey_rgba16) - #save patches + # save patches save_rgba16_texture(gold_patch, 'crate_gold_rgba16_patch.bin') save_rgba16_texture(key_patch, 'crate_key_rgba16_patch.bin') save_rgba16_texture(skull_patch, 'crate_skull_rgba16_patch.bin') save_rgba16_texture(bosskey_patch, 'crate_bosskey_rgba16_patch.bin') - #create ci8s + # create ci8s default_ci8, default_palette = rgba16_to_ci8(crate_texture_rgba16) gold_ci8, gold_palette = rgba16_to_ci8(crate_texture_gold_rgba16) key_ci8, key_palette = rgba16_to_ci8(crate_texture_key_rgba16) skull_ci8, skull_palette = rgba16_to_ci8(crate_texture_skull_rgba16) bosskey_ci8, bosskey_palette = rgba16_to_ci8(crate_texture_bosskey_rgba16) - #save ci8 textures + # save ci8 textures save_ci8_texture(default_ci8, 'crate_default_ci8.bin') save_ci8_texture(gold_ci8, 'crate_gold_ci8.bin') save_ci8_texture(key_ci8, 'crate_key_ci8.bin') save_ci8_texture(skull_ci8, 'crate_skull_ci8.bin') save_ci8_texture(bosskey_ci8, 'crate_bosskey_ci8.bin') - #save palettes + # save palettes save_rgba16_texture(default_palette, 'crate_default_palette.bin') save_rgba16_texture(gold_palette, 'crate_gold_palette.bin') save_rgba16_texture(key_palette, 'crate_key_palette.bin') save_rgba16_texture(skull_palette, 'crate_skull_palette.bin') save_rgba16_texture(bosskey_palette, 'crate_bosskey_palette.bin') - patchfiles = [None, 'crate_gold_rgba16_patch.bin', 'crate_key_rgba16_patch.bin', 'crate_skull_rgba16_patch.bin', 'crate_bosskey_rgba16_patch.bin'] - crate_textures = [ (5, 'texture_crate_default', 0x18B6000 + 0x20, 0x018B6000, 4096, ci4_texture_apply_rgba16patch_and_convert_to_ci8, None), (6, 'texture_crate_gold' , 0x18B6000 + 0x20, 0x018B6000, 4096, ci4_texture_apply_rgba16patch_and_convert_to_ci8, 'crate_gold_rgba16_patch.bin'), (7, 'texture_crate_key', 0x18B6000 + 0x20, 0x018B6000, 4096, ci4_texture_apply_rgba16patch_and_convert_to_ci8, 'crate_key_rgba16_patch.bin'), (8, 'texture_crate_skull', 0x18B6000 + 0x20, 0x018B6000, 4096, ci4_texture_apply_rgba16patch_and_convert_to_ci8, 'crate_skull_rgba16_patch.bin'), - (9, 'texture_crate_bosskey', 0x18B6000 + 0x20, 0x018B6000, 4096, ci4_texture_apply_rgba16patch_and_convert_to_ci8, 'crate_bosskey_rgba16_patch.bin') - ] + (9, 'texture_crate_bosskey', 0x18B6000 + 0x20, 0x018B6000, 4096, ci4_texture_apply_rgba16patch_and_convert_to_ci8, 'crate_bosskey_rgba16_patch.bin'), + ] for texture_id, texture_name, rom_address_base, rom_address_palette, size,func, patchfile in crate_textures: texture = func(rom, rom_address_base, rom_address_palette, size, patchfile) @@ -228,37 +225,37 @@ def build_crate_ci8_patches(): # Function to create rgba16 texture patches for pots. def build_pot_patches(): - #load pot textures from rom + # load pot textures from rom object_tsubo_side_addr = 0x01738000 SIZE_32X64 = 2048 rom = Rom("ZOOTDEC.z64") - + pot_default_rgba16 = load_rgba16_texture_from_rom(rom, object_tsubo_side_addr, SIZE_32X64) pot_gold_rgba16 = load_rgba16_texture('pot_gold_rgba16.bin', SIZE_32X64) pot_key_rgba16 = load_rgba16_texture('pot_key_rgba16.bin', SIZE_32X64) pot_skull_rgba16 = load_rgba16_texture('pot_skull_rgba16.bin', SIZE_32X64) pot_bosskey_rgba16 = load_rgba16_texture('pot_bosskey_rgba16.bin', SIZE_32X64) - #create patches + # create patches gold_patch = apply_rgba16_patch(pot_default_rgba16, pot_gold_rgba16) key_patch = apply_rgba16_patch(pot_default_rgba16, pot_key_rgba16) skull_patch = apply_rgba16_patch(pot_default_rgba16, pot_skull_rgba16) bosskey_patch = apply_rgba16_patch(pot_default_rgba16, pot_bosskey_rgba16) - #save patches + # save patches save_rgba16_texture(gold_patch, 'pot_gold_rgba16_patch.bin') save_rgba16_texture(key_patch, 'pot_key_rgba16_patch.bin') save_rgba16_texture(skull_patch, 'pot_skull_rgba16_patch.bin') save_rgba16_texture(bosskey_patch, 'pot_bosskey_rgba16_patch.bin') def build_smallcrate_patches(): - #load small crate texture from rom + # load small crate texture from rom object_kibako_texture_addr = 0xF7ECA0 SIZE_32X64 = 2048 rom = Rom("ZOOTDEC.z64") - #Load textures + # Load textures smallcrate_default_rgba16 = load_rgba16_texture_from_rom(rom, object_kibako_texture_addr, SIZE_32X64) smallcrate_gold_rgba16 = load_rgba16_texture('smallcrate_gold_rgba16.bin', SIZE_32X64) smallcrate_key_rgba16 = load_rgba16_texture('smallcrate_key_rgba16.bin', SIZE_32X64) @@ -266,13 +263,13 @@ def build_smallcrate_patches(): smallcrate_bosskey_rgba16 = load_rgba16_texture('smallcrate_bosskey_rgba16.bin', SIZE_32X64) save_rgba16_texture(smallcrate_default_rgba16, 'smallcrate_default_rgba16.bin') - #Create patches + # Create patches gold_patch = apply_rgba16_patch(smallcrate_default_rgba16, smallcrate_gold_rgba16) key_patch = apply_rgba16_patch(smallcrate_default_rgba16, smallcrate_key_rgba16) skull_patch = apply_rgba16_patch(smallcrate_default_rgba16, smallcrate_skull_rgba16) bosskey_patch = apply_rgba16_patch(smallcrate_default_rgba16, smallcrate_bosskey_rgba16) - #save patches + # save patches save_rgba16_texture(gold_patch, 'smallcrate_gold_rgba16_patch.bin') save_rgba16_texture(key_patch, 'smallcrate_key_rgba16_patch.bin') save_rgba16_texture(skull_patch, 'smallcrate_skull_rgba16_patch.bin') @@ -281,4 +278,4 @@ def build_smallcrate_patches(): #build_crate_ci8_patches() #build_pot_patches() -#build_smallcrate_patches() \ No newline at end of file +#build_smallcrate_patches() diff --git a/version.py b/version.py index aea5f3a72..10c32949f 100644 --- a/version.py +++ b/version.py @@ -1,5 +1,4 @@ __version__ = '6.2.218' - # This is a supplementary version number for branches based off of main dev. supplementary_version = 0