From 0e835c68422ce0d6a6ceb0405d106c4831292e70 Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Wed, 2 Jul 2025 07:48:19 -0500 Subject: [PATCH 1/3] OcarinaShuffle and FDA - Update Z3DR - Add check in fill.cpp to place ocarina first in restricted locations - Tag new restricted locations with new cNoOcarinaStart category - Adjust item pool to not start with ocarina automatically - Adjust settings for no ocarina start, damage multiplier and FDA --- Z3DR | 2 +- source/fill.cpp | 11 + source/include/category.hpp | 1 + source/item_location.cpp | 480 +++++++++++++++++----------------- source/item_pool.cpp | 16 +- source/settings.cpp | 27 +- source/spoiler_log.cpp | 2 +- source/starting_inventory.cpp | 1 + 8 files changed, 284 insertions(+), 256 deletions(-) diff --git a/Z3DR b/Z3DR index 200921f..bb05e64 160000 --- a/Z3DR +++ b/Z3DR @@ -1 +1 @@ -Subproject commit 200921f55684634b6b7c4fc082e9bf236c6aeaed +Subproject commit bb05e64a5ba682b17fb590056fa1479b7604c212 diff --git a/source/fill.cpp b/source/fill.cpp index d47c08a..b85d965 100644 --- a/source/fill.cpp +++ b/source/fill.cpp @@ -871,6 +871,17 @@ int Fill() { //Then place dungeon items that are assigned to restrictive location pools RandomizeDungeonItems(); + //If Ocarina is shuffled place that first + if (StartingOcarina.Value() == 0) { + //Get acceptable Ocarina Locations + std::vector ocarinaLocations = FilterFromPool(allLocations, []( const LocationKey loc) {return Location(loc)->IsCategory(Category::cNoOcarinaStart);}); + std::vector ocarinaItem = FilterAndEraseFromPool(ItemPool, [](const ItemKey i) { return ItemTable(i).GetItemId()==(u32)GetItemID::GI_OCARINA_OF_TIME; }); + //reuse NoRepeatOnTokens variable because making a new one is stupid + NoRepeatOnTokens = true; + AssumedFill(ocarinaItem, ocarinaLocations, true); + NoRepeatOnTokens = false; + } + if (ShuffleGFRewards.Is((u8)GreatFairyRewardShuffleSetting::GFREWARDSHUFFLE_ALL_GREAT_FARIES)){ //get GF locations std::vector gfLocations = FilterFromPool(allLocations, [](const LocationKey loc) {return Location(loc)->IsCategory(Category::cFairyFountain);}); diff --git a/source/include/category.hpp b/source/include/category.hpp index 62c2939..32abd84 100644 --- a/source/include/category.hpp +++ b/source/include/category.hpp @@ -84,6 +84,7 @@ enum class Category { cMoonItems, cFDM, cMainInventory, + cNoOcarinaStart, }; enum class OptionCategory { diff --git a/source/item_location.cpp b/source/item_location.cpp index 4c2d432..94e0bf0 100644 --- a/source/item_location.cpp +++ b/source/item_location.cpp @@ -13,241 +13,241 @@ using namespace rnd; static std::array locationTable; void LocationTable_Init() { - locationTable[NONE] = ItemLocation::Base (0x00, 0x00, false, "Invalid Location", NONE, NONE, {}, SpoilerCollectionCheck::None(), SpoilerCollectionCheckGroup::GROUP_NO_GROUP); - //LocationTable itemlocation::type scene, flag, Repeatable, name hint key (hint_list.cpp) vanilla item categories collection check 376 Collection Check Group + locationTable[NONE] = ItemLocation::Base (0x00, 0x00, false, "Invalid Location", NONE, NONE, {}, SpoilerCollectionCheck::None(), SpoilerCollectionCheckGroup::GROUP_NO_GROUP); + //LocationTable itemlocation::type scene, flag, Repeatable, name hint key (hint_list.cpp) vanilla item categories collection check 376 Collection Check Group //Happy Mask Salesman - Starting Items - locationTable[HMS_SONG_OF_HEALING] = ItemLocation::Base (0x63, 0x54, false, "Song of Healing", HMS_SONG_OF_HEALING, SONG_OF_HEALING, {Category::cClockTower, Category::cDayOne, Category::cSong}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER); - locationTable[CLOCK_TOWER_OCARINA_OF_TIME] = ItemLocation::Base (0x19, 0x4C, false, "Ocarina of Time", CLOCK_TOWER_OCARINA_OF_TIME, OCARINA_OF_TIME, {Category::cClockTower, Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); - locationTable[HMS_DEKU_MASK] = ItemLocation::Base (0x63, 0x78, false, "Deku Mask", HMS_DEKU_MASK, DEKU_MASK, {Category::cClockTower, Category::cTransformMask}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); - locationTable[HMS_BOMBERS_NOTEBOOK] = ItemLocation::Base (0x63, 0x50, false, "Bombers Notebook", HMS_BOMBERS_NOTEBOOK, BOMBERS_NOTEBOOK, {Category::cClockTower, Category::cDayOne, Category::cNotebook}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); - locationTable[HMS_STARTING_SWORD] = ItemLocation::Base (0x00, 0x37, false, "Starting Sword", HMS_STARTING_SWORD, PROGRESSIVE_SWORD, {Category::cClockTower, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_NO_GROUP ); - locationTable[HMS_STARTING_SHIELD] = ItemLocation::Base (0x00, 0x32, false, "Starting Shield", HMS_STARTING_SHIELD, HEROS_SHIELD, {Category::cClockTower, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_NO_GROUP ); + locationTable[HMS_SONG_OF_HEALING] = ItemLocation::Base (0x63, 0x54, false, "Song of Healing", HMS_SONG_OF_HEALING, SONG_OF_HEALING, {Category::cClockTower, Category::cDayOne, Category::cSong, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER); + locationTable[CLOCK_TOWER_OCARINA_OF_TIME] = ItemLocation::Collectable(0x19, 0x4C, false, "Ocarina of Time", CLOCK_TOWER_OCARINA_OF_TIME, OCARINA_OF_TIME, {Category::cClockTower, Category::cDayThree, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); + locationTable[HMS_DEKU_MASK] = ItemLocation::Base (0x63, 0x78, false, "Deku Mask", HMS_DEKU_MASK, DEKU_MASK, {Category::cClockTower, Category::cTransformMask, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); + locationTable[HMS_BOMBERS_NOTEBOOK] = ItemLocation::Base (0x63, 0x50, false, "Bombers Notebook", HMS_BOMBERS_NOTEBOOK, BOMBERS_NOTEBOOK, {Category::cClockTower, Category::cDayOne, Category::cNotebook, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); + locationTable[HMS_STARTING_SWORD] = ItemLocation::Base (0x00, 0x37, false, "Starting Sword", HMS_STARTING_SWORD, PROGRESSIVE_SWORD, {Category::cClockTower, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_NO_GROUP ); + locationTable[HMS_STARTING_SHIELD] = ItemLocation::Base (0x00, 0x32, false, "Starting Shield", HMS_STARTING_SHIELD, HEROS_SHIELD, {Category::cClockTower, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_NO_GROUP ); //Deku Palace - locationTable[DEKU_PALACE_BEAN_SELLER] = ItemLocation::Base (0x07, 0x35, true, "DP Bean Seller", DEKU_PALACE_BEAN_SELLER, MAGIC_BEAN, {Category::cDekuPalace,Category::cWoodfall,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE ); - locationTable[DEKU_PALACE_WEST_GARDEN] = ItemLocation::Collectable(0x2B, 0x00, false, "DP West Garden", DEKU_PALACE_WEST_GARDEN, PIECE_OF_HEART, {Category::cDekuPalace,Category::cWoodfall, Category::cFreestandingItems, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE ); - locationTable[DEKU_PALACE_BUTLER_RACE] = ItemLocation::Base (0x52, 0x8E, false, "DP Butler Race", DEKU_PALACE_BUTLER_RACE, MASK_OF_SCENTS, {Category::cDekuPalace,Category::cWoodfall, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE ); - locationTable[DEKU_PALACE_IMPRISONED_MONKEY] = ItemLocation::Base (0x3E, 0x4B, false, "DP Imprisoned Monkey", DEKU_PALACE_IMPRISONED_MONKEY, SONATA_OF_AWAKENING, {Category::cDekuPalace,Category::cSong,Category::cWoodfall,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE ); - locationTable[DEKU_PALACE_BEAN_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x05, true, "DP Bean Grotto Chest", DEKU_PALACE_BEAN_GROTTO_CHEST, RED_RUPEE, {Category::cDekuPalace,Category::cGrotto,Category::cWoodfall,Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE); + locationTable[DEKU_PALACE_BEAN_SELLER] = ItemLocation::Base (0x07, 0x35, true, "DP Bean Seller", DEKU_PALACE_BEAN_SELLER, MAGIC_BEAN, {Category::cDekuPalace,Category::cWoodfall,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE ); + locationTable[DEKU_PALACE_WEST_GARDEN] = ItemLocation::Collectable(0x2B, 0x00, false, "DP West Garden", DEKU_PALACE_WEST_GARDEN, PIECE_OF_HEART, {Category::cDekuPalace,Category::cWoodfall, Category::cFreestandingItems, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE ); + locationTable[DEKU_PALACE_BUTLER_RACE] = ItemLocation::Base (0x52, 0x8E, false, "DP Butler Race", DEKU_PALACE_BUTLER_RACE, MASK_OF_SCENTS, {Category::cDekuPalace,Category::cWoodfall, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE ); + locationTable[DEKU_PALACE_IMPRISONED_MONKEY] = ItemLocation::Base (0x3E, 0x4B, false, "DP Imprisoned Monkey", DEKU_PALACE_IMPRISONED_MONKEY, SONATA_OF_AWAKENING, {Category::cDekuPalace,Category::cSong,Category::cWoodfall,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE ); + locationTable[DEKU_PALACE_BEAN_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x05, true, "DP Bean Grotto Chest", DEKU_PALACE_BEAN_GROTTO_CHEST, RED_RUPEE, {Category::cDekuPalace,Category::cGrotto,Category::cWoodfall,Category::cChest,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_DEKU_PALACE); //East Clock Town - locationTable[E_CLOCK_TOWN_AROMA_IN_BAR] = ItemLocation::Base (0x15, 0x6F, false, "ECT Milk Bar Madame Aroma", E_CLOCK_TOWN_AROMA_IN_BAR, CHATEAU_ROMANI, {Category::cEastClockTown, Category::cDayThree, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_ARCHERY_1] = ItemLocation::Base (0x20, 0x47, false, "ECT Archery #1", E_CLOCK_TOWN_ARCHERY_1, PROGRESSIVE_BOW, {Category::cEastClockTown, Category::cMinigame,Category::cDayOne, Category::cMainInventory }, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_MAYOR] = ItemLocation::Base (0x12, 0x0C, false, "ECT Mayor Reward", E_CLOCK_TOWN_MAYOR, PIECE_OF_HEART, {Category::cEastClockTown, Category::cVanillaHeartPiece ,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_ARCHERY_2] = ItemLocation::Base (0x20, 0x0C, false, "ECT Archery #2", E_CLOCK_TOWN_ARCHERY_2, PIECE_OF_HEART, {Category::cEastClockTown, Category::cMinigame , Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_HONEY_DARLING_3DAYS] = ItemLocation::Base (0x11, 0x0C, false, "ECT Honey and Darling 3 Days", E_CLOCK_TOWN_HONEY_DARLING_3DAYS, PIECE_OF_HEART, {Category::cEastClockTown, Category::cMinigame , Category::cVanillaHeartPiece,Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_TREASURE_CHEST_GAME_GORON] = ItemLocation::Chest (0x17, 0x00, true, "ECT Treasure Chest Game (Goron)", E_CLOCK_TOWN_TREASURE_CHEST_GAME_GORON, PIECE_OF_HEART, {Category::cEastClockTown, Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_POSTMAN_FREEDOM] = ItemLocation::Base (0x6C, 0x84, false, "ECT Postman's Freedom", E_CLOCK_TOWN_POSTMAN_FREEDOM, POSTMANS_HAT, {Category::cEastClockTown, Category::cVanillaMask,Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_GORMAN] = ItemLocation::Base (0x15, 0x83, false, "ECT Milk Bar Gorman", E_CLOCK_TOWN_GORMAN, CIRCUS_LEADERS_MASK, {Category::cEastClockTown, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_AROMA_IN_OFFICE] = ItemLocation::Base (0x12, 0x8F, false, "ECT Mayor's Office Madame Aroma", E_CLOCK_TOWN_AROMA_IN_OFFICE, KAFEIS_MASK, {Category::cEastClockTown, Category::cDayOne, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[BOMBERS_HIDEOUT_CHEST] = ItemLocation::Chest (0x29, 0x00, true, "Bombers' Hideout Chest", BOMBERS_HIDEOUT_CHEST, SILVER_RUPEE, {Category::cEastClockTown, Category::cChest,Category::cDayOne }, SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_CHEST] = ItemLocation::Chest (0x6C, 0x0A, true, "ECT Chest", E_CLOCK_TOWN_CHEST, SILVER_RUPEE, {Category::cEastClockTown, Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - //locationTable[E_CLOCK_TOWN_MILK_BAR_CHATEAU] = ItemLocation::Base (0x12, 0x00, true, "Milk Bar Chateau Buy", E_CLOCK_TOWN_MILK_BAR_CHATEAU, CHATEAU_ROMANI, {Category::cEastClockTown}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - //locationTable[E_CLOCK_TOWN_MILK_BAR_MILK] = ItemLocation::Base (0x12, 0x00, true, "Milk Bar Milk Buy", E_CLOCK_TOWN_MILK_BAR_MILK, MILK, {Category::cEastClockTown}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - //locationTable[E_CLOCK_TOWN_HONEY_DARLING_ANY_DAY] = ItemLocation::Base (0x11, 0x00, true, "Honey and Darling Any Day", E_CLOCK_TOWN_HONEY_DARLING_ANY_DAY, PURPLE_RUPEE, {Category::cEClockTown,Category::cMinigame}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - //locationTable[E_CLOCK_TOWN_TREASURE_CHEST_GAME_HUMAN] = ItemLocation::Base (0x17, 0x00, true, "Treasure Chest Game (Human)", E_CLOCK_TOWN_TREASURE_CHEST_GAME_HUMAN PURPLE_RUPEE, {Category::cEClockTown,Category::cMinigame,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - //locationTable[E_CLOCK_TOWN_TREASURE_CHEST_GAME_ZORA] = ItemLocation::Base (0x17, 0x00, true, "Treasure Chest Game (Zora)", E_CLOCK_TOWN_TREASURE_CHEST_GAME_ZORA, RED_RUPEE, {Category::cEClockTown,Category::cMinigame ,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - //locationTable[E_CLOCK_TOWN_TREASURE_CHEST_GAME_DEKU] = ItemLocation::Base (0x17, 0x00, true, "Treasure Chest Game (Deku)", E_CLOCK_TOWN_TREASURE_CHEST_GAME_DEKU, DEKU_NUTS_10, {Category::cEClockTown,Category::cMinigame,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); - locationTable[E_CLOCK_TOWN_POSTBOX] = ItemLocation::Base (0x6C, 0xBA, false, "ECT Postbox", E_CLOCK_TOWN_POSTBOX, PIECE_OF_HEART, {Category::cEastClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_AROMA_IN_BAR] = ItemLocation::Base (0x15, 0x6F, false, "ECT Milk Bar Madame Aroma", E_CLOCK_TOWN_AROMA_IN_BAR, CHATEAU_ROMANI, {Category::cEastClockTown, Category::cDayThree, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_ARCHERY_1] = ItemLocation::Base (0x20, 0x47, false, "ECT Archery #1", E_CLOCK_TOWN_ARCHERY_1, PROGRESSIVE_BOW, {Category::cEastClockTown, Category::cMinigame,Category::cDayOne, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_MAYOR] = ItemLocation::Base (0x12, 0x0C, false, "ECT Mayor Reward", E_CLOCK_TOWN_MAYOR, PIECE_OF_HEART, {Category::cEastClockTown, Category::cVanillaHeartPiece ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_ARCHERY_2] = ItemLocation::Base (0x20, 0x0C, false, "ECT Archery #2", E_CLOCK_TOWN_ARCHERY_2, PIECE_OF_HEART, {Category::cEastClockTown, Category::cMinigame , Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_HONEY_DARLING_3DAYS] = ItemLocation::Base (0x11, 0x0C, false, "ECT Honey and Darling 3 Days", E_CLOCK_TOWN_HONEY_DARLING_3DAYS, PIECE_OF_HEART, {Category::cEastClockTown, Category::cMinigame , Category::cVanillaHeartPiece,Category::cDayThree, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_TREASURE_CHEST_GAME_GORON] = ItemLocation::Chest (0x17, 0x00, true, "ECT Treasure Chest Game (Goron)", E_CLOCK_TOWN_TREASURE_CHEST_GAME_GORON, PIECE_OF_HEART, {Category::cEastClockTown, Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_POSTMAN_FREEDOM] = ItemLocation::Base (0x6C, 0x84, false, "ECT Postman's Freedom", E_CLOCK_TOWN_POSTMAN_FREEDOM, POSTMANS_HAT, {Category::cEastClockTown, Category::cVanillaMask,Category::cDayThree, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_GORMAN] = ItemLocation::Base (0x15, 0x83, false, "ECT Milk Bar Gorman", E_CLOCK_TOWN_GORMAN, CIRCUS_LEADERS_MASK, {Category::cEastClockTown, Category::cVanillaMask,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_AROMA_IN_OFFICE] = ItemLocation::Base (0x12, 0x8F, false, "ECT Mayor's Office Madame Aroma", E_CLOCK_TOWN_AROMA_IN_OFFICE, KAFEIS_MASK, {Category::cEastClockTown, Category::cDayOne, Category::cAnjuAndKafei, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[BOMBERS_HIDEOUT_CHEST] = ItemLocation::Chest (0x29, 0x00, true, "Bombers' Hideout Chest", BOMBERS_HIDEOUT_CHEST, SILVER_RUPEE, {Category::cEastClockTown, Category::cChest,Category::cDayOne, Category::cNoOcarinaStart }, SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_CHEST] = ItemLocation::Chest (0x6C, 0x0A, true, "ECT Chest", E_CLOCK_TOWN_CHEST, SILVER_RUPEE, {Category::cEastClockTown, Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + //locationTable[E_CLOCK_TOWN_MILK_BAR_CHATEAU] = ItemLocation::Base (0x12, 0x00, true, "Milk Bar Chateau Buy", E_CLOCK_TOWN_MILK_BAR_CHATEAU, CHATEAU_ROMANI, {Category::cEastClockTown}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + //locationTable[E_CLOCK_TOWN_MILK_BAR_MILK] = ItemLocation::Base (0x12, 0x00, true, "Milk Bar Milk Buy", E_CLOCK_TOWN_MILK_BAR_MILK, MILK, {Category::cEastClockTown}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + //locationTable[E_CLOCK_TOWN_HONEY_DARLING_ANY_DAY] = ItemLocation::Base (0x11, 0x00, true, "Honey and Darling Any Day", E_CLOCK_TOWN_HONEY_DARLING_ANY_DAY, PURPLE_RUPEE, {Category::cEClockTown,Category::cMinigame}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + //locationTable[E_CLOCK_TOWN_TREASURE_CHEST_GAME_HUMAN] = ItemLocation::Base (0x17, 0x00, true, "Treasure Chest Game (Human)", E_CLOCK_TOWN_TREASURE_CHEST_GAME_HUMAN PURPLE_RUPEE, {Category::cEClockTown,Category::cMinigame,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + //locationTable[E_CLOCK_TOWN_TREASURE_CHEST_GAME_ZORA] = ItemLocation::Base (0x17, 0x00, true, "Treasure Chest Game (Zora)", E_CLOCK_TOWN_TREASURE_CHEST_GAME_ZORA, RED_RUPEE, {Category::cEClockTown,Category::cMinigame ,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + //locationTable[E_CLOCK_TOWN_TREASURE_CHEST_GAME_DEKU] = ItemLocation::Base (0x17, 0x00, true, "Treasure Chest Game (Deku)", E_CLOCK_TOWN_TREASURE_CHEST_GAME_DEKU, DEKU_NUTS_10, {Category::cEClockTown,Category::cMinigame,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); + locationTable[E_CLOCK_TOWN_POSTBOX] = ItemLocation::Base (0x6C, 0xBA, false, "ECT Postbox", E_CLOCK_TOWN_POSTBOX, PIECE_OF_HEART, {Category::cEastClockTown, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_E_CLOCK_TOWN ); //Goron Village - locationTable[GORON_VILLAGE_POWDER_KEG_CHALLENGE] = ItemLocation::Base (0x4D, 0x34, false, "GV Powder Keg Challenge", GORON_VILLAGE_POWDER_KEG_CHALLENGE, POWDER_KEG, {Category::cGoronVillage, Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_SCRUB_PURCHASE] = ItemLocation::Base (0x4D, 0x1D, false, "GV Scrub Purchase", GORON_VILLAGE_SCRUB_PURCHASE, PROGRESSIVE_BOMB_BAG, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_LENS_OF_TRUTH_CHEST] = ItemLocation::Chest (0x07, 0x01, true, "GV Lens of Truth Chest", GORON_VILLAGE_LENS_OF_TRUTH_CHEST, LENS_OF_TRUTH, {Category::cGoronVillage, Category::cChest, Category::cDayOne, Category::cMainInventory }, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_SCRUB_TRADE] = ItemLocation::Base (0x4D, 0x99, true, "GV Deku Scrub Merchant Trade", GORON_VILLAGE_SCRUB_TRADE, MOUNTAIN_TITLE, {Category::cGoronVillage, Category::cDekuScrub, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_LEDGE] = ItemLocation::Collectable(0x4D, 0x00, false, "GV Piece of Heart", GORON_VILLAGE_LEDGE, PIECE_OF_HEART, {Category::cGoronVillage, Category::cVanillaHeartPiece, Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_GORON_LULLABY] = ItemLocation::Base (0x32, 0x4D, false, "GV Goron Lullaby", GORON_VILLAGE_GORON_LULLABY, GORONS_LULLABY, {Category::cGoronVillage, Category::cSong, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[LENS_CAVE_RED_RUPEE] = ItemLocation::Chest (0x07, 0x03, true, "GV Lens Cave Invisible Chest", LENS_CAVE_RED_RUPEE, RED_RUPEE, {Category::cGoronVillage, Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[LENS_CAVE_PURPLE_RUPEE] = ItemLocation::Chest (0x07, 0x06, true, "GV Lens Cave Rock Chest", LENS_CAVE_PURPLE_RUPEE, PURPLE_RUPEE, {Category::cGoronVillage, Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_POWDER_KEG_CHALLENGE_SPRING] = ItemLocation::Base (0x48, 0x34, false, "GV Powder Keg Challenge (Spring)", GORON_VILLAGE_POWDER_KEG_CHALLENGE_SPRING, POWDER_KEG, {Category::cGoronVillage, Category::cDayOne, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_SCRUB_PURCHASE_SPRING] = ItemLocation::Base (0x48, 0x1D, false, "GV Scrub Purchase (Spring)", GORON_VILLAGE_SCRUB_PURCHASE_SPRING, PROGRESSIVE_BOMB_BAG, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_SCRUB_TRADE_SPRING] = ItemLocation::Base (0x48, 0x99, true, "GV Deku Scrub Merchant Trade (Spring)", GORON_VILLAGE_SCRUB_TRADE_SPRING, MOUNTAIN_TITLE, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_LEDGE_SPRING] = ItemLocation::Collectable(0x48, 0x00, false, "GV Piece of Heart (Spring)", GORON_VILLAGE_LEDGE_SPRING, PIECE_OF_HEART, {Category::cGoronVillage, Category::cVanillaHeartPiece,Category::cDayOne, Category::cAlternateCheck}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_POWDER_KEG_CHALLENGE] = ItemLocation::Base (0x4D, 0x34, false, "GV Powder Keg Challenge", GORON_VILLAGE_POWDER_KEG_CHALLENGE, POWDER_KEG, {Category::cGoronVillage, Category::cDayOne, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_SCRUB_PURCHASE] = ItemLocation::Base (0x4D, 0x1D, false, "GV Scrub Purchase", GORON_VILLAGE_SCRUB_PURCHASE, PROGRESSIVE_BOMB_BAG, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_LENS_OF_TRUTH_CHEST] = ItemLocation::Chest (0x07, 0x01, true, "GV Lens of Truth Chest", GORON_VILLAGE_LENS_OF_TRUTH_CHEST, LENS_OF_TRUTH, {Category::cGoronVillage, Category::cChest, Category::cDayOne, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_SCRUB_TRADE] = ItemLocation::Base (0x4D, 0x99, true, "GV Deku Scrub Merchant Trade", GORON_VILLAGE_SCRUB_TRADE, MOUNTAIN_TITLE, {Category::cGoronVillage, Category::cDekuScrub, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_LEDGE] = ItemLocation::Collectable(0x4D, 0x00, false, "GV Piece of Heart", GORON_VILLAGE_LEDGE, PIECE_OF_HEART, {Category::cGoronVillage, Category::cVanillaHeartPiece, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_GORON_LULLABY] = ItemLocation::Base (0x32, 0x4D, false, "GV Goron Lullaby", GORON_VILLAGE_GORON_LULLABY, GORONS_LULLABY, {Category::cGoronVillage, Category::cSong, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[LENS_CAVE_RED_RUPEE] = ItemLocation::Chest (0x07, 0x03, true, "GV Lens Cave Invisible Chest", LENS_CAVE_RED_RUPEE, RED_RUPEE, {Category::cGoronVillage, Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[LENS_CAVE_PURPLE_RUPEE] = ItemLocation::Chest (0x07, 0x06, true, "GV Lens Cave Rock Chest", LENS_CAVE_PURPLE_RUPEE, PURPLE_RUPEE, {Category::cGoronVillage, Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_POWDER_KEG_CHALLENGE_SPRING] = ItemLocation::Base (0x48, 0x34, false, "GV Powder Keg Challenge (Spring)", GORON_VILLAGE_POWDER_KEG_CHALLENGE_SPRING, POWDER_KEG, {Category::cGoronVillage, Category::cDayOne, Category::cAlternateCheck, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_SCRUB_PURCHASE_SPRING] = ItemLocation::Base (0x48, 0x1D, false, "GV Scrub Purchase (Spring)", GORON_VILLAGE_SCRUB_PURCHASE_SPRING, PROGRESSIVE_BOMB_BAG, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cAlternateCheck, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_SCRUB_TRADE_SPRING] = ItemLocation::Base (0x48, 0x99, true, "GV Deku Scrub Merchant Trade (Spring)", GORON_VILLAGE_SCRUB_TRADE_SPRING, MOUNTAIN_TITLE, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cAlternateCheck, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_LEDGE_SPRING] = ItemLocation::Collectable(0x48, 0x00, false, "GV Piece of Heart (Spring)", GORON_VILLAGE_LEDGE_SPRING, PIECE_OF_HEART, {Category::cGoronVillage, Category::cVanillaHeartPiece,Category::cDayOne, Category::cAlternateCheck, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); //Great Bay Coast - locationTable[GBC_OCEAN_SPIDER_DAY1] = ItemLocation::Base (0x28, 0x48, false, "OSH Reward", GBC_OCEAN_SPIDER_DAY1, PROGRESSIVE_WALLET, {Category::cGreatBayCoast ,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - //locationTable[GBC_OCEAN_SPIDER_DAY2] = ItemLocation::Base (0x28, 0x00, true, "OSH Day 2 Reward", GBC_OCEAN_SPIDER_DAY2, PURPLE_RUPEE, {Category::cGreatBayCoast ,Category::cDayTwo}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - //locationTable[GBC_OCEAN_SPIDER_DAY3] = ItemLocation::Base (0x28, 0x00, true, "OSH Day 3 Reward", GBC_OCEAN_SPIDER_DAY3, RED_RUPEE, {Category::cGreatBayCoast,Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - locationTable[GBC_FISHERMAN_GAME] = ItemLocation::Base (0x37, 0x0C, false, "GBC Fisherman's Game", GBC_FISHERMAN_GAME, PIECE_OF_HEART, {Category::cGreatBayCoast, Category::cVanillaHeartPiece, Category::cMinigame,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - locationTable[GBC_OCEAN_SPIDER_CHEST] = ItemLocation::Chest (0x28, 0x00, false, "OSH Chest", GBC_OCEAN_SPIDER_CHEST, PIECE_OF_HEART, {Category::cGreatBayCoast, Category::cVanillaHeartPiece, Category::cDayOne,Category::cChest}, SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - locationTable[GBC_LAB_FISH] = ItemLocation::Collectable(0x2F, 0x00, false, "GBC Marine Lab Fish HP", GBC_LAB_FISH, PIECE_OF_HEART, {Category::cGreatBayCoast, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - locationTable[GBC_LEDGE] = ItemLocation::Collectable(0x37, 0x00, false, "GBC Ledge", GBC_LEDGE, PIECE_OF_HEART, {Category::cGreatBayCoast, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - locationTable[GBC_MIKAU] = ItemLocation::Base (0x37, 0x7A, false, "GBC Mikau", GBC_MIKAU, ZORA_MASK, {Category::cGreatBayCoast, Category::cTransformMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - locationTable[GBC_BABY_ZORAS] = ItemLocation::Base (0x2F, 0x4E, false, "GBC Marine Lab Baby Zoras", GBC_BABY_ZORAS, NEW_WAVE_BOSSA_NOVA, {Category::cGreatBayCoast, Category::cSong,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - locationTable[GBC_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x17, true, "GBC Grotto Chest", GREAT_BAY_COAST_GROTTO, RED_RUPEE, {Category::cGreatBayCoast, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); - locationTable[GBC_FISHERMAN_PHOTO] = ItemLocation::Base (0x3C, 0x95, false, "GBC Fisherman Photo", GBC_FISHERMAN_PHOTO, SEAHORSE, {Category::cGreatBayCoast, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + locationTable[GBC_OCEAN_SPIDER_DAY1] = ItemLocation::Base (0x28, 0x48, false, "OSH Reward", GBC_OCEAN_SPIDER_DAY1, PROGRESSIVE_WALLET, {Category::cGreatBayCoast ,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + //locationTable[GBC_OCEAN_SPIDER_DAY2] = ItemLocation::Base (0x28, 0x00, true, "OSH Day 2 Reward", GBC_OCEAN_SPIDER_DAY2, PURPLE_RUPEE, {Category::cGreatBayCoast ,Category::cDayTwo}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + //locationTable[GBC_OCEAN_SPIDER_DAY3] = ItemLocation::Base (0x28, 0x00, true, "OSH Day 3 Reward", GBC_OCEAN_SPIDER_DAY3, RED_RUPEE, {Category::cGreatBayCoast,Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + locationTable[GBC_FISHERMAN_GAME] = ItemLocation::Base (0x37, 0x0C, false, "GBC Fisherman's Game", GBC_FISHERMAN_GAME, PIECE_OF_HEART, {Category::cGreatBayCoast, Category::cVanillaHeartPiece, Category::cMinigame,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + locationTable[GBC_OCEAN_SPIDER_CHEST] = ItemLocation::Chest (0x28, 0x00, false, "OSH Chest", GBC_OCEAN_SPIDER_CHEST, PIECE_OF_HEART, {Category::cGreatBayCoast, Category::cVanillaHeartPiece, Category::cDayOne,Category::cChest}, SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + locationTable[GBC_LAB_FISH] = ItemLocation::Collectable(0x2F, 0x00, false, "GBC Marine Lab Fish HP", GBC_LAB_FISH, PIECE_OF_HEART, {Category::cGreatBayCoast, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + locationTable[GBC_LEDGE] = ItemLocation::Collectable(0x37, 0x00, false, "GBC Ledge", GBC_LEDGE, PIECE_OF_HEART, {Category::cGreatBayCoast, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + locationTable[GBC_MIKAU] = ItemLocation::Base (0x37, 0x7A, false, "GBC Mikau", GBC_MIKAU, ZORA_MASK, {Category::cGreatBayCoast, Category::cTransformMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + locationTable[GBC_BABY_ZORAS] = ItemLocation::Base (0x2F, 0x4E, false, "GBC Marine Lab Baby Zoras", GBC_BABY_ZORAS, NEW_WAVE_BOSSA_NOVA, {Category::cGreatBayCoast, Category::cSong,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + locationTable[GBC_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x17, true, "GBC Grotto Chest", GREAT_BAY_COAST_GROTTO, RED_RUPEE, {Category::cGreatBayCoast, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); + locationTable[GBC_FISHERMAN_PHOTO] = ItemLocation::Base (0x3C, 0x95, false, "GBC Fisherman Photo", GBC_FISHERMAN_PHOTO, SEAHORSE, {Category::cGreatBayCoast, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); //Ikana Canyon - locationTable[IKANA_CANYON_GREAT_FAIRY] = ItemLocation::Base (0x26, 0x3B, false, "IC Great Fairy", IKANA_CANYON_GREAT_FAIRY, GREAT_FAIRYS_SWORD, {Category::cIkanaCanyon, Category::cDayOne, Category::cFairyFountain, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); - locationTable[IKANA_CANYON_POE_HUT_HP] = ItemLocation::Base (0x51, 0x0C, false, "IC Poe Hut", IKANA_CANYON_POE_HUT_HP, PIECE_OF_HEART, {Category::cIkanaCanyon, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); - locationTable[IKANA_CANYON_LEDGE] = ItemLocation::Collectable(0x13, 0x00, false, "IC Ledge", IKANA_CANYON_LEDGE, PIECE_OF_HEART, {Category::cIkanaCanyon, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); - locationTable[IKANA_CANYON_PAMELAS_FATHER] = ItemLocation::Base (0x55, 0x87, false, "IC Pamela's Father", IKANA_CANYON_PAMELAS_FATHER, GIBDOS_MASK, {Category::cIkanaCanyon, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); - locationTable[IKANA_CANYON_SECRET_SHRINE_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x14, true, "IC Secret Shrine Grotto", IKANA_CANYON_SECRET_SHRINE_GROTTO_CHEST, BOMBCHU_5, {Category::cIkanaCanyon, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); - locationTable[IKANA_CANYON_SCRUB_TRADE] = ItemLocation::Base (0x13, 0x07, true, "IC Deku Scrub Merchant Trade", IKANA_CANYON_SCRUB_TRADE, HUGE_RUPEE, {Category::cIkanaCanyon, Category::cDekuScrub,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); - locationTable[IKANA_CANYON_SCRUB_PURCHASE] = ItemLocation::Base (0x13, 0x5D, true, "IC Deku Scrub Merchant Purchase", IKANA_CANYON_SCRUB_PURCHASE, BLUE_POTION_REFILL, {Category::cIkanaCanyon, Category::cDekuScrub,Category::cDayOne, Category::cShop}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); + locationTable[IKANA_CANYON_GREAT_FAIRY] = ItemLocation::Base (0x26, 0x3B, false, "IC Great Fairy", IKANA_CANYON_GREAT_FAIRY, GREAT_FAIRYS_SWORD, {Category::cIkanaCanyon, Category::cDayOne, Category::cFairyFountain, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); + locationTable[IKANA_CANYON_POE_HUT_HP] = ItemLocation::Base (0x51, 0x0C, false, "IC Poe Hut", IKANA_CANYON_POE_HUT_HP, PIECE_OF_HEART, {Category::cIkanaCanyon, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); + locationTable[IKANA_CANYON_LEDGE] = ItemLocation::Collectable(0x13, 0x00, false, "IC Ledge", IKANA_CANYON_LEDGE, PIECE_OF_HEART, {Category::cIkanaCanyon, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); + locationTable[IKANA_CANYON_PAMELAS_FATHER] = ItemLocation::Base (0x55, 0x87, false, "IC Pamela's Father", IKANA_CANYON_PAMELAS_FATHER, GIBDOS_MASK, {Category::cIkanaCanyon, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); + locationTable[IKANA_CANYON_SECRET_SHRINE_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x14, true, "IC Secret Shrine Grotto", IKANA_CANYON_SECRET_SHRINE_GROTTO_CHEST, BOMBCHU_5, {Category::cIkanaCanyon, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); + locationTable[IKANA_CANYON_SCRUB_TRADE] = ItemLocation::Base (0x13, 0x07, true, "IC Deku Scrub Merchant Trade", IKANA_CANYON_SCRUB_TRADE, HUGE_RUPEE, {Category::cIkanaCanyon, Category::cDekuScrub,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); + locationTable[IKANA_CANYON_SCRUB_PURCHASE] = ItemLocation::Base (0x13, 0x5D, true, "IC Deku Scrub Merchant Purchase", IKANA_CANYON_SCRUB_PURCHASE, BLUE_POTION_REFILL, {Category::cIkanaCanyon, Category::cDekuScrub,Category::cDayOne, Category::cShop}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); //Ikana Graveyard - locationTable[IKANA_GRAVEYARD_DAMPE_DIGGING] = ItemLocation::Chest (0x30, 0x10, false, "IG Dampe Digging", IKANA_GRAVEYARD_DAMPE_DIGGING, PIECE_OF_HEART, {Category::cIkanaGraveyard, Category::cVanillaHeartPiece, Category::cMinigame,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); - locationTable[IKANA_GRAVEYARD_IRON_KNUCKLE_CHEST] = ItemLocation::Chest (0x0C, 0x00, false, "IG Iron Knuckle Chest", IKANA_GRAVEYARD_IRON_KNUCKLE_CHEST, PIECE_OF_HEART, {Category::cIkanaGraveyard, Category::cVanillaHeartPiece, Category::cChest, Category::cDayTwo}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); - locationTable[IKANA_GRAVEYARD_CAPTAIN_KEETA_CHEST] = ItemLocation::Chest (0x43, 0x00, false, "IG Captain Keeta's Chest", IKANA_GRAVEYARD_CAPTAIN_KEETA_CHEST, CAPTAINS_HAT, {Category::cIkanaGraveyard, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); - locationTable[IKANA_GRAVEYARD_DAY_ONE_GRAVE_TABLET] = ItemLocation::Base (0x0C, 0x73, false, "IG Day 1 Grave Tablet", IKANA_GRAVEYARD_DAY_ONE_GRAVE_TABLET, SONG_OF_STORMS, {Category::cIkanaGraveyard, Category::cSong,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); - locationTable[IKANA_GRAVEYARD_DAY_ONE_GRAVE_BATS] = ItemLocation::Chest (0x0C, 0x03, true, "IG Day 1 Grave Bats", IKANA_GRAVEYARD_DAY_ONE_GRAVE_BATS, PURPLE_RUPEE, {Category::cIkanaGraveyard, Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); - locationTable[IKANA_GRAVEYARD_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x18, true, "IG Grotto", IKANA_GRAVEYARD_GROTTO_CHEST, BOMBCHU_5, {Category::cIkanaGraveyard, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); + locationTable[IKANA_GRAVEYARD_DAMPE_DIGGING] = ItemLocation::Chest (0x30, 0x10, false, "IG Dampe Digging", IKANA_GRAVEYARD_DAMPE_DIGGING, PIECE_OF_HEART, {Category::cIkanaGraveyard, Category::cVanillaHeartPiece, Category::cMinigame,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); + locationTable[IKANA_GRAVEYARD_IRON_KNUCKLE_CHEST] = ItemLocation::Chest (0x0C, 0x00, false, "IG Iron Knuckle Chest", IKANA_GRAVEYARD_IRON_KNUCKLE_CHEST, PIECE_OF_HEART, {Category::cIkanaGraveyard, Category::cVanillaHeartPiece, Category::cChest, Category::cDayTwo}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); + locationTable[IKANA_GRAVEYARD_CAPTAIN_KEETA_CHEST] = ItemLocation::Chest (0x43, 0x00, false, "IG Captain Keeta's Chest", IKANA_GRAVEYARD_CAPTAIN_KEETA_CHEST, CAPTAINS_HAT, {Category::cIkanaGraveyard, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); + locationTable[IKANA_GRAVEYARD_DAY_ONE_GRAVE_TABLET] = ItemLocation::Base (0x0C, 0x73, false, "IG Day 1 Grave Tablet", IKANA_GRAVEYARD_DAY_ONE_GRAVE_TABLET, SONG_OF_STORMS, {Category::cIkanaGraveyard, Category::cSong,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); + locationTable[IKANA_GRAVEYARD_DAY_ONE_GRAVE_BATS] = ItemLocation::Chest (0x0C, 0x03, true, "IG Day 1 Grave Bats", IKANA_GRAVEYARD_DAY_ONE_GRAVE_BATS, PURPLE_RUPEE, {Category::cIkanaGraveyard, Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); + locationTable[IKANA_GRAVEYARD_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x18, true, "IG Grotto", IKANA_GRAVEYARD_GROTTO_CHEST, BOMBCHU_5, {Category::cIkanaGraveyard, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_GRAVEYARD ); //Laundry Pool - locationTable[LAUNDRY_POOL_KAFEI] = ItemLocation::Base (0x0D, 0xAB, true, "LP Kafei's Pendant", LAUNDRY_POOL_KAFEI, PENDANT_MEMORIES, {Category::cLaundryPool,Category::cDayOne, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL ); - locationTable[LAUNDRY_POOL_CURIOSITY_SHOP_MAN_ONE] = ItemLocation::Base (0x0D, 0x80, false, "LP Curiosity Shop Man 1", LAUNDRY_POOL_CURIOSITY_SHOP_MAN_ONE, KEATON_MASK, {Category::cLaundryPool, Category::cVanillaMask,Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL ); - locationTable[LAUNDRY_POOL_CURIOSITY_SHOP_MAN_TWO] = ItemLocation::Base (0x0D, 0xA1, true, "LP Curiosity Shop Man 2", LAUNDRY_POOL_CURIOSITY_SHOP_MAN_TWO, LETTER_MAMA, {Category::cLaundryPool,Category::cDayThree, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL ); - locationTable[LAUNDRY_POOL_GURU_GURU] = ItemLocation::Base (0x70, 0x8C, false, "LP Guru Guru", LAUNDRY_POOL_GURU_GURU, BREMEN_MASK, {Category::cLaundryPool, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL ); + locationTable[LAUNDRY_POOL_KAFEI] = ItemLocation::Base (0x0D, 0xAB, true, "LP Kafei's Pendant", LAUNDRY_POOL_KAFEI, PENDANT_MEMORIES, {Category::cLaundryPool,Category::cDayOne, Category::cAnjuAndKafei, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL ); + locationTable[LAUNDRY_POOL_CURIOSITY_SHOP_MAN_ONE] = ItemLocation::Base (0x0D, 0x80, false, "LP Curiosity Shop Man 1", LAUNDRY_POOL_CURIOSITY_SHOP_MAN_ONE, KEATON_MASK, {Category::cLaundryPool, Category::cVanillaMask,Category::cDayThree, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL ); + locationTable[LAUNDRY_POOL_CURIOSITY_SHOP_MAN_TWO] = ItemLocation::Base (0x0D, 0xA1, true, "LP Curiosity Shop Man 2", LAUNDRY_POOL_CURIOSITY_SHOP_MAN_TWO, LETTER_MAMA, {Category::cLaundryPool,Category::cDayThree, Category::cAnjuAndKafei, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL ); + locationTable[LAUNDRY_POOL_GURU_GURU] = ItemLocation::Base (0x70, 0x8C, false, "LP Guru Guru", LAUNDRY_POOL_GURU_GURU, BREMEN_MASK, {Category::cLaundryPool, Category::cVanillaMask,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL ); //Milk Road - locationTable[MILK_ROAD_GORMAN_RACE] = ItemLocation::Base (0x6A, 0x81, false, "MR Gorman Track Race", MILK_ROAD_GORMAN_RACE, GAROS_MASK, {Category::cMilkRoad, Category::cMinigame, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD ); - locationTable[MILK_ROAD_GORMAN_MILK_BUY] = ItemLocation::Base (0x6A, 0x92, true, "MR Gorman Track Milk Purchase", MILK_ROAD_GORMAN_MILK_BUY, MILK, {Category::cMilkRoad,Category::cDayOne, Category::cShop}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD ); - locationTable[GORMAN_TRACK_MYSTERY_MILK_QUEST] = ItemLocation::Base (0x6A, 0x70, false, "MR Gorman's Mystery Milk Quest", GORMAN_TRACK_MYSTERY_MILK_QUEST, BOTTLE_WITH_MYSTERY_MILK, {Category::cMilkRoad, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD ); - locationTable[MILK_ROAD_KEATON_QUIZ] = ItemLocation::Base (0x22, 0x03, false, "MR Keaton Quiz", MILK_ROAD_KEATON_QUIZ, PIECE_OF_HEART, {Category::cMilkRoad, Category::cVanillaHeartPiece, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD ); + locationTable[MILK_ROAD_GORMAN_RACE] = ItemLocation::Base (0x6A, 0x81, false, "MR Gorman Track Race", MILK_ROAD_GORMAN_RACE, GAROS_MASK, {Category::cMilkRoad, Category::cMinigame, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD ); + locationTable[MILK_ROAD_GORMAN_MILK_BUY] = ItemLocation::Base (0x6A, 0x92, true, "MR Gorman Track Milk Purchase", MILK_ROAD_GORMAN_MILK_BUY, MILK, {Category::cMilkRoad,Category::cDayOne, Category::cShop, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD ); + locationTable[GORMAN_TRACK_MYSTERY_MILK_QUEST] = ItemLocation::Base (0x6A, 0x70, false, "MR Gorman's Mystery Milk Quest", GORMAN_TRACK_MYSTERY_MILK_QUEST, BOTTLE_WITH_MYSTERY_MILK, {Category::cMilkRoad, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD ); + locationTable[MILK_ROAD_KEATON_QUIZ] = ItemLocation::Base (0x22, 0x03, false, "MR Keaton Quiz", MILK_ROAD_KEATON_QUIZ, PIECE_OF_HEART, {Category::cMilkRoad, Category::cVanillaHeartPiece, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD ); //Mountain Village - locationTable[MOUNTAIN_VILLAGE_SMITH_DAY_ONE] = ItemLocation::Base (0x2C, 0x38, false, "MV Razor Sword", MOUNTAIN_VILLAGE_SMITH_DAY_ONE, RAZOR_SWORD, {Category::cMountainVillage,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); - locationTable[MOUNTAIN_VILLAGE_SMITH_DAY_TWO] = ItemLocation::Base (0x2C, 0x39, false, "MV Gilded Sword", MOUNTAIN_VILLAGE_SMITH_DAY_TWO, GILDED_SWORD, {Category::cMountainVillage,Category::cDayTwo, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); - locationTable[MOUNTAIN_VILLAGE_FROG_CHOIR] = ItemLocation::Base (0x5A, 0x0C, false, "MV Frog Choir", MOUNTAIN_VILLAGE_FROG_CHOIR, PIECE_OF_HEART, {Category::cMountainVillage, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); - locationTable[MOUNTAIN_VILLAGE_DARMANI] = ItemLocation::Base (0x4E, 0x79, false, "MV Graveyard Darmani", MOUNTAIN_VILLAGE_DARMANI, GORON_MASK, {Category::cMountainVillage, Category::cTransformMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); - locationTable[MOUNTAIN_VILLAGE_HUNGRY_GORON] = ItemLocation::Base (0x50, 0x88, false, "MV Hungry Goron", MOUNTAIN_VILLAGE_HUNGRY_GORON, DON_GEROS_MASK, {Category::cMountainVillage, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); - locationTable[MOUNTAIN_WATERFALL_CHEST] = ItemLocation::Chest (0x5A, 0x00, true, "MV Waterfall Chest", MOUNTAIN_WATERFALL_CHEST, RED_RUPEE, {Category::cMountainVillage,Category::cChest,Category::cDayOne }, SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); - locationTable[MOUNTAIN_VILLAGE_SPRING_WATER_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1B, true, "MV Spring Water Grotto", MOUNTAIN_VILLAGE_SPRING_WATER_GROTTO_CHEST, RED_RUPEE, {Category::cMountainVillage, Category::cGrotto,Category::cChest,Category::cDayOne }, SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); - locationTable[MOUNTAIN_VILLAGE_KEATON_QUIZ] = ItemLocation::Base (0x5A, 0x03, false, "MV Keaton Quiz", MOUNTAIN_VILLAGE_KEATON_QUIZ, PIECE_OF_HEART, {Category::cMountainVillage, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); + locationTable[MOUNTAIN_VILLAGE_SMITH_DAY_ONE] = ItemLocation::Base (0x2C, 0x38, false, "MV Razor Sword", MOUNTAIN_VILLAGE_SMITH_DAY_ONE, RAZOR_SWORD, {Category::cMountainVillage,Category::cDayOne, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); + locationTable[MOUNTAIN_VILLAGE_SMITH_DAY_TWO] = ItemLocation::Base (0x2C, 0x39, false, "MV Gilded Sword", MOUNTAIN_VILLAGE_SMITH_DAY_TWO, GILDED_SWORD, {Category::cMountainVillage,Category::cDayTwo, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); + locationTable[MOUNTAIN_VILLAGE_FROG_CHOIR] = ItemLocation::Base (0x5A, 0x0C, false, "MV Frog Choir", MOUNTAIN_VILLAGE_FROG_CHOIR, PIECE_OF_HEART, {Category::cMountainVillage, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); + locationTable[MOUNTAIN_VILLAGE_DARMANI] = ItemLocation::Base (0x4E, 0x79, false, "MV Graveyard Darmani", MOUNTAIN_VILLAGE_DARMANI, GORON_MASK, {Category::cMountainVillage, Category::cTransformMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); + locationTable[MOUNTAIN_VILLAGE_HUNGRY_GORON] = ItemLocation::Base (0x50, 0x88, false, "MV Hungry Goron", MOUNTAIN_VILLAGE_HUNGRY_GORON, DON_GEROS_MASK, {Category::cMountainVillage, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); + locationTable[MOUNTAIN_WATERFALL_CHEST] = ItemLocation::Chest (0x5A, 0x00, true, "MV Waterfall Chest", MOUNTAIN_WATERFALL_CHEST, RED_RUPEE, {Category::cMountainVillage,Category::cChest,Category::cDayOne }, SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); + locationTable[MOUNTAIN_VILLAGE_SPRING_WATER_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1B, true, "MV Spring Water Grotto", MOUNTAIN_VILLAGE_SPRING_WATER_GROTTO_CHEST, RED_RUPEE, {Category::cMountainVillage, Category::cGrotto,Category::cChest,Category::cDayOne }, SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); + locationTable[MOUNTAIN_VILLAGE_KEATON_QUIZ] = ItemLocation::Base (0x5A, 0x03, false, "MV Keaton Quiz", MOUNTAIN_VILLAGE_KEATON_QUIZ, PIECE_OF_HEART, {Category::cMountainVillage, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MOUNTAIN_VILLAGE ); //N Clock Town - locationTable[N_CLOCK_TOWN_GREAT_FAIRY_DEKU] = ItemLocation::Base (0x26, 0x0E, false, "NCT Great Fairy (Deku)", N_CLOCK_TOWN_GREAT_FAIRY_DEKU, PROGRESSIVE_MAGIC_METER, {Category::cNorthClockTown, Category::cFairyFountain,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); - //locationTable[N_CLOCK_TOWN_BOMBERS_HIDE_SEEK] = ItemLocation::Base (0x6E, 0x50, true, "NCT Bombers Hide n Seek", N_CLOCK_TOWN_BOMBERS_HIDE_SEEK, BOMBERS_NOTEBOOK, {Category::cNorthClockTown,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); - locationTable[N_CLOCK_TOWN_KEATON_QUIZ] = ItemLocation::Base (0x6E, 0x03, false, "NCT Keaton Quiz", N_CLOCK_TOWN_KEATON_QUIZ, PIECE_OF_HEART, {Category::cNorthClockTown, Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); - locationTable[N_CLOCK_TOWN_DEKU_PLAYGROUND_3DAYS] = ItemLocation::Base (0x1E, 0x0C, false, "NCT Deku Playground 3 Days Reward", N_CLOCK_TOWN_DEKU_PLAYGROUND_3DAYS, PIECE_OF_HEART, {Category::cNorthClockTown, Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); - locationTable[N_CLOCK_TOWN_TREE] = ItemLocation::Collectable(0x6E, 0x00, false, "NCT Tree", N_CLOCK_TOWN_TREE, PIECE_OF_HEART, {Category::cNorthClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); - locationTable[N_CLOCK_TOWN_OLD_LADY] = ItemLocation::Base (0x6E, 0x8D, false, "NCT Old Lady", N_CLOCK_TOWN_OLD_LADY, BLAST_MASK, {Category::cNorthClockTown, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); - locationTable[N_CLOCK_TOWN_GREAT_FAIRY_HUMAN] = ItemLocation::Base (0x26, 0x86, false, "NCT Great Fairy (Human)", N_CLOCK_TOWN_GREAT_FAIRY_HUMAN, GREAT_FAIRYS_MASK, {Category::cNorthClockTown, Category::cFairyFountain, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); - //locationTable[N_CLOCK_TOWN_DEKU_PLAYGROUND_ADAY] = ItemLocation::Base (0x1E, 0x00, true, "NCT Deku Playground Any Day Reward", N_CLOCK_TOWN_DEKU_PLAYGROUND_ADAY, PURPLE_RUPEE, {Category::cNClockTown, Category::cMinigame}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); - locationTable[N_CLOCK_TOWN_POSTBOX] = ItemLocation::Base (0x6E, 0xBA, false, "NCT Postbox", N_CLOCK_TOWN_POSTBOX, PIECE_OF_HEART, {Category::cNorthClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); + locationTable[N_CLOCK_TOWN_GREAT_FAIRY_DEKU] = ItemLocation::Base (0x26, 0x0E, false, "NCT Great Fairy (Deku)", N_CLOCK_TOWN_GREAT_FAIRY_DEKU, PROGRESSIVE_MAGIC_METER, {Category::cNorthClockTown, Category::cFairyFountain,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); + //locationTable[N_CLOCK_TOWN_BOMBERS_HIDE_SEEK] = ItemLocation::Base (0x6E, 0x50, true, "NCT Bombers Hide n Seek", N_CLOCK_TOWN_BOMBERS_HIDE_SEEK, BOMBERS_NOTEBOOK, {Category::cNorthClockTown,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); + locationTable[N_CLOCK_TOWN_KEATON_QUIZ] = ItemLocation::Base (0x6E, 0x03, false, "NCT Keaton Quiz", N_CLOCK_TOWN_KEATON_QUIZ, PIECE_OF_HEART, {Category::cNorthClockTown, Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); + locationTable[N_CLOCK_TOWN_DEKU_PLAYGROUND_3DAYS] = ItemLocation::Base (0x1E, 0x0C, false, "NCT Deku Playground 3 Days Reward", N_CLOCK_TOWN_DEKU_PLAYGROUND_3DAYS, PIECE_OF_HEART, {Category::cNorthClockTown, Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayThree, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); + locationTable[N_CLOCK_TOWN_TREE] = ItemLocation::Collectable(0x6E, 0x00, false, "NCT Tree", N_CLOCK_TOWN_TREE, PIECE_OF_HEART, {Category::cNorthClockTown, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); + locationTable[N_CLOCK_TOWN_OLD_LADY] = ItemLocation::Base (0x6E, 0x8D, false, "NCT Old Lady", N_CLOCK_TOWN_OLD_LADY, BLAST_MASK, {Category::cNorthClockTown, Category::cVanillaMask,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); + locationTable[N_CLOCK_TOWN_GREAT_FAIRY_HUMAN] = ItemLocation::Base (0x26, 0x86, false, "NCT Great Fairy (Human)", N_CLOCK_TOWN_GREAT_FAIRY_HUMAN, GREAT_FAIRYS_MASK, {Category::cNorthClockTown, Category::cFairyFountain, Category::cVanillaMask,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); + //locationTable[N_CLOCK_TOWN_DEKU_PLAYGROUND_ADAY] = ItemLocation::Base (0x1E, 0x00, true, "NCT Deku Playground Any Day Reward", N_CLOCK_TOWN_DEKU_PLAYGROUND_ADAY, PURPLE_RUPEE, {Category::cNClockTown, Category::cMinigame}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); + locationTable[N_CLOCK_TOWN_POSTBOX] = ItemLocation::Base (0x6E, 0xBA, false, "NCT Postbox", N_CLOCK_TOWN_POSTBOX, PIECE_OF_HEART, {Category::cNorthClockTown, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN ); //Path to Snowhead - locationTable[ROAD_TO_SNOWHEAD_PILLAR] = ItemLocation::Collectable(0x5B, 0x00, false, "Road to Snowhead Pillar", ROAD_TO_SNOWHEAD_PILLAR, PIECE_OF_HEART, {Category::cPathToSnowhead, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SNOWHEAD ); - locationTable[ROAD_TO_SNOWHEAD_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x13, true, "Road to Snowhead Grotto", ROAD_TO_SNOWHEAD_GROTTO_CHEST, RED_RUPEE, {Category::cPathToSnowhead,Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SNOWHEAD ); + locationTable[ROAD_TO_SNOWHEAD_PILLAR] = ItemLocation::Collectable(0x5B, 0x00, false, "Road to Snowhead Pillar", ROAD_TO_SNOWHEAD_PILLAR, PIECE_OF_HEART, {Category::cPathToSnowhead, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SNOWHEAD ); + locationTable[ROAD_TO_SNOWHEAD_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x13, true, "Road to Snowhead Grotto", ROAD_TO_SNOWHEAD_GROTTO_CHEST, RED_RUPEE, {Category::cPathToSnowhead,Category::cGrotto,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SNOWHEAD ); //Pinnacle Rock - locationTable[PINNACLE_ROCK_SEAHORSES] = ItemLocation::Base (0x25, 0x0C, false, "PR Seahorses", PINNACLE_ROCK_SEAHORSES, PIECE_OF_HEART, {Category::cPinnacleRock, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); - locationTable[PINNACLE_ROCK_UPPER_CHEST] = ItemLocation::Chest (0x25, 0x02, true, "PR Upper Chest", PINNACLE_ROCK_UPPER_CHEST, RED_RUPEE, {Category::cPinnacleRock,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); - locationTable[PINNACLE_ROCK_LOWER_CHEST] = ItemLocation::Chest (0x25, 0x01, true, "PR Lower Chest", PINNACLE_ROCK_LOWER_CHEST, RED_RUPEE, {Category::cPinnacleRock,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); - locationTable[PINNACLE_ROCK_ZORA_EGG1] = ItemLocation::Collectable(0x25, 0x69, true, "PR Zora Egg 1", PINNACLE_ROCK_ZORA_EGG1, ZORA_EGG, {Category::cPinnacleRock, Category::cBottleCatch,Category::cDayOne, Category::cZoraEgg}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); - locationTable[PINNACLE_ROCK_ZORA_EGG2] = ItemLocation::Collectable(0x25, 0x69, true, "PR Zora Egg 2", PINNACLE_ROCK_ZORA_EGG2, ZORA_EGG, {Category::cPinnacleRock, Category::cBottleCatch,Category::cDayOne, Category::cZoraEgg}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); - locationTable[PINNACLE_ROCK_ZORA_EGG3] = ItemLocation::Collectable(0x25, 0x69, true, "PR Zora Egg 3", PINNACLE_ROCK_ZORA_EGG3, ZORA_EGG, {Category::cPinnacleRock, Category::cBottleCatch,Category::cDayOne, Category::cZoraEgg}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); + locationTable[PINNACLE_ROCK_SEAHORSES] = ItemLocation::Base (0x25, 0x0C, false, "PR Seahorses", PINNACLE_ROCK_SEAHORSES, PIECE_OF_HEART, {Category::cPinnacleRock, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); + locationTable[PINNACLE_ROCK_UPPER_CHEST] = ItemLocation::Chest (0x25, 0x02, true, "PR Upper Chest", PINNACLE_ROCK_UPPER_CHEST, RED_RUPEE, {Category::cPinnacleRock,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); + locationTable[PINNACLE_ROCK_LOWER_CHEST] = ItemLocation::Chest (0x25, 0x01, true, "PR Lower Chest", PINNACLE_ROCK_LOWER_CHEST, RED_RUPEE, {Category::cPinnacleRock,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); + locationTable[PINNACLE_ROCK_ZORA_EGG1] = ItemLocation::Collectable(0x25, 0x69, true, "PR Zora Egg 1", PINNACLE_ROCK_ZORA_EGG1, ZORA_EGG, {Category::cPinnacleRock, Category::cBottleCatch,Category::cDayOne, Category::cZoraEgg}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); + locationTable[PINNACLE_ROCK_ZORA_EGG2] = ItemLocation::Collectable(0x25, 0x69, true, "PR Zora Egg 2", PINNACLE_ROCK_ZORA_EGG2, ZORA_EGG, {Category::cPinnacleRock, Category::cBottleCatch,Category::cDayOne, Category::cZoraEgg}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); + locationTable[PINNACLE_ROCK_ZORA_EGG3] = ItemLocation::Collectable(0x25, 0x69, true, "PR Zora Egg 3", PINNACLE_ROCK_ZORA_EGG3, ZORA_EGG, {Category::cPinnacleRock, Category::cBottleCatch,Category::cDayOne, Category::cZoraEgg}, SpoilerCollectionCheckGroup::GROUP_PINNACLE_ROCK ); //Road to Ikana - locationTable[ROAD_TO_IKANA_PILLAR_CHEST] = ItemLocation::Chest (0x53, 0x00, true, "Road to Ikana Pillar Chest", ROAD_TO_IKANA_PILLAR_CHEST, RED_RUPEE, {Category::cRoadToIkana,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); - locationTable[ROAD_TO_IKANA_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x16, true, "Road to Ikana Grotto", ROAD_TO_IKANA_GROTTO_CHEST, BOMBCHU_5, {Category::cRoadToIkana,Category::cGrotto,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); + locationTable[ROAD_TO_IKANA_PILLAR_CHEST] = ItemLocation::Chest (0x53, 0x00, true, "Road to Ikana Pillar Chest", ROAD_TO_IKANA_PILLAR_CHEST, RED_RUPEE, {Category::cRoadToIkana,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); + locationTable[ROAD_TO_IKANA_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x16, true, "Road to Ikana Grotto", ROAD_TO_IKANA_GROTTO_CHEST, BOMBCHU_5, {Category::cRoadToIkana,Category::cGrotto,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_IKANA_CANYON ); //Road to Southern Swamp - locationTable[ROAD_TO_SS_ARCHERY_1] = ItemLocation::Base (0x24, 0x47, false, "Road to Southern Swamp Archery 1", ROAD_TO_SS_ARCHERY_1, PROGRESSIVE_BOW, {Category::cRoadToSouthernSwamp,Category::cMinigame,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[ROAD_TO_SS_ARCHERY_2] = ItemLocation::Base (0x24, 0x0C, false, "Road to Southern Swamp Archery 2", ROAD_TO_SS_ARCHERY_2, PIECE_OF_HEART, {Category::cRoadToSouthernSwamp,Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[ROAD_TO_SS_TREE] = ItemLocation::Collectable(0x40, 0x00, false, "Road to Southern Swamp Tree", ROAD_TO_SS_TREE, PIECE_OF_HEART, {Category::cRoadToSouthernSwamp, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[ROAD_TO_SWAMP_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1E, true, "Road to Southern Swamp Grotto", ROAD_TO_SWAMP_GROTTO_CHEST, RED_RUPEE, {Category::cRoadToSouthernSwamp,Category::cGrotto, Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[ROAD_TO_SS_ARCHERY_1] = ItemLocation::Base (0x24, 0x47, false, "Road to Southern Swamp Archery 1", ROAD_TO_SS_ARCHERY_1, PROGRESSIVE_BOW, {Category::cRoadToSouthernSwamp,Category::cMinigame,Category::cDayOne, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[ROAD_TO_SS_ARCHERY_2] = ItemLocation::Base (0x24, 0x0C, false, "Road to Southern Swamp Archery 2", ROAD_TO_SS_ARCHERY_2, PIECE_OF_HEART, {Category::cRoadToSouthernSwamp,Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[ROAD_TO_SS_TREE] = ItemLocation::Collectable(0x40, 0x00, false, "Road to Southern Swamp Tree", ROAD_TO_SS_TREE, PIECE_OF_HEART, {Category::cRoadToSouthernSwamp, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[ROAD_TO_SWAMP_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1E, true, "Road to Southern Swamp Grotto", ROAD_TO_SWAMP_GROTTO_CHEST, RED_RUPEE, {Category::cRoadToSouthernSwamp,Category::cGrotto, Category::cChest,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); //Romani Ranch - locationTable[ROMANI_RANCH_ALIEN_DEFENSE] = ItemLocation::Base (0x35, 0x60, false, "RR Alien Defense", ROMANI_RANCH_ALIEN_DEFENSE, BOTTLE_WITH_MILK, {Category::cRomaniRanch}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); - locationTable[ROMANI_RANCH_DOG_RACE] = ItemLocation::Base (0x41, 0x0C, false, "RR Dog Race", ROMANI_RANCH_DOG_RACE, PIECE_OF_HEART, {Category::cRomaniRanch,Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); - locationTable[ROMANI_RANCH_GROG] = ItemLocation::Base (0x42, 0x7F, false, "RR Grog", ROMANI_RANCH_GROG, BUNNY_HOOD, {Category::cRomaniRanch, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); - locationTable[ROMANI_RANCH_CREMIA_ESCORT] = ItemLocation::Base (0x2D, 0x82, true, "RR Cremia Escort", ROMANI_RANCH_CREMIA_ESCORT, ROMANIS_MASK, {Category::cRomaniRanch, Category::cVanillaMask,Category::cDayTwo}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); - locationTable[ROMANI_RANCH_ROMANIS_GAME] = ItemLocation::Base (0x35, 0x6C, false, "RR Romani's Game", ROMANI_RANCH_ROMANIS_GAME, EPONAS_SONG, {Category::cRomaniRanch,Category::cSong,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); - locationTable[DOGGY_RACETRACK_ROOF_CHEST] = ItemLocation::Chest (0x41, 0x00, true, "RR Doggy Racetrack Roof Chest", DOGGY_RACETRACK_ROOF_CHEST, PURPLE_RUPEE, {Category::cRomaniRanch,Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); + locationTable[ROMANI_RANCH_ALIEN_DEFENSE] = ItemLocation::Base (0x35, 0x60, false, "RR Alien Defense", ROMANI_RANCH_ALIEN_DEFENSE, BOTTLE_WITH_MILK, {Category::cRomaniRanch, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); + locationTable[ROMANI_RANCH_DOG_RACE] = ItemLocation::Base (0x41, 0x0C, false, "RR Dog Race", ROMANI_RANCH_DOG_RACE, PIECE_OF_HEART, {Category::cRomaniRanch,Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); + locationTable[ROMANI_RANCH_GROG] = ItemLocation::Base (0x42, 0x7F, false, "RR Grog", ROMANI_RANCH_GROG, BUNNY_HOOD, {Category::cRomaniRanch, Category::cVanillaMask,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); + locationTable[ROMANI_RANCH_CREMIA_ESCORT] = ItemLocation::Base (0x2D, 0x82, true, "RR Cremia Escort", ROMANI_RANCH_CREMIA_ESCORT, ROMANIS_MASK, {Category::cRomaniRanch, Category::cVanillaMask,Category::cDayTwo}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); + locationTable[ROMANI_RANCH_ROMANIS_GAME] = ItemLocation::Base (0x35, 0x6C, false, "RR Romani's Game", ROMANI_RANCH_ROMANIS_GAME, EPONAS_SONG, {Category::cRomaniRanch,Category::cSong,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); + locationTable[DOGGY_RACETRACK_ROOF_CHEST] = ItemLocation::Chest (0x41, 0x00, true, "RR Doggy Racetrack Roof Chest", DOGGY_RACETRACK_ROOF_CHEST, PURPLE_RUPEE, {Category::cRomaniRanch,Category::cChest,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_ROMANI_RANCH ); //S Clock Town - locationTable[S_CLOCK_TOWN_SCRUB_TRADE] = ItemLocation::Base (0x6F, 0x97, true, "SCT Scrub Trade", S_CLOCK_TOWN_SCRUB_TRADE, LAND_TITLE, {Category::cSouthClockTown,Category::cDekuScrub,Category::cDayOne, Category::cTradeItem}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); - locationTable[S_CLOCK_TOWN_POSTBOX] = ItemLocation::Base (0x6F, 0xBA, false, "SCT Postbox", S_CLOCK_TOWN_POSTBOX, PIECE_OF_HEART, {Category::cSouthClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); - locationTable[S_CLOCK_TOWN_CLOCK_TOWER_ENTRANCE] = ItemLocation::Collectable(0x6F, 0x00, false, "SCT Clock Tower Entrance", S_CLOCK_TOWN_CLOCK_TOWER_ENTRANCE, PIECE_OF_HEART, {Category::cSouthClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); - locationTable[S_CLOCK_TOWN_STRAW_ROOF_CHEST] = ItemLocation::Chest (0x6F, 0x00, true, "SCT Straw Roof Chest", S_CLOCK_TOWN_STRAW_ROOF_CHEST, RED_RUPEE, {Category::cSouthClockTown,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); - locationTable[S_CLOCK_TOWN_FINAL_DAY_CHEST] = ItemLocation::Chest (0x6F, 0x01, true, "SCT Final Day Chest", S_CLOCK_TOWN_FINAL_DAY_CHEST, PURPLE_RUPEE, {Category::cSouthClockTown,Category::cChest ,Category::cDayThree}, SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); - locationTable[S_CLOCK_TOWN_BANK_REWARD_1] = ItemLocation::Base (0x6F, 0x48, false, "SCT Bank Reward 1", S_CLOCK_TOWN_BANK_REWARD_1, PROGRESSIVE_WALLET, {Category::cSouthClockTown,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); - locationTable[S_CLOCK_TOWN_BANK_REWARD_2] = ItemLocation::Base (0x6F, 0x03, false, "SCT Bank Reward 2", S_CLOCK_TOWN_BANK_REWARD_2, BLUE_RUPEE, {Category::cSouthClockTown,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); - locationTable[S_CLOCK_TOWN_BANK_REWARD_3] = ItemLocation::Base (0x6F, 0x0C, false, "SCT Bank Reward 3", S_CLOCK_TOWN_BANK_REWARD_3, PIECE_OF_HEART, {Category::cSouthClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); + locationTable[S_CLOCK_TOWN_SCRUB_TRADE] = ItemLocation::Base (0x6F, 0x97, true, "SCT Scrub Trade", S_CLOCK_TOWN_SCRUB_TRADE, LAND_TITLE, {Category::cSouthClockTown,Category::cDekuScrub,Category::cDayOne, Category::cTradeItem, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); + locationTable[S_CLOCK_TOWN_POSTBOX] = ItemLocation::Base (0x6F, 0xBA, false, "SCT Postbox", S_CLOCK_TOWN_POSTBOX, PIECE_OF_HEART, {Category::cSouthClockTown, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); + locationTable[S_CLOCK_TOWN_CLOCK_TOWER_ENTRANCE] = ItemLocation::Collectable(0x6F, 0x00, false, "SCT Clock Tower Entrance", S_CLOCK_TOWN_CLOCK_TOWER_ENTRANCE, PIECE_OF_HEART, {Category::cSouthClockTown, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); + locationTable[S_CLOCK_TOWN_STRAW_ROOF_CHEST] = ItemLocation::Chest (0x6F, 0x00, true, "SCT Straw Roof Chest", S_CLOCK_TOWN_STRAW_ROOF_CHEST, RED_RUPEE, {Category::cSouthClockTown,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); + locationTable[S_CLOCK_TOWN_FINAL_DAY_CHEST] = ItemLocation::Chest (0x6F, 0x01, true, "SCT Final Day Chest", S_CLOCK_TOWN_FINAL_DAY_CHEST, PURPLE_RUPEE, {Category::cSouthClockTown,Category::cChest ,Category::cDayThree, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); + locationTable[S_CLOCK_TOWN_BANK_REWARD_1] = ItemLocation::Base (0x6F, 0x48, false, "SCT Bank Reward 1", S_CLOCK_TOWN_BANK_REWARD_1, PROGRESSIVE_WALLET, {Category::cSouthClockTown,Category::cDayOne, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); + locationTable[S_CLOCK_TOWN_BANK_REWARD_2] = ItemLocation::Base (0x6F, 0x03, false, "SCT Bank Reward 2", S_CLOCK_TOWN_BANK_REWARD_2, BLUE_RUPEE, {Category::cSouthClockTown,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); + locationTable[S_CLOCK_TOWN_BANK_REWARD_3] = ItemLocation::Base (0x6F, 0x0C, false, "SCT Bank Reward 3", S_CLOCK_TOWN_BANK_REWARD_3, PIECE_OF_HEART, {Category::cSouthClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_S_CLOCK_TOWN ); //Snowhead - locationTable[SNOWHEAD_GREAT_FAIRY] = ItemLocation::Base (0x26, 0x2B, false, "SH Great Fairy", SNOWHEAD_GREAT_FAIRY, PROGRESSIVE_MAGIC_METER, {Category::cSnowhead, Category::cFairyFountain,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SNOWHEAD ); + locationTable[SNOWHEAD_GREAT_FAIRY] = ItemLocation::Base (0x26, 0x2B, false, "SH Great Fairy", SNOWHEAD_GREAT_FAIRY, PROGRESSIVE_MAGIC_METER, {Category::cSnowhead, Category::cFairyFountain,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SNOWHEAD ); //Southern Swamp - locationTable[SOUTHERN_SWAMP_KOUME] = ItemLocation::Base (0x57, 0x43, false, "SS Koume", SOUTHERN_SWAMP_KOUME, PICTOGRAPH_BOX, {Category::cSouthernSwamp,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_KOTAKE] = ItemLocation::Base (0x0A, 0x59, false, "SS Kotake", SOUTHERN_SWAMP_KOTAKE, BOTTLE_WITH_RED_POTION, {Category::cSouthernSwamp, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_KOTAKE_IN_WOODS] = ItemLocation::Base (0x64, 0x59, false, "SS Mystery Woods Kotake", SOUTHERN_SWAMP_KOTAKE_IN_WOODS, BOTTLE_WITH_RED_POTION, {Category::cSouthernSwamp, Category::cAlternateCheck, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_SCRUB_TRADE] = ItemLocation::Base (0x45, 0x98, true, "SS Deku Scrub Merchant Trade", SOUTHERN_SWAMP_SCRUB_TRADE, SWAMP_TITLE, {Category::cSouthernSwamp, Category::cDekuScrub,Category::cDayOne, Category::cTradeItem}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_PICTOGRAPH_WINNER] = ItemLocation::Base (0x57, 0xBA, false, "SS Pictograph Contest Winner", SOUTHERN_SWAMP_PICTOGRAPH_WINNER, PIECE_OF_HEART, {Category::cSouthernSwamp, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_BOAT_ARCHERY] = ItemLocation::Base (0x57, 0x5A, false, "SS Boat Archery", SOUTHERN_SWAMP_BOAT_ARCHERY, EMPTY_BOTTLE1, {Category::cSouthernSwamp, Category::cMinigame, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SWAMP_TOURIST_CENTER_ROOF] = ItemLocation::Collectable(0x45, 0x00, false, "SS Tourist Center Roof", SWAMP_TOURIST_CENTER_ROOF, PIECE_OF_HEART, {Category::cSouthernSwamp, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_SPIDER_HOUSE_REWARD] = ItemLocation::Base (0x27, 0x8A, false, "SSH Reward", SOUTHERN_SWAMP_SPIDER_HOUSE_REWARD, MASK_OF_TRUTH, {Category::cSouthernSwamp, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_MUSIC_STATUE] = ItemLocation::Base (0x45, 0x72, false, "SS Music Statue", SOUTHERN_SWAMP_MUSIC_STATUE, SONG_OF_SOARING, {Category::cSouthernSwamp, Category::cSong,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_NEAR_SPIDER_HOUSE_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1D, true, "SS Near Spider House Grotto", SOUTHERN_SWAMP_NEAR_SPIDER_HOUSE_GROTTO_CHEST, RED_RUPEE, {Category::cSouthernSwamp,Category::cGrotto,Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_MYSTERY_WOODS_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1C, true, "SS Mystery Woods Grotto", SOUTHERN_SWAMP_MYSTERY_WOODS_GROTTO_CHEST, PURPLE_RUPEE, {Category::cSouthernSwamp, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_KOTAKE_MUSHROOM_SALE] = ItemLocation::Base (0x0A, 0x5D, true, "SS Kotake Mushroom Sale", SOUTHERN_SWAMP_KOTAKE_MUSHROOM_SALE, RED_RUPEE, {Category::cSouthernSwamp,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - //locationTable[SOUTHERN_SWAMP_PICTOGRAPH_STANDARD] = ItemLocation::Base (0x0A, 0x00, true, "SS Pictograph Standard", SOUTHERN_SWAMP_PICTOGRAPH_STANDARD, BLUE_RUPEE, {Category::cSouthernSwamp, Category::cMinigame}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - //locationTable[SOUTHERN_SWAMP_PICTOGRAPH_GOOD] = ItemLocation::Base (0x0A, 0x00, true, "SS Pictograph Good", SOUTHERN_SWAMP_PICTOGRAPH_GOOD, RED_RUPEE, {Category::cSouthernSwamp,Category::cMinigame}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_SCRUB_PURCHASE] = ItemLocation::Base (0x45, 0x35, true, "SS Deku Scrub Merchant Purchase", SOUTHERN_SWAMP_SCRUB_PURCHASE, MAGIC_BEAN, {Category::cSouthernSwamp, Category::cDekuScrub,Category::cDayOne, Category::cShop}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_SCRUB_PURCHASE_CLEAR] = ItemLocation::Base (0x00, 0x35, true, "SS Deku Scrub Merchant Purchase (Cleared)", SOUTHERN_SWAMP_SCRUB_PURCHASE_CLEAR, MAGIC_BEAN, {Category::cSouthernSwamp, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SWAMP_TOURIST_CENTER_ROOF_CLEAR] = ItemLocation::Collectable(0x00, 0x00, false, "SS Tourist Center Roof (Cleared)", SWAMP_TOURIST_CENTER_ROOF_CLEAR, PIECE_OF_HEART, {Category::cSouthernSwamp, Category::cVanillaHeartPiece,Category::cDayOne, Category::cAlternateCheck}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); - locationTable[SOUTHERN_SWAMP_SCRUB_TRADE_CLEAR] = ItemLocation::Base (0x00, 0x98, true, "SS Deku Scrub Merchant Trade (Cleared)", SOUTHERN_SWAMP_SCRUB_TRADE_CLEAR, SWAMP_TITLE, {Category::cSouthernSwamp, Category::cDekuScrub,Category::cDayOne,Category::cTradeItem, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_KOUME] = ItemLocation::Base (0x57, 0x43, false, "SS Koume", SOUTHERN_SWAMP_KOUME, PICTOGRAPH_BOX, {Category::cSouthernSwamp,Category::cDayOne, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_KOTAKE] = ItemLocation::Base (0x0A, 0x59, false, "SS Kotake", SOUTHERN_SWAMP_KOTAKE, BOTTLE_WITH_RED_POTION, {Category::cSouthernSwamp, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_KOTAKE_IN_WOODS] = ItemLocation::Base (0x64, 0x59, false, "SS Mystery Woods Kotake", SOUTHERN_SWAMP_KOTAKE_IN_WOODS, BOTTLE_WITH_RED_POTION, {Category::cSouthernSwamp, Category::cAlternateCheck, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_SCRUB_TRADE] = ItemLocation::Base (0x45, 0x98, true, "SS Deku Scrub Merchant Trade", SOUTHERN_SWAMP_SCRUB_TRADE, SWAMP_TITLE, {Category::cSouthernSwamp, Category::cDekuScrub,Category::cDayOne, Category::cTradeItem, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_PICTOGRAPH_WINNER] = ItemLocation::Base (0x57, 0xBA, false, "SS Pictograph Contest Winner", SOUTHERN_SWAMP_PICTOGRAPH_WINNER, PIECE_OF_HEART, {Category::cSouthernSwamp, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_BOAT_ARCHERY] = ItemLocation::Base (0x57, 0x5A, false, "SS Boat Archery", SOUTHERN_SWAMP_BOAT_ARCHERY, EMPTY_BOTTLE1, {Category::cSouthernSwamp, Category::cMinigame, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SWAMP_TOURIST_CENTER_ROOF] = ItemLocation::Collectable(0x45, 0x00, false, "SS Tourist Center Roof", SWAMP_TOURIST_CENTER_ROOF, PIECE_OF_HEART, {Category::cSouthernSwamp, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_SPIDER_HOUSE_REWARD] = ItemLocation::Base (0x27, 0x8A, false, "SSH Reward", SOUTHERN_SWAMP_SPIDER_HOUSE_REWARD, MASK_OF_TRUTH, {Category::cSouthernSwamp, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_MUSIC_STATUE] = ItemLocation::Base (0x45, 0x72, false, "SS Music Statue", SOUTHERN_SWAMP_MUSIC_STATUE, SONG_OF_SOARING, {Category::cSouthernSwamp, Category::cSong,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_NEAR_SPIDER_HOUSE_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1D, true, "SS Near Spider House Grotto", SOUTHERN_SWAMP_NEAR_SPIDER_HOUSE_GROTTO_CHEST, RED_RUPEE, {Category::cSouthernSwamp,Category::cGrotto,Category::cChest,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_MYSTERY_WOODS_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1C, true, "SS Mystery Woods Grotto", SOUTHERN_SWAMP_MYSTERY_WOODS_GROTTO_CHEST, PURPLE_RUPEE, {Category::cSouthernSwamp, Category::cGrotto,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_KOTAKE_MUSHROOM_SALE] = ItemLocation::Base (0x0A, 0x5D, true, "SS Kotake Mushroom Sale", SOUTHERN_SWAMP_KOTAKE_MUSHROOM_SALE, RED_RUPEE, {Category::cSouthernSwamp,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + //locationTable[SOUTHERN_SWAMP_PICTOGRAPH_STANDARD] = ItemLocation::Base (0x0A, 0x00, true, "SS Pictograph Standard", SOUTHERN_SWAMP_PICTOGRAPH_STANDARD, BLUE_RUPEE, {Category::cSouthernSwamp, Category::cMinigame}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + //locationTable[SOUTHERN_SWAMP_PICTOGRAPH_GOOD] = ItemLocation::Base (0x0A, 0x00, true, "SS Pictograph Good", SOUTHERN_SWAMP_PICTOGRAPH_GOOD, RED_RUPEE, {Category::cSouthernSwamp,Category::cMinigame}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_SCRUB_PURCHASE] = ItemLocation::Base (0x45, 0x35, true, "SS Deku Scrub Merchant Purchase", SOUTHERN_SWAMP_SCRUB_PURCHASE, MAGIC_BEAN, {Category::cSouthernSwamp, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_SCRUB_PURCHASE_CLEAR] = ItemLocation::Base (0x00, 0x35, true, "SS Deku Scrub Merchant Purchase (Cleared)", SOUTHERN_SWAMP_SCRUB_PURCHASE_CLEAR, MAGIC_BEAN, {Category::cSouthernSwamp, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SWAMP_TOURIST_CENTER_ROOF_CLEAR] = ItemLocation::Collectable(0x00, 0x00, false, "SS Tourist Center Roof (Cleared)", SWAMP_TOURIST_CENTER_ROOF_CLEAR, PIECE_OF_HEART, {Category::cSouthernSwamp, Category::cVanillaHeartPiece,Category::cDayOne, Category::cAlternateCheck}, SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); + locationTable[SOUTHERN_SWAMP_SCRUB_TRADE_CLEAR] = ItemLocation::Base (0x00, 0x98, true, "SS Deku Scrub Merchant Trade (Cleared)", SOUTHERN_SWAMP_SCRUB_TRADE_CLEAR, SWAMP_TITLE, {Category::cSouthernSwamp, Category::cDekuScrub,Category::cDayOne,Category::cTradeItem, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); //Stock Pot Inn - locationTable[STOCKPOTINN_RESERVATION] = ItemLocation::Base (0x61, 0xA0, true, "SPI Reservation", STOCKPOTINN_RESERVATION, ROOM_KEY, {Category::cStockPotInn,Category::cDayOne, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); - locationTable[STOCKPOTINN_MIDNIGHT_MEETING] = ItemLocation::Base (0x61, 0xAA, true, "SPI Midnight Meeting", STOCKPOTINN_MIDNIGHT_MEETING, LETTER_KAFEI, {Category::cStockPotInn,Category::cDayOne, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); - locationTable[STOCKPOTINN_TOILET_HAND] = ItemLocation::Base (0x61, 0x01, false, "SPI Toilet Hand", STOCKPOTINN_TOILET_HAND, PIECE_OF_HEART, {Category::cStockPotInn, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); - locationTable[STOCKPOTINN_GRANDMA_SHORT_STORY] = ItemLocation::Base (0x61, 0x0C, false, "SPI Grandma Short Story", STOCKPOTINN_GRANDMA_SHORT_STORY, PIECE_OF_HEART, {Category::cStockPotInn, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); - locationTable[STOCKPOTINN_GRANDMA_LONG_STORY] = ItemLocation::Base (0x61, 0xBA, false, "SPI Grandma Long Story", STOCKPOTINN_GRANDMA_LONG_STORY, PIECE_OF_HEART, {Category::cStockPotInn, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); - locationTable[STOCKPOTINN_ANJU_AND_KAFEI] = ItemLocation::Base (0x61, 0x85, false, "SPI Anju And Kafei", STOCKPOTINN_ANJU_AND_KAFEI, COUPLES_MASK, {Category::cStockPotInn, Category::cDayThree, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); - locationTable[STOCKPOTINN_STAFF_ROOM_CHEST] = ItemLocation::Chest (0x61, 0x01, true, "SPI Staff Room Chest", STOCKPOTINN_STAFF_ROOM_CHEST, SILVER_RUPEE, {Category::cStockPotInn,Category::cChest ,Category::cDayThree}, SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); - locationTable[STOCKPOTINN_GUEST_ROOM_CHEST] = ItemLocation::Chest (0x61, 0x00, true, "SPI Guest Room Chest", STOCKPOTINN_GUEST_ROOM_CHEST, SILVER_RUPEE, {Category::cStockPotInn,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_RESERVATION] = ItemLocation::Base (0x61, 0xA0, true, "SPI Reservation", STOCKPOTINN_RESERVATION, ROOM_KEY, {Category::cStockPotInn,Category::cDayOne, Category::cAnjuAndKafei, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_MIDNIGHT_MEETING] = ItemLocation::Base (0x61, 0xAA, true, "SPI Midnight Meeting", STOCKPOTINN_MIDNIGHT_MEETING, LETTER_KAFEI, {Category::cStockPotInn,Category::cDayOne, Category::cAnjuAndKafei, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_TOILET_HAND] = ItemLocation::Base (0x61, 0x01, false, "SPI Toilet Hand", STOCKPOTINN_TOILET_HAND, PIECE_OF_HEART, {Category::cStockPotInn, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_GRANDMA_SHORT_STORY] = ItemLocation::Base (0x61, 0x0C, false, "SPI Grandma Short Story", STOCKPOTINN_GRANDMA_SHORT_STORY, PIECE_OF_HEART, {Category::cStockPotInn, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_GRANDMA_LONG_STORY] = ItemLocation::Base (0x61, 0xBA, false, "SPI Grandma Long Story", STOCKPOTINN_GRANDMA_LONG_STORY, PIECE_OF_HEART, {Category::cStockPotInn, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_ANJU_AND_KAFEI] = ItemLocation::Base (0x61, 0x85, false, "SPI Anju And Kafei", STOCKPOTINN_ANJU_AND_KAFEI, COUPLES_MASK, {Category::cStockPotInn, Category::cDayThree, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_STAFF_ROOM_CHEST] = ItemLocation::Chest (0x61, 0x01, true, "SPI Staff Room Chest", STOCKPOTINN_STAFF_ROOM_CHEST, SILVER_RUPEE, {Category::cStockPotInn,Category::cChest ,Category::cDayThree, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_GUEST_ROOM_CHEST] = ItemLocation::Chest (0x61, 0x00, true, "SPI Guest Room Chest", STOCKPOTINN_GUEST_ROOM_CHEST, SILVER_RUPEE, {Category::cStockPotInn,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); //Stone Tower - locationTable[STONE_TOWER_INVERTED_RIGHT_CHEST] = ItemLocation::Chest (0x59, 0x1D, true, "IST Right Chest", STONE_TOWER_INVERTED_RIGHT_CHEST, SILVER_RUPEE, {Category::cStoneTower,Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_STONE_TOWER ); - locationTable[STONE_TOWER_INVERTED_CENTER_CHEST] = ItemLocation::Chest (0x59, 0x1E, true, "IST Center Chest", STONE_TOWER_INVERTED_CENTER_CHEST, BOMBCHU_10, {Category::cStoneTower,Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_STONE_TOWER ); - locationTable[STONE_TOWER_INVERTED_LEFT_CHEST] = ItemLocation::Chest (0x59, 0x1F, true, "IST Left Chest", STONE_TOWER_INVERTED_LEFT_CHEST, MAGIC_BEAN, {Category::cStoneTower,Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_STONE_TOWER ); + locationTable[STONE_TOWER_INVERTED_RIGHT_CHEST] = ItemLocation::Chest (0x59, 0x1D, true, "IST Right Chest", STONE_TOWER_INVERTED_RIGHT_CHEST, SILVER_RUPEE, {Category::cStoneTower,Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_STONE_TOWER ); + locationTable[STONE_TOWER_INVERTED_CENTER_CHEST] = ItemLocation::Chest (0x59, 0x1E, true, "IST Center Chest", STONE_TOWER_INVERTED_CENTER_CHEST, BOMBCHU_10, {Category::cStoneTower,Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_STONE_TOWER ); + locationTable[STONE_TOWER_INVERTED_LEFT_CHEST] = ItemLocation::Chest (0x59, 0x1F, true, "IST Left Chest", STONE_TOWER_INVERTED_LEFT_CHEST, MAGIC_BEAN, {Category::cStoneTower,Category::cChest,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_STONE_TOWER ); //Termina Field - locationTable[TERMINA_FIELD_MOONS_TEAR] = ItemLocation::Base (0x2D, 0x96, true, "TF Moon's Tear", TERMINA_FIELD_MOONS_TEAR, MOONS_TEAR, {Category::cTerminaField,Category::cDayOne, Category::cTradeItem}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_GOSSIP_STONES] = ItemLocation::Base (0x07, 0x0C, false, "TF Gossip Stones", TERMINA_FIELD_GOSSIP_STONES, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_BUSINESS_SCRUB] = ItemLocation::Base (0x07, 0x01, false, "TF Business Scrub", TERMINA_FIELD_BUSINESS_SCRUB, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto,Category::cDekuScrub, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_PEAHAT_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x04, true, "TF Peahat Grotto Chest", TERMINA_FIELD_PEAHAT_GROTTO_CHEST, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_DODONGO_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x00, true, "TF Dodongo Grotto Chest", TERMINA_FIELD_DODONGO_GROTTO_CHEST, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto, Category::cVanillaHeartPiece, Category::cChest, Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_BIO_BABA_GROTTO_BEEHIVE] = ItemLocation::Collectable(0x07, 0x00, false, "TF Bio Baba Grotto HP", TERMINA_FIELD_BIO_BABA_GROTTO_BEEHIVE, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto, Category::cVanillaHeartPiece, Category::cChest, Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_KAMARO] = ItemLocation::Base (0x2D, 0x89, false, "TF Kamaro", TERMINA_FIELD_KAMARO, KAMAROS_MASK, {Category::cTerminaField, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_PILLAR_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1A, true, "TF Pillar Grotto Chest", TERMINA_FIELD_PILLAR_GROTTO_CHEST, BOMBCHU_5, {Category::cTerminaField,Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_GRASS_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1F, true, "TF Grass Grotto Chest", TERMINA_FIELD_GRASS_GROTTO_CHEST, RED_RUPEE, {Category::cTerminaField,Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_UNDERWATER_CHEST] = ItemLocation::Chest (0x2D, 0x00, true, "TF Underwater Chest", TERMINA_FIELD_UNDERWATER_CHEST, RED_RUPEE, {Category::cTerminaField,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_GRASS_CHEST] = ItemLocation::Chest (0x2D, 0x01, true, "TF Grass Chest", TERMINA_FIELD_GRASS_CHEST, RED_RUPEE, {Category::cTerminaField,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); - locationTable[TERMINA_FIELD_STUMP_CHEST] = ItemLocation::Chest (0x2D, 0x02, true, "TF Stump Chest", TERMINA_FIELD_STUMP_CHEST, RED_RUPEE, {Category::cTerminaField,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_MOONS_TEAR] = ItemLocation::Base (0x2D, 0x96, true, "TF Moon's Tear", TERMINA_FIELD_MOONS_TEAR, MOONS_TEAR, {Category::cTerminaField,Category::cDayOne, Category::cTradeItem, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_GOSSIP_STONES] = ItemLocation::Base (0x07, 0x0C, false, "TF Gossip Stones", TERMINA_FIELD_GOSSIP_STONES, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_BUSINESS_SCRUB] = ItemLocation::Base (0x07, 0x01, false, "TF Business Scrub", TERMINA_FIELD_BUSINESS_SCRUB, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto,Category::cDekuScrub, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_PEAHAT_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x04, true, "TF Peahat Grotto Chest", TERMINA_FIELD_PEAHAT_GROTTO_CHEST, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_DODONGO_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x00, true, "TF Dodongo Grotto Chest", TERMINA_FIELD_DODONGO_GROTTO_CHEST, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto, Category::cVanillaHeartPiece, Category::cChest, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_BIO_BABA_GROTTO_BEEHIVE] = ItemLocation::Collectable(0x07, 0x00, false, "TF Bio Baba Grotto HP", TERMINA_FIELD_BIO_BABA_GROTTO_BEEHIVE, PIECE_OF_HEART, {Category::cTerminaField,Category::cGrotto, Category::cVanillaHeartPiece, Category::cChest, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_KAMARO] = ItemLocation::Base (0x2D, 0x89, false, "TF Kamaro", TERMINA_FIELD_KAMARO, KAMAROS_MASK, {Category::cTerminaField, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_PILLAR_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1A, true, "TF Pillar Grotto Chest", TERMINA_FIELD_PILLAR_GROTTO_CHEST, BOMBCHU_5, {Category::cTerminaField,Category::cGrotto,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_GRASS_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x1F, true, "TF Grass Grotto Chest", TERMINA_FIELD_GRASS_GROTTO_CHEST, RED_RUPEE, {Category::cTerminaField,Category::cGrotto,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_UNDERWATER_CHEST] = ItemLocation::Chest (0x2D, 0x00, true, "TF Underwater Chest", TERMINA_FIELD_UNDERWATER_CHEST, RED_RUPEE, {Category::cTerminaField,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_GRASS_CHEST] = ItemLocation::Chest (0x2D, 0x01, true, "TF Grass Chest", TERMINA_FIELD_GRASS_CHEST, RED_RUPEE, {Category::cTerminaField,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); + locationTable[TERMINA_FIELD_STUMP_CHEST] = ItemLocation::Chest (0x2D, 0x02, true, "TF Stump Chest", TERMINA_FIELD_STUMP_CHEST, RED_RUPEE, {Category::cTerminaField,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_TERMINA_FIELD ); //Twin Islands - locationTable[HOT_SPRING_WATER_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x02, true, "TI Hot Spring Water Grotto Chest", HOT_SPRING_WATER_GROTTO_CHEST, RED_RUPEE, {Category::cTwinIslands, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); - locationTable[TWIN_ISLANDS_GORON_RACE] = ItemLocation::Base (0x6B, 0x6A, true, "TI Goron Racetrack Race", TWIN_ISLANDS_GORON_RACE, GOLD_DUST, {Category::cTwinIslands, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); - locationTable[TWIN_ISLANDS_GORON_RACETRACK_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x19, true, "TI Goron Racetrack Grotto", TWIN_ISLANDS_GORON_RACETRACK_GROTTO_CHEST, BOMBCHU_5, {Category::cTwinIslands, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); - locationTable[TWIN_ISLANDS_UNDERWATER_RAMP_CHEST] = ItemLocation::Chest (0x5E, 0x06, true, "TI Underwater Ramp Chest", TWIN_ISLANDS_UNDERWATER_RAMP_CHEST, PIECE_OF_HEART, {Category::cTwinIslands, Category::cVanillaHeartPiece, Category::cChest, Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); - locationTable[TWIN_ISLANDS_CAVE_CHEST] = ItemLocation::Chest (0x5E, 0x00, true, "TI Cave Chest", TWIN_ISLANDS_CAVE_CHEST, RED_RUPEE, {Category::cTwinIslands,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); - locationTable[TWIN_ISLANDS_LULLABY_INTRO] = ItemLocation::Base (0x5D, 0x00, false, "TI Lullaby Intro", TWIN_ISLANDS_LULLABY_INTRO, LULLABY_INTRO, {Category::cTwinIslands, Category::cSong, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); + locationTable[HOT_SPRING_WATER_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x02, true, "TI Hot Spring Water Grotto Chest", HOT_SPRING_WATER_GROTTO_CHEST, RED_RUPEE, {Category::cTwinIslands, Category::cGrotto,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); + locationTable[TWIN_ISLANDS_GORON_RACE] = ItemLocation::Base (0x6B, 0x6A, true, "TI Goron Racetrack Race", TWIN_ISLANDS_GORON_RACE, GOLD_DUST, {Category::cTwinIslands, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); + locationTable[TWIN_ISLANDS_GORON_RACETRACK_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x19, true, "TI Goron Racetrack Grotto", TWIN_ISLANDS_GORON_RACETRACK_GROTTO_CHEST, BOMBCHU_5, {Category::cTwinIslands, Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); + locationTable[TWIN_ISLANDS_UNDERWATER_RAMP_CHEST] = ItemLocation::Chest (0x5E, 0x06, true, "TI Underwater Ramp Chest", TWIN_ISLANDS_UNDERWATER_RAMP_CHEST, PIECE_OF_HEART, {Category::cTwinIslands, Category::cVanillaHeartPiece, Category::cChest, Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); + locationTable[TWIN_ISLANDS_CAVE_CHEST] = ItemLocation::Chest (0x5E, 0x00, true, "TI Cave Chest", TWIN_ISLANDS_CAVE_CHEST, RED_RUPEE, {Category::cTwinIslands,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); + locationTable[TWIN_ISLANDS_LULLABY_INTRO] = ItemLocation::Base (0x5D, 0x00, false, "TI Lullaby Intro", TWIN_ISLANDS_LULLABY_INTRO, LULLABY_INTRO, {Category::cTwinIslands, Category::cSong, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS ); //W Clock Town - locationTable[W_CLOCK_TOWN_BOMB_BAG_BUY] = ItemLocation::Base (0x0D, 0x1B, false, "WCT Bomb Bag Purchase", W_CLOCK_TOWN_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG, {Category::cWestClockTown,Category::cDayOne, Category::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - locationTable[W_CLOCK_TOWN_BIG_BOMB_BAG_BUY] = ItemLocation::Base (0x0D, 0x1C, false, "WCT Big Bomb Bag Purchase", W_CLOCK_TOWN_BIG_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG, {Category::cWestClockTown,Category::cDayTwo, Category::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - locationTable[W_CLOCK_TOWN_POSTMANS_GAME] = ItemLocation::Base (0x2E, 0x0C, false, "WCT Postman's Game", W_CLOCK_TOWN_POSTMANS_GAME, PIECE_OF_HEART, {Category::cWestClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - locationTable[W_CLOCK_TOWN_ROSA_SISTERS] = ItemLocation::Base (0x6D, 0x0C, false, "WCT Rosa Sisters", W_CLOCK_TOWN_ROSA_SISTERS, PIECE_OF_HEART, {Category::cWestClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - locationTable[W_CLOCK_TOWN_SWORDSMANS_SCHOOL] = ItemLocation::Base (0x54, 0x0C, false, "WCT Swordsman's School", W_CLOCK_TOWN_SWORDSMANS_SCHOOL, PIECE_OF_HEART, {Category::cWestClockTown, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - locationTable[W_CLOCK_TOWN_ALL_NIGHT_MASK_BUY] = ItemLocation::Base (0x0D, 0x7E, false, "WCT All-Night Mask Purchase", W_CLOCK_TOWN_ALL_NIGHT_MASK_BUY, ALL_NIGHT_MASK, {Category::cWestClockTown, Category::cVanillaMask,Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - //locationTable[W_CLOCK_TOWN_LOTTERY] = ItemLocation::Base (0x39, 0x00, true, "WCT Lottery", W_CLOCK_TOWN_LOTTERY, PURPLE_RUPEE, {Category::cWestClockTown}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - locationTable[W_CLOCK_TOWN_BOMB_SHOP_GORON] = ItemLocation::Base (0x0D, 0x34, true, "WCT Bomb Shop Goron", W_CLOCK_TOWN_BOMB_SHOP_GORON, POWDER_KEG, {Category::cWestClockTown, Category::cMerchant,Category::cDayOne, Category::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - locationTable[W_CLOCK_TOWN_CURIOSITY_BOMB_BAG] = ItemLocation::Base (0x0D, 0x00, true, "WCT Curiosity Shop Bomb Bag", W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, PROGRESSIVE_BOMB_BAG, {Category::cWestClockTown, Category::cDayTwo, Category::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_BOMB_BAG_BUY] = ItemLocation::Base (0x0D, 0x1B, false, "WCT Bomb Bag Purchase", W_CLOCK_TOWN_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG, {Category::cWestClockTown,Category::cDayOne, Category::cShop, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_BIG_BOMB_BAG_BUY] = ItemLocation::Base (0x0D, 0x1C, false, "WCT Big Bomb Bag Purchase", W_CLOCK_TOWN_BIG_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG, {Category::cWestClockTown,Category::cDayTwo, Category::cShop, Category::cMainInventory, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_POSTMANS_GAME] = ItemLocation::Base (0x2E, 0x0C, false, "WCT Postman's Game", W_CLOCK_TOWN_POSTMANS_GAME, PIECE_OF_HEART, {Category::cWestClockTown, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_ROSA_SISTERS] = ItemLocation::Base (0x6D, 0x0C, false, "WCT Rosa Sisters", W_CLOCK_TOWN_ROSA_SISTERS, PIECE_OF_HEART, {Category::cWestClockTown, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_SWORDSMANS_SCHOOL] = ItemLocation::Base (0x54, 0x0C, false, "WCT Swordsman's School", W_CLOCK_TOWN_SWORDSMANS_SCHOOL, PIECE_OF_HEART, {Category::cWestClockTown, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_ALL_NIGHT_MASK_BUY] = ItemLocation::Base (0x0D, 0x7E, false, "WCT All-Night Mask Purchase", W_CLOCK_TOWN_ALL_NIGHT_MASK_BUY, ALL_NIGHT_MASK, {Category::cWestClockTown, Category::cVanillaMask,Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + //locationTable[W_CLOCK_TOWN_LOTTERY] = ItemLocation::Base (0x39, 0x00, true, "WCT Lottery", W_CLOCK_TOWN_LOTTERY, PURPLE_RUPEE, {Category::cWestClockTown}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_BOMB_SHOP_GORON] = ItemLocation::Base (0x0D, 0x34, true, "WCT Bomb Shop Goron", W_CLOCK_TOWN_BOMB_SHOP_GORON, POWDER_KEG, {Category::cWestClockTown, Category::cMerchant,Category::cDayOne, Category::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_CURIOSITY_BOMB_BAG] = ItemLocation::Base (0x0D, 0x00, true, "WCT Curiosity Shop Bomb Bag", W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, PROGRESSIVE_BOMB_BAG, {Category::cWestClockTown, Category::cDayTwo, Category::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); //Woodfall - locationTable[WOODFALL_BRIDGE_CHEST] = ItemLocation::Chest (0x46, 0x01, true, "WF Bridge Chest", WOODFALL_BRIDGE_CHEST, PIECE_OF_HEART, {Category::cWoodfall, Category::cVanillaHeartPiece, Category::cChest, Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_WOODFALL ); - locationTable[WOODFALL_BEHIND_OWL_CHEST] = ItemLocation::Chest (0x46, 0x02, true, "WF Behind Owl Chest", WOODFALL_BEHIND_OWL_CHEST, BLUE_RUPEE, {Category::cWoodfall,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_WOODFALL ); - locationTable[ENTRANCE_TO_WOODFALL_CHEST] = ItemLocation::Chest (0x46, 0x00, true, "WF Entrance to Woodfall Chest", ENTRANCE_TO_WOODFALL_CHEST, RED_RUPEE, {Category::cWoodfall,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_WOODFALL ); - locationTable[WOODFALL_GREAT_FAIRY] = ItemLocation::Base (0x26, 0x2C, false, "WF Great Fairy", WOODFALL_GREAT_FAIRY, SPIN_ATTACK, {Category::cWoodfall, Category::cFairyFountain,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_WOODFALL ); + locationTable[WOODFALL_BRIDGE_CHEST] = ItemLocation::Chest (0x46, 0x01, true, "WF Bridge Chest", WOODFALL_BRIDGE_CHEST, PIECE_OF_HEART, {Category::cWoodfall, Category::cVanillaHeartPiece, Category::cChest, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_WOODFALL ); + locationTable[WOODFALL_BEHIND_OWL_CHEST] = ItemLocation::Chest (0x46, 0x02, true, "WF Behind Owl Chest", WOODFALL_BEHIND_OWL_CHEST, BLUE_RUPEE, {Category::cWoodfall,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_WOODFALL ); + locationTable[ENTRANCE_TO_WOODFALL_CHEST] = ItemLocation::Chest (0x46, 0x00, true, "WF Entrance to Woodfall Chest", ENTRANCE_TO_WOODFALL_CHEST, RED_RUPEE, {Category::cWoodfall,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_WOODFALL ); + locationTable[WOODFALL_GREAT_FAIRY] = ItemLocation::Base (0x26, 0x2C, false, "WF Great Fairy", WOODFALL_GREAT_FAIRY, SPIN_ATTACK, {Category::cWoodfall, Category::cFairyFountain,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_WOODFALL ); //Zora Cape - locationTable[ZORA_CAPE_GREAT_FAIRY] = ItemLocation::Base (0x26, 0xB2, false, "ZC Great Fairy", ZORA_CAPE_GREAT_FAIRY, DOUBLE_DEFENSE, {Category::cZoraCape,Category::cFairyFountain,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); - locationTable[ZORA_CAPE_BEAVER_RACE_1] = ItemLocation::Base (0x4A, 0x5A, false, "ZC Beaver Race 1", ZORA_CAPE_BEAVER_RACE_1, EMPTY_BOTTLE2, {Category::cZoraCape,Category::cMinigame, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); - locationTable[ZORA_CAPE_BEAVER_RACE_2] = ItemLocation::Base (0x4A, 0x0C, false, "ZC Beaver Race 2", ZORA_CAPE_BEAVER_RACE_2, PIECE_OF_HEART, {Category::cZoraCape,Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); - locationTable[ZORA_CAPE_LIKE_LIKE] = ItemLocation::Collectable(0x38, 0x00, false, "ZC Like Like HP", ZORA_CAPE_LIKE_LIKE, PIECE_OF_HEART, {Category::cZoraCape, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); + locationTable[ZORA_CAPE_GREAT_FAIRY] = ItemLocation::Base (0x26, 0xB2, false, "ZC Great Fairy", ZORA_CAPE_GREAT_FAIRY, DOUBLE_DEFENSE, {Category::cZoraCape,Category::cFairyFountain,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); + locationTable[ZORA_CAPE_BEAVER_RACE_1] = ItemLocation::Base (0x4A, 0x5A, false, "ZC Beaver Race 1", ZORA_CAPE_BEAVER_RACE_1, EMPTY_BOTTLE2, {Category::cZoraCape,Category::cMinigame, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); + locationTable[ZORA_CAPE_BEAVER_RACE_2] = ItemLocation::Base (0x4A, 0x0C, false, "ZC Beaver Race 2", ZORA_CAPE_BEAVER_RACE_2, PIECE_OF_HEART, {Category::cZoraCape,Category::cMinigame, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); + locationTable[ZORA_CAPE_LIKE_LIKE] = ItemLocation::Collectable(0x38, 0x00, false, "ZC Like Like HP", ZORA_CAPE_LIKE_LIKE, PIECE_OF_HEART, {Category::cZoraCape, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); locationTable[ZORA_CAPE_LEDGE_NO_TREE] = ItemLocation::Chest (0x38, 0x01, true, "ZC Ledge Without Tree Chest", ZORA_CAPE_LEDGE_NO_TREE, RED_RUPEE, {Category::cZoraCape,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); locationTable[ZORA_CAPE_LEDGE_WITH_TREE] = ItemLocation::Chest (0x38, 0x02, true, "ZC Ledge With Tree Chest", ZORA_CAPE_LEDGE_WITH_TREE, RED_RUPEE, {Category::cZoraCape,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); locationTable[ZORA_CAPE_GROTTO_CHEST] = ItemLocation::Chest (0x07, 0x15, true, "ZC Grotto Chest", ZORA_CAPE_GROTTO_CHEST, BOMBCHU_5, {Category::cZoraCape,Category::cGrotto,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_ZORA_CAPE ); @@ -365,36 +365,36 @@ void LocationTable_Init() { -------------------------------*/ //Southern Swamp Skulltla House - locationTable[SSH_MAIN_ROOM_NEAR_CEILING] = ItemLocation::SGSToken (0x27, 0x03, false, "SSH Main Room Near Ceiling", SSH_MAIN_ROOM_NEAR_CEILING, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MAIN_ROOM_WATER] = ItemLocation::SGSToken (0x27, 0x23, false, "SSH Main Room Water", SSH_MAIN_ROOM_WATER, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MAIN_ROOM_LOWER_LEFT_SOIL] = ItemLocation::SGSToken (0x27, 0x25, false, "SSH Main Room Lower Left Soil", SSH_MAIN_ROOM_LOWER_LEFT_SOIL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MAIN_ROOM_LOWER_RIGHT_SOIL] = ItemLocation::SGSToken (0x27, 0x31, false, "SSH Main Room Lower Right Soil", SSH_MAIN_ROOM_LOWER_RIGHT_SOIL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MAIN_ROOM_UPPER_SOIL] = ItemLocation::SGSToken (0x27, 0x2D, false, "SSH Main Room Upper Soil", SSH_MAIN_ROOM_UPPER_SOIL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MAIN_ROOM_PILLAR] = ItemLocation::SGSToken (0x27, 0x3F, false, "SSH Main Room Pillar", SSH_MAIN_ROOM_PILLAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MAIN_ROOM_UPPER_PILLAR] = ItemLocation::SGSToken (0x27, 0x4F, false, "SSH Main Room Upper Pillar", SSH_MAIN_ROOM_UPPER_PILLAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MAIN_ROOM_JAR] = ItemLocation::SGSToken (0x27, 0x79, false, "SSH Main Room Jar", SSH_MAIN_ROOM_JAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MONUMENT_ROOM_CRATE_1] = ItemLocation::SGSToken (0x27, 0x29, false, "SSH Monument Room Crate 1", SSH_MONUMENT_ROOM_CRATE_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MONUMENT_ROOM_CRATE_2] = ItemLocation::SGSToken (0x27, 0x6D, false, "SSH Monument Room Crate 2", SSH_MONUMENT_ROOM_CRATE_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MONUMENT_ROOM_TORCH] = ItemLocation::SGSToken (0x27, 0x0B, false, "SSH Monument Room Torch", SSH_MONUMENT_ROOM_TORCH, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MONUMENT_ROOM_ON_MONUMENT] = ItemLocation::SGSToken (0x27, 0x3B, false, "SSH Monument Room On Monument", SSH_MONUMENT_ROOM_ON_MONUMENT, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_MONUMENT_ROOM_LOWER_WALL] = ItemLocation::SGSToken (0x27, 0x37, false, "SSH Monument Room Lower Wall", SSH_MONUMENT_ROOM_LOWER_WALL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_GOLD_ROOM_NEAR_CEILING] = ItemLocation::SGSToken (0x27, 0x07, false, "SSH Gold Room Near Ceiling", SSH_GOLD_ROOM_NEAR_CEILING, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_GOLD_ROOM_PILLAR] = ItemLocation::SGSToken (0x27, 0x13, false, "SSH Gold Room Pillar", SSH_GOLD_ROOM_PILLAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_GOLD_ROOM_BEEHIVE] = ItemLocation::SGSToken (0x27, 0x49, false, "SSH Gold Room Beehive", SSH_GOLD_ROOM_BEEHIVE, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_GOLD_ROOM_WALL] = ItemLocation::SGSToken (0x27, 0x67, false, "SSH Gold Room Wall", SSH_GOLD_ROOM_WALL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_POT_ROOM_JAR] = ItemLocation::SGSToken (0x27, 0x15, false, "SSH Pot Room Jar", SSH_POT_ROOM_JAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_POT_ROOM_POT_1] = ItemLocation::SGSToken (0x27, 0x41, false, "SSH Pot Room Pot 1", SSH_POT_ROOM_POT_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_POT_ROOM_POT_2] = ItemLocation::SGSToken (0x27, 0x45, false, "SSH Pot Room Pot 2", SSH_POT_ROOM_POT_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_POT_ROOM_BEHIND_VINES] = ItemLocation::SGSToken (0x27, 0x53, false, "SSH Pot Room Behind Vines", SSH_POT_ROOM_BEHIND_VINES, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_POT_ROOM_WALL] = ItemLocation::SGSToken (0x27, 0x5B, false, "SSH Pot Room Wall", SSH_POT_ROOM_WALL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_POT_ROOM_BEEHIVE_1] = ItemLocation::SGSToken (0x27, 0x5D, false, "SSH Pot Room Beehive 1", SSH_POT_ROOM_BEEHIVE_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_POT_ROOM_BEEHIVE_2] = ItemLocation::SGSToken (0x27, 0x71, false, "SSH Pot Room Beehive 2", SSH_POT_ROOM_BEEHIVE_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_TREE_ROOM_TREE_1] = ItemLocation::SGSToken (0x27, 0x76, false, "SSH Tree Room Tree 1", SSH_TREE_ROOM_TREE_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_TREE_ROOM_TREE_2] = ItemLocation::SGSToken (0x27, 0x62, false, "SSH Tree Room Tree 2", SSH_TREE_ROOM_TREE_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_TREE_ROOM_TREE_3] = ItemLocation::SGSToken (0x27, 0x56, false, "SSH Tree Room Tree 3", SSH_TREE_ROOM_TREE_3, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_TREE_ROOM_GRASS_1] = ItemLocation::SGSToken (0x27, 0x1F, false, "SSH Tree Room Grass 1", SSH_TREE_ROOM_GRASS_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_TREE_ROOM_GRASS_2] = ItemLocation::SGSToken (0x27, 0x1B, false, "SSH Tree Room Grass 2", SSH_TREE_ROOM_GRASS_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); - locationTable[SSH_TREE_ROOM_BEEHIVE] = ItemLocation::SGSToken (0x27, 0x69, false, "SSH Tree Room Beehive", SSH_TREE_ROOM_BEEHIVE, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MAIN_ROOM_NEAR_CEILING] = ItemLocation::SGSToken (0x27, 0x03, false, "SSH Main Room Near Ceiling", SSH_MAIN_ROOM_NEAR_CEILING, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MAIN_ROOM_WATER] = ItemLocation::SGSToken (0x27, 0x23, false, "SSH Main Room Water", SSH_MAIN_ROOM_WATER, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MAIN_ROOM_LOWER_LEFT_SOIL] = ItemLocation::SGSToken (0x27, 0x25, false, "SSH Main Room Lower Left Soil", SSH_MAIN_ROOM_LOWER_LEFT_SOIL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MAIN_ROOM_LOWER_RIGHT_SOIL] = ItemLocation::SGSToken (0x27, 0x31, false, "SSH Main Room Lower Right Soil", SSH_MAIN_ROOM_LOWER_RIGHT_SOIL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MAIN_ROOM_UPPER_SOIL] = ItemLocation::SGSToken (0x27, 0x2D, false, "SSH Main Room Upper Soil", SSH_MAIN_ROOM_UPPER_SOIL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MAIN_ROOM_PILLAR] = ItemLocation::SGSToken (0x27, 0x3F, false, "SSH Main Room Pillar", SSH_MAIN_ROOM_PILLAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MAIN_ROOM_UPPER_PILLAR] = ItemLocation::SGSToken (0x27, 0x4F, false, "SSH Main Room Upper Pillar", SSH_MAIN_ROOM_UPPER_PILLAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MAIN_ROOM_JAR] = ItemLocation::SGSToken (0x27, 0x79, false, "SSH Main Room Jar", SSH_MAIN_ROOM_JAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MONUMENT_ROOM_CRATE_1] = ItemLocation::SGSToken (0x27, 0x29, false, "SSH Monument Room Crate 1", SSH_MONUMENT_ROOM_CRATE_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MONUMENT_ROOM_CRATE_2] = ItemLocation::SGSToken (0x27, 0x6D, false, "SSH Monument Room Crate 2", SSH_MONUMENT_ROOM_CRATE_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MONUMENT_ROOM_TORCH] = ItemLocation::SGSToken (0x27, 0x0B, false, "SSH Monument Room Torch", SSH_MONUMENT_ROOM_TORCH, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MONUMENT_ROOM_ON_MONUMENT] = ItemLocation::SGSToken (0x27, 0x3B, false, "SSH Monument Room On Monument", SSH_MONUMENT_ROOM_ON_MONUMENT, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_MONUMENT_ROOM_LOWER_WALL] = ItemLocation::SGSToken (0x27, 0x37, false, "SSH Monument Room Lower Wall", SSH_MONUMENT_ROOM_LOWER_WALL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_GOLD_ROOM_NEAR_CEILING] = ItemLocation::SGSToken (0x27, 0x07, false, "SSH Gold Room Near Ceiling", SSH_GOLD_ROOM_NEAR_CEILING, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_GOLD_ROOM_PILLAR] = ItemLocation::SGSToken (0x27, 0x13, false, "SSH Gold Room Pillar", SSH_GOLD_ROOM_PILLAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_GOLD_ROOM_BEEHIVE] = ItemLocation::SGSToken (0x27, 0x49, false, "SSH Gold Room Beehive", SSH_GOLD_ROOM_BEEHIVE, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_GOLD_ROOM_WALL] = ItemLocation::SGSToken (0x27, 0x67, false, "SSH Gold Room Wall", SSH_GOLD_ROOM_WALL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_POT_ROOM_JAR] = ItemLocation::SGSToken (0x27, 0x15, false, "SSH Pot Room Jar", SSH_POT_ROOM_JAR, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_POT_ROOM_POT_1] = ItemLocation::SGSToken (0x27, 0x41, false, "SSH Pot Room Pot 1", SSH_POT_ROOM_POT_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_POT_ROOM_POT_2] = ItemLocation::SGSToken (0x27, 0x45, false, "SSH Pot Room Pot 2", SSH_POT_ROOM_POT_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_POT_ROOM_BEHIND_VINES] = ItemLocation::SGSToken (0x27, 0x53, false, "SSH Pot Room Behind Vines", SSH_POT_ROOM_BEHIND_VINES, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_POT_ROOM_WALL] = ItemLocation::SGSToken (0x27, 0x5B, false, "SSH Pot Room Wall", SSH_POT_ROOM_WALL, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_POT_ROOM_BEEHIVE_1] = ItemLocation::SGSToken (0x27, 0x5D, false, "SSH Pot Room Beehive 1", SSH_POT_ROOM_BEEHIVE_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_POT_ROOM_BEEHIVE_2] = ItemLocation::SGSToken (0x27, 0x71, false, "SSH Pot Room Beehive 2", SSH_POT_ROOM_BEEHIVE_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_TREE_ROOM_TREE_1] = ItemLocation::SGSToken (0x27, 0x76, false, "SSH Tree Room Tree 1", SSH_TREE_ROOM_TREE_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_TREE_ROOM_TREE_2] = ItemLocation::SGSToken (0x27, 0x62, false, "SSH Tree Room Tree 2", SSH_TREE_ROOM_TREE_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_TREE_ROOM_TREE_3] = ItemLocation::SGSToken (0x27, 0x56, false, "SSH Tree Room Tree 3", SSH_TREE_ROOM_TREE_3, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_TREE_ROOM_GRASS_1] = ItemLocation::SGSToken (0x27, 0x1F, false, "SSH Tree Room Grass 1", SSH_TREE_ROOM_GRASS_1, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_TREE_ROOM_GRASS_2] = ItemLocation::SGSToken (0x27, 0x1B, false, "SSH Tree Room Grass 2", SSH_TREE_ROOM_GRASS_2, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); + locationTable[SSH_TREE_ROOM_BEEHIVE] = ItemLocation::SGSToken (0x27, 0x69, false, "SSH Tree Room Beehive", SSH_TREE_ROOM_BEEHIVE, SWAMP_SKULLTULA_TOKEN, {Category::cSouthernSwamp, Category::cSwampSkulltula,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_SWAMP_SKULLTULA_HOUSE); //Oceanside Spider House locationTable[OSH_ENTRANCE_LEFT_WALL] = ItemLocation::OGSToken (0x28, 0x37, false, "OSH Entrance Left Wall", OSH_ENTRANCE_LEFT_WALL, OCEANSIDE_SKULLTULA_TOKEN, {Category::cGreatBayCoast, Category::cOceanSkulltula,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_OCEAN_SKULLTULA_HOUSE); @@ -433,7 +433,7 @@ void LocationTable_Init() { -------------------------------*/ //Clock Town Stray Fairy - locationTable[LAUNDRY_POOL_SF] = ItemLocation::StrayFairy (0x70, 0x00, true, "Laundry Pool SF", CT_STRAY_FAIRY, CT_STRAY_FAIRY, {Category::cLaundryPool, Category::cVanillaStrayFairy, Category::cCTStray,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL); + locationTable[LAUNDRY_POOL_SF] = ItemLocation::StrayFairy (0x70, 0x00, true, "Laundry Pool SF", CT_STRAY_FAIRY, CT_STRAY_FAIRY, {Category::cLaundryPool, Category::cVanillaStrayFairy, Category::cCTStray,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_LAUNDRY_POOL); //Woodfall Stray Faries @@ -529,19 +529,19 @@ void LocationTable_Init() { --- TINGLE MAPS --- -------------------------------*/ - locationTable[TINGLE_N_CLOCK_TOWN_CT] = ItemLocation::Base (0x6E, 0xB4, false, "NCT Tingle Clock Town Map Buy", TINGLE_N_CLOCK_TOWN_CT, CLOCK_TOWN_MAP, {Category::cNorthClockTown, Category::cTingleMap,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN); - locationTable[TINGLE_N_CLOCK_TOWN_WF] = ItemLocation::Base (0x6E, 0xB5, false, "NCT Tingle Woodfall Map Buy", TINGLE_N_CLOCK_TOWN_WF, WOODFALL_MAP, {Category::cNorthClockTown, Category::cTingleMap, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN); + locationTable[TINGLE_N_CLOCK_TOWN_CT] = ItemLocation::Base (0x6E, 0xB4, false, "NCT Tingle Clock Town Map Buy", TINGLE_N_CLOCK_TOWN_CT, CLOCK_TOWN_MAP, {Category::cNorthClockTown, Category::cTingleMap,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN); + locationTable[TINGLE_N_CLOCK_TOWN_WF] = ItemLocation::Base (0x6E, 0xB5, false, "NCT Tingle Woodfall Map Buy", TINGLE_N_CLOCK_TOWN_WF, WOODFALL_MAP, {Category::cNorthClockTown, Category::cTingleMap, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_N_CLOCK_TOWN); - locationTable[TINGLE_ROAD_TO_SS_WF] = ItemLocation::Base (0x40, 0xB5, false, "Road To Southern Swamp Tingle Woodfall Map Buy", TINGLE_ROAD_TO_SS_WF, WOODFALL_MAP, {Category::cRoadToSouthernSwamp, Category::cTingleMap,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); - locationTable[TINGLE_ROAD_TO_SS_SH] = ItemLocation::Base (0x40, 0xB6, false, "Road to Southern Swamp Tingle Snowhead Map Buy", TINGLE_ROAD_TO_SS_SH, SNOWHEAD_MAP, {Category::cRoadToSouthernSwamp, Category::cTingleMap, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); + locationTable[TINGLE_ROAD_TO_SS_WF] = ItemLocation::Base (0x40, 0xB5, false, "Road To Southern Swamp Tingle Woodfall Map Buy", TINGLE_ROAD_TO_SS_WF, WOODFALL_MAP, {Category::cRoadToSouthernSwamp, Category::cTingleMap,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); + locationTable[TINGLE_ROAD_TO_SS_SH] = ItemLocation::Base (0x40, 0xB6, false, "Road to Southern Swamp Tingle Snowhead Map Buy", TINGLE_ROAD_TO_SS_SH, SNOWHEAD_MAP, {Category::cRoadToSouthernSwamp, Category::cTingleMap, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); - locationTable[TINGLE_TWIN_ISLANDS_SH] = ItemLocation::Base (0x5D, 0xB6, false, "TI Tingle Snowhead Map Buy", TINGLE_TWIN_ISLANDS_SH, SNOWHEAD_MAP, {Category::cTwinIslands, Category::cTingleMap,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS); - locationTable[TINGLE_TWIN_ISLANDS_RR] = ItemLocation::Base (0x5D, 0xB7, false, "TI Tingle Romani Ranch Buy", TINGLE_TWIN_ISLANDS_RR, ROMANI_RANCH_MAP, {Category::cTwinIslands, Category::cTingleMap, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS); + locationTable[TINGLE_TWIN_ISLANDS_SH] = ItemLocation::Base (0x5D, 0xB6, false, "TI Tingle Snowhead Map Buy", TINGLE_TWIN_ISLANDS_SH, SNOWHEAD_MAP, {Category::cTwinIslands, Category::cTingleMap,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS); + locationTable[TINGLE_TWIN_ISLANDS_RR] = ItemLocation::Base (0x5D, 0xB7, false, "TI Tingle Romani Ranch Buy", TINGLE_TWIN_ISLANDS_RR, ROMANI_RANCH_MAP, {Category::cTwinIslands, Category::cTingleMap, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS); locationTable[TINGLE_TWIN_ISLANDS_SH_SPRING] = ItemLocation::Base (0x5E, 0xB6, false, "TI Tingle Snowhead Map Buy (Spring)", TINGLE_TWIN_ISLANDS_SH_SPRING, SNOWHEAD_MAP, {Category::cTwinIslands, Category::cTingleMap, Category::cDayOne, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS); locationTable[TINGLE_TWIN_ISLANDS_RR_SPRING] = ItemLocation::Base (0x5E, 0xB7, false, "TI Tingle Romani Ranch Map Buy (Spring)", TINGLE_TWIN_ISLANDS_RR_SPRING, ROMANI_RANCH_MAP, {Category::cTwinIslands, Category::cTingleMap, Category::cDayOne, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_TWIN_ISLANDS); - locationTable[TINGLE_MILK_ROAD_RR] = ItemLocation::Base (0x22, 0xB7, false, "MR Tingle Romani Ranch Map Buy", TINGLE_MILK_ROAD_RR, ROMANI_RANCH_MAP, {Category::cMilkRoad, Category::cTingleMap,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD); - locationTable[TINGLE_MILK_ROAD_GB] = ItemLocation::Base (0x22, 0xB8, false, "MR Tingle Great Bay Map Buy", TINGLE_MILK_ROAD_GB, GREAT_BAY_MAP, {Category::cMilkRoad, Category::cTingleMap, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD); + locationTable[TINGLE_MILK_ROAD_RR] = ItemLocation::Base (0x22, 0xB7, false, "MR Tingle Romani Ranch Map Buy", TINGLE_MILK_ROAD_RR, ROMANI_RANCH_MAP, {Category::cMilkRoad, Category::cTingleMap,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD); + locationTable[TINGLE_MILK_ROAD_GB] = ItemLocation::Base (0x22, 0xB8, false, "MR Tingle Great Bay Map Buy", TINGLE_MILK_ROAD_GB, GREAT_BAY_MAP, {Category::cMilkRoad, Category::cTingleMap, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_MILK_ROAD); locationTable[TINGLE_GBC_GB] = ItemLocation::Base (0x37, 0xB8, false, "GBC Tingle Great Bay Map Buy", TINGLE_GBC_GB, GREAT_BAY_MAP, {Category::cGreatBayCoast, Category::cTingleMap,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST); locationTable[TINGLE_GBC_ST] = ItemLocation::Base (0x37, 0xB9, false, "GBC Tingle Stone Tower Map Buy", TINGLE_GBC_ST, STONE_TOWER_MAP, {Category::cGreatBayCoast, Category::cTingleMap, Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST); @@ -556,26 +556,26 @@ void LocationTable_Init() { 3 4 7 8 1 2 3 ------------------------------- -----------------------*/ - locationTable[TRADING_POST_ITEM_1] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 1", TRADING_POST_ITEM_1, BUY_RED_POTION, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x34, 0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[TRADING_POST_ITEM_2] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 2", TRADING_POST_ITEM_2, BUY_GREEN_POTION, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x34, 1), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[TRADING_POST_ITEM_3] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 3", TRADING_POST_ITEM_3, BUY_HEROS_SHIELD, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x34, 2), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[TRADING_POST_ITEM_4] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 4", TRADING_POST_ITEM_4, BUY_FAIRYS_SPIRIT, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x34, 3), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[TRADING_POST_ITEM_5] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 5", TRADING_POST_ITEM_5, BUY_DEKU_STICK_1, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x34, 4), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[TRADING_POST_ITEM_6] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 6", TRADING_POST_ITEM_6, BUY_ARROWS_30, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x34, 5), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[TRADING_POST_ITEM_7] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 7", TRADING_POST_ITEM_7, BUY_DEKU_NUT_10, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x34, 6), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[TRADING_POST_ITEM_8] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 8", TRADING_POST_ITEM_8, BUY_MAGIC_BEAN, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x34, 7), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[TRADING_POST_ITEM_1] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 1", TRADING_POST_ITEM_1, BUY_RED_POTION, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x34, 0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[TRADING_POST_ITEM_2] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 2", TRADING_POST_ITEM_2, BUY_GREEN_POTION, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x34, 1), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[TRADING_POST_ITEM_3] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 3", TRADING_POST_ITEM_3, BUY_HEROS_SHIELD, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x34, 2), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[TRADING_POST_ITEM_4] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 4", TRADING_POST_ITEM_4, BUY_FAIRYS_SPIRIT, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x34, 3), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[TRADING_POST_ITEM_5] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 5", TRADING_POST_ITEM_5, BUY_DEKU_STICK_1, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x34, 4), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[TRADING_POST_ITEM_6] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 6", TRADING_POST_ITEM_6, BUY_ARROWS_30, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x34, 5), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[TRADING_POST_ITEM_7] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 7", TRADING_POST_ITEM_7, BUY_DEKU_NUT_10, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x34, 6), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[TRADING_POST_ITEM_8] = ItemLocation::Base (0x34,0x00, true, "Trading Post Item 8", TRADING_POST_ITEM_8, BUY_MAGIC_BEAN, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x34, 7), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[BOMB_SHOP_ITEM_1] = ItemLocation::Base (0x68,0x00, true, "Bomb Shop Item 1", BOMB_SHOP_ITEM_1, BOMBS_10, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x68, 0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[BOMB_SHOP_ITEM_2] = ItemLocation::Base (0x68,0x00, true, "Bomb Shop Item 2", BOMB_SHOP_ITEM_2, BOMBCHU_10, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x68, 1), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[BOMB_SHOP_ITEM_1] = ItemLocation::Base (0x68,0x00, true, "Bomb Shop Item 1", BOMB_SHOP_ITEM_1, BOMBS_10, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x68, 0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); + locationTable[BOMB_SHOP_ITEM_2] = ItemLocation::Base (0x68,0x00, true, "Bomb Shop Item 2", BOMB_SHOP_ITEM_2, BOMBCHU_10, {Category::cEastClockTown,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x68, 1), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); //locationTable[BOMB_SHOP_ITEM_3] = ItemLocation::Base(0x68,0x00, true, "Bomb Shop Item 3", BOMB_SHOP_ITEM_3, BOMBS_20, {Category::cEastClockTown,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x00, 0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN); - locationTable[POTION_SHOP_ITEM_1] = ItemLocation::Base (0x0A,0x00, true, "Potion Shop Item 1", POTION_SHOP_ITEM_1, BLUE_POTION_REFILL, {Category::cSouthernSwamp,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x0A, 0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); - locationTable[POTION_SHOP_ITEM_2] = ItemLocation::Base (0x0A,0x00, true, "Potion Shop Item 2", POTION_SHOP_ITEM_2, GREEN_POTION_REFILL, {Category::cSouthernSwamp,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x0A, 1), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); - locationTable[POTION_SHOP_ITEM_3] = ItemLocation::Base (0x0A,0x00, true, "Potion Shop Item 3", POTION_SHOP_ITEM_3, RED_POTION_REFILL, {Category::cSouthernSwamp,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x0A, 2), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); + locationTable[POTION_SHOP_ITEM_1] = ItemLocation::Base (0x0A,0x00, true, "Potion Shop Item 1", POTION_SHOP_ITEM_1, BLUE_POTION_REFILL, {Category::cSouthernSwamp,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x0A, 0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); + locationTable[POTION_SHOP_ITEM_2] = ItemLocation::Base (0x0A,0x00, true, "Potion Shop Item 2", POTION_SHOP_ITEM_2, GREEN_POTION_REFILL, {Category::cSouthernSwamp,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x0A, 1), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); + locationTable[POTION_SHOP_ITEM_3] = ItemLocation::Base (0x0A,0x00, true, "Potion Shop Item 3", POTION_SHOP_ITEM_3, RED_POTION_REFILL, {Category::cSouthernSwamp,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x0A, 2), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP); - locationTable[GORON_SHOP_ITEM_1] = ItemLocation::Base (0x3D,0x00, true, "Goron Shop Item 1", GORON_SHOP_ITEM_1, BOMBS_10, {Category::cGoronVillage,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x3D, 0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE); - locationTable[GORON_SHOP_ITEM_2] = ItemLocation::Base (0x3D,0x00, true, "Goron Shop Item 2", GORON_SHOP_ITEM_2, ARROWS_10, {Category::cGoronVillage,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x3D, 1), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE); - locationTable[GORON_SHOP_ITEM_3] = ItemLocation::Base (0x3D,0x00, true, "Goron Shop Item 3", GORON_SHOP_ITEM_3, RED_POTION_REFILL, {Category::cGoronVillage,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x3D, 2), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE); + locationTable[GORON_SHOP_ITEM_1] = ItemLocation::Base (0x3D,0x00, true, "Goron Shop Item 1", GORON_SHOP_ITEM_1, BOMBS_10, {Category::cGoronVillage,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x3D, 0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE); + locationTable[GORON_SHOP_ITEM_2] = ItemLocation::Base (0x3D,0x00, true, "Goron Shop Item 2", GORON_SHOP_ITEM_2, ARROWS_10, {Category::cGoronVillage,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x3D, 1), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE); + locationTable[GORON_SHOP_ITEM_3] = ItemLocation::Base (0x3D,0x00, true, "Goron Shop Item 3", GORON_SHOP_ITEM_3, RED_POTION_REFILL, {Category::cGoronVillage,Category::cShop,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ShopItem(0x3D, 2), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE); locationTable[ZORA_SHOP_ITEM_1] = ItemLocation::Base (0x4C,0x00, true, "Zora Shop Item 1", ZORA_SHOP_ITEM_1, HEROS_SHIELD, {Category::cZoraHall,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x4C, 0), SpoilerCollectionCheckGroup::GROUP_ZORA_HALL); locationTable[ZORA_SHOP_ITEM_2] = ItemLocation::Base (0x4C,0x00, true, "Zora Shop Item 2", ZORA_SHOP_ITEM_2, ARROWS_10, {Category::cZoraHall,Category::cShop,Category::cDayOne}, SpoilerCollectionCheck::ShopItem(0x4C, 1), SpoilerCollectionCheckGroup::GROUP_ZORA_HALL); diff --git a/source/item_pool.cpp b/source/item_pool.cpp index a9c4c75..b569bfb 100644 --- a/source/item_pool.cpp +++ b/source/item_pool.cpp @@ -889,7 +889,6 @@ void GenerateItemPool() { //Fixed Item Locations PlaceItemInLocation(MAJORA, MAJORAS_MASK, true); - PlaceItemInLocation(CLOCK_TOWER_OCARINA_OF_TIME, OCARINA_OF_TIME, true); PlaceItemInLocation(WOODFALL_TEMPLE_DEKU_PRINCESS, DEKU_PRINCESS); PlaceItemInLocation(W_CLOCK_TOWN_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG); PlaceItemInLocation(W_CLOCK_TOWN_BIG_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG); @@ -913,6 +912,14 @@ void GenerateItemPool() { PlaceItemInLocation(SWAMP_TOURIST_CENTER_ROOF_CLEAR, BLUE_RUPEE); //Check Non Dungeon Settings + //OCARINA SHUFFLE + if(StartingOcarina.Value() == 0) {//If starting without ocarina add it to pool + AddItemToMainPool(OCARINA_OF_TIME, 1); + } + else { //else place it vanilla cause we start with it + PlaceItemInLocation(CLOCK_TOWER_OCARINA_OF_TIME, OCARINA_OF_TIME, true); + } + //KOKIRISWORD SHUFFLE if(StartingKokiriSword.Value() == (u8)StartingSwordSetting::STARTINGSWORD_NONE) {//if starting with no sword we need to add an extra to the pool AddItemToMainPool(PROGRESSIVE_SWORD, 1); @@ -1083,8 +1090,11 @@ void GenerateItemPool() { //TOKENSANITY if(Tokensanity){ - AddItemToMainPool(SWAMP_SKULLTULA_TOKEN, 30); - AddItemToMainPool(OCEANSIDE_SKULLTULA_TOKEN, 30); + //Calculate amount of tokens based on number of tokens being started with + int SwampTokens = StartingSwampToken.Value(); + int OceanTokens = static_cast(StartingOceanToken.Value()); + AddItemToMainPool(SWAMP_SKULLTULA_TOKEN, (30 - SwampTokens)); + AddItemToMainPool(OCEANSIDE_SKULLTULA_TOKEN, (30 - OceanTokens)); std::vector SwampSkullLocations = FilterFromPool(allLocations, [](const LocationKey loc) {return Location(loc)->IsCategory(Category::cSwampSkulltula);}); std::vector OceanSkullLocations = FilterFromPool(allLocations, [](const LocationKey loc1) {return Location(loc1)->IsCategory(Category::cOceanSkulltula);}); diff --git a/source/settings.cpp b/source/settings.cpp index c41cdff..4cc0b79 100644 --- a/source/settings.cpp +++ b/source/settings.cpp @@ -112,7 +112,7 @@ namespace Settings { Option StartingMaxRupees = Option::Bool("Start with Max Rupees", { "No", "Yes" }, { startWithMaxRupeesDesc }); Option StartingInventoryToggle = Option::U8("Inventory", { "All Off", "All On", "Choose" }, { "" }); Option StartingNutCapacity = Option::U8("Deku Nuts", { "None", "20 Deku Nuts", "30 Deku Nuts", "40 Deku Nuts" }, { "" }); - Option StartingOcarina = Option::U8("Ocarina", { "Ocarina of Time", "Ocarina of Time" }, { "" }, OptionCategory::Toggle, 1); + Option StartingOcarina = Option::U8("Ocarina", { "None", "Ocarina of Time" }, { "" }, OptionCategory::Toggle, 1); Option StartingNotebook = Option::U8("Bomber's Notebook", { "None", "B. Notebook"}, { "" }); Option StartingBombBag = Option::U8("Bomb Bag", { "None", "Bomb Bag 20", "Bomb Bag 30", "Bomb Bag 40" }, { "" }); Option StartingBombchus = Option::U8("Bombchus", { "None", "Bombchus" }, { "" }); @@ -276,9 +276,8 @@ namespace Settings { }; std::vector startingInventoryTokensFairys = { - //&StartingSwampToken, - //&StartingOceanToken, - + &StartingSwampToken, + &StartingOceanToken, }; //Excluded Locations (Individual definitions made in ItemLocation class) @@ -379,7 +378,7 @@ namespace Settings { &ClearerHints, &HintDistribution, &CompassShowWoTH, - //&DamageMultiplier, + &DamageMultiplier, //&ChestAnimations, &ChestSize, //&ChangeOverworldItems, @@ -405,7 +404,7 @@ namespace Settings { &FastMasks, &NotebookAnimations, // &UnderwaterOcarina, - // &FierceDeityAnywhere, + &FierceDeityAnywhere, //&ProgressiveGildedSword, // &StartingSpin, // &AmmoDrops, @@ -591,7 +590,7 @@ namespace Settings { &startingInventorySongsMenu, &startingInventoryUpgradesMenu, &startingInventoryRemainsMenu, - //&startingInventoryTokensMenu, + &startingInventoryTokensMenu, }; //Menu mainSettings = Menu::SubMenu("Main Settings", &mainSettingsOptions); Menu comfort = Menu::SubMenu("Comfort Settings", &comfortOptions); @@ -691,7 +690,7 @@ namespace Settings { ctx.blastMaskCooldown = BlastMaskCooldown.Value(); //ctx.underwaterOcarina = (UnderwaterOcarina) ? 1 : 0; - //ctx.fierceDeityAnywhere = (FierceDeityAnywhere) ? 1 : 0; + ctx.useFierceDeityAnywhere = (FierceDeityAnywhere) ? 1 : 0; ctx.skipMinigamePhases = (SkipMinigamePhases) ? 1 : 0; ctx.skipEponaRace = (SkipEponaRace) ? 1 : 0; //ctx.fastLabFish = (FastLabFish) ? 1 : 0; @@ -744,7 +743,7 @@ namespace Settings { ctx.startingMaxRupees = (StartingMaxRupees) ? 1 : 0; ctx.startingNutCapacity = StartingNutCapacity.Value(); ctx.startingStickCapacity = StartingStickCapacity.Value(); - ctx.startingOcarina = StartingOcarina.Value(); + ctx.startingOcarina = (StartingOcarina) ? 1 : 0; ctx.startingNotebook = StartingNotebook.Value(); ctx.startingBombBag = StartingBombBag.Value(); ctx.startingBombchus = StartingBombchus.Value(); @@ -1189,8 +1188,14 @@ namespace Settings { else { Unhide(HeartContainers); } - //Force hide Ocarina - IncludeAndHide({CLOCK_TOWER_OCARINA_OF_TIME}); + //Ocarina + if (StartingOcarina.Value() == 0) { + Unhide({CLOCK_TOWER_OCARINA_OF_TIME}); + } + else{ + IncludeAndHide({CLOCK_TOWER_OCARINA_OF_TIME}); + } + //Force hide Deku Princess IncludeAndHide({WOODFALL_TEMPLE_DEKU_PRINCESS}); diff --git a/source/spoiler_log.cpp b/source/spoiler_log.cpp index ad724da..2e3b609 100644 --- a/source/spoiler_log.cpp +++ b/source/spoiler_log.cpp @@ -228,7 +228,7 @@ static void WriteIngameSpoilerLog() { continue; } // Always hide unreachable checks - if (key == CLOCK_TOWER_OCARINA_OF_TIME) { + if (key == CLOCK_TOWER_OCARINA_OF_TIME && (Settings::StartingOcarina.Value() == u8(1))) { continue; } if (key == HMS_STARTING_SWORD){ // && Settings::StartingKokiriSword.Is((u8)StartingSwordSetting::STARTINGSWORD_KOKIRI)) { diff --git a/source/starting_inventory.cpp b/source/starting_inventory.cpp index 33de069..575f306 100644 --- a/source/starting_inventory.cpp +++ b/source/starting_inventory.cpp @@ -153,6 +153,7 @@ void GenerateStartingInventory() { AddItemToInventory(PIECE_OF_HEART, (hearts - maxContainers) * 4); } } + } void ApplyStartingInventory() { From d5320beca35451dbd58be5a0b8968808883f090f Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Tue, 15 Jul 2025 02:00:36 -0500 Subject: [PATCH 2/3] Fill Fix - Fixes issue with item pool doubling the amount taken by starting inventory - Adjusts a few settings to display in spoiler log - Adjusts Spoiler Log to display amount of tokens starting with --- Z3DR | 2 +- source/item_pool.cpp | 7 ++----- source/settings.cpp | 14 +++++++------- source/spoiler_log.cpp | 14 ++++++++++++-- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/Z3DR b/Z3DR index bb05e64..5aecf7c 160000 --- a/Z3DR +++ b/Z3DR @@ -1 +1 @@ -Subproject commit bb05e64a5ba682b17fb590056fa1479b7604c212 +Subproject commit 5aecf7cfa6e6a3ce78d30893b78a51973b1138ed diff --git a/source/item_pool.cpp b/source/item_pool.cpp index b569bfb..ac38356 100644 --- a/source/item_pool.cpp +++ b/source/item_pool.cpp @@ -1090,11 +1090,8 @@ void GenerateItemPool() { //TOKENSANITY if(Tokensanity){ - //Calculate amount of tokens based on number of tokens being started with - int SwampTokens = StartingSwampToken.Value(); - int OceanTokens = static_cast(StartingOceanToken.Value()); - AddItemToMainPool(SWAMP_SKULLTULA_TOKEN, (30 - SwampTokens)); - AddItemToMainPool(OCEANSIDE_SKULLTULA_TOKEN, (30 - OceanTokens)); + AddItemToMainPool(SWAMP_SKULLTULA_TOKEN, 30); + AddItemToMainPool(OCEANSIDE_SKULLTULA_TOKEN, 30); std::vector SwampSkullLocations = FilterFromPool(allLocations, [](const LocationKey loc) {return Location(loc)->IsCategory(Category::cSwampSkulltula);}); std::vector OceanSkullLocations = FilterFromPool(allLocations, [](const LocationKey loc1) {return Location(loc1)->IsCategory(Category::cOceanSkulltula);}); diff --git a/source/settings.cpp b/source/settings.cpp index 4cc0b79..852fb1a 100644 --- a/source/settings.cpp +++ b/source/settings.cpp @@ -111,9 +111,9 @@ namespace Settings { Option StartingConsumables = Option::Bool("Start with Consumables", { "No", "Yes" }, { startWithConsumablesDesc }); Option StartingMaxRupees = Option::Bool("Start with Max Rupees", { "No", "Yes" }, { startWithMaxRupeesDesc }); Option StartingInventoryToggle = Option::U8("Inventory", { "All Off", "All On", "Choose" }, { "" }); - Option StartingNutCapacity = Option::U8("Deku Nuts", { "None", "20 Deku Nuts", "30 Deku Nuts", "40 Deku Nuts" }, { "" }); - Option StartingOcarina = Option::U8("Ocarina", { "None", "Ocarina of Time" }, { "" }, OptionCategory::Toggle, 1); - Option StartingNotebook = Option::U8("Bomber's Notebook", { "None", "B. Notebook"}, { "" }); + Option StartingNutCapacity = Option::U8("Deku Nuts", { "None", "20 Deku Nuts", "30 Deku Nuts", "40 Deku Nuts" }, { "" }); + Option StartingOcarina = Option::U8("Ocarina", { "None", "Ocarina of Time" }, { "" }, OptionCategory::Setting, 1); + Option StartingNotebook = Option::U8("Bomber's Notebook", { "None", "B. Notebook"}, { "" }); Option StartingBombBag = Option::U8("Bomb Bag", { "None", "Bomb Bag 20", "Bomb Bag 30", "Bomb Bag 40" }, { "" }); Option StartingBombchus = Option::U8("Bombchus", { "None", "Bombchus" }, { "" }); Option StartingHookshot = Option::U8("Hookshot", { "None", "Hookshot" }, { "" }); @@ -153,8 +153,8 @@ namespace Settings { Option StartingGohtRemains = Option::U8("Goht's Remains", { "None", "Goht's R." }, { "" }); Option StartingGyorgRemains = Option::U8("Gyorg's Remains", { "None", "Gyorg's R." }, { "" }); Option StartingTwinmoldRemains = Option::U8("Twinmold's Remains", { "None", "TwinMold's R." }, { "" }); - Option StartingSwampToken = Option::U8("Swamp Skulltula Tokens", {/*Options 0-30 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0, false); - Option StartingOceanToken = Option::U8("Ocean Skulltula Tokens", {/*Options 0-30 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0, false); + Option StartingSwampToken = Option::U8("Swamp Skulltula Tokens", {/*Options 0-30 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0); + Option StartingOceanToken = Option::U8("Ocean Skulltula Tokens", {/*Options 0-30 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0); //Starting Masks Option StartingMaskToggle = Option::U8("Masks", { "All Off", "All On", "Choose" }, { "" }); Option StartingDekuMask = Option::U8("Deku Mask", { "None", "Deku M." }, { "" }); @@ -390,7 +390,7 @@ namespace Settings { Option BlastMaskCooldown = Option::U8("Blast Mask Cooldown", {"Default", "Short", "Very Short", "Instant"}, { blastDefault, blastShort, blastVeryShort, blastInstant }); Option UnderwaterOcarina = Option::Bool("Underwater Ocarina", { "No","Yes" }, { underwaterOcarinaDesc }, OptionCategory::Toggle); - Option FierceDeityAnywhere = Option::Bool("Fierce Deity Anywhere", { "No","Yes" }, { fierceDeityAnywhereDesc }, OptionCategory::Toggle); + Option FierceDeityAnywhere = Option::Bool("Fierce Deity Anywhere", { "No","Yes" }, { fierceDeityAnywhereDesc }); Option ProgressiveGildedSword = Option::Bool("Progressive Gilded Sword", { "Off", "On" }, { progressiveGildedSwordDesc }); Option StartingSpin = Option::Bool("Starting Spin", { "Vanilla", "Upgraded" }, { startingSpinDesc }); Option AmmoDrops = Option::U8("Ammo Drops", { "Off", "On" }, { ammoDropDesc }); @@ -1020,7 +1020,7 @@ namespace Settings { for (int i = 0; i <= 30; i++) { OtokenOptions.push_back(std::to_string(i)); } - StartingSwampToken.SetOptions(StokenOptions); + StartingSwampToken.SetOptions(StokenOptions); StartingOceanToken.SetOptions(OtokenOptions); //Create Location Exclude settings diff --git a/source/spoiler_log.cpp b/source/spoiler_log.cpp index 2e3b609..31825bf 100644 --- a/source/spoiler_log.cpp +++ b/source/spoiler_log.cpp @@ -461,7 +461,7 @@ static void WriteStartingInventory(tinyxml2::XMLDocument& spoilerLog) { for (size_t i = 0; i < Settings::startingInventoryInventory.size(); ++i) { const auto setting = Settings::startingInventoryInventory[i]; //Ignore no starting bottles and the Choose/All On toggles - if (setting->GetSelectedOptionIndex() == (u8)StartingBottleSetting::STARTINGBOTTLE_NONE || setting->GetSelectedOptionText() == "Choose" || setting->GetSelectedOptionText() == "All On") { + if (setting->GetSelectedOptionIndex() == (u8)StartingBottleSetting::STARTINGBOTTLE_NONE || setting->GetSelectedOptionText() == "Choose" || setting->GetSelectedOptionText() == "All On" || setting->GetSelectedOptionIndex() == 0) { continue; } @@ -510,6 +510,16 @@ static void WriteStartingInventory(tinyxml2::XMLDocument& spoilerLog) { node->SetText(setting->GetSelectedOptionText().c_str()); } + for (size_t i = 0; i < Settings::startingInventoryTokensFairys.size(); ++i) { + const auto setting = Settings::startingInventoryTokensFairys[i]; + if (setting->GetSelectedOptionIndex() == 0) { + continue; + } + auto node = parentNode->InsertNewChildElement("item"); + node->SetAttribute("name", setting->GetName().c_str()); + node->SetText(setting->GetSelectedOptionText().c_str()); + } + if (!parentNode->NoChildren()) { spoilerLog.RootElement()->InsertEndChild(parentNode); } @@ -629,7 +639,7 @@ bool SpoilerLog_Write() { rootNode->SetAttribute("seed", Settings::seed.c_str()); rootNode->SetAttribute("hash", GetRandomizerHashAsString().c_str()); - WriteSettings(spoilerLog); + WriteSettings(spoilerLog, true); WriteExcludedLocations(spoilerLog); WriteStartingInventory(spoilerLog); //WriteEnabledTricks(spoilerLog); From 2304398c10d310df653eed0af7725fe2f7572bab Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Sat, 19 Jul 2025 11:45:10 -0500 Subject: [PATCH 3/3] Ocarina Fix - Adjusts Ocarina override type - Update Z3DR --- Z3DR | 2 +- source/item_location.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Z3DR b/Z3DR index 5aecf7c..359db80 160000 --- a/Z3DR +++ b/Z3DR @@ -1 +1 @@ -Subproject commit 5aecf7cfa6e6a3ce78d30893b78a51973b1138ed +Subproject commit 359db8097d7ff547f795dce82b56e5fdcc285a45 diff --git a/source/item_location.cpp b/source/item_location.cpp index 94e0bf0..f826673 100644 --- a/source/item_location.cpp +++ b/source/item_location.cpp @@ -18,7 +18,7 @@ void LocationTable_Init() { //Happy Mask Salesman - Starting Items locationTable[HMS_SONG_OF_HEALING] = ItemLocation::Base (0x63, 0x54, false, "Song of Healing", HMS_SONG_OF_HEALING, SONG_OF_HEALING, {Category::cClockTower, Category::cDayOne, Category::cSong, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER); - locationTable[CLOCK_TOWER_OCARINA_OF_TIME] = ItemLocation::Collectable(0x19, 0x4C, false, "Ocarina of Time", CLOCK_TOWER_OCARINA_OF_TIME, OCARINA_OF_TIME, {Category::cClockTower, Category::cDayThree, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); + locationTable[CLOCK_TOWER_OCARINA_OF_TIME] = ItemLocation::Base (0x19, 0x4C, false, "Ocarina of Time", CLOCK_TOWER_OCARINA_OF_TIME, OCARINA_OF_TIME, {Category::cClockTower, Category::cDayThree, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); locationTable[HMS_DEKU_MASK] = ItemLocation::Base (0x63, 0x78, false, "Deku Mask", HMS_DEKU_MASK, DEKU_MASK, {Category::cClockTower, Category::cTransformMask, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); locationTable[HMS_BOMBERS_NOTEBOOK] = ItemLocation::Base (0x63, 0x50, false, "Bombers Notebook", HMS_BOMBERS_NOTEBOOK, BOMBERS_NOTEBOOK, {Category::cClockTower, Category::cDayOne, Category::cNotebook, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_INSIDE_CLOCKTOWER ); locationTable[HMS_STARTING_SWORD] = ItemLocation::Base (0x00, 0x37, false, "Starting Sword", HMS_STARTING_SWORD, PROGRESSIVE_SWORD, {Category::cClockTower, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(6), SpoilerCollectionCheckGroup::GROUP_NO_GROUP );