#include "static_data.h"
#include "z64save.h"
#include "context.h"
#include "dungeon.h"

std::array<Rando::Location, RC_MAX> Rando::StaticData::locationTable;
std::multimap<std::tuple<s16, s16, s32>, RandomizerCheck> Rando::StaticData::CheckFromActorMultimap;

std::vector<RandomizerCheck> Rando::StaticData::dungeonRewardLocations = {
    // Bosses
    RC_QUEEN_GOHMA,   RC_KING_DODONGO, RC_BARINADE,
    RC_PHANTOM_GANON, RC_VOLVAGIA,     RC_MORPHA,   RC_TWINROVA, RC_BONGO_BONGO,
};

using namespace Rando;

std::vector<RandomizerCheck> Rando::StaticData::GetPondFishLocations() {
    std::vector<RandomizerCheck> pondFishLocations = {};
    for (Location& location : locationTable) {
        if (location.GetRCType() == RCTYPE_FISH && location.GetScene() == SCENE_FISHING_POND && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
            pondFishLocations.push_back(location.GetRandomizerCheck());
        }
    }
    return pondFishLocations;
}
std::vector<RandomizerCheck> Rando::StaticData::GetOverworldFishLocations() {
    std::vector<RandomizerCheck> overworldFishLocations = {};
    for (Location& location : locationTable) {
        if (location.GetRCType() == RCTYPE_FISH && location.GetScene() != SCENE_FISHING_POND && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
            overworldFishLocations.push_back(location.GetRandomizerCheck());
        }
    }
    return overworldFishLocations;
}

std::vector<RandomizerCheck> Rando::StaticData::GetStaticHintLocations() {
    std::vector<RandomizerCheck> staticHintLocations = {};
    for (Location& location : locationTable) {
        if (location.GetRCType() == RCTYPE_STATIC_HINT && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
            staticHintLocations.push_back(location.GetRandomizerCheck());
        }
    }
    return staticHintLocations;
}

std::vector<RandomizerCheck> Rando::StaticData::GetScrubLocations() {
    std::vector<RandomizerCheck> scrubLocations = {};
    for (Location& location : locationTable) {
        if (location.GetRCType() == RCTYPE_SCRUB && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
            scrubLocations.push_back(location.GetRandomizerCheck());
        }
    }
    return scrubLocations;
}

std::vector<RandomizerCheck> Rando::StaticData::GetMerchantLocations() {
    std::vector<RandomizerCheck> scrubLocations = {};
    for (Location& location : locationTable) {
        if (location.GetRCType() == RCTYPE_MERCHANT && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
            scrubLocations.push_back(location.GetRandomizerCheck());
        }
    }
    return scrubLocations;
}

std::vector<RandomizerCheck> Rando::StaticData::GetAdultTradeLocations() {
    std::vector<RandomizerCheck> tradeLocations = {};
    for (Location& location : locationTable) {
        if (location.GetRCType() == RCTYPE_ADULT_TRADE && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
            tradeLocations.push_back(location.GetRandomizerCheck());
        }
    }
    return tradeLocations;
}

std::vector<RandomizerCheck> Rando::StaticData::GetGossipStoneLocations() {
    std::vector<RandomizerCheck> gossipStoneLocations = {};
    for (Location& location : locationTable) {
        if (location.GetRCType() == RCTYPE_GOSSIP_STONE && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
            gossipStoneLocations.push_back(location.GetRandomizerCheck());
        }
    }
    return gossipStoneLocations;
}

std::vector<RandomizerCheck> Rando::StaticData::GetShopLocations() {
    std::vector<RandomizerCheck> shopLocations = {};
    for (Location& location : locationTable) {
        if (location.GetRCType() == RCTYPE_SHOP && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
            shopLocations.push_back(location.GetRandomizerCheck());
        }
    }
    return shopLocations;
}

std::vector<RandomizerCheck> Rando::StaticData::GetAllDungeonLocations() {
    auto ctx = Rando::Context::GetInstance();
    std::vector<RandomizerCheck> dungeonLocations;
    for (const auto dungeon : ctx->GetDungeons()->GetDungeonList()) {
        std::vector<RandomizerCheck> dungeonLoc = dungeon->GetDungeonLocations();
        dungeonLocations.insert(dungeonLocations.end(), dungeonLoc.begin(), dungeonLoc.end());
    }
    return dungeonLocations;
}

std::vector<RandomizerCheck> Rando::StaticData::GetOverworldFairyLocations() {
    std::vector<RandomizerCheck> fairyLocations = {};
    for (Location& location : locationTable) {
        if (location.GetRCType() == RCTYPE_FAIRY && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
            fairyLocations.push_back(location.GetRandomizerCheck());
        }
    }
    return fairyLocations;
}

void Rando::StaticData::InitLocationTable() { //                                                      Randomizer Check                                                 Quest            Type                                Area                                 Actor ID              Scene ID                            Params                        Flags Short Name                                     Hint Text Key                                                    Vanilla Item                                                        Spoiler Collection Check                                                                                                      Vanilla Progression  Price
    // clang-format off
    locationTable[RC_UNKNOWN_CHECK] =                                                  Location::Base(RC_UNKNOWN_CHECK,                                                RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_INVALID,                      ACTOR_ID_MAX,         SCENE_ID_MAX,                       0x00,                               "Invalid Location", "Invalid Location",        RHT_NONE,                                                        RG_NONE);
    // Kokiri Forest
    locationTable[RC_KF_KOKIRI_SWORD_CHEST] =                                         Location::Chest(RC_KF_KOKIRI_SWORD_CHEST,                                        RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_KOKIRI_FOREST,                1248,                         0x00, "Kokiri Sword Chest",                          RHT_KF_KOKIRI_SWORD_CHEST,                                       RG_KOKIRI_SWORD,                                                                                                                                                                                  true);
    locationTable[RC_KF_MIDOS_TOP_LEFT_CHEST] =                                       Location::Chest(RC_KF_MIDOS_TOP_LEFT_CHEST,                                      RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_MIDOS_HOUSE,                  22944,                        0x00, "Mido Top Left Chest",                         RHT_KF_MIDOS_TOP_LEFT_CHEST,                                     RG_BLUE_RUPEE);
    locationTable[RC_KF_MIDOS_TOP_RIGHT_CHEST] =                                      Location::Chest(RC_KF_MIDOS_TOP_RIGHT_CHEST,                                     RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_MIDOS_HOUSE,                  22945,                        0x01, "Mido Top Right Chest",                        RHT_KF_MIDOS_TOP_RIGHT_CHEST,                                    RG_BLUE_RUPEE);
    locationTable[RC_KF_MIDOS_BOTTOM_LEFT_CHEST] =                                    Location::Chest(RC_KF_MIDOS_BOTTOM_LEFT_CHEST,                                   RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_MIDOS_HOUSE,                  22914,                        0x02, "Mido Bottom Left Chest",                      RHT_KF_MIDOS_BOTTOM_LEFT_CHEST,                                  RG_GREG_RUPEE);
    locationTable[RC_KF_MIDOS_BOTTOM_RIGHT_CHEST] =                                   Location::Chest(RC_KF_MIDOS_BOTTOM_RIGHT_CHEST,                                  RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_MIDOS_HOUSE,                  22787,                        0x03, "Mido Bottom Right Chest",                     RHT_KF_MIDOS_BOTTOM_RIGHT_CHEST,                                 RG_RECOVERY_HEART);
    locationTable[RC_KF_STORMS_GROTTO_CHEST] =                                        Location::Chest(RC_KF_STORMS_GROTTO_CHEST,                                       RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_KOKIRI_FOREST,                ACTOR_EN_BOX,         SCENE_GROTTOS,                      22988,                        0x0C, "Storms Grotto Chest",                         RHT_KF_STORMS_GROTTO_CHEST,                                      RG_RED_RUPEE);
    // Lost Woods
    locationTable[RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST] =                                Location::Chest(RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST,                               RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_LOST_WOODS,                   ACTOR_EN_BOX,         SCENE_GROTTOS,                      22964,                        0x14, "Near Shortcuts Grotto Chest",                 RHT_KF_STORMS_GROTTO_CHEST,                                      RG_RED_RUPEE);
    locationTable[RC_LW_SKULL_KID] =                                                   Location::Base(RC_LW_SKULL_KID,                                                 RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_LOST_WOODS,                   0x00,                               "Skull Kid",                                   RHT_LW_SKULL_KID,                                                RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::ItemGetInf(22),                                                                                       true);
    locationTable[RC_LW_TRADE_COJIRO] =                                                Location::Base(RC_LW_TRADE_COJIRO,                                              RCQUEST_BOTH,    RCTYPE_ADULT_TRADE,                                                      ACTOR_ID_MAX,         SCENE_LOST_WOODS,                   0x00,                               "Trade Cojiro",                                RHT_LW_TRADE_COJIRO,                                             RG_ODD_MUSHROOM,                                        SpoilerCollectionCheck::RandomizerInf(RAND_INF_ADULT_TRADES_LW_TRADE_COJIRO),                                                 true);
    locationTable[RC_LW_TRADE_ODD_POTION] =                                            Location::Base(RC_LW_TRADE_ODD_POTION,                                          RCQUEST_BOTH,    RCTYPE_ADULT_TRADE,                                                      ACTOR_ID_MAX,         SCENE_LOST_WOODS,                   0x00,                               "Trade Odd Potion",                            RHT_LW_TRADE_COJIRO,                                             RG_POACHERS_SAW,                                        SpoilerCollectionCheck::ItemGetInf(49),                                                                                       true);
    locationTable[RC_LW_OCARINA_MEMORY_GAME] =                                         Location::Base(RC_LW_OCARINA_MEMORY_GAME,                                       RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_LOST_WOODS,                   0x00,                               "Ocarina Memory Game",                         RHT_LW_OCARINA_MEMORY_GAME,                                      RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::ItemGetInf(23),                                                                                       true);
    locationTable[RC_LW_TARGET_IN_WOODS] =                                             Location::Base(RC_LW_TARGET_IN_WOODS,                                           RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_LOST_WOODS,                   0x00,                               "Target in Woods",                             RHT_LW_TARGET_IN_WOODS,                                          RG_PROGRESSIVE_SLINGSHOT,                               SpoilerCollectionCheck::ItemGetInf(29),                                                                                       true);
    locationTable[RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT] =                          Location::Base(RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT,                        RCQUEST_BOTH,    RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_LOST_WOODS,                   0x00,                               "Deku Scrub Near Deku Theater Right",          RHT_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT,                       RG_BUY_DEKU_NUTS_5,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT),                       false, 20);
    locationTable[RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT] =                           Location::Base(RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT,                         RCQUEST_BOTH,    RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_LOST_WOODS,                   0x01,                               "Deku Scrub Near Deku Theater Left",           RHT_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT,                        RG_BUY_DEKU_STICK_1,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT),                        false, 15);
    locationTable[RC_LW_DEKU_SCRUB_NEAR_BRIDGE] =                                      Location::Base(RC_LW_DEKU_SCRUB_NEAR_BRIDGE,                                    RCQUEST_BOTH,    RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_LOST_WOODS,                   0x09,                               "Deku Scrub Near Bridge",                      RHT_LW_DEKU_SCRUB_NEAR_BRIDGE,                                   RG_PROGRESSIVE_STICK_UPGRADE,                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_BRIDGE),                                   true,  40);
    locationTable[RC_LW_DEKU_SCRUB_GROTTO_REAR] =                                      Location::Base(RC_LW_DEKU_SCRUB_GROTTO_REAR,                                    RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_LOST_WOODS,                   ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x03, 0xF5),       "Deku Scrub Grotto Rear",                      RHT_LW_DEKU_SCRUB_GROTTO_REAR,                                   RG_BUY_DEKU_SEEDS_30,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_REAR),                                   false, 40);
    locationTable[RC_LW_DEKU_SCRUB_GROTTO_FRONT] =                                     Location::Base(RC_LW_DEKU_SCRUB_GROTTO_FRONT,                                   RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_LOST_WOODS,                   ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x0A, 0xF5),       "Deku Scrub Grotto Front",                     RHT_LW_DEKU_SCRUB_GROTTO_FRONT,                                  RG_PROGRESSIVE_NUT_UPGRADE,                             SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_FRONT),                                  false, 40);
    locationTable[RC_DEKU_THEATER_SKULL_MASK] =                                        Location::Base(RC_DEKU_THEATER_SKULL_MASK,                                      RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_LOST_WOODS,                   ACTOR_ID_MAX,         SCENE_GROTTOS,                      0x00,                               "Deku Theater Skull Mask",                     RHT_DEKU_THEATER_SKULL_MASK,                                     RG_PROGRESSIVE_STICK_UPGRADE,                           SpoilerCollectionCheck::ItemGetInf(ITEMGETINF_OBTAINED_STICK_UPGRADE_FROM_STAGE),                                             true);
    locationTable[RC_DEKU_THEATER_MASK_OF_TRUTH] =                                     Location::Base(RC_DEKU_THEATER_MASK_OF_TRUTH,                                   RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_LOST_WOODS,                   ACTOR_ID_MAX,         SCENE_GROTTOS,                      0x00,                               "Deku Theater Mask of Truth",                  RHT_DEKU_THEATER_MASK_OF_TRUTH,                                  RG_PROGRESSIVE_NUT_UPGRADE,                             SpoilerCollectionCheck::ItemGetInf(ITEMGETINF_OBTAINED_NUT_UPGRADE_FROM_STAGE),                                               true);
    // Sacred Forest Meadow
    locationTable[RC_SFM_WOLFOS_GROTTO_CHEST] =                                       Location::Chest(RC_SFM_WOLFOS_GROTTO_CHEST,                                      RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_SACRED_FOREST_MEADOW,         ACTOR_EN_BOX,         SCENE_GROTTOS,                      31409,                        0x11, "Wolfos Grotto Chest",                         RHT_SFM_WOLFOS_GROTTO_CHEST,                                     RG_PURPLE_RUPEE);
    locationTable[RC_SFM_DEKU_SCRUB_GROTTO_REAR] =                                     Location::Base(RC_SFM_DEKU_SCRUB_GROTTO_REAR,                                   RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_SACRED_FOREST_MEADOW,         ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x07, 0xEE),       "Deku Scrub Grotto Rear",                      RHT_SFM_DEKU_SCRUB_GROTTO_REAR,                                  RG_BUY_RED_POTION_40,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_SFM_DEKU_SCRUB_GROTTO_REAR),                                  false, 40);
    locationTable[RC_SFM_DEKU_SCRUB_GROTTO_FRONT] =                                    Location::Base(RC_SFM_DEKU_SCRUB_GROTTO_FRONT,                                  RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_SACRED_FOREST_MEADOW,         ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x08, 0xEE),       "Deku Scrub Grotto Front",                     RHT_SFM_DEKU_SCRUB_GROTTO_FRONT,                                 RG_BUY_GREEN_POTION,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_SFM_DEKU_SCRUB_GROTTO_FRONT),                                 false, 40);
    // Hyrule Field
    locationTable[RC_HF_SOUTHEAST_GROTTO_CHEST] =                                     Location::Chest(RC_HF_SOUTHEAST_GROTTO_CHEST,                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_HYRULE_FIELD,                 ACTOR_EN_BOX,         SCENE_GROTTOS,                      22978,                        0x02, "Southeast Grotto Chest",                      RHT_HF_SOUTHEAST_GROTTO_CHEST,                                   RG_RED_RUPEE);
    locationTable[RC_HF_OPEN_GROTTO_CHEST] =                                          Location::Chest(RC_HF_OPEN_GROTTO_CHEST,                                         RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_HYRULE_FIELD,                 ACTOR_EN_BOX,         SCENE_GROTTOS,                      22947,                        0x03, "Open Grotto Chest",                           RHT_HF_OPEN_GROTTO_CHEST,                                        RG_BLUE_RUPEE);
    locationTable[RC_HF_NEAR_MARKET_GROTTO_CHEST] =                                   Location::Chest(RC_HF_NEAR_MARKET_GROTTO_CHEST,                                  RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_HYRULE_FIELD,                 ACTOR_EN_BOX,         SCENE_GROTTOS,                      22944,                        0x00, "Near Market Grotto Chest",                    RHT_HF_NEAR_MARKET_GROTTO_CHEST,                                 RG_BLUE_RUPEE);
    locationTable[RC_HF_OCARINA_OF_TIME_ITEM] =                                        Location::Base(RC_HF_OCARINA_OF_TIME_ITEM,                                      RCQUEST_BOTH,    RCTYPE_OCARINA,                                                          ACTOR_ID_MAX,         SCENE_HYRULE_FIELD,                 0x00,                               "Ocarina of Time Item",                        RHT_HF_OCARINA_OF_TIME_ITEM,                                     RG_PROGRESSIVE_OCARINA,                                 SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_OBTAINED_OCARINA_OF_TIME));
    locationTable[RC_HF_TEKTITE_GROTTO_FREESTANDING_POH] =                      Location::Collectable(RC_HF_TEKTITE_GROTTO_FREESTANDING_POH,                           RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_HYRULE_FIELD,                 ACTOR_EN_ITEM00,      SCENE_GROTTOS,                      262,                          0x01, "Tektite Grotto Freestanding PoH",             RHT_HF_TEKTITE_GROTTO_FREESTANDING_POH,                          RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_HF_DEKU_SCRUB_GROTTO] =                                           Location::Base(RC_HF_DEKU_SCRUB_GROTTO,                                         RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_HYRULE_FIELD,                 ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x02, 0xE6),       "Deku Scrub Grotto",                           RHT_HF_DEKU_SCRUB_GROTTO,                                        RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_HF_DEKU_SCRUB_GROTTO),                                        true,  10);
    // Lake Hylia
    locationTable[RC_LH_CHILD_FISHING] =                                               Location::Base(RC_LH_CHILD_FISHING,                                             RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_FISHING_POND,                 0x00,                               "Child Fishing",                               RHT_LH_CHILD_FISHING,                                            RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::RandomizerInf(RAND_INF_CHILD_FISHING),                                                                true);
    locationTable[RC_LH_ADULT_FISHING] =                                               Location::Base(RC_LH_ADULT_FISHING,                                             RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_FISHING_POND,                 0x00,                               "Adult Fishing",                               RHT_LH_ADULT_FISHING,                                            RG_PROGRESSIVE_SCALE,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_ADULT_FISHING),                                                                true);
    locationTable[RC_LH_HYRULE_LOACH] =                                                Location::Base(RC_LH_HYRULE_LOACH,                                              RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_FISHING_POND,                 0x00,                               "Hyrule Loach Reward",                         RHT_LH_HYRULE_LOACH,                                             RG_PURPLE_RUPEE,                                        SpoilerCollectionCheck::RandomizerInf(RAND_INF_CAUGHT_LOACH));
    locationTable[RC_LH_LAB_DIVE] =                                                    Location::Base(RC_LH_LAB_DIVE,                                                  RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_LAKESIDE_LABORATORY,          0x00,                               "Lab Dive",                                    RHT_LH_LAB_DIVE,                                                 RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::ItemGetInf(16),                                                                                       true);
    locationTable[RC_LH_TRADE_FROG] =                                                  Location::Base(RC_LH_TRADE_FROG,                                                RCQUEST_BOTH,    RCTYPE_ADULT_TRADE,                                                      ACTOR_ID_MAX,         SCENE_LAKESIDE_LABORATORY,          0x00,                               "Lab Trade Eyeball Frog",                      RHT_LH_TRADE_FROG,                                               RG_EYEDROPS,                                            SpoilerCollectionCheck::RandomizerInf(RAND_INF_ADULT_TRADES_LH_TRADE_FROG),                                                   true);
    locationTable[RC_LH_UNDERWATER_ITEM] =                                             Location::Base(RC_LH_UNDERWATER_ITEM,                                           RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_LAKE_HYLIA,                   0x00,                               "Underwater Item",                             RHT_LH_UNDERWATER_ITEM,                                          RG_RUTOS_LETTER,                                        SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_OBTAINED_RUTOS_LETTER),                                                       true);
    locationTable[RC_LH_SUN] =                                                         Location::Base(RC_LH_SUN,                                                       RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_LAKE_HYLIA,                   0x00,                               "Sun",                                         RHT_LH_SUN,                                                      RG_FIRE_ARROWS,                                         SpoilerCollectionCheck::Chest(0x57, 0x1F),                                                                                    true);
    locationTable[RC_LH_FREESTANDING_POH] =                                     Location::Collectable(RC_LH_FREESTANDING_POH,                                          RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_LAKE_HYLIA,                   7686,                         0x1E, "Freestanding PoH",                            RHT_LH_FREESTANDING_POH,                                         RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_LH_DEKU_SCRUB_GROTTO_LEFT] =                                      Location::Base(RC_LH_DEKU_SCRUB_GROTTO_LEFT,                                    RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_LAKE_HYLIA,                   ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x00, 0xEF),       "Deku Scrub Grotto Left",                      RHT_LH_DEKU_SCRUB_GROTTO_LEFT,                                   RG_BUY_DEKU_NUTS_5,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LH_DEKU_SCRUB_GROTTO_LEFT),                                   false, 20);
    locationTable[RC_LH_DEKU_SCRUB_GROTTO_RIGHT] =                                     Location::Base(RC_LH_DEKU_SCRUB_GROTTO_RIGHT,                                   RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_LAKE_HYLIA,                   ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x05, 0xEF),       "Deku Scrub Grotto Right",                     RHT_LH_DEKU_SCRUB_GROTTO_RIGHT,                                  RG_BUY_BOMBS_535,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LH_DEKU_SCRUB_GROTTO_RIGHT),                                  false, 40);
    locationTable[RC_LH_DEKU_SCRUB_GROTTO_CENTER] =                                    Location::Base(RC_LH_DEKU_SCRUB_GROTTO_CENTER,                                  RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_LAKE_HYLIA,                   ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x03, 0xEF),       "Deku Scrub Grotto Center",                    RHT_LH_DEKU_SCRUB_GROTTO_CENTER,                                 RG_BUY_DEKU_SEEDS_30,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LH_DEKU_SCRUB_GROTTO_CENTER),                                 false, 40);
    // Gerudo Valley
    locationTable[RC_GV_CHEST] =                                                      Location::Chest(RC_GV_CHEST,                                                     RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_VALLEY,                23200,                        0x00, "Chest",                                       RHT_GV_CHEST,                                                    RG_PURPLE_RUPEE);
    locationTable[RC_GV_TRADE_SAW] =                                                   Location::Base(RC_GV_TRADE_SAW,                                                 RCQUEST_BOTH,    RCTYPE_ADULT_TRADE,                                                      ACTOR_ID_MAX,         SCENE_GERUDO_VALLEY,                0x00,                               "Trade Saw",                                   RHT_GV_TRADE_SAW,                                                RG_BROKEN_SWORD,                                        SpoilerCollectionCheck::RandomizerInf(RAND_INF_ADULT_TRADES_GV_TRADE_SAW),                                                    true);
    locationTable[RC_GV_WATERFALL_FREESTANDING_POH] =                           Location::Collectable(RC_GV_WATERFALL_FREESTANDING_POH,                                RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_GERUDO_VALLEY,                262,                          0x01, "Waterfall Freestanding PoH",                  RHT_GV_WATERFALL_FREESTANDING_POH,                               RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_GV_CRATE_FREESTANDING_POH] =                               Location::Collectable(RC_GV_CRATE_FREESTANDING_POH,                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_GERUDO_VALLEY,                518,                          0x02, "Crate Freestanding PoH",                      RHT_GV_CRATE_FREESTANDING_POH,                                   RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_GV_DEKU_SCRUB_GROTTO_REAR] =                                      Location::Base(RC_GV_DEKU_SCRUB_GROTTO_REAR,                                    RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_GERUDO_VALLEY,                ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x07, 0xF0),       "Deku Scrub Grotto Rear",                      RHT_GV_DEKU_SCRUB_GROTTO_REAR,                                   RG_BUY_RED_POTION_40,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GV_DEKU_SCRUB_GROTTO_REAR),                                   false, 40);
    locationTable[RC_GV_DEKU_SCRUB_GROTTO_FRONT] =                                     Location::Base(RC_GV_DEKU_SCRUB_GROTTO_FRONT,                                   RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_GERUDO_VALLEY,                ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x08, 0xF0),       "Deku Scrub Grotto Front",                     RHT_GV_DEKU_SCRUB_GROTTO_FRONT,                                  RG_BUY_GREEN_POTION,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GV_DEKU_SCRUB_GROTTO_FRONT),                                  false, 40);
    // Gerudo Fortress
    locationTable[RC_GF_CHEST] =                                                      Location::Chest(RC_GF_CHEST,                                                     RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDOS_FORTRESS,             1984,                         0x00, "Chest",                                       RHT_GF_CHEST,                                                    RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_GF_HBA_1000_POINTS] =                                             Location::Base(RC_GF_HBA_1000_POINTS,                                           RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_GERUDOS_FORTRESS,             0x00,                               "GF HBA 1000 Points",                          RHT_GF_HBA_1000_POINTS,                                          RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::InfTable(INFTABLE_190),                                                                               true);
    locationTable[RC_GF_HBA_1500_POINTS] =                                             Location::Base(RC_GF_HBA_1500_POINTS,                                           RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_GERUDOS_FORTRESS,             0x00,                               "GF HBA 1500 Points",                          RHT_GF_HBA_1500_POINTS,                                          RG_PROGRESSIVE_BOW,                                     SpoilerCollectionCheck::ItemGetInf(15),                                                                                       true);
    // RandoTodo: Do we replace these with the RC_HIDEOUT keys or keep these?
    locationTable[RC_GF_GERUDO_MEMBERSHIP_CARD] =                                      Location::Base(RC_GF_GERUDO_MEMBERSHIP_CARD,                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_THIEVES_HIDEOUT,              0x00,                               "GF Gerudo Membership Card",                   RHT_GF_GERUDO_MEMBERSHIP_CARD,                                   RG_GERUDO_MEMBERSHIP_CARD,                              SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ITEM_FROM_LEADER_OF_FORTRESS),                                              true);
    locationTable[RC_GF_NORTH_F1_CARPENTER] =                                   Location::Collectable(RC_GF_NORTH_F1_CARPENTER,                                        RCQUEST_BOTH,    RCTYPE_GF_KEY,                                                           ACTOR_EN_ITEM00,      SCENE_THIEVES_HIDEOUT,              3089,                         0x0C, "GF North F1 Carpenter",                       RHT_GF_NORTH_F1_CARPENTER,                                       RG_GERUDO_FORTRESS_SMALL_KEY,                                                                                                                                                         true);
    locationTable[RC_GF_NORTH_F2_CARPENTER] =                                   Location::Collectable(RC_GF_NORTH_F2_CARPENTER,                                        RCQUEST_BOTH,    RCTYPE_GF_KEY,                                                           ACTOR_EN_ITEM00,      SCENE_THIEVES_HIDEOUT,              2577,                         0x0A, "GF North F2 Carpenter",                       RHT_GF_NORTH_F2_CARPENTER,                                       RG_GERUDO_FORTRESS_SMALL_KEY,                                                                                                                                                         true);
    locationTable[RC_GF_SOUTH_F1_CARPENTER] =                                   Location::Collectable(RC_GF_SOUTH_F1_CARPENTER,                                        RCQUEST_BOTH,    RCTYPE_GF_KEY,                                                           ACTOR_EN_ITEM00,      SCENE_THIEVES_HIDEOUT,              3601,                         0x0E, "GF South F1 Carpenter",                       RHT_GF_SOUTH_F1_CARPENTER,                                       RG_GERUDO_FORTRESS_SMALL_KEY,                                                                                                                                                         true);
    locationTable[RC_GF_SOUTH_F2_CARPENTER] =                                   Location::Collectable(RC_GF_SOUTH_F2_CARPENTER,                                        RCQUEST_BOTH,    RCTYPE_GF_KEY,                                                           ACTOR_EN_ITEM00,      SCENE_THIEVES_HIDEOUT,              3857,                         0x0F, "GF South F2 Carpenter",                       RHT_GF_SOUTH_F2_CARPENTER,                                       RG_GERUDO_FORTRESS_SMALL_KEY,                                                                                                                                                         true);
    // Haunted Wasteland
    locationTable[RC_WASTELAND_CHEST] =                                               Location::Chest(RC_WASTELAND_CHEST,                                              RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_WASTELAND,                    ACTOR_EN_BOX,         SCENE_HAUNTED_WASTELAND,            -30048,                       0x00, "Chest",                                       RHT_WASTELAND_CHEST,                                             RG_PURPLE_RUPEE);
    locationTable[RC_WASTELAND_BOMBCHU_SALESMAN] =                                     Location::Base(RC_WASTELAND_BOMBCHU_SALESMAN,                                   RCQUEST_BOTH,    RCTYPE_MERCHANT,                    RCAREA_WASTELAND,                    ACTOR_ID_MAX,         SCENE_HAUNTED_WASTELAND,            0x00,                               "Carpet Salesman",                             RHT_WASTELAND_BOMBCHU_SALESMAN,                                  RG_BUY_BOMBCHUS_10,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_MERCHANTS_CARPET_SALESMAN),                                                    false, 200);
    // Desert Colossus
    locationTable[RC_COLOSSUS_FREESTANDING_POH] =                               Location::Collectable(RC_COLOSSUS_FREESTANDING_POH,                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_DESERT_COLOSSUS,              3334,                         0x0D, "Freestanding PoH",                            RHT_COLOSSUS_FREESTANDING_POH,                                   RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR] =                                Location::Base(RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR,                              RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_DESERT_COLOSSUS,              ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x07, 0xFD),       "Deku Scrub Grotto Rear",                      RHT_COLOSSUS_DEKU_SCRUB_GROTTO_REAR,                             RG_BUY_RED_POTION_40,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_REAR),                             false, 40);
    locationTable[RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT] =                               Location::Base(RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT,                             RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_DESERT_COLOSSUS,              ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x08, 0xFD),       "Deku Scrub Grotto Front",                     RHT_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT,                            RG_BUY_GREEN_POTION,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT),                            false, 40);
    // Market
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_REWARD] =                             Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_REWARD,                            RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Treasure Chest Game Reward",                  RHT_MARKET_TREASURE_CHEST_GAME_REWARD,                           RG_TREASURE_GAME_HEART,                                 SpoilerCollectionCheck::ItemGetInf(27),                                                                                       true);
    locationTable[RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE] =                             Location::Base(RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE,                           RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_BOMBCHU_BOWLING_ALLEY,        0x00,                               "Bombchu Bowling First Prize",                 RHT_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE,                          RG_PROGRESSIVE_BOMB_BAG,                                SpoilerCollectionCheck::ItemGetInf(17),                                                                                       true);
    locationTable[RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE] =                            Location::Base(RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE,                          RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_BOMBCHU_BOWLING_ALLEY,        0x00,                               "Bombchu Bowling Second Prize",                RHT_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE,                         RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::ItemGetInf(18),                                                                                       true);
    locationTable[RC_MARKET_LOST_DOG] =                                                Location::Base(RC_MARKET_LOST_DOG,                                              RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_DOG_LADY_HOUSE,               0x00,                               "Lost Dog",                                    RHT_MARKET_LOST_DOG,                                             RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::InfTable(INFTABLE_191),                                                                               true);
    locationTable[RC_MARKET_SHOOTING_GALLERY_REWARD] =                                 Location::Base(RC_MARKET_SHOOTING_GALLERY_REWARD,                               RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_MARKET,                       ACTOR_ID_MAX,         SCENE_SHOOTING_GALLERY,             0x00,                               "Shooting Gallery",                            RHT_MARKET_SHOOTING_GALLERY_REWARD,                              RG_PROGRESSIVE_SLINGSHOT,                               SpoilerCollectionCheck::ItemGetInf(ITEMGETINF_0D),                                                                            true);
    locationTable[RC_MARKET_10_BIG_POES] =                                             Location::Base(RC_MARKET_10_BIG_POES,                                           RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_MARKET_GUARD_HOUSE,           0x00,                               "10 Big Poes",                                 RHT_MARKET_10_BIG_POES,                                          RG_EMPTY_BOTTLE,                                        SpoilerCollectionCheck::RandomizerInf(RAND_INF_10_BIG_POES),                                                                  true);
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_1] =                             Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_1,                            RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game First Room Item",                  RHT_MARKET_TREASURE_CHEST_GAME_ITEM_1,                           RG_GREEN_RUPEE,                                         SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_1));
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_2] =                             Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_2,                            RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game Second Room Item",                 RHT_MARKET_TREASURE_CHEST_GAME_ITEM_2,                           RG_GREEN_RUPEE,                                         SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_2));
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_3] =                             Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_3,                            RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game Third Room Item",                  RHT_MARKET_TREASURE_CHEST_GAME_ITEM_3,                           RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_3));
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_4] =                             Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_4,                            RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game Fourth Room Item",                 RHT_MARKET_TREASURE_CHEST_GAME_ITEM_4,                           RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_4));
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_5] =                             Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_5,                            RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game Fifth Room Item",                  RHT_MARKET_TREASURE_CHEST_GAME_ITEM_5,                           RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_5));
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_1] =                              Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_1,                             RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game First Room Key",                   RHT_MARKET_TREASURE_CHEST_GAME_KEY_1,                            RG_TREASURE_GAME_SMALL_KEY,                             SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_1));
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_2] =                              Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_2,                             RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game Second Room Key",                  RHT_MARKET_TREASURE_CHEST_GAME_KEY_2,                            RG_TREASURE_GAME_SMALL_KEY,                             SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_2));
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_3] =                              Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_3,                             RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game Third Room Key",                   RHT_MARKET_TREASURE_CHEST_GAME_KEY_3,                            RG_TREASURE_GAME_SMALL_KEY,                             SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_3));
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_4] =                              Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_4,                             RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game Fourth Room Key",                  RHT_MARKET_TREASURE_CHEST_GAME_KEY_4,                            RG_TREASURE_GAME_SMALL_KEY,                             SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_4));
    locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_5] =                              Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_5,                             RCQUEST_BOTH,    RCTYPE_CHEST_GAME,                                                       ACTOR_EN_BOX,         SCENE_TREASURE_BOX_SHOP,            0x00,                               "Chest Game Fifth Room Key",                   RHT_MARKET_TREASURE_CHEST_GAME_KEY_5,                            RG_TREASURE_GAME_SMALL_KEY,                             SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_5));
    // Hyrule Castle
    locationTable[RC_HC_MALON_EGG] =                                                   Location::Base(RC_HC_MALON_EGG,                                                 RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_HYRULE_CASTLE,                0x00,                               "Malon Egg",                                   RHT_HC_MALON_EGG,                                                RG_WEIRD_EGG,                                           SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_OBTAINED_POCKET_EGG),                                                         true);
    locationTable[RC_HC_ZELDAS_LETTER] =                                               Location::Base(RC_HC_ZELDAS_LETTER,                                             RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_CASTLE_COURTYARD_ZELDA,       0x00,                               "Zeldas Letter",                               RHT_HC_ZELDAS_LETTER,                                            RG_ZELDAS_LETTER,                                       SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER),                                                      true);
    // Kakariko
    locationTable[RC_KAK_REDEAD_GROTTO_CHEST] =                                       Location::Chest(RC_KAK_REDEAD_GROTTO_CHEST,                                      RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_KAKARIKO_VILLAGE,             ACTOR_EN_BOX,         SCENE_GROTTOS,                      31434,                        0x0A, "Redead Grotto Chest",                         RHT_KAK_REDEAD_GROTTO_CHEST,                                     RG_HUGE_RUPEE);
    locationTable[RC_KAK_OPEN_GROTTO_CHEST] =                                         Location::Chest(RC_KAK_OPEN_GROTTO_CHEST,                                        RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_KAKARIKO_VILLAGE,             ACTOR_EN_BOX,         SCENE_GROTTOS,                      22984,                        0x08, "Open Grotto Chest",                           RHT_KAK_OPEN_GROTTO_CHEST,                                       RG_RED_RUPEE);
    locationTable[RC_KAK_10_GOLD_SKULLTULA_REWARD] =                                   Location::Base(RC_KAK_10_GOLD_SKULLTULA_REWARD,                                 RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_HOUSE_OF_SKULLTULA,           0x00,                               "10 Gold Skulltula Reward",                    RHT_KAK_10_GOLD_SKULLTULA_REWARD,                                RG_PROGRESSIVE_WALLET,                                  SpoilerCollectionCheck::EventChkInf(0xDA),                                                                                    true);
    locationTable[RC_KAK_20_GOLD_SKULLTULA_REWARD] =                                   Location::Base(RC_KAK_20_GOLD_SKULLTULA_REWARD,                                 RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_HOUSE_OF_SKULLTULA,           0x00,                               "20 Gold Skulltula Reward",                    RHT_KAK_20_GOLD_SKULLTULA_REWARD,                                RG_STONE_OF_AGONY,                                      SpoilerCollectionCheck::EventChkInf(0xDB),                                                                                    true);
    locationTable[RC_KAK_30_GOLD_SKULLTULA_REWARD] =                                   Location::Base(RC_KAK_30_GOLD_SKULLTULA_REWARD,                                 RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_HOUSE_OF_SKULLTULA,           0x00,                               "30 Gold Skulltula Reward",                    RHT_KAK_30_GOLD_SKULLTULA_REWARD,                                RG_PROGRESSIVE_WALLET,                                  SpoilerCollectionCheck::EventChkInf(0xDC),                                                                                    true);
    locationTable[RC_KAK_40_GOLD_SKULLTULA_REWARD] =                                   Location::Base(RC_KAK_40_GOLD_SKULLTULA_REWARD,                                 RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_HOUSE_OF_SKULLTULA,           0x00,                               "40 Gold Skulltula Reward",                    RHT_KAK_40_GOLD_SKULLTULA_REWARD,                                RG_BOMBCHU_10,                                          SpoilerCollectionCheck::EventChkInf(0xDD));
    locationTable[RC_KAK_50_GOLD_SKULLTULA_REWARD] =                                   Location::Base(RC_KAK_50_GOLD_SKULLTULA_REWARD,                                 RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_HOUSE_OF_SKULLTULA,           0x00,                               "50 Gold Skulltula Reward",                    RHT_KAK_50_GOLD_SKULLTULA_REWARD,                                RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::EventChkInf(0xDE),                                                                                    true);
    locationTable[RC_KAK_100_GOLD_SKULLTULA_REWARD] =                                  Location::Base(RC_KAK_100_GOLD_SKULLTULA_REWARD,                                RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_HOUSE_OF_SKULLTULA,           0x00,                               "100 Gold Skulltula Reward",                   RHT_KAK_100_GOLD_SKULLTULA_REWARD,                               RG_HUGE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_100_GOLD_SKULLTULA_REWARD));
    locationTable[RC_KAK_MAN_ON_ROOF] =                                                Location::Base(RC_KAK_MAN_ON_ROOF,                                              RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_KAKARIKO_VILLAGE,             0x00,                               "Man on Roof",                                 RHT_KAK_MAN_ON_ROOF,                                             RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::ItemGetInf(21),                                                                                       true);
    locationTable[RC_KAK_SHOOTING_GALLERY_REWARD] =                                    Location::Base(RC_KAK_SHOOTING_GALLERY_REWARD,                                  RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_KAKARIKO_VILLAGE,             ACTOR_ID_MAX,         SCENE_SHOOTING_GALLERY,             0x00,                               "Shooting Gallery Reward",                     RHT_KAK_SHOOTING_GALLERY_REWARD,                                 RG_PROGRESSIVE_BOW,                                     SpoilerCollectionCheck::ItemGetInf(ITEMGETINF_0E),                                                                            true);
    locationTable[RC_KAK_TRADE_ODD_MUSHROOM] =                                         Location::Base(RC_KAK_TRADE_ODD_MUSHROOM,                                       RCQUEST_BOTH,    RCTYPE_ADULT_TRADE,                                                      ACTOR_ID_MAX,         SCENE_POTION_SHOP_GRANNY,           0x00,                               "Trade Odd Mushroom",                          RHT_KAK_TRADE_ODD_MUSHROOM,                                      RG_ODD_POTION,                                          SpoilerCollectionCheck::ItemGetInf(48),                                                                                       true);
    locationTable[RC_KAK_GRANNYS_SHOP] =                                               Location::Base(RC_KAK_GRANNYS_SHOP,                                             RCQUEST_BOTH,    RCTYPE_MERCHANT,                                                         ACTOR_ID_MAX,         SCENE_POTION_SHOP_GRANNY,           0x00,                               "Granny's Shop",                               RHT_KAK_GRANNYS_SHOP,                                            RG_BUY_BLUE_POTION,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_MERCHANTS_GRANNYS_SHOP),                                                       true,  100);
    locationTable[RC_KAK_ANJU_AS_ADULT] =                                              Location::Base(RC_KAK_ANJU_AS_ADULT,                                            RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_KAKARIKO_VILLAGE,             0x00,                               "Anju as Adult",                               RHT_KAK_ANJU_AS_ADULT,                                           RG_CLAIM_CHECK,                                         SpoilerCollectionCheck::ItemGetInf(44),                                                                                       true);
    locationTable[RC_KAK_ANJU_AS_CHILD] =                                              Location::Base(RC_KAK_ANJU_AS_CHILD,                                            RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_KAKARIKO_VILLAGE,             0x00,                               "Anju as Child",                               RHT_KAK_ANJU_AS_CHILD,                                           RG_EMPTY_BOTTLE,                                        SpoilerCollectionCheck::ItemGetInf(12),                                                                                       true);
    locationTable[RC_KAK_TRADE_POCKET_CUCCO] =                                         Location::Base(RC_KAK_TRADE_POCKET_CUCCO,                                       RCQUEST_BOTH,    RCTYPE_ADULT_TRADE,                                                      ACTOR_ID_MAX,         SCENE_KAKARIKO_VILLAGE,             0x00,                               "Trade Pocket Cucco",                          RHT_KAK_TRADE_POCKET_CUCCO,                                      RG_COJIRO,                                              SpoilerCollectionCheck::ItemGetInf(46),                                                                                       true);
    locationTable[RC_KAK_IMPAS_HOUSE_FREESTANDING_POH] =                        Location::Collectable(RC_KAK_IMPAS_HOUSE_FREESTANDING_POH,                             RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_IMPAS_HOUSE,                  262,                          0x01, "Impas House Freestanding PoH",                RHT_KAK_IMPAS_HOUSE_FREESTANDING_POH,                            RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_KAK_WINDMILL_FREESTANDING_POH] =                           Location::Collectable(RC_KAK_WINDMILL_FREESTANDING_POH,                                RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_KAKARIKO_VILLAGE,             ACTOR_EN_ITEM00,      SCENE_WINDMILL_AND_DAMPES_GRAVE,    262,                          0x01, "Windmill Freestanding PoH",                   RHT_KAK_WINDMILL_FREESTANDING_POH,                               RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    // Graveyard
    locationTable[RC_GRAVEYARD_SHIELD_GRAVE_CHEST] =                                  Location::Chest(RC_GRAVEYARD_SHIELD_GRAVE_CHEST,                                 RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_GRAVEYARD,                    ACTOR_EN_BOX,         SCENE_GRAVE_WITH_FAIRYS_FOUNTAIN,   21824,                        0x00, "Shield Grave Chest",                          RHT_GRAVEYARD_SHIELD_GRAVE_CHEST,                                RG_HYLIAN_SHIELD);
    locationTable[RC_GRAVEYARD_HEART_PIECE_GRAVE_CHEST] =                             Location::Chest(RC_GRAVEYARD_HEART_PIECE_GRAVE_CHEST,                            RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_GRAVEYARD,                    ACTOR_EN_BOX,         SCENE_REDEAD_GRAVE,                 -22592,                       0x00, "Heart Piece Grave Chest",                     RHT_GRAVEYARD_HEART_PIECE_GRAVE_CHEST,                           RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST] =                            Location::Chest(RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST,                           RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_ROYAL_FAMILYS_TOMB,           -32736,                       0x00, "Composers Grave Chest",                       RHT_GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST,                          RG_BOMBS_5);
    locationTable[RC_GRAVEYARD_HOOKSHOT_CHEST] =                                      Location::Chest(RC_GRAVEYARD_HOOKSHOT_CHEST,                                     RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_GRAVEYARD,                    ACTOR_EN_BOX,         SCENE_WINDMILL_AND_DAMPES_GRAVE,    4352,                         0x00, "Hookshot Chest",                              RHT_GRAVEYARD_HOOKSHOT_CHEST,                                    RG_PROGRESSIVE_HOOKSHOT,                                                                                                                                                              true);
    locationTable[RC_GRAVEYARD_FREESTANDING_POH] =                              Location::Collectable(RC_GRAVEYARD_FREESTANDING_POH,                                   RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_GRAVEYARD,                    1030,                         0x04, "Freestanding PoH",                            RHT_GRAVEYARD_FREESTANDING_POH,                                  RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH] =                   Location::Collectable(RC_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH,                        RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_GRAVEYARD,                    ACTOR_EN_ITEM00,      SCENE_WINDMILL_AND_DAMPES_GRAVE,    1798,                         0x07, "Dampe Race Freestanding PoH",                 RHT_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH,                       RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR] =                       Location::Collectable(RC_GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR,                            RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_GRAVEYARD,                    6406,                         0x19, "Dampe Gravedigging Tour",                     RHT_GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR,                           RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    // Death Mountain
    locationTable[RC_DMT_CHEST] =                                                     Location::Chest(RC_DMT_CHEST,                                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEATH_MOUNTAIN_TRAIL,         23201,                        0x01, "Chest",                                       RHT_DMT_CHEST,                                                   RG_PURPLE_RUPEE);
    locationTable[RC_DMT_STORMS_GROTTO_CHEST] =                                       Location::Chest(RC_DMT_STORMS_GROTTO_CHEST,                                      RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_DEATH_MOUNTAIN_TRAIL,         ACTOR_EN_BOX,         SCENE_GROTTOS,                      23255,                        0x17, "Storms Grotto Chest",                         RHT_DMT_STORMS_GROTTO_CHEST,                                     RG_HUGE_RUPEE);
    locationTable[RC_DMT_TRADE_BROKEN_SWORD] =                                         Location::Base(RC_DMT_TRADE_BROKEN_SWORD,                                       RCQUEST_BOTH,    RCTYPE_ADULT_TRADE,                                                      ACTOR_ID_MAX,         SCENE_DEATH_MOUNTAIN_TRAIL,         0x00,                               "Trade Broken Sword",                          RHT_DMT_TRADE_BROKEN_SWORD,                                      RG_PRESCRIPTION,                                        SpoilerCollectionCheck::RandomizerInf(RAND_INF_ADULT_TRADES_DMT_TRADE_BROKEN_SWORD),                                          true);
    locationTable[RC_DMT_TRADE_EYEDROPS] =                                             Location::Base(RC_DMT_TRADE_EYEDROPS,                                           RCQUEST_BOTH,    RCTYPE_ADULT_TRADE,                                                      ACTOR_ID_MAX,         SCENE_DEATH_MOUNTAIN_TRAIL,         0x00,                               "Trade Eyedrops",                              RHT_DMT_TRADE_EYEDROPS,                                          RG_CLAIM_CHECK,                                         SpoilerCollectionCheck::RandomizerInf(RAND_INF_ADULT_TRADES_DMT_TRADE_EYEDROPS),                                              true);
    locationTable[RC_DMT_TRADE_CLAIM_CHECK] =                                          Location::Base(RC_DMT_TRADE_CLAIM_CHECK,                                        RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_DEATH_MOUNTAIN_TRAIL,         0x00,                               "Trade Claim Check",                           RHT_DMT_TRADE_CLAIM_CHECK,                                       RG_BIGGORON_SWORD,                                      SpoilerCollectionCheck::RandomizerInf(RAND_INF_ADULT_TRADES_DMT_TRADE_CLAIM_CHECK),                                           true);
    locationTable[RC_DMT_FREESTANDING_POH] =                                    Location::Collectable(RC_DMT_FREESTANDING_POH,                                         RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_DEATH_MOUNTAIN_TRAIL,         7686,                         0x1E, "Freestanding PoH",                            RHT_DMT_FREESTANDING_POH,                                        RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    // Goron City
    locationTable[RC_GC_MAZE_LEFT_CHEST] =                                            Location::Chest(RC_GC_MAZE_LEFT_CHEST,                                           RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GORON_CITY,                   23232,                        0x00, "Maze Left Chest",                             RHT_GC_MAZE_LEFT_CHEST,                                          RG_HUGE_RUPEE);
    locationTable[RC_GC_MAZE_RIGHT_CHEST] =                                           Location::Chest(RC_GC_MAZE_RIGHT_CHEST,                                          RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GORON_CITY,                   23201,                        0x01, "Maze Right Chest",                            RHT_GC_MAZE_RIGHT_CHEST,                                         RG_PURPLE_RUPEE);
    locationTable[RC_GC_MAZE_CENTER_CHEST] =                                          Location::Chest(RC_GC_MAZE_CENTER_CHEST,                                         RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GORON_CITY,                   23202,                        0x02, "Maze Center Chest",                           RHT_GC_MAZE_CENTER_CHEST,                                        RG_PURPLE_RUPEE);
    locationTable[RC_GC_ROLLING_GORON_AS_CHILD] =                                      Location::Base(RC_GC_ROLLING_GORON_AS_CHILD,                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_GORON_CITY,                   0x00,                               "Rolling Goron as Child",                      RHT_GC_ROLLING_GORON_AS_CHILD,                                   RG_PROGRESSIVE_BOMB_BAG,                                SpoilerCollectionCheck::InfTable(INFTABLE_11E),                                                                               true);
    locationTable[RC_GC_ROLLING_GORON_AS_ADULT] =                                      Location::Base(RC_GC_ROLLING_GORON_AS_ADULT,                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_GORON_CITY,                   0x00,                               "Rolling Goron as Adult",                      RHT_GC_ROLLING_GORON_AS_ADULT,                                   RG_GORON_TUNIC,                                         SpoilerCollectionCheck::InfTable(INFTABLE_GORON_CITY_DOORS_UNLOCKED),                                                         true);
    locationTable[RC_GC_DARUNIAS_JOY] =                                                Location::Base(RC_GC_DARUNIAS_JOY,                                              RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_GORON_CITY,                   0x00,                               "Darunias Joy",                                RHT_GC_DARUNIAS_JOY,                                             RG_PROGRESSIVE_STRENGTH,                                SpoilerCollectionCheck::RandomizerInf(RAND_INF_DARUNIAS_JOY),                                                                 true);
    locationTable[RC_GC_POT_FREESTANDING_POH] =                                 Location::Collectable(RC_GC_POT_FREESTANDING_POH,                                      RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_GORON_CITY,                   7942,                         0x1F, "Pot Freestanding PoH",                        RHT_GC_POT_FREESTANDING_POH,                                     RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_GC_DEKU_SCRUB_GROTTO_LEFT] =                                      Location::Base(RC_GC_DEKU_SCRUB_GROTTO_LEFT,                                    RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_GORON_CITY,                   ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x00, 0xFB),       "Deku Scrub Grotto Left",                      RHT_GC_DEKU_SCRUB_GROTTO_LEFT,                                   RG_BUY_DEKU_NUTS_5,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GC_DEKU_SCRUB_GROTTO_LEFT),                                   false, 20);
    locationTable[RC_GC_DEKU_SCRUB_GROTTO_RIGHT] =                                     Location::Base(RC_GC_DEKU_SCRUB_GROTTO_RIGHT,                                   RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_GORON_CITY,                   ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x05, 0xFB),       "Deku Scrub Grotto Right",                     RHT_GC_DEKU_SCRUB_GROTTO_RIGHT,                                  RG_BUY_BOMBS_535,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GC_DEKU_SCRUB_GROTTO_RIGHT),                                  false, 40);
    locationTable[RC_GC_DEKU_SCRUB_GROTTO_CENTER] =                                    Location::Base(RC_GC_DEKU_SCRUB_GROTTO_CENTER,                                  RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_GORON_CITY,                   ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x03, 0xFB),       "Deku Scrub Grotto Center",                    RHT_GC_DEKU_SCRUB_GROTTO_CENTER,                                 RG_BUY_ARROWS_30,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GC_DEKU_SCRUB_GROTTO_CENTER),                                 false, 70);
    locationTable[RC_GC_MEDIGORON] =                                                   Location::Base(RC_GC_MEDIGORON,                                                 RCQUEST_BOTH,    RCTYPE_MERCHANT,                                                         ACTOR_ID_MAX,         SCENE_GORON_CITY,                   0x00,                               "Medigoron",                                   RHT_GC_MEDIGORON,                                                RG_GIANTS_KNIFE,                                        SpoilerCollectionCheck::RandomizerInf(RAND_INF_MERCHANTS_MEDIGORON),                                                          false, 200);
    // Death Mountain Crater
    locationTable[RC_DMC_UPPER_GROTTO_CHEST] =                                        Location::Chest(RC_DMC_UPPER_GROTTO_CHEST,                                       RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_DEATH_MOUNTAIN_CRATER,        ACTOR_EN_BOX,         SCENE_GROTTOS,                      23802,                        0x1A, "Upper Grotto Chest",                          RHT_DMC_UPPER_GROTTO_CHEST,                                      RG_BOMBS_20);
    locationTable[RC_DMC_WALL_FREESTANDING_POH] =                               Location::Collectable(RC_DMC_WALL_FREESTANDING_POH,                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_DEATH_MOUNTAIN_CRATER,        518,                          0x02, "Wall Freestanding PoH",                       RHT_DMC_WALL_FREESTANDING_POH,                                   RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_DMC_VOLCANO_FREESTANDING_POH] =                            Location::Collectable(RC_DMC_VOLCANO_FREESTANDING_POH,                                 RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_DEATH_MOUNTAIN_CRATER,        2054,                         0x08, "Volcano Freestanding PoH",                    RHT_DMC_WALL_FREESTANDING_POH,                                   RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_DMC_DEKU_SCRUB] =                                                 Location::Base(RC_DMC_DEKU_SCRUB,                                               RCQUEST_BOTH,    RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DEATH_MOUNTAIN_CRATER,        0x05,                               "Deku Scrub",                                  RHT_DMC_DEKU_SCRUB,                                              RG_BUY_BOMBS_535,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB),                                              false, 40);
    locationTable[RC_DMC_DEKU_SCRUB_GROTTO_LEFT] =                                     Location::Base(RC_DMC_DEKU_SCRUB_GROTTO_LEFT,                                   RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_DEATH_MOUNTAIN_CRATER,        ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x00, 0xF9),       "Deku Scrub Grotto Left",                      RHT_DMC_DEKU_SCRUB_GROTTO_LEFT,                                  RG_BUY_DEKU_NUTS_5,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB_GROTTO_LEFT),                                  false, 20);
    locationTable[RC_DMC_DEKU_SCRUB_GROTTO_RIGHT] =                                    Location::Base(RC_DMC_DEKU_SCRUB_GROTTO_RIGHT,                                  RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_DEATH_MOUNTAIN_CRATER,        ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x05, 0xF9),       "Deku Scrub Grotto Right",                     RHT_DMC_DEKU_SCRUB_GROTTO_RIGHT,                                 RG_BUY_BOMBS_535,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB_GROTTO_RIGHT),                                 false, 40);
    locationTable[RC_DMC_DEKU_SCRUB_GROTTO_CENTER] =                                   Location::Base(RC_DMC_DEKU_SCRUB_GROTTO_CENTER,                                 RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_DEATH_MOUNTAIN_CRATER,        ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x03, 0xF9),       "Deku Scrub Grotto Center",                    RHT_DMC_DEKU_SCRUB_GROTTO_CENTER,                                RG_BUY_ARROWS_30,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB_GROTTO_CENTER),                                false, 70);
    // Zoras River
    locationTable[RC_ZR_OPEN_GROTTO_CHEST] =                                           Location::Chest(RC_ZR_OPEN_GROTTO_CHEST,                                        RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_ZORAS_RIVER,                  ACTOR_EN_BOX,         SCENE_GROTTOS,                      22985,                        0x09, "Open Grotto Chest",                           RHT_ZR_OPEN_GROTTO_CHEST,                                        RG_RED_RUPEE);
    locationTable[RC_ZR_MAGIC_BEAN_SALESMAN] =                                         Location::Base(RC_ZR_MAGIC_BEAN_SALESMAN,                                       RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_ZORAS_RIVER,                  0x00,                               "Magic Bean Salesman",                         RHT_ZR_MAGIC_BEAN_SALESMAN,                                      RG_MAGIC_BEAN,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_MERCHANTS_MAGIC_BEAN_SALESMAN),                                                true,  60);
    locationTable[RC_ZR_FROGS_ZELDAS_LULLABY] =                                        Location::Base(RC_ZR_FROGS_ZELDAS_LULLABY,                                      RCQUEST_BOTH,    RCTYPE_FROG_SONG,                                                        ACTOR_EN_FR,          SCENE_ZORAS_RIVER,                  0x00,                               "Frogs Zelda's Lullaby",                       RHT_ZR_FROGS_ZELDAS_LULLABY,                                     RG_PURPLE_RUPEE,                                        SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_SONGS_FOR_FROGS_ZL));
    locationTable[RC_ZR_FROGS_EPONAS_SONG] =                                           Location::Base(RC_ZR_FROGS_EPONAS_SONG,                                         RCQUEST_BOTH,    RCTYPE_FROG_SONG,                                                        ACTOR_EN_FR,          SCENE_ZORAS_RIVER,                  0x00,                               "Frogs Epona's Song",                          RHT_ZR_FROGS_EPONAS_SONG,                                        RG_PURPLE_RUPEE,                                        SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_SONGS_FOR_FROGS_EPONA));
    locationTable[RC_ZR_FROGS_SARIAS_SONG] =                                           Location::Base(RC_ZR_FROGS_SARIAS_SONG,                                         RCQUEST_BOTH,    RCTYPE_FROG_SONG,                                                        ACTOR_EN_FR,          SCENE_ZORAS_RIVER,                  0x00,                               "Frogs Saria's Song",                          RHT_ZR_FROGS_SARIAS_SONG,                                        RG_PURPLE_RUPEE,                                        SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_SONGS_FOR_FROGS_SARIA));
    locationTable[RC_ZR_FROGS_SUNS_SONG] =                                             Location::Base(RC_ZR_FROGS_SUNS_SONG,                                           RCQUEST_BOTH,    RCTYPE_FROG_SONG,                                                        ACTOR_EN_FR,          SCENE_ZORAS_RIVER,                  0x00,                               "Frogs Sun's Song",                            RHT_ZR_FROGS_SUNS_SONG,                                          RG_PURPLE_RUPEE,                                        SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_SONGS_FOR_FROGS_SUNS));
    locationTable[RC_ZR_FROGS_SONG_OF_TIME] =                                          Location::Base(RC_ZR_FROGS_SONG_OF_TIME,                                        RCQUEST_BOTH,    RCTYPE_FROG_SONG,                                                        ACTOR_EN_FR,          SCENE_ZORAS_RIVER,                  0x00,                               "Frogs Song of Time",                          RHT_ZR_FROGS_SONG_OF_TIME,                                       RG_PURPLE_RUPEE,                                        SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_SONGS_FOR_FROGS_SOT));
    locationTable[RC_ZR_FROGS_IN_THE_RAIN] =                                           Location::Base(RC_ZR_FROGS_IN_THE_RAIN,                                         RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_FR,          SCENE_ZORAS_RIVER,                  0x00,                               "Frogs in the Rain",                           RHT_ZR_FROGS_IN_THE_RAIN,                                        RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_SONGS_FOR_FROGS_STORMS),                                                      true);
    locationTable[RC_ZR_FROGS_OCARINA_GAME] =                                          Location::Base(RC_ZR_FROGS_OCARINA_GAME,                                        RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_FR,          SCENE_ZORAS_RIVER,                  0x00,                               "Frogs Ocarina Game",                          RHT_ZR_FROGS_OCARINA_GAME,                                       RG_PIECE_OF_HEART,                                      SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_SONGS_FOR_FROGS_CHOIR),                                                       true);
    locationTable[RC_ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH] =                    Location::Collectable(RC_ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH,                         RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_ZORAS_RIVER,                  1030,                         0x04, "Near Open Grotto Freestanding PoH",           RHT_ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH,                        RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_ZR_NEAR_DOMAIN_FREESTANDING_POH] =                         Location::Collectable(RC_ZR_NEAR_DOMAIN_FREESTANDING_POH,                              RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_ZORAS_RIVER,                  2822,                         0x0B, "Near Domain Freestanding PoH",                RHT_ZR_NEAR_DOMAIN_FREESTANDING_POH,                             RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_ZR_DEKU_SCRUB_GROTTO_REAR] =                                      Location::Base(RC_ZR_DEKU_SCRUB_GROTTO_REAR,                                    RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_ZORAS_RIVER,                  ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x07, 0xEB),       "Deku Scrub Grotto Rear",                      RHT_ZR_DEKU_SCRUB_GROTTO_REAR,                                   RG_BUY_RED_POTION_40,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_ZR_DEKU_SCRUB_GROTTO_REAR),                                   false, 40);
    locationTable[RC_ZR_DEKU_SCRUB_GROTTO_FRONT] =                                     Location::Base(RC_ZR_DEKU_SCRUB_GROTTO_FRONT,                                   RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_ZORAS_RIVER,                  ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x08, 0xEB),       "Deku Scrub Grotto Front",                     RHT_ZR_DEKU_SCRUB_GROTTO_FRONT,                                  RG_BUY_GREEN_POTION,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_ZR_DEKU_SCRUB_GROTTO_FRONT),                                  false, 40);
    // Zoras Domain
    locationTable[RC_ZD_CHEST] =                                                      Location::Chest(RC_ZD_CHEST,                                                     RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_ZORAS_DOMAIN,                 -18496,                       0x00, "Chest",                                       RHT_ZD_CHEST,                                                    RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_ZD_DIVING_MINIGAME] =                                             Location::Base(RC_ZD_DIVING_MINIGAME,                                           RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_ZORAS_DOMAIN,                 0x00,                               "Diving Minigame",                             RHT_ZD_DIVING_MINIGAME,                                          RG_PROGRESSIVE_SCALE,                                   SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_OBTAINED_SILVER_SCALE),                                                       true);
    locationTable[RC_ZD_KING_ZORA_THAWED] =                                            Location::Base(RC_ZD_KING_ZORA_THAWED,                                          RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_ZORAS_DOMAIN,                 0x00,                               "King Zora Thawed",                            RHT_ZD_KING_ZORA_THAWED,                                         RG_ZORA_TUNIC,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_KING_ZORA_THAWED),                                                             true);
    locationTable[RC_ZD_TRADE_PRESCRIPTION] =                                          Location::Base(RC_ZD_TRADE_PRESCRIPTION,                                        RCQUEST_BOTH,    RCTYPE_ADULT_TRADE,                                                      ACTOR_ID_MAX,         SCENE_ZORAS_DOMAIN,                 0x00,                               "Trade Prescription",                          RHT_ZD_TRADE_PRESCRIPTION,                                       RG_EYEBALL_FROG,                                        SpoilerCollectionCheck::RandomizerInf(RAND_INF_ADULT_TRADES_ZD_TRADE_PRESCRIPTION),                                           true);
    // Zora's Fountain
    locationTable[RC_ZF_ICEBERG_FREESTANDING_POH] =                             Location::Collectable(RC_ZF_ICEBERG_FREESTANDING_POH,                                  RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_ZORAS_FOUNTAIN,               262,                          0x01, "Iceberg Freestanding PoH",                    RHT_ZF_ICEBERG_FREESTANDING_POH,                                 RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_ZF_BOTTOM_FREESTANDING_POH] =                              Location::Collectable(RC_ZF_BOTTOM_FREESTANDING_POH,                                   RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_ZORAS_FOUNTAIN,               5126,                         0x14, "Bottom Freestanding PoH",                     RHT_ZF_BOTTOM_FREESTANDING_POH,                                  RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    // Lon Lon Ranch
    locationTable[RC_LLR_TALONS_CHICKENS] =                                            Location::Base(RC_LLR_TALONS_CHICKENS,                                          RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_LON_LON_BUILDINGS,            0x00,                               "Talons Chickens",                             RHT_LLR_TALONS_CHICKENS,                                         RG_BOTTLE_WITH_MILK,                                    SpoilerCollectionCheck::ItemGetInf(2),                                                                                        true);
    locationTable[RC_LLR_FREESTANDING_POH] =                                    Location::Collectable(RC_LLR_FREESTANDING_POH,                                         RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_LON_LON_BUILDINGS,            262,                          0x01, "Freestanding PoH",                            RHT_LLR_FREESTANDING_POH,                                        RG_PIECE_OF_HEART,                                                                                                                                                                    true);
    locationTable[RC_LLR_DEKU_SCRUB_GROTTO_LEFT] =                                     Location::Base(RC_LLR_DEKU_SCRUB_GROTTO_LEFT,                                   RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_LON_LON_RANCH,                ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x00, 0xFC),       "Deku Scrub Grotto Left",                      RHT_LLR_DEKU_SCRUB_GROTTO_LEFT,                                  RG_BUY_DEKU_NUTS_5,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LLR_DEKU_SCRUB_GROTTO_LEFT),                                  false, 20);
    locationTable[RC_LLR_DEKU_SCRUB_GROTTO_RIGHT] =                                    Location::Base(RC_LLR_DEKU_SCRUB_GROTTO_RIGHT,                                  RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_LON_LON_RANCH,                ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x05, 0xFC),       "Deku Scrub Grotto Right",                     RHT_LLR_DEKU_SCRUB_GROTTO_RIGHT,                                 RG_BUY_BOMBS_535,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LLR_DEKU_SCRUB_GROTTO_RIGHT),                                 false, 40);
    locationTable[RC_LLR_DEKU_SCRUB_GROTTO_CENTER] =                                   Location::Base(RC_LLR_DEKU_SCRUB_GROTTO_CENTER,                                 RCQUEST_BOTH,    RCTYPE_SCRUB,                       RCAREA_LON_LON_RANCH,                ACTOR_EN_DNS,         SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(0x03, 0xFC),       "Deku Scrub Grotto Center",                    RHT_LLR_DEKU_SCRUB_GROTTO_CENTER,                                RG_BUY_DEKU_SEEDS_30,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LLR_DEKU_SCRUB_GROTTO_CENTER),                                false, 40);

    // Dungeons
    // Deku Tree Vanilla
    locationTable[RC_DEKU_TREE_MAP_CHEST] =                                           Location::Chest(RC_DEKU_TREE_MAP_CHEST,                                          RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    2083,                         0x03, "Map Chest",                                   RHT_DEKU_TREE_MAP_CHEST,                                         RG_DEKU_TREE_MAP,                                                                                                                                                                     true);
    locationTable[RC_DEKU_TREE_COMPASS_CHEST] =                                       Location::Chest(RC_DEKU_TREE_COMPASS_CHEST,                                      RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    2050,                         0x02, "Compass Chest",                               RHT_DEKU_TREE_COMPASS_CHEST,                                     RG_DEKU_TREE_COMPASS,                                                                                                                                                                 true);
    locationTable[RC_DEKU_TREE_COMPASS_ROOM_SIDE_CHEST] =                             Location::Chest(RC_DEKU_TREE_COMPASS_ROOM_SIDE_CHEST,                            RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    22790,                        0x06, "Compass Room Side Chest",                     RHT_DEKU_TREE_COMPASS_ROOM_SIDE_CHEST,                           RG_RECOVERY_HEART);
    locationTable[RC_DEKU_TREE_BASEMENT_CHEST] =                                      Location::Chest(RC_DEKU_TREE_BASEMENT_CHEST,                                     RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    22788,                        0x04, "Basement Chest",                              RHT_DEKU_TREE_BASEMENT_CHEST,                                    RG_RECOVERY_HEART);
    locationTable[RC_DEKU_TREE_SLINGSHOT_CHEST] =                                     Location::Chest(RC_DEKU_TREE_SLINGSHOT_CHEST,                                    RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    161,                          0x01, "Slingshot Chest",                             RHT_DEKU_TREE_SLINGSHOT_CHEST,                                   RG_PROGRESSIVE_SLINGSHOT,                                                                                                                                                             true);
    locationTable[RC_DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST] =                           Location::Chest(RC_DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST,                          RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    22789,                        0x05, "Slingshot Room Side Chest",                   RHT_DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST,                         RG_RECOVERY_HEART);
    // Deku Tree MQ
    locationTable[RC_DEKU_TREE_MQ_MAP_CHEST] =                                        Location::Chest(RC_DEKU_TREE_MQ_MAP_CHEST,                                       RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    2083,                         0x03, "MQ Map Chest",                                RHT_DEKU_TREE_MQ_MAP_CHEST,                                      RG_DEKU_TREE_MAP,                                                                                                                                                                     true);
    locationTable[RC_DEKU_TREE_MQ_COMPASS_CHEST] =                                    Location::Chest(RC_DEKU_TREE_MQ_COMPASS_CHEST,                                   RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    2049,                         0x01, "MQ Compass Chest",                            RHT_DEKU_TREE_MQ_COMPASS_CHEST,                                  RG_DEKU_TREE_COMPASS,                                                                                                                                                                 true);
    locationTable[RC_DEKU_TREE_MQ_SLINGSHOT_CHEST] =                                  Location::Chest(RC_DEKU_TREE_MQ_SLINGSHOT_CHEST,                                 RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    4262,                         0x06, "MQ Slingshot Chest",                          RHT_DEKU_TREE_MQ_SLINGSHOT_CHEST,                                RG_PROGRESSIVE_SLINGSHOT,                                                                                                                                                             true);
    locationTable[RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_BACK_CHEST] =                        Location::Chest(RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_BACK_CHEST,                       RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    -31454,                       0x02, "MQ Slingshot Room Back Chest",                RHT_DEKU_TREE_MQ_SLINGSHOT_ROOM_BACK_CHEST,                      RG_DEKU_SHIELD);
    locationTable[RC_DEKU_TREE_MQ_BASEMENT_CHEST] =                                   Location::Chest(RC_DEKU_TREE_MQ_BASEMENT_CHEST,                                  RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    -31452,                       0x04, "MQ Basement Chest",                           RHT_DEKU_TREE_MQ_BASEMENT_CHEST,                                 RG_DEKU_SHIELD);
    locationTable[RC_DEKU_TREE_MQ_BEFORE_SPINNING_LOG_CHEST] =                        Location::Chest(RC_DEKU_TREE_MQ_BEFORE_SPINNING_LOG_CHEST,                       RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    22789,                        0x05, "MQ Before Spinning Log Chest",                RHT_DEKU_TREE_MQ_BEFORE_SPINNING_LOG_CHEST,                      RG_RECOVERY_HEART);
    locationTable[RC_DEKU_TREE_MQ_AFTER_SPINNING_LOG_CHEST] =                         Location::Chest(RC_DEKU_TREE_MQ_AFTER_SPINNING_LOG_CHEST,                        RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DEKU_TREE,                    23200,                        0x00, "MQ After Spinning Log Chest",                 RHT_DEKU_TREE_MQ_AFTER_SPINNING_LOG_CHEST,                       RG_PURPLE_RUPEE);
    locationTable[RC_DEKU_TREE_MQ_DEKU_SCRUB] =                                        Location::Base(RC_DEKU_TREE_MQ_DEKU_SCRUB,                                      RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DEKU_TREE,                    0x04,                               "MQ Deku Scrub",                               RHT_DEKU_TREE_MQ_DEKU_SCRUB,                                     RG_BUY_DEKU_SHIELD,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DEKU_TREE_MQ_DEKU_SCRUB),                                     false, 50);

    // Dodongo's Cavern Shared
    locationTable[RC_DODONGOS_CAVERN_BOSS_ROOM_CHEST] =                               Location::Chest(RC_DODONGOS_CAVERN_BOSS_ROOM_CHEST,                              RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN_BOSS,         20512,                        0x00, "Boss Room Chest",                             RHT_DODONGOS_CAVERN_BOSS_ROOM_CHEST,                             RG_BOMBS_5);
    // Dodongo's Cavern Vanilla
    locationTable[RC_DODONGOS_CAVERN_MAP_CHEST] =                                     Location::Chest(RC_DODONGOS_CAVERN_MAP_CHEST,                                    RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              2088,                         0x08, "Map Chest",                                   RHT_DODONGOS_CAVERN_MAP_CHEST,                                   RG_DODONGOS_CAVERN_MAP,                                                                                                                                                                           true);
    locationTable[RC_DODONGOS_CAVERN_COMPASS_CHEST] =                                 Location::Chest(RC_DODONGOS_CAVERN_COMPASS_CHEST,                                RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              2053,                         0x05, "Compass Chest",                               RHT_DODONGOS_CAVERN_COMPASS_CHEST,                               RG_DODONGOS_CAVERN_COMPASS,                                                                                                                                                                       true);
    locationTable[RC_DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST] =                    Location::Chest(RC_DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST,                   RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              22982,                        0x06, "Bomb Flower Platform Chest",                  RHT_DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST,                  RG_RED_RUPEE);
    locationTable[RC_DODONGOS_CAVERN_BOMB_BAG_CHEST] =                                Location::Chest(RC_DODONGOS_CAVERN_BOMB_BAG_CHEST,                               RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              1604,                         0x04, "Bomb Bag Chest",                              RHT_DODONGOS_CAVERN_BOMB_BAG_CHEST,                              RG_PROGRESSIVE_BOMB_BAG,                                                                                                                                                                          true);
    locationTable[RC_DODONGOS_CAVERN_END_OF_BRIDGE_CHEST] =                           Location::Chest(RC_DODONGOS_CAVERN_END_OF_BRIDGE_CHEST,                          RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              21802,                        0x0A, "End Of Bridge Chest",                         RHT_DODONGOS_CAVERN_END_OF_BRIDGE_CHEST,                         RG_DEKU_SHIELD);
    locationTable[RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT] =                  Location::Base(RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT,                RCQUEST_VANILLA, RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DODONGOS_CAVERN,              0x00,                               "Deku Scrub Near Bomb Bag Left",               RHT_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT,               RG_BUY_DEKU_NUTS_5,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT),               false, 20);
    locationTable[RC_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS] =             Location::Base(RC_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS,           RCQUEST_VANILLA, RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DODONGOS_CAVERN,              0x01,                               "Deku Scrub Side Room Near Dodongos",          RHT_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS,          RG_BUY_DEKU_STICK_1,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS),          false, 15);
    locationTable[RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT] =                 Location::Base(RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT,               RCQUEST_VANILLA, RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DODONGOS_CAVERN,              0x03,                               "Deku Scrub Near Bomb Bag Right",              RHT_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT,              RG_BUY_DEKU_SEEDS_30,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT),              false, 40);
    locationTable[RC_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY] =                               Location::Base(RC_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY,                             RCQUEST_VANILLA, RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DODONGOS_CAVERN,              0x04,                               "Deku Scrub Lobby",                            RHT_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY,                            RG_BUY_DEKU_SHIELD,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY),                            false, 50);
    // Dodongo's Cavern MQ
    locationTable[RC_DODONGOS_CAVERN_MQ_MAP_CHEST] =                                  Location::Chest(RC_DODONGOS_CAVERN_MQ_MAP_CHEST,                                 RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              2080,                         0x00, "MQ Map Chest",                                RHT_DODONGOS_CAVERN_MQ_MAP_CHEST,                                RG_DODONGOS_CAVERN_MAP,                                                                                                                                                                           true);
    locationTable[RC_DODONGOS_CAVERN_MQ_BOMB_BAG_CHEST] =                             Location::Chest(RC_DODONGOS_CAVERN_MQ_BOMB_BAG_CHEST,                            RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              1604,                         0x04, "MQ Bomb Bag Chest",                           RHT_DODONGOS_CAVERN_MQ_BOMB_BAG_CHEST,                           RG_PROGRESSIVE_BOMB_BAG,                                                                                                                                                                          true);
    locationTable[RC_DODONGOS_CAVERN_MQ_COMPASS_CHEST] =                              Location::Chest(RC_DODONGOS_CAVERN_MQ_COMPASS_CHEST,                             RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              6149,                         0x05, "MQ Compass Chest",                            RHT_DODONGOS_CAVERN_MQ_COMPASS_CHEST,                            RG_DODONGOS_CAVERN_COMPASS,                                                                                                                                                                       true);
    locationTable[RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CHEST] =                          Location::Chest(RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CHEST,                         RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              29986,                        0x02, "MQ Larvae Room Chest",                        RHT_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CHEST,                        RG_DEKU_SHIELD);
    locationTable[RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_ROOM_CHEST] =                    Location::Chest(RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_ROOM_CHEST,                   RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              22947,                        0x03, "MQ Torch Puzzle Room Chest",                  RHT_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_ROOM_CHEST,                  RG_BLUE_RUPEE);
    locationTable[RC_DODONGOS_CAVERN_MQ_UNDER_GRAVE_CHEST] =                          Location::Chest(RC_DODONGOS_CAVERN_MQ_UNDER_GRAVE_CHEST,                         RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_DODONGOS_CAVERN,              21825,                        0x01, "MQ Under Grave Chest",                        RHT_DODONGOS_CAVERN_MQ_UNDER_GRAVE_CHEST,                        RG_HYLIAN_SHIELD);
    locationTable[RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR] =                       Location::Base(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR,                     RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DODONGOS_CAVERN,              0x01,                               "MQ Deku Scrub Lobby Rear",                    RHT_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR,                    RG_BUY_DEKU_STICK_1,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR),                    false, 15);
    locationTable[RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT] =                      Location::Base(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT,                    RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DODONGOS_CAVERN,              0x03,                               "MQ Deku Scrub Lobby Front",                   RHT_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT,                   RG_BUY_DEKU_SEEDS_30,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT),                   false, 40);
    locationTable[RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE] =                        Location::Base(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE,                      RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DODONGOS_CAVERN,              0x04,                               "MQ Deku Scrub Staircase",                     RHT_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE,                     RG_BUY_DEKU_SHIELD,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE),                     false, 50);
    locationTable[RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS] =    Location::Base(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS,  RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_DODONGOS_CAVERN,              0x07,                               "MQ Deku Scrub Side Room Near Lower Lizalfos", RHT_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS, RG_BUY_RED_POTION_40,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS), false, 40);

    // Jabu-Jabu's Belly Vanilla
    locationTable[RC_JABU_JABUS_BELLY_MAP_CHEST] =                                    Location::Chest(RC_JABU_JABUS_BELLY_MAP_CHEST,                                   RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_JABU_JABU,                    6178,                         0x02, "Map Chest",                                   RHT_JABU_JABUS_BELLY_MAP_CHEST,                                  RG_JABU_JABUS_BELLY_MAP,                                                                                                                                                                          true);
    locationTable[RC_JABU_JABUS_BELLY_COMPASS_CHEST] =                                Location::Chest(RC_JABU_JABUS_BELLY_COMPASS_CHEST,                               RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_JABU_JABU,                    -18428,                       0x04, "Compass Chest",                               RHT_JABU_JABUS_BELLY_COMPASS_CHEST,                              RG_JABU_JABUS_BELLY_COMPASS,                                                                                                                                                                      true);
    locationTable[RC_JABU_JABUS_BELLY_BOOMERANG_CHEST] =                              Location::Chest(RC_JABU_JABUS_BELLY_BOOMERANG_CHEST,                             RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    4289,                         0x01, "Boomerang Chest",                             RHT_JABU_JABUS_BELLY_BOOMERANG_CHEST,                            RG_BOOMERANG,                                                                                                                                                                                     true);
    locationTable[RC_JABU_JABUS_BELLY_DEKU_SCRUB] =                                    Location::Base(RC_JABU_JABUS_BELLY_DEKU_SCRUB,                                  RCQUEST_VANILLA, RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_JABU_JABU,                    0x00,                               "Deku Scrub",                                  RHT_JABU_JABUS_BELLY_DEKU_SCRUB,                                 RG_BUY_DEKU_NUTS_5,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_JABU_JABUS_BELLY_DEKU_SCRUB),                                 false, 20);
    // Jabu-Jabu's Belly MQ
    locationTable[RC_JABU_JABUS_BELLY_MQ_FIRST_ROOM_SIDE_CHEST] =                     Location::Chest(RC_JABU_JABUS_BELLY_MQ_FIRST_ROOM_SIDE_CHEST,                    RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    -32699,                       0x05, "MQ First Room Side Chest",                    RHT_JABU_JABUS_BELLY_MQ_FIRST_ROOM_SIDE_CHEST,                   RG_DEKU_NUTS_5);
    locationTable[RC_JABU_JABUS_BELLY_MQ_MAP_CHEST] =                                 Location::Chest(RC_JABU_JABUS_BELLY_MQ_MAP_CHEST,                                RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_JABU_JABU,                    -18397,                       0x03, "MQ Map Chest",                                RHT_JABU_JABUS_BELLY_MQ_MAP_CHEST,                               RG_JABU_JABUS_BELLY_MAP,                                                                                                                                                                          true);
    locationTable[RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_LOWER_CHEST] =                   Location::Chest(RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_LOWER_CHEST,                  RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    20546,                        0x02, "MQ Second Room Lower Chest",                  RHT_JABU_JABUS_BELLY_MQ_SECOND_ROOM_LOWER_CHEST,                 RG_DEKU_NUTS_5);
    locationTable[RC_JABU_JABUS_BELLY_MQ_COMPASS_CHEST] =                             Location::Chest(RC_JABU_JABUS_BELLY_MQ_COMPASS_CHEST,                            RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_JABU_JABU,                    -18432,                       0x00, "MQ Compass Chest",                            RHT_JABU_JABUS_BELLY_MQ_COMPASS_CHEST,                           RG_JABU_JABUS_BELLY_COMPASS,                                                                                                                                                                      true);
    locationTable[RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_UPPER_CHEST] =                   Location::Chest(RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_UPPER_CHEST,                  RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    -30457,                       0x07, "MQ Second Room Upper Chest",                  RHT_JABU_JABUS_BELLY_MQ_SECOND_ROOM_UPPER_CHEST,                 RG_RECOVERY_HEART);
    locationTable[RC_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_SWITCHES_CHEST] =              Location::Chest(RC_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_SWITCHES_CHEST,             RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    -32696,                       0x08, "MQ Basement Near Switches Chest",             RHT_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_SWITCHES_CHEST,            RG_DEKU_NUTS_5);
    locationTable[RC_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_VINES_CHEST] =                 Location::Chest(RC_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_VINES_CHEST,                RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    -32668,                       0x04, "MQ Basement Near Vines Chest",                RHT_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_VINES_CHEST,               RG_BOMBCHU_10);
    locationTable[RC_JABU_JABUS_BELLY_MQ_NEAR_BOSS_CHEST] =                           Location::Chest(RC_JABU_JABUS_BELLY_MQ_NEAR_BOSS_CHEST,                          RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    -31446,                       0x0A, "MQ Near Boss Chest",                          RHT_JABU_JABUS_BELLY_MQ_NEAR_BOSS_CHEST,                         RG_DEKU_SHIELD);
    locationTable[RC_JABU_JABUS_BELLY_MQ_FALLING_LIKE_LIKE_ROOM_CHEST] =              Location::Chest(RC_JABU_JABUS_BELLY_MQ_FALLING_LIKE_LIKE_ROOM_CHEST,             RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    28905,                        0x09, "MQ Falling Like Like Room Chest",             RHT_JABU_JABUS_BELLY_MQ_FALLING_LIKE_LIKE_ROOM_CHEST,            RG_DEKU_STICK_1);
    locationTable[RC_JABU_JABUS_BELLY_MQ_BOOMERANG_ROOM_SMALL_CHEST] =                Location::Chest(RC_JABU_JABUS_BELLY_MQ_BOOMERANG_ROOM_SMALL_CHEST,               RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    20545,                        0x01, "MQ Boomerang Room Small Chest",               RHT_JABU_JABUS_BELLY_MQ_BOOMERANG_ROOM_SMALL_CHEST,              RG_DEKU_NUTS_5);
    locationTable[RC_JABU_JABUS_BELLY_MQ_BOOMERANG_CHEST] =                           Location::Chest(RC_JABU_JABUS_BELLY_MQ_BOOMERANG_CHEST,                          RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_JABU_JABU,                    4294,                         0x06, "MQ Boomerang Chest",                          RHT_JABU_JABUS_BELLY_MQ_BOOMERANG_CHEST,                         RG_BOOMERANG,                                                                                                                                                                                     true);

    // Forest Temple Vanilla
    locationTable[RC_FOREST_TEMPLE_FIRST_ROOM_CHEST] =                                Location::Chest(RC_FOREST_TEMPLE_FIRST_ROOM_CHEST,                               RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                22595,                        0x03, "First Room Chest",                            RHT_FOREST_TEMPLE_FIRST_ROOM_CHEST,                              RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_FIRST_STALFOS_CHEST] =                             Location::Chest(RC_FOREST_TEMPLE_FIRST_STALFOS_CHEST,                            RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                30784,                        0x00, "First Stalfos Chest",                         RHT_FOREST_TEMPLE_FIRST_STALFOS_CHEST,                           RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST] =                   Location::Chest(RC_FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST,                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                22789,                        0x05, "Raised Island Courtyard Chest",               RHT_FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST,                 RG_RECOVERY_HEART);
    locationTable[RC_FOREST_TEMPLE_MAP_CHEST] =                                       Location::Chest(RC_FOREST_TEMPLE_MAP_CHEST,                                      RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                6177,                         0x01, "Map Chest",                                   RHT_FOREST_TEMPLE_MAP_CHEST,                                     RG_FOREST_TEMPLE_MAP,                                                                                                                                                                             true);
    locationTable[RC_FOREST_TEMPLE_WELL_CHEST] =                                      Location::Chest(RC_FOREST_TEMPLE_WELL_CHEST,                                     RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                22601,                        0x09, "Well Chest",                                  RHT_FOREST_TEMPLE_WELL_CHEST,                                    RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST] =                      Location::Chest(RC_FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST,                     RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                22855,                        0x07, "Falling Ceiling Room Chest",                  RHT_FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST,                    RG_ARROWS_10);
    locationTable[RC_FOREST_TEMPLE_EYE_SWITCH_CHEST] =                                Location::Chest(RC_FOREST_TEMPLE_EYE_SWITCH_CHEST,                               RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                -30364,                       0x04, "Eye Switch Chest",                            RHT_FOREST_TEMPLE_EYE_SWITCH_CHEST,                              RG_ARROWS_30);
    locationTable[RC_FOREST_TEMPLE_BOSS_KEY_CHEST] =                                  Location::Chest(RC_FOREST_TEMPLE_BOSS_KEY_CHEST,                                 RCQUEST_VANILLA, RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                10222,                        0x0E, "Boss Key Chest",                              RHT_FOREST_TEMPLE_BOSS_KEY_CHEST,                                RG_FOREST_TEMPLE_BOSS_KEY,                                                                                                                                                                        true);
    locationTable[RC_FOREST_TEMPLE_FLOORMASTER_CHEST] =                               Location::Chest(RC_FOREST_TEMPLE_FLOORMASTER_CHEST,                              RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                30786,                        0x02, "Floormaster Chest",                           RHT_FOREST_TEMPLE_FLOORMASTER_CHEST,                             RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_BOW_CHEST] =                                       Location::Chest(RC_FOREST_TEMPLE_BOW_CHEST,                                      RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                -20340,                       0x0C, "Bow Chest",                                   RHT_FOREST_TEMPLE_BOW_CHEST,                                     RG_PROGRESSIVE_BOW,                                                                                                                                                                               true);
    locationTable[RC_FOREST_TEMPLE_RED_POE_CHEST] =                                   Location::Chest(RC_FOREST_TEMPLE_RED_POE_CHEST,                                  RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                30797,                        0x0D, "Red Poe Chest",                               RHT_FOREST_TEMPLE_RED_POE_CHEST,                                 RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_BLUE_POE_CHEST] =                                  Location::Chest(RC_FOREST_TEMPLE_BLUE_POE_CHEST,                                 RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                6159,                         0x0F, "Blue Poe Chest",                              RHT_FOREST_TEMPLE_BLUE_POE_CHEST,                                RG_FOREST_TEMPLE_COMPASS,                                                                                                                                                                         true);
    locationTable[RC_FOREST_TEMPLE_BASEMENT_CHEST] =                                  Location::Chest(RC_FOREST_TEMPLE_BASEMENT_CHEST,                                 RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                22827,                        0x0B, "Basement Chest",                              RHT_FOREST_TEMPLE_BASEMENT_CHEST,                                RG_ARROWS_5);
    // Forest Temple MQ
    locationTable[RC_FOREST_TEMPLE_MQ_FIRST_ROOM_CHEST] =                             Location::Chest(RC_FOREST_TEMPLE_MQ_FIRST_ROOM_CHEST,                            RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                -30653,                       0x03, "MQ First Room Chest",                         RHT_FOREST_TEMPLE_MQ_FIRST_ROOM_CHEST,                           RG_FOREST_TEMPLE_SMALL_KEY);
    locationTable[RC_FOREST_TEMPLE_MQ_WOLFOS_CHEST] =                                 Location::Chest(RC_FOREST_TEMPLE_MQ_WOLFOS_CHEST,                                RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                30784,                        0x00, "MQ Wolfos Chest",                             RHT_FOREST_TEMPLE_MQ_WOLFOS_CHEST,                               RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_MQ_BOW_CHEST] =                                    Location::Chest(RC_FOREST_TEMPLE_MQ_BOW_CHEST,                                   RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                -20340,                       0x0C, "MQ Bow Chest",                                RHT_FOREST_TEMPLE_MQ_BOW_CHEST,                                  RG_PROGRESSIVE_BOW,                                                                                                                                                                               true);
    locationTable[RC_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_LOWER_CHEST] =          Location::Chest(RC_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_LOWER_CHEST,         RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                22593,                        0x01, "MQ Raised Island Courtyard Lower Chest",      RHT_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_LOWER_CHEST,        RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_UPPER_CHEST] =          Location::Chest(RC_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_UPPER_CHEST,         RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                22597,                        0x05, "MQ Raised Island Courtyard Upper Chest",      RHT_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_UPPER_CHEST,        RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_MQ_WELL_CHEST] =                                   Location::Chest(RC_FOREST_TEMPLE_MQ_WELL_CHEST,                                  RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                22601,                        0x09, "MQ Well Chest",                               RHT_FOREST_TEMPLE_MQ_WELL_CHEST,                                 RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_MQ_MAP_CHEST] =                                    Location::Chest(RC_FOREST_TEMPLE_MQ_MAP_CHEST,                                   RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                6189,                         0x0D, "MQ Map Chest",                                RHT_FOREST_TEMPLE_MQ_MAP_CHEST,                                  RG_FOREST_TEMPLE_MAP,                                                                                                                                                                             true);
    locationTable[RC_FOREST_TEMPLE_MQ_COMPASS_CHEST] =                                Location::Chest(RC_FOREST_TEMPLE_MQ_COMPASS_CHEST,                               RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                6159,                         0x0F, "MQ Compass Chest",                            RHT_FOREST_TEMPLE_MQ_COMPASS_CHEST,                              RG_FOREST_TEMPLE_COMPASS,                                                                                                                                                                         true);
    locationTable[RC_FOREST_TEMPLE_MQ_FALLING_CEILING_ROOM_CHEST] =                   Location::Chest(RC_FOREST_TEMPLE_MQ_FALLING_CEILING_ROOM_CHEST,                  RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                -30426,                       0x06, "MQ Falling Ceiling Room Chest",               RHT_FOREST_TEMPLE_MQ_FALLING_CEILING_ROOM_CHEST,                 RG_ARROWS_5);
    locationTable[RC_FOREST_TEMPLE_MQ_BASEMENT_CHEST] =                               Location::Chest(RC_FOREST_TEMPLE_MQ_BASEMENT_CHEST,                              RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                22827,                        0x0B, "MQ Basement Chest",                           RHT_FOREST_TEMPLE_MQ_BASEMENT_CHEST,                             RG_ARROWS_5);
    locationTable[RC_FOREST_TEMPLE_MQ_REDEAD_CHEST] =                                 Location::Chest(RC_FOREST_TEMPLE_MQ_REDEAD_CHEST,                                RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                30786,                        0x02, "MQ Redead Chest",                             RHT_FOREST_TEMPLE_MQ_REDEAD_CHEST,                               RG_FOREST_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST] =                               Location::Chest(RC_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST,                              RCQUEST_MQ,      RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_FOREST_TEMPLE,                10222,                        0x0E, "MQ Boss Key Chest",                           RHT_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST,                             RG_FOREST_TEMPLE_BOSS_KEY,                                                                                                                                                                        true);

    // Fire Temple Vanilla
    locationTable[RC_FIRE_TEMPLE_NEAR_BOSS_CHEST] =                                   Location::Chest(RC_FIRE_TEMPLE_NEAR_BOSS_CHEST,                                  RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22593,                        0x01, "Near Boss Chest",                             RHT_FIRE_TEMPLE_NEAR_BOSS_CHEST,                                 RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_FLARE_DANCER_CHEST] =                                Location::Chest(RC_FIRE_TEMPLE_FLARE_DANCER_CHEST,                               RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  31936,                        0x00, "Flare Dancer Chest",                          RHT_FIRE_TEMPLE_FLARE_DANCER_CHEST,                              RG_BOMBS_10);
    locationTable[RC_FIRE_TEMPLE_BOSS_KEY_CHEST] =                                    Location::Chest(RC_FIRE_TEMPLE_BOSS_KEY_CHEST,                                   RCQUEST_VANILLA, RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  10220,                        0x0C, "Boss Key Chest",                              RHT_FIRE_TEMPLE_BOSS_KEY_CHEST,                                  RG_FIRE_TEMPLE_BOSS_KEY,                                                                                                                                                                          true);
    locationTable[RC_FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST] =                  Location::Chest(RC_FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST,                 RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22594,                        0x02, "Big Lava Room Blocked Door Chest",            RHT_FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST,                RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST] =               Location::Chest(RC_FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST,              RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22596,                        0x04, "Big Lava Room Lower Open Door Chest",         RHT_FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST,             RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST] =                          Location::Chest(RC_FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST,                         RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22595,                        0x03, "Boulder Maze Lower Chest",                    RHT_FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST,                        RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST] =                          Location::Chest(RC_FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST,                         RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22598,                        0x06, "Boulder Maze Upper Chest",                    RHT_FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST,                        RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST] =                      Location::Chest(RC_FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST,                     RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22600,                        0x08, "Boulder Maze Side Room Chest",                RHT_FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST,                    RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST] =                       Location::Chest(RC_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST,                      RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22603,                        0x0B, "Boulder Maze Shortcut Chest",                 RHT_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST,                     RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_SCARECROW_CHEST] =                                   Location::Chest(RC_FIRE_TEMPLE_SCARECROW_CHEST,                                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  23245,                        0x0D, "Scarecrow Chest",                             RHT_FIRE_TEMPLE_SCARECROW_CHEST,                                 RG_HUGE_RUPEE);
    locationTable[RC_FIRE_TEMPLE_MAP_CHEST] =                                         Location::Chest(RC_FIRE_TEMPLE_MAP_CHEST,                                        RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  2090,                         0x0A, "Map Chest",                                   RHT_FIRE_TEMPLE_MAP_CHEST,                                       RG_FIRE_TEMPLE_MAP,                                                                                                                                                                               true);
    locationTable[RC_FIRE_TEMPLE_COMPASS_CHEST] =                                     Location::Chest(RC_FIRE_TEMPLE_COMPASS_CHEST,                                    RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  2055,                         0x07, "Compass Chest",                               RHT_FIRE_TEMPLE_COMPASS_CHEST,                                   RG_FIRE_TEMPLE_COMPASS,                                                                                                                                                                           true);
    locationTable[RC_FIRE_TEMPLE_HIGHEST_GORON_CHEST] =                               Location::Chest(RC_FIRE_TEMPLE_HIGHEST_GORON_CHEST,                              RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22601,                        0x09, "Highest Goron Chest",                         RHT_FIRE_TEMPLE_HIGHEST_GORON_CHEST,                             RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_MEGATON_HAMMER_CHEST] =                              Location::Chest(RC_FIRE_TEMPLE_MEGATON_HAMMER_CHEST,                             RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  421,                          0x05, "Megaton Hammer Chest",                        RHT_FIRE_TEMPLE_MEGATON_HAMMER_CHEST,                            RG_MEGATON_HAMMER,                                                                                                                                                                                true);
    // Fire Temple MQ
    locationTable[RC_FIRE_TEMPLE_MQ_NEAR_BOSS_CHEST] =                                Location::Chest(RC_FIRE_TEMPLE_MQ_NEAR_BOSS_CHEST,                               RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22599,                        0x07, "MQ Near Boss Chest",                          RHT_FIRE_TEMPLE_MQ_NEAR_BOSS_CHEST,                              RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_MQ_MEGATON_HAMMER_CHEST] =                           Location::Chest(RC_FIRE_TEMPLE_MQ_MEGATON_HAMMER_CHEST,                          RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  4512,                         0x00, "MQ Megaton Hammer Chest",                     RHT_FIRE_TEMPLE_MQ_MEGATON_HAMMER_CHEST,                         RG_MEGATON_HAMMER,                                                                                                                                                                                true);
    locationTable[RC_FIRE_TEMPLE_MQ_COMPASS_CHEST] =                                  Location::Chest(RC_FIRE_TEMPLE_MQ_COMPASS_CHEST,                                 RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  2059,                         0x0B, "MQ Compass Chest",                            RHT_FIRE_TEMPLE_MQ_COMPASS_CHEST,                                RG_FIRE_TEMPLE_COMPASS,                                                                                                                                                                           true);
    locationTable[RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_LOWER_CHEST] =                      Location::Chest(RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_LOWER_CHEST,                     RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  23747,                        0x03, "MQ Lizalfos Maze Lower Chest",                RHT_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_LOWER_CHEST,                    RG_BOMBS_10);
    locationTable[RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_CHEST] =                      Location::Chest(RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_CHEST,                     RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  23782,                        0x06, "MQ Lizalfos Maze Upper Chest",                RHT_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_CHEST,                    RG_BOMBS_10);
    locationTable[RC_FIRE_TEMPLE_MQ_CHEST_ON_FIRE] =                                  Location::Chest(RC_FIRE_TEMPLE_MQ_CHEST_ON_FIRE,                                 RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22597,                        0x05, "MQ Chest on Fire",                            RHT_FIRE_TEMPLE_MQ_CHEST_ON_FIRE,                                RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_MQ_MAP_ROOM_SIDE_CHEST] =                            Location::Chest(RC_FIRE_TEMPLE_MQ_MAP_ROOM_SIDE_CHEST,                           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  30018,                        0x02, "MQ Map Room Side Chest",                      RHT_FIRE_TEMPLE_MQ_MAP_ROOM_SIDE_CHEST,                          RG_HYLIAN_SHIELD);
    locationTable[RC_FIRE_TEMPLE_MQ_MAP_CHEST] =                                      Location::Chest(RC_FIRE_TEMPLE_MQ_MAP_CHEST,                                     RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  2092,                         0x0C, "MQ Map Chest",                                RHT_FIRE_TEMPLE_MQ_MAP_CHEST,                                    RG_FIRE_TEMPLE_MAP,                                                                                                                                                                               true);
    locationTable[RC_FIRE_TEMPLE_MQ_BOSS_KEY_CHEST] =                                 Location::Chest(RC_FIRE_TEMPLE_MQ_BOSS_KEY_CHEST,                                RCQUEST_MQ,      RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  10212,                        0x04, "MQ Boss Key Chest",                           RHT_FIRE_TEMPLE_MQ_BOSS_KEY_CHEST,                               RG_FIRE_TEMPLE_BOSS_KEY,                                                                                                                                                                          true);
    locationTable[RC_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST] =               Location::Chest(RC_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST,              RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22593,                        0x01, "MQ Big Lava Room Blocked Door Chest",         RHT_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST,             RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_SIDE_ROOM_CHEST] =                  Location::Chest(RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_SIDE_ROOM_CHEST,                 RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_FIRE_TEMPLE,                  22600,                        0x08, "MQ Lizalfos Maze Side Room Chest",            RHT_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_SIDE_ROOM_CHEST,                RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);
    locationTable[RC_FIRE_TEMPLE_MQ_FREESTANDING_KEY] =                         Location::Collectable(RC_FIRE_TEMPLE_MQ_FREESTANDING_KEY,                              RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_ITEM00,      SCENE_FIRE_TEMPLE,                  7185,                         0x1C, "MQ Freestanding Key",                         RHT_FIRE_TEMPLE_MQ_FREESTANDING_KEY,                             RG_FIRE_TEMPLE_SMALL_KEY,                                                                                                                                                                         true);

    // Water Temple Vanilla
    locationTable[RC_WATER_TEMPLE_MAP_CHEST] =                                        Location::Chest(RC_WATER_TEMPLE_MAP_CHEST,                                       RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 6178,                         0x02, "Map Chest",                                   RHT_WATER_TEMPLE_MAP_CHEST,                                      RG_WATER_TEMPLE_MAP,                                                                                                                                                                              true);
    locationTable[RC_WATER_TEMPLE_COMPASS_CHEST] =                                    Location::Chest(RC_WATER_TEMPLE_COMPASS_CHEST,                                   RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 2057,                         0x09, "Compass Chest",                               RHT_WATER_TEMPLE_COMPASS_CHEST,                                  RG_WATER_TEMPLE_COMPASS,                                                                                                                                                                          true);
    locationTable[RC_WATER_TEMPLE_TORCHES_CHEST] =                                    Location::Chest(RC_WATER_TEMPLE_TORCHES_CHEST,                                   RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 30785,                        0x01, "Torches Chest",                               RHT_WATER_TEMPLE_TORCHES_CHEST,                                  RG_WATER_TEMPLE_SMALL_KEY,                                                                                                                                                                        true);
    locationTable[RC_WATER_TEMPLE_DRAGON_CHEST] =                                     Location::Chest(RC_WATER_TEMPLE_DRAGON_CHEST,                                    RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 22602,                        0x0A, "Dragon Chest",                                RHT_WATER_TEMPLE_DRAGON_CHEST,                                   RG_WATER_TEMPLE_SMALL_KEY,                                                                                                                                                                        true);
    locationTable[RC_WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST] =                         Location::Chest(RC_WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST,                        RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 22600,                        0x08, "Central Bow Target Chest",                    RHT_WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST,                       RG_WATER_TEMPLE_SMALL_KEY,                                                                                                                                                                        true);
    locationTable[RC_WATER_TEMPLE_CENTRAL_PILLAR_CHEST] =                             Location::Chest(RC_WATER_TEMPLE_CENTRAL_PILLAR_CHEST,                            RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 22598,                        0x06, "Central Pillar Chest",                        RHT_WATER_TEMPLE_CENTRAL_PILLAR_CHEST,                           RG_WATER_TEMPLE_SMALL_KEY,                                                                                                                                                                        true);
    locationTable[RC_WATER_TEMPLE_CRACKED_WALL_CHEST] =                               Location::Chest(RC_WATER_TEMPLE_CRACKED_WALL_CHEST,                              RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 22592,                        0x00, "Cracked Wall Chest",                          RHT_WATER_TEMPLE_CRACKED_WALL_CHEST,                             RG_WATER_TEMPLE_SMALL_KEY,                                                                                                                                                                        true);
    locationTable[RC_WATER_TEMPLE_BOSS_KEY_CHEST] =                                   Location::Chest(RC_WATER_TEMPLE_BOSS_KEY_CHEST,                                  RCQUEST_VANILLA, RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 10213,                        0x05, "Boss Key Chest",                              RHT_WATER_TEMPLE_BOSS_KEY_CHEST,                                 RG_WATER_TEMPLE_BOSS_KEY,                                                                                                                                                                         true);
    locationTable[RC_WATER_TEMPLE_LONGSHOT_CHEST] =                                   Location::Chest(RC_WATER_TEMPLE_LONGSHOT_CHEST,                                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 295,                          0x07, "Longshot Chest",                              RHT_WATER_TEMPLE_LONGSHOT_CHEST,                                 RG_PROGRESSIVE_HOOKSHOT,                                                                                                                                                                          true);
    locationTable[RC_WATER_TEMPLE_RIVER_CHEST] =                                      Location::Chest(RC_WATER_TEMPLE_RIVER_CHEST,                                     RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 22595,                        0x03, "River Chest",                                 RHT_WATER_TEMPLE_RIVER_CHEST,                                    RG_WATER_TEMPLE_SMALL_KEY,                                                                                                                                                                        true);
    // Water Temple MQ
    locationTable[RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_CHEST] =                          Location::Chest(RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_CHEST,                         RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 -30650,                       0x06, "MQ Central Pillar Chest",                     RHT_WATER_TEMPLE_MQ_CENTRAL_PILLAR_CHEST,                        RG_WATER_TEMPLE_SMALL_KEY,                                                                                                                                                                        true);
    locationTable[RC_WATER_TEMPLE_MQ_BOSS_KEY_CHEST] =                                Location::Chest(RC_WATER_TEMPLE_MQ_BOSS_KEY_CHEST,                               RCQUEST_MQ,      RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 10213,                        0x05, "MQ Boss Key Chest",                           RHT_WATER_TEMPLE_MQ_BOSS_KEY_CHEST,                              RG_WATER_TEMPLE_BOSS_KEY,                                                                                                                                                                         true);
    locationTable[RC_WATER_TEMPLE_MQ_LONGSHOT_CHEST] =                                Location::Chest(RC_WATER_TEMPLE_MQ_LONGSHOT_CHEST,                               RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 -20192,                       0x00, "MQ Longshot Chest",                           RHT_WATER_TEMPLE_MQ_LONGSHOT_CHEST,                              RG_PROGRESSIVE_HOOKSHOT,                                                                                                                                                                          true);
    locationTable[RC_WATER_TEMPLE_MQ_COMPASS_CHEST] =                                 Location::Chest(RC_WATER_TEMPLE_MQ_COMPASS_CHEST,                                RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 6145,                         0x01, "MQ Compass Chest",                            RHT_WATER_TEMPLE_MQ_COMPASS_CHEST,                               RG_WATER_TEMPLE_COMPASS,                                                                                                                                                                          true);
    locationTable[RC_WATER_TEMPLE_MQ_MAP_CHEST] =                                     Location::Chest(RC_WATER_TEMPLE_MQ_MAP_CHEST,                                    RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_WATER_TEMPLE,                 -18398,                       0x02, "MQ Map Chest",                                RHT_WATER_TEMPLE_MQ_MAP_CHEST,                                   RG_WATER_TEMPLE_MAP,                                                                                                                                                                              true);
    locationTable[RC_WATER_TEMPLE_MQ_FREESTANDING_KEY] =                        Location::Collectable(RC_WATER_TEMPLE_MQ_FREESTANDING_KEY,                             RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_ITEM00,      SCENE_WATER_TEMPLE,                 273,                          0x01, "MQ Freestanding Key",                         RHT_WATER_TEMPLE_MQ_FREESTANDING_KEY,                            RG_WATER_TEMPLE_SMALL_KEY,                                                                                                                                                                        true);

    // Spirit Temple Shared
    locationTable[RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST] =                          Location::Chest(RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST,                         RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_SPIRIT_TEMPLE,                ACTOR_EN_BOX,         SCENE_DESERT_COLOSSUS,              1707,                         0x0B, "Silver Gauntlets Chest",                      RHT_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST,                        RG_PROGRESSIVE_STRENGTH,                                                                                                                                                                          true);
    locationTable[RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST] =                             Location::Chest(RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST,                            RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_SPIRIT_TEMPLE,                ACTOR_EN_BOX,         SCENE_DESERT_COLOSSUS,              13673,                        0x09, "Mirror Shield Chest",                         RHT_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST,                           RG_MIRROR_SHIELD,                                                                                                                                                                                 true);
    // Spirit Temple Vanilla
    locationTable[RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST] =                              Location::Chest(RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST,                             RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                21800,                        0x08, "Child Bridge Chest",                          RHT_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST,                            RG_DEKU_SHIELD);
    locationTable[RC_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST] =                       Location::Chest(RC_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST,                      RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30656,                       0x00, "Child Early Torches Chest",                   RHT_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST,                     RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_COMPASS_CHEST] =                                   Location::Chest(RC_SPIRIT_TEMPLE_COMPASS_CHEST,                                  RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                14340,                        0x04, "Compass Chest",                               RHT_SPIRIT_TEMPLE_COMPASS_CHEST,                                 RG_SPIRIT_TEMPLE_COMPASS,                                                                                                                                                                         true);
    locationTable[RC_SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST] =                         Location::Chest(RC_SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST,                        RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                22599,                        0x07, "Early Adult Right Chest",                     RHT_SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST,                       RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST] =                         Location::Chest(RC_SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST,                        RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30451,                       0x0D, "First Mirror Left Chest",                     RHT_SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST,                       RG_ICE_TRAP);
    locationTable[RC_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST] =                        Location::Chest(RC_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST,                       RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -28786,                       0x0E, "First Mirror Right Chest",                    RHT_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST,                      RG_RECOVERY_HEART);
    locationTable[RC_SPIRIT_TEMPLE_MAP_CHEST] =                                       Location::Chest(RC_SPIRIT_TEMPLE_MAP_CHEST,                                      RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -18397,                       0x03, "Map Chest",                                   RHT_SPIRIT_TEMPLE_MAP_CHEST,                                     RG_SPIRIT_TEMPLE_MAP,                                                                                                                                                                             true);
    locationTable[RC_SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST] =                         Location::Chest(RC_SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST,                        RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -32666,                       0x06, "Child Climb North Chest",                     RHT_SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST,                       RG_BOMBCHU_10);
    locationTable[RC_SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST] =                          Location::Chest(RC_SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST,                         RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -31444,                       0x0C, "Child Climb East Chest",                      RHT_SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST,                        RG_DEKU_SHIELD);
    locationTable[RC_SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST] =                            Location::Chest(RC_SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST,                           RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30655,                       0x01, "Sun Block Room Chest",                        RHT_SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST,                          RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST] =                          Location::Chest(RC_SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST,                         RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30654,                       0x02, "Statue Room Hand Chest",                      RHT_SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST,                        RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST] =                     Location::Chest(RC_SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST,                    RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30577,                       0x0F, "Statue Room Northeast Chest",                 RHT_SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST,                   RG_BLUE_RUPEE);
    locationTable[RC_SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST] =                           Location::Chest(RC_SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST,                          RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                22597,                        0x05, "Near Four Armos Chest",                       RHT_SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST,                         RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST] =                   Location::Chest(RC_SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST,                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                26900,                        0x14, "Hallway Right Invisible Chest",               RHT_SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST,                 RG_RECOVERY_HEART);
    locationTable[RC_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST] =                    Location::Chest(RC_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST,                   RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                26901,                        0x15, "Hallway Left Invisible Chest",                RHT_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST,                  RG_RECOVERY_HEART);
    locationTable[RC_SPIRIT_TEMPLE_BOSS_KEY_CHEST] =                                  Location::Chest(RC_SPIRIT_TEMPLE_BOSS_KEY_CHEST,                                 RCQUEST_VANILLA, RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                10218,                        0x0A, "Boss Key Chest",                              RHT_SPIRIT_TEMPLE_BOSS_KEY_CHEST,                                RG_SPIRIT_TEMPLE_BOSS_KEY,                                                                                                                                                                        true);
    locationTable[RC_SPIRIT_TEMPLE_TOPMOST_CHEST] =                                   Location::Chest(RC_SPIRIT_TEMPLE_TOPMOST_CHEST,                                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -29454,                       0x12, "Topmost Chest",                               RHT_SPIRIT_TEMPLE_TOPMOST_CHEST,                                 RG_BOMBS_20,                                                                                                                                                                                      true);
    // Spirit Temple MQ
    locationTable[RC_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_LEFT_CHEST] =                    Location::Chest(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_LEFT_CHEST,                   RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                20602,                        0x1A, "MQ Entrance Front Left Chest",                RHT_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_LEFT_CHEST,                  RG_BOMBCHU_10);
    locationTable[RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_RIGHT_CHEST] =                    Location::Chest(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_RIGHT_CHEST,                   RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -32641,                       0x1F, "MQ Entrance Back Right Chest",                RHT_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_RIGHT_CHEST,                  RG_BOMBCHU_10);
    locationTable[RC_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_RIGHT_CHEST] =                   Location::Chest(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_RIGHT_CHEST,                  RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30629,                       0x1B, "MQ Entrance Front Right Chest",               RHT_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_RIGHT_CHEST,                 RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_LEFT_CHEST] =                     Location::Chest(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_LEFT_CHEST,                    RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30626,                       0x1E, "MQ Entrance Back Left Chest",                 RHT_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_LEFT_CHEST,                   RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_HAMMER_SWITCH_CHEST] =                    Location::Chest(RC_SPIRIT_TEMPLE_MQ_CHILD_HAMMER_SWITCH_CHEST,                   RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30627,                       0x1D, "MQ Child Hammer Switch Chest",                RHT_SPIRIT_TEMPLE_MQ_CHILD_HAMMER_SWITCH_CHEST,                  RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_MQ_MAP_CHEST] =                                    Location::Chest(RC_SPIRIT_TEMPLE_MQ_MAP_CHEST,                                   RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                2080,                         0x00, "MQ Map Chest",                                RHT_SPIRIT_TEMPLE_MQ_MAP_CHEST,                                  RG_SPIRIT_TEMPLE_MAP,                                                                                                                                                                             true);
    locationTable[RC_SPIRIT_TEMPLE_MQ_MAP_ROOM_ENEMY_CHEST] =                         Location::Chest(RC_SPIRIT_TEMPLE_MQ_MAP_ROOM_ENEMY_CHEST,                        RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                30792,                        0x08, "MQ Map Room Enemy Chest",                     RHT_SPIRIT_TEMPLE_MQ_MAP_ROOM_ENEMY_CHEST,                       RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_NORTH_CHEST] =                      Location::Chest(RC_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_NORTH_CHEST,                     RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                28774,                        0x06, "MQ Child Climb North Chest",                  RHT_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_NORTH_CHEST,                    RG_BOMBCHU_10);
    locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_SOUTH_CHEST] =                      Location::Chest(RC_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_SOUTH_CHEST,                     RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30644,                       0x0C, "MQ Child Climb South Chest",                  RHT_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_SOUTH_CHEST,                    RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_MQ_COMPASS_CHEST] =                                Location::Chest(RC_SPIRIT_TEMPLE_MQ_COMPASS_CHEST,                               RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -18429,                       0x03, "MQ Compass Chest",                            RHT_SPIRIT_TEMPLE_MQ_COMPASS_CHEST,                              RG_SPIRIT_TEMPLE_COMPASS,                                                                                                                                                                         true);
    locationTable[RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_LULLABY_CHEST] =                    Location::Chest(RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_LULLABY_CHEST,                   RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30577,                       0x0F, "MQ Statue Room Lullaby Chest",                RHT_SPIRIT_TEMPLE_MQ_STATUE_ROOM_LULLABY_CHEST,                  RG_BLUE_RUPEE);
    locationTable[RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_INVISIBLE_CHEST] =                  Location::Chest(RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_INVISIBLE_CHEST,                 RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                26882,                        0x02, "MQ Statue Room Invisible Chest",              RHT_SPIRIT_TEMPLE_MQ_STATUE_ROOM_INVISIBLE_CHEST,                RG_RECOVERY_HEART);
    locationTable[RC_SPIRIT_TEMPLE_MQ_SILVER_BLOCK_HALLWAY_CHEST] =                   Location::Chest(RC_SPIRIT_TEMPLE_MQ_SILVER_BLOCK_HALLWAY_CHEST,                  RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30628,                       0x1C, "MQ Silver Block Hallway Chest",               RHT_SPIRIT_TEMPLE_MQ_SILVER_BLOCK_HALLWAY_CHEST,                 RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM_CHEST] =                         Location::Chest(RC_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM_CHEST,                        RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                -30463,                       0x01, "MQ Sun Block Room Chest",                     RHT_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM_CHEST,                       RG_RECOVERY_HEART);
    locationTable[RC_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM_CHEST] =                          Location::Chest(RC_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM_CHEST,                         RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                23207,                        0x07, "MQ Symphony Room Chest",                      RHT_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM_CHEST,                        RG_PURPLE_RUPEE);
    locationTable[RC_SPIRIT_TEMPLE_MQ_LEEVER_ROOM_CHEST] =                            Location::Chest(RC_SPIRIT_TEMPLE_MQ_LEEVER_ROOM_CHEST,                           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                31396,                        0x04, "MQ Leever Room Chest",                        RHT_SPIRIT_TEMPLE_MQ_LEEVER_ROOM_CHEST,                          RG_PURPLE_RUPEE);
    locationTable[RC_SPIRIT_TEMPLE_MQ_BEAMOS_ROOM_CHEST] =                            Location::Chest(RC_SPIRIT_TEMPLE_MQ_BEAMOS_ROOM_CHEST,                           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                24472,                        0x19, "MQ Beamos Room Chest",                        RHT_SPIRIT_TEMPLE_MQ_BEAMOS_ROOM_CHEST,                          RG_RECOVERY_HEART);
    locationTable[RC_SPIRIT_TEMPLE_MQ_CHEST_SWITCH_CHEST] =                           Location::Chest(RC_SPIRIT_TEMPLE_MQ_CHEST_SWITCH_CHEST,                          RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                31097,                        0x18, "MQ Chest Switch Chest",                       RHT_SPIRIT_TEMPLE_MQ_CHEST_SWITCH_CHEST,                         RG_ICE_TRAP);
    locationTable[RC_SPIRIT_TEMPLE_MQ_BOSS_KEY_CHEST] =                               Location::Chest(RC_SPIRIT_TEMPLE_MQ_BOSS_KEY_CHEST,                              RCQUEST_MQ,      RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                10213,                        0x05, "MQ Boss Key Chest",                           RHT_SPIRIT_TEMPLE_MQ_BOSS_KEY_CHEST,                             RG_SPIRIT_TEMPLE_BOSS_KEY,                                                                                                                                                                        true);
    locationTable[RC_SPIRIT_TEMPLE_MQ_MIRROR_PUZZLE_INVISIBLE_CHEST] =                Location::Chest(RC_SPIRIT_TEMPLE_MQ_MIRROR_PUZZLE_INVISIBLE_CHEST,               RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SPIRIT_TEMPLE,                26706,                        0x12, "MQ Mirror Puzzle Invisible Chest",            RHT_SPIRIT_TEMPLE_MQ_MIRROR_PUZZLE_INVISIBLE_CHEST,              RG_SPIRIT_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);

    // Shadow Temple Vanilla
    locationTable[RC_SHADOW_TEMPLE_MAP_CHEST] =                                       Location::Chest(RC_SHADOW_TEMPLE_MAP_CHEST,                                      RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                6177,                         0x01, "Map Chest",                                   RHT_SHADOW_TEMPLE_MAP_CHEST,                                     RG_SHADOW_TEMPLE_MAP,                                                                                                                                                                             true);
    locationTable[RC_SHADOW_TEMPLE_HOVER_BOOTS_CHEST] =                               Location::Chest(RC_SHADOW_TEMPLE_HOVER_BOOTS_CHEST,                              RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                5607,                         0x07, "Hover Boots Chest",                           RHT_SHADOW_TEMPLE_HOVER_BOOTS_CHEST,                             RG_HOVER_BOOTS,                                                                                                                                                                                   true);
    locationTable[RC_SHADOW_TEMPLE_COMPASS_CHEST] =                                   Location::Chest(RC_SHADOW_TEMPLE_COMPASS_CHEST,                                  RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                6147,                         0x03, "Compass Chest",                               RHT_SHADOW_TEMPLE_COMPASS_CHEST,                                 RG_SHADOW_TEMPLE_COMPASS,                                                                                                                                                                         true);
    locationTable[RC_SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST] =                        Location::Chest(RC_SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST,                       RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                22594,                        0x02, "Early Silver Rupee Chest",                    RHT_SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST,                      RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST] =                  Location::Chest(RC_SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST,                 RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                22668,                        0x0C, "Invisible Blades Visible Chest",              RHT_SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST,                RG_BLUE_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST] =                Location::Chest(RC_SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST,               RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                26998,                        0x16, "Invisible Blades Invisible Chest",            RHT_SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST,              RG_ARROWS_30);
    locationTable[RC_SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST] =                      Location::Chest(RC_SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST,                     RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                22853,                        0x05, "Falling Spikes Lower Chest",                  RHT_SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST,                    RG_ARROWS_10);
    locationTable[RC_SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST] =                      Location::Chest(RC_SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST,                     RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                22662,                        0x06, "Falling Spikes Upper Chest",                  RHT_SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST,                    RG_BLUE_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST] =                     Location::Chest(RC_SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST,                    RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                -30652,                       0x04, "Falling Spikes Switch Chest",                 RHT_SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST,                   RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST] =                          Location::Chest(RC_SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST,                         RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                30857,                        0x09, "Invisible Spikes Chest",                      RHT_SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST,                        RG_BLUE_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_WIND_HINT_CHEST] =                                 Location::Chest(RC_SHADOW_TEMPLE_WIND_HINT_CHEST,                                RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                26965,                        0x15, "Wind Hint Chest",                             RHT_SHADOW_TEMPLE_WIND_HINT_CHEST,                               RG_ARROWS_10);
    locationTable[RC_SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST] =                          Location::Chest(RC_SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST,                         RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                30856,                        0x08, "After Wind Enemy Chest",                      RHT_SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST,                        RG_BLUE_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST] =                         Location::Chest(RC_SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST,                        RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                26708,                        0x14, "After Wind Hidden Chest",                     RHT_SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST,                       RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST] =                          Location::Chest(RC_SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST,                         RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                22666,                        0x0A, "Spike Walls Left Chest",                      RHT_SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST,                        RG_BLUE_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_BOSS_KEY_CHEST] =                                  Location::Chest(RC_SHADOW_TEMPLE_BOSS_KEY_CHEST,                                 RCQUEST_VANILLA, RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                10219,                        0x0B, "Boss Key Chest",                              RHT_SHADOW_TEMPLE_BOSS_KEY_CHEST,                                RG_SHADOW_TEMPLE_BOSS_KEY,                                                                                                                                                                        true);
    locationTable[RC_SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST] =                     Location::Chest(RC_SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST,                    RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                30797,                        0x0D, "Invisible Floormaster Chest",                 RHT_SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST,                   RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SHADOW_TEMPLE_FREESTANDING_KEY] =                          Location::Collectable(RC_SHADOW_TEMPLE_FREESTANDING_KEY,                               RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_ITEM00,      SCENE_SHADOW_TEMPLE,                273,                          0x01, "Freestanding Key",                            RHT_SHADOW_TEMPLE_FREESTANDING_KEY,                              RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    // Shadow Temple MQ
    locationTable[RC_SHADOW_TEMPLE_MQ_COMPASS_CHEST] =                                Location::Chest(RC_SHADOW_TEMPLE_MQ_COMPASS_CHEST,                               RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                6145,                         0x01, "MQ Compass Chest",                            RHT_SHADOW_TEMPLE_MQ_COMPASS_CHEST,                              RG_SHADOW_TEMPLE_COMPASS,                                                                                                                                                                         true);
    locationTable[RC_SHADOW_TEMPLE_MQ_HOVER_BOOTS_CHEST] =                            Location::Chest(RC_SHADOW_TEMPLE_MQ_HOVER_BOOTS_CHEST,                           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                5607,                         0x07, "MQ Hover Boots Chest",                        RHT_SHADOW_TEMPLE_MQ_HOVER_BOOTS_CHEST,                          RG_HOVER_BOOTS,                                                                                                                                                                                   true);
    locationTable[RC_SHADOW_TEMPLE_MQ_EARLY_GIBDOS_CHEST] =                           Location::Chest(RC_SHADOW_TEMPLE_MQ_EARLY_GIBDOS_CHEST,                          RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                30787,                        0x03, "MQ Early Gibdos Chest",                       RHT_SHADOW_TEMPLE_MQ_EARLY_GIBDOS_CHEST,                         RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SHADOW_TEMPLE_MQ_MAP_CHEST] =                                    Location::Chest(RC_SHADOW_TEMPLE_MQ_MAP_CHEST,                                   RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                2082,                         0x02, "MQ Map Chest",                                RHT_SHADOW_TEMPLE_MQ_MAP_CHEST,                                  RG_SHADOW_TEMPLE_MAP,                                                                                                                                                                             true);
    locationTable[RC_SHADOW_TEMPLE_MQ_BEAMOS_SILVER_RUPEES_CHEST] =                   Location::Chest(RC_SHADOW_TEMPLE_MQ_BEAMOS_SILVER_RUPEES_CHEST,                  RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                -30417,                       0x0F, "MQ Beamos Silver Rupees Chest",               RHT_SHADOW_TEMPLE_MQ_BEAMOS_SILVER_RUPEES_CHEST,                 RG_ARROWS_5);
    locationTable[RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_SWITCH_CHEST] =                  Location::Chest(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_SWITCH_CHEST,                 RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                22662,                        0x04, "MQ Falling Spikes Switch Chest",              RHT_SHADOW_TEMPLE_MQ_FALLING_SPIKES_SWITCH_CHEST,                RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_LOWER_CHEST] =                   Location::Chest(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_LOWER_CHEST,                  RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                22853,                        0x05, "MQ Falling Spikes Lower Chest",               RHT_SHADOW_TEMPLE_MQ_FALLING_SPIKES_LOWER_CHEST,                 RG_ARROWS_10);
    locationTable[RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_UPPER_CHEST] =                   Location::Chest(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_UPPER_CHEST,                  RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                -30652,                       0x06, "MQ Falling Spikes Upper Chest",               RHT_SHADOW_TEMPLE_MQ_FALLING_SPIKES_UPPER_CHEST,                 RG_ARROWS_5);
    locationTable[RC_SHADOW_TEMPLE_MQ_INVISIBLE_SPIKES_CHEST] =                       Location::Chest(RC_SHADOW_TEMPLE_MQ_INVISIBLE_SPIKES_CHEST,                      RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                30857,                        0x09, "MQ Invisible Spikes Chest",                   RHT_SHADOW_TEMPLE_MQ_INVISIBLE_SPIKES_CHEST,                     RG_BLUE_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_MQ_BOSS_KEY_CHEST] =                               Location::Chest(RC_SHADOW_TEMPLE_MQ_BOSS_KEY_CHEST,                              RCQUEST_MQ,      RCTYPE_BOSS_KEY,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                10219,                        0x0B, "MQ Boss Key Chest",                           RHT_SHADOW_TEMPLE_MQ_BOSS_KEY_CHEST,                             RG_SHADOW_TEMPLE_BOSS_KEY,                                                                                                                                                                        true);
    locationTable[RC_SHADOW_TEMPLE_MQ_SPIKE_WALLS_LEFT_CHEST] =                       Location::Chest(RC_SHADOW_TEMPLE_MQ_SPIKE_WALLS_LEFT_CHEST,                      RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                22666,                        0x0A, "MQ Spike Walls Left Chest",                   RHT_SHADOW_TEMPLE_MQ_SPIKE_WALLS_LEFT_CHEST,                     RG_BLUE_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_MQ_STALFOS_ROOM_CHEST] =                           Location::Chest(RC_SHADOW_TEMPLE_MQ_STALFOS_ROOM_CHEST,                          RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                31184,                        0x10, "MQ Stalfos Room Chest",                       RHT_SHADOW_TEMPLE_MQ_STALFOS_ROOM_CHEST,                         RG_RED_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_INVISIBLE_CHEST] =             Location::Chest(RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_INVISIBLE_CHEST,            RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                26710,                        0x16, "MQ Invisible Blades Invisible Chest",         RHT_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_INVISIBLE_CHEST,           RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_VISIBLE_CHEST] =               Location::Chest(RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_VISIBLE_CHEST,              RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                22668,                        0x0C, "MQ Invisible Blades Visible Chest",           RHT_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_VISIBLE_CHEST,             RG_BLUE_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_MQ_BOMB_FLOWER_CHEST] =                            Location::Chest(RC_SHADOW_TEMPLE_MQ_BOMB_FLOWER_CHEST,                           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                31053,                        0x0D, "MQ Bomb Flower Chest",                        RHT_SHADOW_TEMPLE_MQ_BOMB_FLOWER_CHEST,                          RG_ARROWS_10);
    locationTable[RC_SHADOW_TEMPLE_MQ_WIND_HINT_CHEST] =                              Location::Chest(RC_SHADOW_TEMPLE_MQ_WIND_HINT_CHEST,                             RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                26709,                        0x15, "MQ Wind Hint Chest",                          RHT_SHADOW_TEMPLE_MQ_WIND_HINT_CHEST,                            RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SHADOW_TEMPLE_MQ_AFTER_WIND_HIDDEN_CHEST] =                      Location::Chest(RC_SHADOW_TEMPLE_MQ_AFTER_WIND_HIDDEN_CHEST,                     RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                26932,                        0x14, "MQ After Wind Hidden Chest",                  RHT_SHADOW_TEMPLE_MQ_AFTER_WIND_HIDDEN_CHEST,                    RG_ARROWS_5);
    locationTable[RC_SHADOW_TEMPLE_MQ_AFTER_WIND_ENEMY_CHEST] =                       Location::Chest(RC_SHADOW_TEMPLE_MQ_AFTER_WIND_ENEMY_CHEST,                      RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                30856,                        0x08, "MQ After Wind Enemy Chest",                   RHT_SHADOW_TEMPLE_MQ_AFTER_WIND_ENEMY_CHEST,                     RG_BLUE_RUPEE);
    locationTable[RC_SHADOW_TEMPLE_MQ_NEAR_SHIP_INVISIBLE_CHEST] =                    Location::Chest(RC_SHADOW_TEMPLE_MQ_NEAR_SHIP_INVISIBLE_CHEST,                   RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_SHADOW_TEMPLE,                26702,                        0x0E, "MQ Near Ship Invisible Chest",                RHT_SHADOW_TEMPLE_MQ_NEAR_SHIP_INVISIBLE_CHEST,                  RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_SHADOW_TEMPLE_MQ_FREESTANDING_KEY] =                       Location::Collectable(RC_SHADOW_TEMPLE_MQ_FREESTANDING_KEY,                            RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_ITEM00,      SCENE_SHADOW_TEMPLE,                1553,                         0x06, "MQ Freestanding Key",                         RHT_SHADOW_TEMPLE_MQ_FREESTANDING_KEY,                           RG_SHADOW_TEMPLE_SMALL_KEY,                                                                                                                                                                       true);

    // Bottom of the Well Vanilla
    locationTable[RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST] =                 Location::Chest(RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST,                RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           22600,                        0x08, "Front Left Fake Wall Chest",                  RHT_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST,               RG_BOTTOM_OF_THE_WELL_SMALL_KEY,                                                                                                                                                                  true);
    locationTable[RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST] =                Location::Chest(RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST,               RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           20578,                        0x02, "Front Center Bombable Chest",                 RHT_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST,              RG_BOMBCHU_10);
    locationTable[RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST] =               Location::Chest(RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST,              RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           22597,                        0x05, "Right Bottom Fake Wall Chest",                RHT_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST,             RG_BOTTOM_OF_THE_WELL_SMALL_KEY,                                                                                                                                                                  true);
    locationTable[RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST] =                              Location::Chest(RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST,                             RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           2049,                         0x01, "Compass Chest",                               RHT_BOTTOM_OF_THE_WELL_COMPASS_CHEST,                            RG_BOTTOM_OF_THE_WELL_COMPASS,                                                                                                                                                                    true);
    locationTable[RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST] =                     Location::Chest(RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST,                    RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           20558,                        0x0E, "Center Skulltula Chest",                      RHT_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST,                   RG_DEKU_NUTS_5);
    locationTable[RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST] =                   Location::Chest(RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST,                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           23684,                        0x04, "Back Left Bombable Chest",                    RHT_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST,                 RG_DEKU_NUTS_10);
    locationTable[RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST] =                        Location::Chest(RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST,                       RCQUEST_VANILLA, RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           4419,                         0x03, "Lens of Truth Chest",                         RHT_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST,                      RG_LENS_OF_TRUTH,                                                                                                                                                                                 true);
    locationTable[RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST] =                            Location::Chest(RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST,                           RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           27348,                        0x14, "Invisible Chest",                             RHT_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST,                          RG_HUGE_RUPEE);
    locationTable[RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST] =                     Location::Chest(RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST,                    RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           23760,                        0x10, "Underwater Front Chest",                      RHT_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST,                   RG_BOMBS_10);
    locationTable[RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST] =                      Location::Chest(RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST,                     RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           22793,                        0x09, "Underwater Left Chest",                       RHT_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST,                    RG_RECOVERY_HEART);
    locationTable[RC_BOTTOM_OF_THE_WELL_MAP_CHEST] =                                  Location::Chest(RC_BOTTOM_OF_THE_WELL_MAP_CHEST,                                 RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           2087,                         0x07, "Map Chest",                                   RHT_BOTTOM_OF_THE_WELL_MAP_CHEST,                                RG_BOTTOM_OF_THE_WELL_MAP,                                                                                                                                                                        true);
    locationTable[RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST] =                           Location::Chest(RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST,                          RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           21802,                        0x0A, "Fire Keese Chest",                            RHT_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST,                         RG_DEKU_SHIELD);
    locationTable[RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST] =                            Location::Chest(RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST,                           RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           21836,                        0x0C, "Like Like Chest",                             RHT_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST,                          RG_HYLIAN_SHIELD);
    locationTable[RC_BOTTOM_OF_THE_WELL_FREESTANDING_KEY] =                     Location::Collectable(RC_BOTTOM_OF_THE_WELL_FREESTANDING_KEY,                          RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_ITEM00,      SCENE_BOTTOM_OF_THE_WELL,           273,                          0x01, "Freestanding Key",                            RHT_BOTTOM_OF_THE_WELL_FREESTANDING_KEY,                         RG_BOTTOM_OF_THE_WELL_SMALL_KEY,                                                                                                                                                                  true);
    // Bottom of the Well Master Quest
    locationTable[RC_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST] =                               Location::Chest(RC_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST,                              RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           2083,                         0x03, "MQ Map Chest",                                RHT_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST,                             RG_BOTTOM_OF_THE_WELL_MAP,                                                                                                                                                                        true);
    locationTable[RC_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST] =                     Location::Chest(RC_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST,                    RCQUEST_MQ,      RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           -20159,                       0x01, "MQ Lens of Truth Chest",                      RHT_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST,                   RG_LENS_OF_TRUTH,                                                                                                                                                                                 true);
    locationTable[RC_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST] =                           Location::Chest(RC_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST,                          RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_BOTTOM_OF_THE_WELL,           6146,                         0x02, "MQ Compass Chest",                            RHT_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST,                         RG_BOTTOM_OF_THE_WELL_COMPASS,                                                                                                                                                                    true);
    locationTable[RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY] =        Location::Collectable(RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY,             RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_ITEM00,      SCENE_BOTTOM_OF_THE_WELL,           529,                          0x02, "MQ Dead Hand Freestanding Key",               RHT_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY,            RG_BOTTOM_OF_THE_WELL_SMALL_KEY,                                                                                                                                                                  true);
    locationTable[RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY] =  Location::Collectable(RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY,       RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_ITEM00,      SCENE_BOTTOM_OF_THE_WELL,           273,                          0x01, "MQ East Inner Room Freestanding Key",         RHT_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY,      RG_BOTTOM_OF_THE_WELL_SMALL_KEY,                                                                                                                                                                  true);

    // Ice Cavern Vanilla
    locationTable[RC_ICE_CAVERN_MAP_CHEST] =                                          Location::Chest(RC_ICE_CAVERN_MAP_CHEST,                                         RCQUEST_VANILLA, RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_ICE_CAVERN,                   2080,                         0x00, "Map Chest",                                   RHT_ICE_CAVERN_MAP_CHEST,                                        RG_ICE_CAVERN_MAP,                                                                                                                                                                                true);
    locationTable[RC_ICE_CAVERN_COMPASS_CHEST] =                                      Location::Chest(RC_ICE_CAVERN_COMPASS_CHEST,                                     RCQUEST_VANILLA, RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_ICE_CAVERN,                   2049,                         0x01, "Compass Chest",                               RHT_ICE_CAVERN_COMPASS_CHEST,                                    RG_ICE_CAVERN_COMPASS,                                                                                                                                                                            true);
    locationTable[RC_ICE_CAVERN_IRON_BOOTS_CHEST] =                                   Location::Chest(RC_ICE_CAVERN_IRON_BOOTS_CHEST,                                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_ICE_CAVERN,                   5570,                         0x02, "Iron Boots Chest",                            RHT_ICE_CAVERN_IRON_BOOTS_CHEST,                                 RG_IRON_BOOTS,                                                                                                                                                                                    true);
    locationTable[RC_ICE_CAVERN_FREESTANDING_POH] =                             Location::Collectable(RC_ICE_CAVERN_FREESTANDING_POH,                                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_ICE_CAVERN,                   262,                          0x01, "Freestanding PoH",                            RHT_ICE_CAVERN_FREESTANDING_POH,                                 RG_PIECE_OF_HEART,                                                                                                                                                                                true);
    // Ice Cavern Master Quest
    locationTable[RC_ICE_CAVERN_MQ_IRON_BOOTS_CHEST] =                                Location::Chest(RC_ICE_CAVERN_MQ_IRON_BOOTS_CHEST,                               RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_ICE_CAVERN,                   5570,                         0x02, "MQ Iron Boots Chest",                         RHT_ICE_CAVERN_MQ_IRON_BOOTS_CHEST,                              RG_IRON_BOOTS,                                                                                                                                                                                    true);
    locationTable[RC_ICE_CAVERN_MQ_COMPASS_CHEST] =                                   Location::Chest(RC_ICE_CAVERN_MQ_COMPASS_CHEST,                                  RCQUEST_MQ,      RCTYPE_COMPASS,                                                          ACTOR_EN_BOX,         SCENE_ICE_CAVERN,                   2048,                         0x00, "MQ Compass Chest",                            RHT_ICE_CAVERN_MQ_COMPASS_CHEST,                                 RG_ICE_CAVERN_COMPASS,                                                                                                                                                                            true);
    locationTable[RC_ICE_CAVERN_MQ_MAP_CHEST] =                                       Location::Chest(RC_ICE_CAVERN_MQ_MAP_CHEST,                                      RCQUEST_MQ,      RCTYPE_MAP,                                                              ACTOR_EN_BOX,         SCENE_ICE_CAVERN,                   -18399,                       0x01, "MQ Map Chest",                                RHT_ICE_CAVERN_MQ_MAP_CHEST,                                     RG_ICE_CAVERN_MAP,                                                                                                                                                                                true);
    locationTable[RC_ICE_CAVERN_MQ_FREESTANDING_POH] =                          Location::Collectable(RC_ICE_CAVERN_MQ_FREESTANDING_POH,                               RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_ITEM00,      SCENE_ICE_CAVERN,                   262,                          0x01, "MQ Freestanding PoH",                         RHT_ICE_CAVERN_MQ_FREESTANDING_POH,                              RG_PIECE_OF_HEART,                                                                                                                                                                                true);

    // Gerudo Training Ground Vanilla
    locationTable[RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST] =                       Location::Chest(RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST,                      RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30573,                       0x13, "Lobby Left Chest",                            RHT_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST,                     RG_BLUE_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST] =                      Location::Chest(RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST,                     RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30393,                       0x07, "Lobby Right Chest",                           RHT_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST,                    RG_ARROWS_10);
    locationTable[RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST] =                          Location::Chest(RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST,                         RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30656,                       0x00, "Stalfos Chest",                               RHT_GERUDO_TRAINING_GROUND_STALFOS_CHEST,                        RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST] =                           Location::Chest(RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST,                          RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30655,                       0x01, "Beamos Chest",                                RHT_GERUDO_TRAINING_GROUND_BEAMOS_CHEST,                         RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST] =                   Location::Chest(RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST,                  RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22603,                        0x0B, "Hidden Ceiling Chest",                        RHT_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST,                 RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST] =                  Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST,                 RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       23206,                        0x06, "Maze Path First Chest",                       RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST,                RG_PURPLE_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST] =                 Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST,                RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22986,                        0x0A, "Maze Path Second Chest",                      RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST,               RG_RED_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST] =                  Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST,                 RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22889,                        0x09, "Maze Path Third Chest",                       RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST,                RG_ARROWS_30);
    locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST] =                  Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST,                 RCQUEST_VANILLA, RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       2860,                         0x0C, "Maze Path Final Chest",                       RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST,                RG_ICE_ARROWS,                                                                                                                                                                                    true);
    locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST] =               Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST,              RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       23877,                        0x05, "Maze Right Central Chest",                    RHT_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST,             RG_BOMBCHU_5);
    locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST] =                  Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST,                 RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22888,                        0x08, "Maze Right Side Chest",                       RHT_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST,                RG_ARROWS_30);
    locationTable[RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST] =          Location::Chest(RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST,         RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30643,                       0x0D, "Underwater Silver Rupee Chest",               RHT_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST,        RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST] =                Location::Chest(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST,               RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       31058,                        0x12, "Hammer Room Clear Chest",                     RHT_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST,              RG_ARROWS_10);
    locationTable[RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST] =               Location::Chest(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST,              RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22608,                        0x10, "Hammer Room Switch Chest",                    RHT_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST,             RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST] =                       Location::Chest(RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST,                      RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30653,                       0x03, "Eye Statue Chest",                            RHT_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST,                     RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST] =                   Location::Chest(RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST,                  RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22596,                        0x04, "Near Scarecrow Chest",                        RHT_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST,                 RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST] =               Location::Chest(RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST,              RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       31089,                        0x11, "Before Heavy Block Chest",                    RHT_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST,             RG_ARROWS_30);
    locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST] =                Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST,               RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       31439,                        0x0F, "Heavy Block First Chest",                     RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST,              RG_HUGE_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST] =               Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST,              RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       30862,                        0x0E, "Heavy Block Second Chest",                    RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST,             RG_BLUE_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST] =                Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST,               RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       26708,                        0x14, "Heavy Block Third Chest",                     RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST,              RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST] =               Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST,              RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       24450,                        0x02, "Heavy Block Fourth Chest",                    RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST,             RG_ICE_TRAP);
    locationTable[RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY] =                 Location::Collectable(RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY,                      RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_ITEM00,      SCENE_GERUDO_TRAINING_GROUND,       273,                          0x01, "Freestanding Key",                            RHT_GERUDO_TRAINING_GROUND_FREESTANDING_KEY,                     RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    // Gerudo Training Ground Master Quest
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST] =                   Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST,                  RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       23879,                        0x07, "MQ Lobby Right Chest",                        RHT_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST,                 RG_BOMBCHU_5);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST] =                    Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST,                   RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22867,                        0x13, "MQ Lobby Left Chest",                         RHT_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST,                  RG_ARROWS_10);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST] =            Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST,           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30304,                       0x00, "MQ First Iron Knuckle Chest",                 RHT_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST,          RG_BLUE_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST] =            Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST,           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       31057,                        0x11, "MQ Before Heavy Block Chest",                 RHT_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST,          RG_ARROWS_10);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST] =                    Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST,                   RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -32669,                       0x03, "MQ Eye Statue Chest",                         RHT_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST,                  RG_BOMBCHU_10);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST] =                  Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST,                 RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30642,                       0x0E, "MQ Flame Circle Chest",                       RHT_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST,                RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST] =           Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST,          RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       31058,                        0x12, "MQ Second Iron Knuckle Chest",                RHT_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST,         RG_ARROWS_10);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST] =                      Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST,                     RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30655,                       0x01, "MQ Dinolfos Chest",                           RHT_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST,                    RG_GERUDO_TRAINING_GROUND_SMALL_KEY,                                                                                                                                                             true);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST] =                    Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST,                   RCQUEST_MQ,      RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -17628,                       0x04, "MQ Ice Arrows Chest",                         RHT_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST,                  RG_ICE_ARROWS,                                                                                                                                                                                    true);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST] =            Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST,           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22661,                        0x05, "MQ Maze Right Central Chest",                 RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST,          RG_BLUE_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST] =               Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST,              RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22918,                        0x06, "MQ Maze Path First Chest",                    RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST,             RG_GREEN_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST] =               Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST,              RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       24136,                        0x08, "MQ Maze Right Side Chest",                    RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST,             RG_TREASURE_GAME_GREEN_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST] =               Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST,              RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       24137,                        0x09, "MQ Maze Path Third Chest",                    RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST,             RG_TREASURE_GAME_GREEN_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST] =              Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST,             RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       22986,                        0x0A, "MQ Maze Path Second Chest",                   RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST,            RG_RED_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST] =                Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST,               RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       23211,                        0x0B, "MQ Hidden Ceiling Chest",                     RHT_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST,              RG_PURPLE_RUPEE);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST] =       Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST,      RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       -30643,                       0x0D, "MQ Underwater Silver Rupee Chest",            RHT_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST,     RG_TREASURE_GAME_GREEN_RUPEE,                                                                                                                                                                     true);
    locationTable[RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST] =                   Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST,                  RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_GERUDO_TRAINING_GROUND,       31394,                        0x02, "MQ Heavy Block Chest",                        RHT_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST,                 RG_PURPLE_RUPEE);

    // Ganon's Castle Shared
    locationTable[RC_GANONS_TOWER_BOSS_KEY_CHEST] =                                   Location::Chest(RC_GANONS_TOWER_BOSS_KEY_CHEST,                                  RCQUEST_BOTH,    RCTYPE_GANON_BOSS_KEY,                                                   ACTOR_EN_BOX,         SCENE_GANONS_TOWER,                 10219,                        0x0B, "Tower Boss Key Chest",                        RHT_GANONS_TOWER_BOSS_KEY_CHEST,                                 RG_GANONS_CASTLE_BOSS_KEY,                                                                                                                                                                        true);
    // Ganon's Castle Vanilla
    locationTable[RC_GANONS_CASTLE_FOREST_TRIAL_CHEST] =                              Location::Chest(RC_GANONS_CASTLE_FOREST_TRIAL_CHEST,                             RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         30857,                        0x09, "Forest Trial Chest",                          RHT_GANONS_CASTLE_FOREST_TRIAL_CHEST,                            RG_BLUE_RUPEE);
    locationTable[RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST] =                          Location::Chest(RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST,                         RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         24455,                        0x07, "Water Trial Left Chest",                      RHT_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST,                        RG_ICE_TRAP);
    locationTable[RC_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST] =                         Location::Chest(RC_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST,                        RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         22790,                        0x06, "Water Trial Right Chest",                     RHT_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST,                       RG_RECOVERY_HEART);
    locationTable[RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST] =                        Location::Chest(RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST,                       RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         22664,                        0x08, "Shadow Trial Front Chest",                    RHT_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST,                      RG_BLUE_RUPEE);
    locationTable[RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST] =             Location::Chest(RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST,            RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         14021,                        0x05, "Shadow Trial Golden Gauntlets Chest",         RHT_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST,           RG_PROGRESSIVE_STRENGTH,                                                                                                                                                                          true);
    locationTable[RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST] =               Location::Chest(RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST,              RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -29326,                       0x12, "Spirit Trial Crystal Switch Chest",           RHT_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST,             RG_BOMBCHU_20);
    locationTable[RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST] =                    Location::Chest(RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST,                   RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         26964,                        0x14, "Spirit Trial Invisible Chest",                RHT_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST,                  RG_ARROWS_10);
    locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST] =                    Location::Chest(RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST,                   RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         22668,                        0x0C, "Light Trial First Left Chest",                RHT_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST,                  RG_BLUE_RUPEE);
    locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST] =                   Location::Chest(RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST,                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         24459,                        0x0B, "Light Trial Second Left Chest",               RHT_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST,                 RG_ICE_TRAP);
    locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST] =                    Location::Chest(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST,                   RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         22797,                        0x0D, "Light Trial Third Left Chest",                RHT_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST,                  RG_RECOVERY_HEART);
    locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST] =                   Location::Chest(RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST,                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         24462,                        0x0E, "Light Trial First Right Chest",               RHT_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST,                 RG_ICE_TRAP);
    locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST] =                  Location::Chest(RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST,                 RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         22890,                        0x0A, "Light Trial Second Right Chest",              RHT_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST,                RG_ARROWS_30);
    locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST] =                   Location::Chest(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST,                  RCQUEST_VANILLA, RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         24463,                        0x0F, "Light Trial Third Right Chest",               RHT_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST,                 RG_ICE_TRAP);
    locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST] =             Location::Chest(RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST,            RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         30800,                        0x10, "Light Trial Invisible Enemies Chest",         RHT_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST,           RG_GANONS_CASTLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST] =                       Location::Chest(RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST,                      RCQUEST_VANILLA, RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -30639,                       0x11, "Light Trial Lullaby Chest",                   RHT_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST,                     RG_GANONS_CASTLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT] =                           Location::Base(RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT,                         RCQUEST_VANILLA, RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_INSIDE_GANONS_CASTLE,         0x05,                               "Deku Scrub Center-Left",                      RHT_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT,                        RG_BUY_BOMBS_535,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT),                        false, 40);
    locationTable[RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT] =                          Location::Base(RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT,                        RCQUEST_VANILLA, RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_INSIDE_GANONS_CASTLE,         0x03,                               "Deku Scrub Center-Right",                     RHT_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT,                       RG_BUY_ARROWS_30,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT),                       false, 70);
    locationTable[RC_GANONS_CASTLE_DEKU_SCRUB_RIGHT] =                                 Location::Base(RC_GANONS_CASTLE_DEKU_SCRUB_RIGHT,                               RCQUEST_VANILLA, RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_INSIDE_GANONS_CASTLE,         0x07,                               "Deku Scrub Right",                            RHT_GANONS_CASTLE_DEKU_SCRUB_RIGHT,                              RG_BUY_RED_POTION_40,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_RIGHT),                              false, 20);
    locationTable[RC_GANONS_CASTLE_DEKU_SCRUB_LEFT] =                                  Location::Base(RC_GANONS_CASTLE_DEKU_SCRUB_LEFT,                                RCQUEST_VANILLA, RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_INSIDE_GANONS_CASTLE,         0x08,                               "Deku Scrub Left",                             RHT_GANONS_CASTLE_DEKU_SCRUB_LEFT,                               RG_BUY_GREEN_POTION,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_LEFT),                               false, 40);
    // Ganon's Castle MQ
    locationTable[RC_GANONS_CASTLE_MQ_WATER_TRIAL_CHEST] =                            Location::Chest(RC_GANONS_CASTLE_MQ_WATER_TRIAL_CHEST,                           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         22977,                        0x01, "MQ Water Trial Chest",                        RHT_GANONS_CASTLE_MQ_WATER_TRIAL_CHEST,                          RG_RED_RUPEE);
    locationTable[RC_GANONS_CASTLE_MQ_FOREST_TRIAL_EYE_SWITCH_CHEST] =                Location::Chest(RC_GANONS_CASTLE_MQ_FOREST_TRIAL_EYE_SWITCH_CHEST,               RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -30398,                       0x02, "MQ Forest Trial Eye Switch Chest",            RHT_GANONS_CASTLE_MQ_FOREST_TRIAL_EYE_SWITCH_CHEST,              RG_ARROWS_10);
    locationTable[RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FROZEN_EYE_SWITCH_CHEST] =         Location::Chest(RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FROZEN_EYE_SWITCH_CHEST,        RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -32733,                       0x03, "MQ Forest Trial Frozen Eye Switch Chest",     RHT_GANONS_CASTLE_MQ_FOREST_TRIAL_FROZEN_EYE_SWITCH_CHEST,       RG_BOMBS_5);
    locationTable[RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_LULLABY_CHEST] =                    Location::Chest(RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_LULLABY_CHEST,                   RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -30460,                       0x04, "MQ Light Trial Lullaby Chest",                RHT_GANONS_CASTLE_MQ_LIGHT_TRIAL_LULLABY_CHEST,                  RG_RECOVERY_HEART);
    locationTable[RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST] =               Location::Chest(RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST,              RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -30400,                       0x00, "MQ Shadow Trial Bomb Flower Chest",           RHT_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST,             RG_ARROWS_10);
    locationTable[RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_EYE_SWITCH_CHEST] =                Location::Chest(RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_EYE_SWITCH_CHEST,               RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -30651,                       0x05, "MQ Shadow Trial Eye Switch Chest",            RHT_GANONS_CASTLE_MQ_SHADOW_TRIAL_EYE_SWITCH_CHEST,              RG_GANONS_CASTLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_GOLDEN_GAUNTLETS_CHEST] =          Location::Chest(RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_GOLDEN_GAUNTLETS_CHEST,         RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -18746,                       0x06, "MQ Spirit Trial Golden Gauntlets Chest",      RHT_GANONS_CASTLE_MQ_SPIRIT_TRIAL_GOLDEN_GAUNTLETS_CHEST,        RG_PROGRESSIVE_STRENGTH,                                                                                                                                                                          true);
    locationTable[RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_RIGHT_CHEST] =            Location::Chest(RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_RIGHT_CHEST,           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -30457,                       0x07, "MQ Spirit Trial Sun Back Right Chest",        RHT_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_RIGHT_CHEST,          RG_RECOVERY_HEART);
    locationTable[RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_LEFT_CHEST] =             Location::Chest(RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_LEFT_CHEST,            RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -30648,                       0x08, "MQ Spirit Trial Sun Back Left Chest",         RHT_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_LEFT_CHEST,           RG_GANONS_CASTLE_SMALL_KEY);
    locationTable[RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_FRONT_LEFT_CHEST] =            Location::Chest(RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_FRONT_LEFT_CHEST,           RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         -30455,                       0x09, "MQ Spirit Trial Sun Front Left Chest",        RHT_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_FRONT_LEFT_CHEST,          RG_RECOVERY_HEART);
    locationTable[RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_FIRST_CHEST] =                     Location::Chest(RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_FIRST_CHEST,                    RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         20586,                        0x0A, "MQ Spirit Trial First Chest",                 RHT_GANONS_CASTLE_MQ_SPIRIT_TRIAL_FIRST_CHEST,                   RG_BOMBCHU_10);
    locationTable[RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_INVISIBLE_CHEST] =                 Location::Chest(RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_INVISIBLE_CHEST,                RCQUEST_MQ,      RCTYPE_STANDARD,                                                         ACTOR_EN_BOX,         SCENE_INSIDE_GANONS_CASTLE,         26964,                        0x14, "MQ Spirit Trial Invisible Chest",             RHT_GANONS_CASTLE_MQ_SPIRIT_TRIAL_INVISIBLE_CHEST,               RG_ARROWS_10);
    locationTable[RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FREESTANDING_KEY] =          Location::Collectable(RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FREESTANDING_KEY,               RCQUEST_MQ,      RCTYPE_SMALL_KEY,                                                        ACTOR_EN_ITEM00,      SCENE_INSIDE_GANONS_CASTLE,         273,                          0x01, "MQ Forest Trial Freestanding Key",            RHT_GANONS_CASTLE_MQ_FOREST_TRIAL_FREESTANDING_KEY,              RG_GANONS_CASTLE_SMALL_KEY,                                                                                                                                                                       true);
    locationTable[RC_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT] =                              Location::Base(RC_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT,                            RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_INSIDE_GANONS_CASTLE,         0x00,                               "MQ Deku Scrub Right",                         RHT_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT,                           RG_BUY_DEKU_NUTS_5,                                     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT),                           false, 20);
    locationTable[RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT] =                        Location::Base(RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT,                      RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_INSIDE_GANONS_CASTLE,         0x05,                               "MQ Deku Scrub Center-Left",                   RHT_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT,                     RG_BUY_BOMBS_535,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT),                     false, 40);
    locationTable[RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER] =                             Location::Base(RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER,                           RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_INSIDE_GANONS_CASTLE,         0x03,                               "MQ Deku Scrub Center",                        RHT_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER,                          RG_BUY_ARROWS_30,                                       SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER),                          false, 70);
    locationTable[RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT] =                       Location::Base(RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT,                     RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_INSIDE_GANONS_CASTLE,         0x07,                               "MQ Deku Scrub Center-Right",                  RHT_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT,                    RG_BUY_RED_POTION_40,                                   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT),                    false, 40);
    locationTable[RC_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT] =                               Location::Base(RC_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT,                             RCQUEST_MQ,      RCTYPE_SCRUB,                                                            ACTOR_EN_DNS,         SCENE_INSIDE_GANONS_CASTLE,         0x08,                               "MQ Deku Scrub Left",                          RHT_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT,                            RG_BUY_GREEN_POTION,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT),                            false, 40);

    // Gold Skulltula Tokens

    // Dungeons
    // Deku Tree
    locationTable[RC_DEKU_TREE_GS_BASEMENT_BACK_ROOM] =                             Location::GSToken(RC_DEKU_TREE_GS_BASEMENT_BACK_ROOM,                              RCQUEST_VANILLA,                                                                   SCENE_DEKU_TREE,                    8193,                         0x01, "GS Basement Back Room",                       RHT_DEKU_TREE_GS_BASEMENT_BACK_ROOM);
    locationTable[RC_DEKU_TREE_GS_BASEMENT_GATE] =                                  Location::GSToken(RC_DEKU_TREE_GS_BASEMENT_GATE,                                   RCQUEST_VANILLA,                                                                   SCENE_DEKU_TREE,                    8194,                         0x02, "GS Basement Gate",                            RHT_DEKU_TREE_GS_BASEMENT_GATE);
    locationTable[RC_DEKU_TREE_GS_BASEMENT_VINES] =                                 Location::GSToken(RC_DEKU_TREE_GS_BASEMENT_VINES,                                  RCQUEST_VANILLA,                                                                   SCENE_DEKU_TREE,                    8196,                         0x04, "GS Basement Vines",                           RHT_DEKU_TREE_GS_BASEMENT_VINES);
    locationTable[RC_DEKU_TREE_GS_COMPASS_ROOM] =                                   Location::GSToken(RC_DEKU_TREE_GS_COMPASS_ROOM,                                    RCQUEST_VANILLA,                                                                   SCENE_DEKU_TREE,                    8200,                         0x08, "GS Compass Room",                             RHT_DEKU_TREE_GS_COMPASS_ROOM);
    locationTable[RC_DEKU_TREE_MQ_GS_LOBBY] =                                       Location::GSToken(RC_DEKU_TREE_MQ_GS_LOBBY,                                        RCQUEST_MQ,                                                                        SCENE_DEKU_TREE,                    8194,                         0x02, "MQ GS Lobby",                                 RHT_DEKU_TREE_MQ_GS_LOBBY);
    locationTable[RC_DEKU_TREE_MQ_GS_PAST_BOULDER_VINES] =                          Location::GSToken(RC_DEKU_TREE_MQ_GS_PAST_BOULDER_VINES,                           RCQUEST_MQ,                                                                        SCENE_DEKU_TREE,                    8200,                         0x08, "MQ GS Past Boulder Vines",                    RHT_DEKU_TREE_MQ_GS_PAST_BOULDER_VINES);
    locationTable[RC_DEKU_TREE_MQ_GS_BASEMENT_GRAVES_ROOM] =                        Location::GSToken(RC_DEKU_TREE_MQ_GS_BASEMENT_GRAVES_ROOM,                         RCQUEST_MQ,                                                                        SCENE_DEKU_TREE,                    8196,                         0x04, "MQ GS Basement Graves Room",                  RHT_DEKU_TREE_MQ_GS_BASEMENT_GRAVES_ROOM);
    locationTable[RC_DEKU_TREE_MQ_GS_BASEMENT_BACK_ROOM] =                          Location::GSToken(RC_DEKU_TREE_MQ_GS_BASEMENT_BACK_ROOM,                           RCQUEST_MQ,                                                                        SCENE_DEKU_TREE,                    8193,                         0x01, "MQ GS Basement Back Room",                    RHT_DEKU_TREE_MQ_GS_BASEMENT_BACK_ROOM);
    // Dodongo's Cavern
    locationTable[RC_DODONGOS_CAVERN_GS_VINES_ABOVE_STAIRS] =                       Location::GSToken(RC_DODONGOS_CAVERN_GS_VINES_ABOVE_STAIRS,                        RCQUEST_VANILLA,                                                                   SCENE_DODONGOS_CAVERN,              8449,                         0x01, "GS Vines Above Stairs",                       RHT_DODONGOS_CAVERN_GS_VINES_ABOVE_STAIRS);
    locationTable[RC_DODONGOS_CAVERN_GS_SCARECROW] =                                Location::GSToken(RC_DODONGOS_CAVERN_GS_SCARECROW,                                 RCQUEST_VANILLA,                                                                   SCENE_DODONGOS_CAVERN,              8450,                         0x02, "GS Scarecrow",                                RHT_DODONGOS_CAVERN_GS_SCARECROW);
    locationTable[RC_DODONGOS_CAVERN_GS_ALCOVE_ABOVE_STAIRS] =                      Location::GSToken(RC_DODONGOS_CAVERN_GS_ALCOVE_ABOVE_STAIRS,                       RCQUEST_VANILLA,                                                                   SCENE_DODONGOS_CAVERN,              8452,                         0x04, "GS Alcove Above Stairs",                      RHT_DODONGOS_CAVERN_GS_ALCOVE_ABOVE_STAIRS);
    locationTable[RC_DODONGOS_CAVERN_GS_BACK_ROOM] =                                Location::GSToken(RC_DODONGOS_CAVERN_GS_BACK_ROOM,                                 RCQUEST_VANILLA,                                                                   SCENE_DODONGOS_CAVERN,              8456,                         0x08, "GS Back Room",                                RHT_DODONGOS_CAVERN_GS_BACK_ROOM);
    locationTable[RC_DODONGOS_CAVERN_GS_SIDE_ROOM_NEAR_LOWER_LIZALFOS] =            Location::GSToken(RC_DODONGOS_CAVERN_GS_SIDE_ROOM_NEAR_LOWER_LIZALFOS,             RCQUEST_VANILLA,                                                                   SCENE_DODONGOS_CAVERN,              8464,                         0x10, "GS Side Room Near Lower Lizalfos",            RHT_DODONGOS_CAVERN_GS_SIDE_ROOM_NEAR_LOWER_LIZALFOS);
    locationTable[RC_DODONGOS_CAVERN_MQ_GS_SCRUB_ROOM] =                            Location::GSToken(RC_DODONGOS_CAVERN_MQ_GS_SCRUB_ROOM,                             RCQUEST_MQ,                                                                        SCENE_DODONGOS_CAVERN,              8450,                         0x02, "MQ GS Scrub Room",                            RHT_DODONGOS_CAVERN_MQ_GS_SCRUB_ROOM);
    locationTable[RC_DODONGOS_CAVERN_MQ_GS_SONG_OF_TIME_BLOCK_ROOM] =               Location::GSToken(RC_DODONGOS_CAVERN_MQ_GS_SONG_OF_TIME_BLOCK_ROOM,                RCQUEST_MQ,                                                                        SCENE_DODONGOS_CAVERN,              8456,                         0x08, "MQ GS Song of Time Block Room",               RHT_DODONGOS_CAVERN_MQ_GS_SONG_OF_TIME_BLOCK_ROOM);
    locationTable[RC_DODONGOS_CAVERN_MQ_GS_LIZALFOS_ROOM] =                         Location::GSToken(RC_DODONGOS_CAVERN_MQ_GS_LIZALFOS_ROOM,                          RCQUEST_MQ,                                                                        SCENE_DODONGOS_CAVERN,              8452,                         0x04, "MQ GS Lizalfos Room",                         RHT_DODONGOS_CAVERN_MQ_GS_LIZALFOS_ROOM);
    locationTable[RC_DODONGOS_CAVERN_MQ_GS_LARVAE_ROOM] =                           Location::GSToken(RC_DODONGOS_CAVERN_MQ_GS_LARVAE_ROOM,                            RCQUEST_MQ,                                                                        SCENE_DODONGOS_CAVERN,              8464,                         0x10, "MQ GS Larvae Room",                           RHT_DODONGOS_CAVERN_MQ_GS_LARVAE_ROOM);
    locationTable[RC_DODONGOS_CAVERN_MQ_GS_BACK_AREA] =                             Location::GSToken(RC_DODONGOS_CAVERN_MQ_GS_BACK_AREA,                              RCQUEST_MQ,                                                                        SCENE_DODONGOS_CAVERN,              8449,                         0x01, "MQ GS Back Room",                             RHT_DODONGOS_CAVERN_MQ_GS_BACK_AREA);
    locationTable[RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_LOWER] =                    Location::GSToken(RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_LOWER,                     RCQUEST_VANILLA,                                                                   SCENE_JABU_JABU,                    8705,                         0x01, "GS Lobby Basement Lower",                     RHT_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_LOWER);
    locationTable[RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_UPPER] =                    Location::GSToken(RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_UPPER,                     RCQUEST_VANILLA,                                                                   SCENE_JABU_JABU,                    8706,                         0x02, "GS Lobby Basement Upper",                     RHT_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_UPPER);
    locationTable[RC_JABU_JABUS_BELLY_GS_NEAR_BOSS] =                               Location::GSToken(RC_JABU_JABUS_BELLY_GS_NEAR_BOSS,                                RCQUEST_VANILLA,                                                                   SCENE_JABU_JABU,                    8708,                         0x04, "GS Near Boss",                                RHT_JABU_JABUS_BELLY_GS_NEAR_BOSS);
    locationTable[RC_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM] =                       Location::GSToken(RC_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM,                        RCQUEST_VANILLA,                                                                   SCENE_JABU_JABU,                    8712,                         0x08, "GS Water Switch Room",                        RHT_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM);
    locationTable[RC_JABU_JABUS_BELLY_MQ_GS_TAILPASARAN_ROOM] =                     Location::GSToken(RC_JABU_JABUS_BELLY_MQ_GS_TAILPASARAN_ROOM,                      RCQUEST_MQ,                                                                        SCENE_JABU_JABU,                    8708,                         0x04, "MQ GS Tail Parasan Room",                     RHT_JABU_JABUS_BELLY_MQ_GS_TAILPASARAN_ROOM);
    locationTable[RC_JABU_JABUS_BELLY_MQ_GS_INVISIBLE_ENEMIES_ROOM] =               Location::GSToken(RC_JABU_JABUS_BELLY_MQ_GS_INVISIBLE_ENEMIES_ROOM,                RCQUEST_MQ,                                                                        SCENE_JABU_JABU,                    8712,                         0x08, "MQ GS Invisible Enemies Room",                RHT_JABU_JABUS_BELLY_MQ_GS_INVISIBLE_ENEMIES_ROOM);
    locationTable[RC_JABU_JABUS_BELLY_MQ_GS_BOOMERANG_CHEST_ROOM] =                 Location::GSToken(RC_JABU_JABUS_BELLY_MQ_GS_BOOMERANG_CHEST_ROOM,                  RCQUEST_MQ,                                                                        SCENE_JABU_JABU,                    8705,                         0x01, "MQ GS Boomerang Chest Room",                  RHT_JABU_JABUS_BELLY_MQ_GS_BOOMERANG_CHEST_ROOM);
    locationTable[RC_JABU_JABUS_BELLY_MQ_GS_NEAR_BOSS] =                            Location::GSToken(RC_JABU_JABUS_BELLY_MQ_GS_NEAR_BOSS,                             RCQUEST_MQ,                                                                        SCENE_JABU_JABU,                    8706,                         0x02, "MQ GS Near Boss",                             RHT_JABU_JABUS_BELLY_MQ_GS_NEAR_BOSS);
    locationTable[RC_FOREST_TEMPLE_GS_RAISED_ISLAND_COURTYARD] =                    Location::GSToken(RC_FOREST_TEMPLE_GS_RAISED_ISLAND_COURTYARD,                     RCQUEST_VANILLA,                                                                   SCENE_FOREST_TEMPLE,                8961,                         0x01, "GS Raised Island Courtyard",                  RHT_FOREST_TEMPLE_GS_RAISED_ISLAND_COURTYARD);
    locationTable[RC_FOREST_TEMPLE_GS_FIRST_ROOM] =                                 Location::GSToken(RC_FOREST_TEMPLE_GS_FIRST_ROOM,                                  RCQUEST_VANILLA,                                                                   SCENE_FOREST_TEMPLE,                8962,                         0x02, "GS First Room",                               RHT_FOREST_TEMPLE_GS_FIRST_ROOM);
    locationTable[RC_FOREST_TEMPLE_GS_LEVEL_ISLAND_COURTYARD] =                     Location::GSToken(RC_FOREST_TEMPLE_GS_LEVEL_ISLAND_COURTYARD,                      RCQUEST_VANILLA,                                                                   SCENE_FOREST_TEMPLE,                8964,                         0x04, "GS Level Island Courtyard",                   RHT_FOREST_TEMPLE_GS_LEVEL_ISLAND_COURTYARD);
    locationTable[RC_FOREST_TEMPLE_GS_LOBBY] =                                      Location::GSToken(RC_FOREST_TEMPLE_GS_LOBBY,                                       RCQUEST_VANILLA,                                                                   SCENE_FOREST_TEMPLE,                8968,                         0x08, "GS Lobby",                                    RHT_FOREST_TEMPLE_GS_LOBBY);
    locationTable[RC_FOREST_TEMPLE_GS_BASEMENT] =                                   Location::GSToken(RC_FOREST_TEMPLE_GS_BASEMENT,                                    RCQUEST_VANILLA,                                                                   SCENE_FOREST_TEMPLE,                8976,                         0x10, "GS Basement",                                 RHT_FOREST_TEMPLE_GS_BASEMENT);
    locationTable[RC_FOREST_TEMPLE_MQ_GS_FIRST_HALLWAY] =                           Location::GSToken(RC_FOREST_TEMPLE_MQ_GS_FIRST_HALLWAY,                            RCQUEST_MQ,                                                                        SCENE_FOREST_TEMPLE,                8962,                         0x02, "MQ GS First Hallway",                         RHT_FOREST_TEMPLE_MQ_GS_FIRST_HALLWAY);
    locationTable[RC_FOREST_TEMPLE_MQ_GS_BLOCK_PUSH_ROOM] =                         Location::GSToken(RC_FOREST_TEMPLE_MQ_GS_BLOCK_PUSH_ROOM,                          RCQUEST_MQ,                                                                        SCENE_FOREST_TEMPLE,                8976,                         0x10, "MQ GS Block Push Room",                       RHT_FOREST_TEMPLE_MQ_GS_BLOCK_PUSH_ROOM);
    locationTable[RC_FOREST_TEMPLE_MQ_GS_RAISED_ISLAND_COURTYARD] =                 Location::GSToken(RC_FOREST_TEMPLE_MQ_GS_RAISED_ISLAND_COURTYARD,                  RCQUEST_MQ,                                                                        SCENE_FOREST_TEMPLE,                8961,                         0x01, "MQ GS Raised Island Courtyard",               RHT_FOREST_TEMPLE_MQ_GS_RAISED_ISLAND_COURTYARD);
    locationTable[RC_FOREST_TEMPLE_MQ_GS_LEVEL_ISLAND_COURTYARD] =                  Location::GSToken(RC_FOREST_TEMPLE_MQ_GS_LEVEL_ISLAND_COURTYARD,                   RCQUEST_MQ,                                                                        SCENE_FOREST_TEMPLE,                8964,                         0x04, "MQ GS Level Island Courtyard",                RHT_FOREST_TEMPLE_MQ_GS_LEVEL_ISLAND_COURTYARD);
    locationTable[RC_FOREST_TEMPLE_MQ_GS_WELL] =                                    Location::GSToken(RC_FOREST_TEMPLE_MQ_GS_WELL,                                     RCQUEST_MQ,                                                                        SCENE_FOREST_TEMPLE,                8968,                         0x08, "MQ GS Well",                                  RHT_FOREST_TEMPLE_MQ_GS_WELL);
    // Fire Temple
    locationTable[RC_FIRE_TEMPLE_GS_SONG_OF_TIME_ROOM] =                            Location::GSToken(RC_FIRE_TEMPLE_GS_SONG_OF_TIME_ROOM,                             RCQUEST_VANILLA,                                                                   SCENE_FIRE_TEMPLE,                  9217,                         0x01, "GS Song of Time Room",                        RHT_FIRE_TEMPLE_GS_SONG_OF_TIME_ROOM);
    locationTable[RC_FIRE_TEMPLE_GS_BOSS_KEY_LOOP] =                                Location::GSToken(RC_FIRE_TEMPLE_GS_BOSS_KEY_LOOP,                                 RCQUEST_VANILLA,                                                                   SCENE_FIRE_TEMPLE,                  9218,                         0x02, "GS Boss Key Loop",                            RHT_FIRE_TEMPLE_GS_BOSS_KEY_LOOP);
    locationTable[RC_FIRE_TEMPLE_GS_BOULDER_MAZE] =                                 Location::GSToken(RC_FIRE_TEMPLE_GS_BOULDER_MAZE,                                  RCQUEST_VANILLA,                                                                   SCENE_FIRE_TEMPLE,                  9220,                         0x04, "GS Boulder Maze",                             RHT_FIRE_TEMPLE_GS_BOULDER_MAZE);
    locationTable[RC_FIRE_TEMPLE_GS_SCARECROW_TOP] =                                Location::GSToken(RC_FIRE_TEMPLE_GS_SCARECROW_TOP,                                 RCQUEST_VANILLA,                                                                   SCENE_FIRE_TEMPLE,                  9224,                         0x08, "GS Scarecrow Top",                            RHT_FIRE_TEMPLE_GS_SCARECROW_TOP);
    locationTable[RC_FIRE_TEMPLE_GS_SCARECROW_CLIMB] =                              Location::GSToken(RC_FIRE_TEMPLE_GS_SCARECROW_CLIMB,                               RCQUEST_VANILLA,                                                                   SCENE_FIRE_TEMPLE,                  9232,                         0x10, "GS Scarecrow Climb",                          RHT_FIRE_TEMPLE_GS_SCARECROW_CLIMB);
    locationTable[RC_FIRE_TEMPLE_MQ_GS_ABOVE_FIRE_MAZE] =                           Location::GSToken(RC_FIRE_TEMPLE_MQ_GS_ABOVE_FIRE_MAZE,                            RCQUEST_MQ,                                                                        SCENE_FIRE_TEMPLE,                  9218,                         0x02, "MQ GS Above Fire Wall Maze",                  RHT_FIRE_TEMPLE_MQ_GS_ABOVE_FIRE_WALL_MAZE);
    locationTable[RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_CENTER] =                     Location::GSToken(RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_CENTER,                      RCQUEST_MQ,                                                                        SCENE_FIRE_TEMPLE,                  9224,                         0x08, "MQ GS Fire Wall Maze Center",                 RHT_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_CENTER);
    locationTable[RC_FIRE_TEMPLE_MQ_GS_BIG_LAVA_ROOM_OPEN_DOOR] =                   Location::GSToken(RC_FIRE_TEMPLE_MQ_GS_BIG_LAVA_ROOM_OPEN_DOOR,                    RCQUEST_MQ,                                                                        SCENE_FIRE_TEMPLE,                  9217,                         0x01, "MQ GS Big Lava Room Open Door",               RHT_FIRE_TEMPLE_MQ_GS_BIG_LAVA_ROOM_OPEN_DOOR);
    locationTable[RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_SIDE_ROOM] =                  Location::GSToken(RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_SIDE_ROOM,                   RCQUEST_MQ,                                                                        SCENE_FIRE_TEMPLE,                  9232,                         0x10, "MQ GS Fire Wall Maze Side Room",              RHT_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_SIDE_ROOM);
    locationTable[RC_FIRE_TEMPLE_MQ_GS_SKULL_ON_FIRE] =                             Location::GSToken(RC_FIRE_TEMPLE_MQ_GS_SKULL_ON_FIRE,                              RCQUEST_MQ,                                                                        SCENE_FIRE_TEMPLE,                  9220,                         0x04, "MQ GS Skull on Fire",                         RHT_FIRE_TEMPLE_MQ_GS_SKULL_ON_FIRE);
    // Water Temple
    locationTable[RC_WATER_TEMPLE_GS_BEHIND_GATE] =                                 Location::GSToken(RC_WATER_TEMPLE_GS_BEHIND_GATE,                                  RCQUEST_VANILLA,                                                                   SCENE_WATER_TEMPLE,                 9473,                         0x01, "GS Behind Gate",                              RHT_WATER_TEMPLE_GS_BEHIND_GATE);
    locationTable[RC_WATER_TEMPLE_GS_FALLING_PLATFORM_ROOM] =                       Location::GSToken(RC_WATER_TEMPLE_GS_FALLING_PLATFORM_ROOM,                        RCQUEST_VANILLA,                                                                   SCENE_WATER_TEMPLE,                 9474,                         0x02, "GS Falling Platform Room",                    RHT_WATER_TEMPLE_GS_FALLING_PLATFORM_ROOM);
    locationTable[RC_WATER_TEMPLE_GS_CENTRAL_PILLAR] =                              Location::GSToken(RC_WATER_TEMPLE_GS_CENTRAL_PILLAR,                               RCQUEST_VANILLA,                                                                   SCENE_WATER_TEMPLE,                 9476,                         0x04, "GS Central Pillar",                           RHT_WATER_TEMPLE_GS_CENTRAL_PILLAR);
    locationTable[RC_WATER_TEMPLE_GS_NEAR_BOSS_KEY_CHEST] =                         Location::GSToken(RC_WATER_TEMPLE_GS_NEAR_BOSS_KEY_CHEST,                          RCQUEST_VANILLA,                                                                   SCENE_WATER_TEMPLE,                 9480,                         0x08, "GS Near Boss Key Chest",                      RHT_WATER_TEMPLE_GS_NEAR_BOSS_KEY_CHEST);
    locationTable[RC_WATER_TEMPLE_GS_RIVER] =                                       Location::GSToken(RC_WATER_TEMPLE_GS_RIVER,                                        RCQUEST_VANILLA,                                                                   SCENE_WATER_TEMPLE,                 9488,                         0x10, "GS River",                                    RHT_WATER_TEMPLE_GS_RIVER);
    locationTable[RC_WATER_TEMPLE_MQ_GS_BEFORE_UPPER_WATER_SWITCH] =                Location::GSToken(RC_WATER_TEMPLE_MQ_GS_BEFORE_UPPER_WATER_SWITCH,                 RCQUEST_MQ,                                                                        SCENE_WATER_TEMPLE,                 9476,                         0x04, "MQ GS Before Upper Water Switch",             RHT_WATER_TEMPLE_MQ_GS_BEFORE_UPPER_WATER_SWITCH);
    locationTable[RC_WATER_TEMPLE_MQ_GS_FREESTANDING_KEY_AREA] =                    Location::GSToken(RC_WATER_TEMPLE_MQ_GS_FREESTANDING_KEY_AREA,                     RCQUEST_MQ,                                                                        SCENE_WATER_TEMPLE,                 9480,                         0x08, "MQ GS Freestanding Key Area",                 RHT_WATER_TEMPLE_MQ_GS_FREESTANDING_KEY_AREA);
    locationTable[RC_WATER_TEMPLE_MQ_GS_LIZALFOS_HALLWAY] =                         Location::GSToken(RC_WATER_TEMPLE_MQ_GS_LIZALFOS_HALLWAY,                          RCQUEST_MQ,                                                                        SCENE_WATER_TEMPLE,                 9473,                         0x01, "MQ GS Lizalfos Hallway",                      RHT_WATER_TEMPLE_MQ_GS_LIZALFOS_HALLWAY);
    locationTable[RC_WATER_TEMPLE_MQ_GS_RIVER] =                                    Location::GSToken(RC_WATER_TEMPLE_MQ_GS_RIVER,                                     RCQUEST_MQ,                                                                        SCENE_WATER_TEMPLE,                 9474,                         0x02, "MQ GS River",                                 RHT_WATER_TEMPLE_MQ_GS_RIVER);
    locationTable[RC_WATER_TEMPLE_MQ_GS_TRIPLE_WALL_TORCH] =                        Location::GSToken(RC_WATER_TEMPLE_MQ_GS_TRIPLE_WALL_TORCH,                         RCQUEST_MQ,                                                                        SCENE_WATER_TEMPLE,                 9488,                         0x10, "MQ GS Triple Wall Torch",                     RHT_WATER_TEMPLE_MQ_GS_TRIPLE_WALL_TORCH);
    // Spirit Temple
    locationTable[RC_SPIRIT_TEMPLE_GS_HALL_AFTER_SUN_BLOCK_ROOM] =                  Location::GSToken(RC_SPIRIT_TEMPLE_GS_HALL_AFTER_SUN_BLOCK_ROOM,                   RCQUEST_VANILLA,                                                                   SCENE_SPIRIT_TEMPLE,                9729,                         0x01, "GS Hall After Sun Block Room",                RHT_SPIRIT_TEMPLE_GS_HALL_AFTER_SUN_BLOCK_ROOM);
    locationTable[RC_SPIRIT_TEMPLE_GS_BOULDER_ROOM] =                               Location::GSToken(RC_SPIRIT_TEMPLE_GS_BOULDER_ROOM,                                RCQUEST_VANILLA,                                                                   SCENE_SPIRIT_TEMPLE,                9730,                         0x02, "GS Boulder Room",                             RHT_SPIRIT_TEMPLE_GS_BOULDER_ROOM);
    locationTable[RC_SPIRIT_TEMPLE_GS_LOBBY] =                                      Location::GSToken(RC_SPIRIT_TEMPLE_GS_LOBBY,                                       RCQUEST_VANILLA,                                                                   SCENE_SPIRIT_TEMPLE,                9732,                         0x04, "GS Lobby",                                    RHT_SPIRIT_TEMPLE_GS_LOBBY);
    locationTable[RC_SPIRIT_TEMPLE_GS_SUN_ON_FLOOR_ROOM] =                          Location::GSToken(RC_SPIRIT_TEMPLE_GS_SUN_ON_FLOOR_ROOM,                           RCQUEST_VANILLA,                                                                   SCENE_SPIRIT_TEMPLE,                9736,                         0x08, "GS Sun on Floor Room",                        RHT_SPIRIT_TEMPLE_GS_SUN_ON_FLOOR_ROOM);
    locationTable[RC_SPIRIT_TEMPLE_GS_METAL_FENCE] =                                Location::GSToken(RC_SPIRIT_TEMPLE_GS_METAL_FENCE,                                 RCQUEST_VANILLA,                                                                   SCENE_SPIRIT_TEMPLE,                9744,                         0x10, "GS Metal Fence",                              RHT_SPIRIT_TEMPLE_GS_METAL_FENCE);
    locationTable[RC_SPIRIT_TEMPLE_MQ_GS_SYMPHONY_ROOM] =                           Location::GSToken(RC_SPIRIT_TEMPLE_MQ_GS_SYMPHONY_ROOM,                            RCQUEST_MQ,                                                                        SCENE_SPIRIT_TEMPLE,                9736,                         0x08, "MQ GS Symphony Room",                         RHT_SPIRIT_TEMPLE_MQ_GS_SYMPHONY_ROOM);
    locationTable[RC_SPIRIT_TEMPLE_MQ_GS_LEEVER_ROOM] =                             Location::GSToken(RC_SPIRIT_TEMPLE_MQ_GS_LEEVER_ROOM,                              RCQUEST_MQ,                                                                        SCENE_SPIRIT_TEMPLE,                9730,                         0x02, "MQ GS Leever Room",                           RHT_SPIRIT_TEMPLE_MQ_GS_LEEVER_ROOM);
    locationTable[RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_WEST] =                  Location::GSToken(RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_WEST,                   RCQUEST_MQ,                                                                        SCENE_SPIRIT_TEMPLE,                9732,                         0x04, "MQ GS Nine Thrones Room West",                RHT_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_WEST);
    locationTable[RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_NORTH] =                 Location::GSToken(RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_NORTH,                  RCQUEST_MQ,                                                                        SCENE_SPIRIT_TEMPLE,                9744,                         0x10, "MQ GS Nine Thrones Room North",               RHT_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_NORTH);
    locationTable[RC_SPIRIT_TEMPLE_MQ_GS_SUN_BLOCK_ROOM] =                          Location::GSToken(RC_SPIRIT_TEMPLE_MQ_GS_SUN_BLOCK_ROOM,                           RCQUEST_MQ,                                                                        SCENE_SPIRIT_TEMPLE,                9729,                         0x01, "MQ GS Sun Block Room",                        RHT_SPIRIT_TEMPLE_MQ_GS_SUN_BLOCK_ROOM);
    // Shadow Temple
    locationTable[RC_SHADOW_TEMPLE_GS_SINGLE_GIANT_POT] =                           Location::GSToken(RC_SHADOW_TEMPLE_GS_SINGLE_GIANT_POT,                            RCQUEST_VANILLA,                                                                   SCENE_SHADOW_TEMPLE,                9985,                         0x01, "GS Single Giant Pot",                         RHT_SHADOW_TEMPLE_GS_SINGLE_GIANT_POT);
    locationTable[RC_SHADOW_TEMPLE_GS_FALLING_SPIKES_ROOM] =                        Location::GSToken(RC_SHADOW_TEMPLE_GS_FALLING_SPIKES_ROOM,                         RCQUEST_VANILLA,                                                                   SCENE_SHADOW_TEMPLE,                9986,                         0x02, "GS Falling Spikes Room",                      RHT_SHADOW_TEMPLE_GS_FALLING_SPIKES_ROOM);
    locationTable[RC_SHADOW_TEMPLE_GS_TRIPLE_GIANT_POT] =                           Location::GSToken(RC_SHADOW_TEMPLE_GS_TRIPLE_GIANT_POT,                            RCQUEST_VANILLA,                                                                   SCENE_SHADOW_TEMPLE,                9988,                         0x04, "GS Triple Giant Pot",                         RHT_SHADOW_TEMPLE_GS_TRIPLE_GIANT_POT);
    locationTable[RC_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM] =                             Location::GSToken(RC_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM,                              RCQUEST_VANILLA,                                                                   SCENE_SHADOW_TEMPLE,                9992,                         0x08, "GS Like Like Room",                           RHT_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM);
    locationTable[RC_SHADOW_TEMPLE_GS_NEAR_SHIP] =                                  Location::GSToken(RC_SHADOW_TEMPLE_GS_NEAR_SHIP,                                   RCQUEST_VANILLA,                                                                   SCENE_SHADOW_TEMPLE,                10000,                        0x10, "GS Near Ship",                                RHT_SHADOW_TEMPLE_GS_NEAR_SHIP);
    locationTable[RC_SHADOW_TEMPLE_MQ_GS_FALLING_SPIKES_ROOM] =                     Location::GSToken(RC_SHADOW_TEMPLE_MQ_GS_FALLING_SPIKES_ROOM,                      RCQUEST_MQ,                                                                        SCENE_SHADOW_TEMPLE,                9986,                         0x02, "MQ GS Falling Spikes Room",                   RHT_SHADOW_TEMPLE_MQ_GS_FALLING_SPIKES_ROOM);
    locationTable[RC_SHADOW_TEMPLE_MQ_GS_WIND_HINT_ROOM] =                          Location::GSToken(RC_SHADOW_TEMPLE_MQ_GS_WIND_HINT_ROOM,                           RCQUEST_MQ,                                                                        SCENE_SHADOW_TEMPLE,                9985,                         0x01, "MQ GS Wind Hint Room",                        RHT_SHADOW_TEMPLE_MQ_GS_WIND_HINT_ROOM);
    locationTable[RC_SHADOW_TEMPLE_MQ_GS_AFTER_WIND] =                              Location::GSToken(RC_SHADOW_TEMPLE_MQ_GS_AFTER_WIND,                               RCQUEST_MQ,                                                                        SCENE_SHADOW_TEMPLE,                9992,                         0x08, "MQ GS After Wind",                            RHT_SHADOW_TEMPLE_MQ_GS_AFTER_WIND);
    locationTable[RC_SHADOW_TEMPLE_MQ_GS_AFTER_SHIP] =                              Location::GSToken(RC_SHADOW_TEMPLE_MQ_GS_AFTER_SHIP,                               RCQUEST_MQ,                                                                        SCENE_SHADOW_TEMPLE,                10000,                        0x10, "MQ GS After Ship",                            RHT_SHADOW_TEMPLE_MQ_GS_AFTER_SHIP);
    locationTable[RC_SHADOW_TEMPLE_MQ_GS_NEAR_BOSS] =                               Location::GSToken(RC_SHADOW_TEMPLE_MQ_GS_NEAR_BOSS,                                RCQUEST_MQ,                                                                        SCENE_SHADOW_TEMPLE,                9988,                         0x04, "MQ GS Near Boss",                             RHT_SHADOW_TEMPLE_MQ_GS_NEAR_BOSS);
    // Bottom of the Well
    locationTable[RC_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE] =                        Location::GSToken(RC_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE,                         RCQUEST_VANILLA,                                                                   SCENE_BOTTOM_OF_THE_WELL,           10241,                        0x01, "GS Like Like Cage",                           RHT_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE);
    locationTable[RC_BOTTOM_OF_THE_WELL_GS_EAST_INNER_ROOM] =                       Location::GSToken(RC_BOTTOM_OF_THE_WELL_GS_EAST_INNER_ROOM,                        RCQUEST_VANILLA,                                                                   SCENE_BOTTOM_OF_THE_WELL,           10242,                        0x02, "GS East Inner Room",                          RHT_BOTTOM_OF_THE_WELL_GS_EAST_INNER_ROOM);
    locationTable[RC_BOTTOM_OF_THE_WELL_GS_WEST_INNER_ROOM] =                       Location::GSToken(RC_BOTTOM_OF_THE_WELL_GS_WEST_INNER_ROOM,                        RCQUEST_VANILLA,                                                                   SCENE_BOTTOM_OF_THE_WELL,           10244,                        0x04, "GS West Inner Room",                          RHT_BOTTOM_OF_THE_WELL_GS_WEST_INNER_ROOM);
    locationTable[RC_BOTTOM_OF_THE_WELL_MQ_GS_BASEMENT] =                           Location::GSToken(RC_BOTTOM_OF_THE_WELL_MQ_GS_BASEMENT,                            RCQUEST_MQ,                                                                        SCENE_BOTTOM_OF_THE_WELL,           10241,                        0x01, "MQ GS Basement",                              RHT_BOTTOM_OF_THE_WELL_MQ_GS_BASEMENT);
    locationTable[RC_BOTTOM_OF_THE_WELL_MQ_GS_COFFIN_ROOM] =                        Location::GSToken(RC_BOTTOM_OF_THE_WELL_MQ_GS_COFFIN_ROOM,                         RCQUEST_MQ,                                                                        SCENE_BOTTOM_OF_THE_WELL,           10244,                        0x04, "MQ GS Coffin Room",                           RHT_BOTTOM_OF_THE_WELL_MQ_GS_COFFIN_ROOM);
    locationTable[RC_BOTTOM_OF_THE_WELL_MQ_GS_WEST_INNER_ROOM] =                    Location::GSToken(RC_BOTTOM_OF_THE_WELL_MQ_GS_WEST_INNER_ROOM,                     RCQUEST_MQ,                                                                        SCENE_BOTTOM_OF_THE_WELL,           10242,                        0x02, "MQ GS West Inner Room",                       RHT_BOTTOM_OF_THE_WELL_MQ_GS_WEST_INNER_ROOM);
    // Ice Cavern
    locationTable[RC_ICE_CAVERN_GS_PUSH_BLOCK_ROOM] =                               Location::GSToken(RC_ICE_CAVERN_GS_PUSH_BLOCK_ROOM,                                RCQUEST_VANILLA,                                                                   SCENE_ICE_CAVERN,                   10497,                        0x01, "GS Push Block Room",                          RHT_ICE_CAVERN_GS_PUSH_BLOCK_ROOM);
    locationTable[RC_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM] =                          Location::GSToken(RC_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM,                           RCQUEST_VANILLA,                                                                   SCENE_ICE_CAVERN,                   10498,                        0x02, "GS Spinning Scythe Room",                     RHT_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM);
    locationTable[RC_ICE_CAVERN_GS_HEART_PIECE_ROOM] =                              Location::GSToken(RC_ICE_CAVERN_GS_HEART_PIECE_ROOM,                               RCQUEST_VANILLA,                                                                   SCENE_ICE_CAVERN,                   10500,                        0x04, "GS Heart Piece Room",                         RHT_ICE_CAVERN_GS_HEART_PIECE_ROOM);
    locationTable[RC_ICE_CAVERN_MQ_GS_SCARECROW] =                                  Location::GSToken(RC_ICE_CAVERN_MQ_GS_SCARECROW,                                   RCQUEST_MQ,                                                                        SCENE_ICE_CAVERN,                   10497,                        0x01, "MQ GS Scarecrow",                             RHT_ICE_CAVERN_MQ_GS_SCARECROW);
    locationTable[RC_ICE_CAVERN_MQ_GS_ICE_BLOCK] =                                  Location::GSToken(RC_ICE_CAVERN_MQ_GS_ICE_BLOCK,                                   RCQUEST_MQ,                                                                        SCENE_ICE_CAVERN,                   10500,                        0x04, "MQ GS Ice Block",                             RHT_ICE_CAVERN_MQ_GS_ICE_BLOCK);
    locationTable[RC_ICE_CAVERN_MQ_GS_RED_ICE] =                                    Location::GSToken(RC_ICE_CAVERN_MQ_GS_RED_ICE,                                     RCQUEST_MQ,                                                                        SCENE_ICE_CAVERN,                   10498,                        0x02, "MQ GS Red Ice",                               RHT_ICE_CAVERN_MQ_GS_RED_ICE);
    // Overworld
    // Kokiri Forest
    locationTable[RC_KF_GS_BEAN_PATCH] =                                            Location::GSToken(RC_KF_GS_BEAN_PATCH,                                             RCQUEST_BOTH,                                                                      SCENE_KOKIRI_FOREST,                27649,                        0x01, "GS Bean Patch",                               RHT_KF_GS_BEAN_PATCH,                                                                                  0x0C);
    locationTable[RC_KF_GS_KNOW_IT_ALL_HOUSE] =                                     Location::GSToken(RC_KF_GS_KNOW_IT_ALL_HOUSE,                                      RCQUEST_BOTH,                                                                      SCENE_KOKIRI_FOREST,                19458,                        0x02, "GS Know It All House",                        RHT_KF_GS_KNOW_IT_ALL_HOUSE,                                                                           0x0C);
    locationTable[RC_KF_GS_HOUSE_OF_TWINS] =                                        Location::GSToken(RC_KF_GS_HOUSE_OF_TWINS,                                         RCQUEST_BOTH,                                                                      SCENE_KOKIRI_FOREST,                19460,                        0x04, "GS House of Twins",                           RHT_KF_GS_HOUSE_OF_TWINS,                                                                              0x0C);
    // Lost Woods
    locationTable[RC_LW_GS_BEAN_PATCH_NEAR_BRIDGE] =                                Location::GSToken(RC_LW_GS_BEAN_PATCH_NEAR_BRIDGE,                                 RCQUEST_BOTH,                                                                      SCENE_LOST_WOODS,                   27905,                        0x01, "GS Bean Patch Near Bridge",                   RHT_LW_GS_BEAN_PATCH_NEAR_BRIDGE,                                                                      0x0D);
    locationTable[RC_LW_GS_BEAN_PATCH_NEAR_THEATER] =                               Location::GSToken(RC_LW_GS_BEAN_PATCH_NEAR_THEATER,                                RCQUEST_BOTH,                                                                      SCENE_LOST_WOODS,                   27906,                        0x02, "GS Bean Patch Near Theater",                  RHT_LW_GS_BEAN_PATCH_NEAR_THEATER,                                                                     0x0D);
    locationTable[RC_LW_GS_ABOVE_THEATER] =                                         Location::GSToken(RC_LW_GS_ABOVE_THEATER,                                          RCQUEST_BOTH,                                                                      SCENE_LOST_WOODS,                   19716,                        0x04, "GS Above Theater",                            RHT_LW_GS_ABOVE_THEATER,                                                                               0x0D);
    locationTable[RC_SFM_GS] =                                                      Location::GSToken(RC_SFM_GS,                                                       RCQUEST_BOTH,                                                                      SCENE_SACRED_FOREST_MEADOW,         19720,                        0x08, "GS",                                          RHT_SFM_GS,                                                                                            0x0D);
    // Hyrule Field
    locationTable[RC_HF_GS_COW_GROTTO] =                                            Location::GSToken(RC_HF_GS_COW_GROTTO,                                             RCQUEST_BOTH,   RCAREA_HYRULE_FIELD,          SCENE_GROTTOS,                      10753,                        0x01, "GS Cow Grotto",                               RHT_HF_GS_COW_GROTTO,                                                                                  0x0A);
    locationTable[RC_HF_GS_NEAR_KAK_GROTTO] =                                       Location::GSToken(RC_HF_GS_NEAR_KAK_GROTTO,                                        RCQUEST_BOTH,   RCAREA_HYRULE_FIELD,          SCENE_GROTTOS,                      10754,                        0x02, "GS Near Kak Grotto",                          RHT_HF_GS_NEAR_KAK_GROTTO,                                                                             0x0A);
    // Lake Hylia
    locationTable[RC_LH_GS_BEAN_PATCH] =                                            Location::GSToken(RC_LH_GS_BEAN_PATCH,                                             RCQUEST_BOTH,                                                                      SCENE_LAKE_HYLIA,                   29185,                        0x01, "GS Bean Patch",                               RHT_LH_GS_BEAN_PATCH,                                                                                  0x12);
    locationTable[RC_LH_GS_SMALL_ISLAND] =                                          Location::GSToken(RC_LH_GS_SMALL_ISLAND,                                           RCQUEST_BOTH,                                                                      SCENE_LAKE_HYLIA,                   20994,                        0x02, "GS Small Island",                             RHT_LH_GS_SMALL_ISLAND,                                                                                0x12);
    locationTable[RC_LH_GS_LAB_WALL] =                                              Location::GSToken(RC_LH_GS_LAB_WALL,                                               RCQUEST_BOTH,                                                                      SCENE_LAKE_HYLIA,                   20996,                        0x04, "GS Lab Wall",                                 RHT_LH_GS_LAB_WALL,                                                                                    0x12);
    locationTable[RC_LH_GS_LAB_CRATE] =                                             Location::GSToken(RC_LH_GS_LAB_CRATE,                                              RCQUEST_BOTH,                                                                      SCENE_LAKESIDE_LABORATORY,          -28152,                       0x08, "GS Lab Crate",                                RHT_LH_GS_LAB_CRATE,                                                                                   0x12);
    locationTable[RC_LH_GS_TREE] =                                                  Location::GSToken(RC_LH_GS_TREE,                                                   RCQUEST_BOTH,                                                                      SCENE_LAKE_HYLIA,                   21008,                        0x10, "GS Tree",                                     RHT_LH_GS_TREE,                                                                                        0x12);
    // Gerudo Valley
    locationTable[RC_GV_GS_BEAN_PATCH] =                                            Location::GSToken(RC_GV_GS_BEAN_PATCH,                                             RCQUEST_BOTH,                                                                      SCENE_GERUDO_VALLEY,                29441,                        0x01, "GS Bean Patch",                               RHT_GV_GS_BEAN_PATCH,                                                                                  0x13);
    locationTable[RC_GV_GS_SMALL_BRIDGE] =                                          Location::GSToken(RC_GV_GS_SMALL_BRIDGE,                                           RCQUEST_BOTH,                                                                      SCENE_GERUDO_VALLEY,                21250,                        0x02, "GS Small Bridge",                             RHT_GV_GS_SMALL_BRIDGE,                                                                                0x13);
    locationTable[RC_GV_GS_PILLAR] =                                                Location::GSToken(RC_GV_GS_PILLAR,                                                 RCQUEST_BOTH,                                                                      SCENE_GERUDO_VALLEY,                21252,                        0x04, "GS Pillar",                                   RHT_GV_GS_PILLAR,                                                                                      0x13);
    locationTable[RC_GV_GS_BEHIND_TENT] =                                           Location::GSToken(RC_GV_GS_BEHIND_TENT,                                            RCQUEST_BOTH,                                                                      SCENE_GERUDO_VALLEY,                21256,                        0x08, "GS Behind Tent",                              RHT_GV_GS_BEHIND_TENT,                                                                                 0x13);
    // Gerudo Fortress
    locationTable[RC_GF_GS_ARCHERY_RANGE] =                                         Location::GSToken(RC_GF_GS_ARCHERY_RANGE,                                          RCQUEST_BOTH,                                                                      SCENE_GERUDOS_FORTRESS,             21505,                        0x01, "GS Archery Range",                            RHT_GF_GS_ARCHERY_RANGE,                                                                               0x14);
    locationTable[RC_GF_GS_TOP_FLOOR] =                                             Location::GSToken(RC_GF_GS_TOP_FLOOR,                                              RCQUEST_BOTH,                                                                      SCENE_GERUDOS_FORTRESS,             21506,                        0x02, "GS Top Floor",                                RHT_GF_GS_TOP_FLOOR,                                                                                   0x14);
    // Wasteland & Desert Colossus
    locationTable[RC_WASTELAND_GS] =                                                Location::GSToken(RC_WASTELAND_GS,                                                 RCQUEST_BOTH,                                                                      SCENE_HAUNTED_WASTELAND,            13570,                        0x02, "GS",                                          RHT_WASTELAND_GS,                                                                                      0x15);
    locationTable[RC_COLOSSUS_GS_BEAN_PATCH] =                                      Location::GSToken(RC_COLOSSUS_GS_BEAN_PATCH,                                       RCQUEST_BOTH,                                                                      SCENE_DESERT_COLOSSUS,              29953,                        0x01, "GS Bean Patch",                               RHT_COLOSSUS_GS_BEAN_PATCH,                                                                            0x15);
    locationTable[RC_COLOSSUS_GS_HILL] =                                            Location::GSToken(RC_COLOSSUS_GS_HILL,                                             RCQUEST_BOTH,                                                                      SCENE_DESERT_COLOSSUS,              21764,                        0x04, "GS Hill",                                     RHT_COLOSSUS_GS_HILL,                                                                                  0x15);
    locationTable[RC_COLOSSUS_GS_TREE] =                                            Location::GSToken(RC_COLOSSUS_GS_TREE,                                             RCQUEST_BOTH,                                                                      SCENE_DESERT_COLOSSUS,              21768,                        0x08, "GS Tree",                                     RHT_COLOSSUS_GS_TREE,                                                                                  0x15);
    // Hyrule Castle, Market, and Outside Ganon's Castle
    locationTable[RC_OGC_GS] =                                                      Location::GSToken(RC_OGC_GS,                                                       RCQUEST_BOTH,                                                                      SCENE_OUTSIDE_GANONS_CASTLE,        11777,                        0x01, "OGC GS",                                      RHT_OGC_GS,                                                                                            0x0E);
    locationTable[RC_HC_GS_STORMS_GROTTO] =                                         Location::GSToken(RC_HC_GS_STORMS_GROTTO,                                          RCQUEST_BOTH,   RCAREA_HYRULE_CASTLE,         SCENE_GROTTOS,                      11778,                        0x02, "GS Storms Grotto",                            RHT_HC_GS_STORMS_GROTTO,                                                                               0x0E);
    locationTable[RC_HC_GS_TREE] =                                                  Location::GSToken(RC_HC_GS_TREE,                                                   RCQUEST_BOTH,                                                                      SCENE_HYRULE_CASTLE,                -29180,                       0x04, "GS Tree",                                     RHT_HC_GS_TREE,                                                                                        0x0E);
    locationTable[RC_MARKET_GS_GUARD_HOUSE] =                                       Location::GSToken(RC_MARKET_GS_GUARD_HOUSE,                                        RCQUEST_BOTH,                                                                      SCENE_MARKET_GUARD_HOUSE,           -29176,                       0x08, "Market GS Guard House",                       RHT_MARKET_GS_GUARD_HOUSE,                                                                             0x0E);
    // Kakariko
    locationTable[RC_KAK_GS_HOUSE_UNDER_CONSTRUCTION] =                             Location::GSToken(RC_KAK_GS_HOUSE_UNDER_CONSTRUCTION,                              RCQUEST_BOTH,                                                                      SCENE_KAKARIKO_VILLAGE,             20488,                        0x08, "GS House Under Construction",                 RHT_KAK_GS_HOUSE_UNDER_CONSTRUCTION,                                                                   0x10);
    locationTable[RC_KAK_GS_SKULLTULA_HOUSE] =                                      Location::GSToken(RC_KAK_GS_SKULLTULA_HOUSE,                                       RCQUEST_BOTH,                                                                      SCENE_KAKARIKO_VILLAGE,             20496,                        0x10, "GS Skulltula House",                          RHT_KAK_GS_SKULLTULA_HOUSE,                                                                            0x10);
    locationTable[RC_KAK_GS_GUARDS_HOUSE] =                                         Location::GSToken(RC_KAK_GS_GUARDS_HOUSE,                                          RCQUEST_BOTH,                                                                      SCENE_KAKARIKO_VILLAGE,             20482,                        0x02, "GS Guards House",                             RHT_KAK_GS_GUARDS_HOUSE,                                                                               0x10);
    locationTable[RC_KAK_GS_TREE] =                                                 Location::GSToken(RC_KAK_GS_TREE,                                                  RCQUEST_BOTH,                                                                      SCENE_KAKARIKO_VILLAGE,             -28640,                       0x20, "GS Tree",                                     RHT_KAK_GS_TREE,                                                                                       0x10);
    locationTable[RC_KAK_GS_WATCHTOWER] =                                           Location::GSToken(RC_KAK_GS_WATCHTOWER,                                            RCQUEST_BOTH,                                                                      SCENE_KAKARIKO_VILLAGE,             20484,                        0x04, "GS Watchtower",                               RHT_KAK_GS_WATCHTOWER,                                                                                 0x10);
    locationTable[RC_KAK_GS_ABOVE_IMPAS_HOUSE] =                                    Location::GSToken(RC_KAK_GS_ABOVE_IMPAS_HOUSE,                                     RCQUEST_BOTH,                                                                      SCENE_KAKARIKO_VILLAGE,             20544,                        0x40, "GS Above Impas House",                        RHT_KAK_GS_ABOVE_IMPAS_HOUSE,                                                                          0x10);
    // Graveyard
    locationTable[RC_GRAVEYARD_GS_WALL] =                                           Location::GSToken(RC_GRAVEYARD_GS_WALL,                                            RCQUEST_BOTH,                                                                      SCENE_GRAVEYARD,                    20608,                        0x80, "GS Wall",                                     RHT_GRAVEYARD_GS_WALL,                                                                                 0x10);
    locationTable[RC_GRAVEYARD_GS_BEAN_PATCH] =                                     Location::GSToken(RC_GRAVEYARD_GS_BEAN_PATCH,                                      RCQUEST_BOTH,                                                                      SCENE_GRAVEYARD,                    28673,                        0x01, "GS Bean Patch",                               RHT_GRAVEYARD_GS_BEAN_PATCH,                                                                           0x10);
    // Death Mountain
    locationTable[RC_DMC_GS_BEAN_PATCH] =                                           Location::GSToken(RC_DMC_GS_BEAN_PATCH,                                            RCQUEST_BOTH,                                                                      SCENE_DEATH_MOUNTAIN_CRATER,        28417,                        0x01, "GS Bean Patch",                               RHT_DMC_GS_BEAN_PATCH,                                                                                 0x0F);
    locationTable[RC_DMC_GS_CRATE] =                                                Location::GSToken(RC_DMC_GS_CRATE,                                                 RCQUEST_BOTH,                                                                      SCENE_DEATH_MOUNTAIN_CRATER,        -28800,                       0x80, "GS Crate",                                    RHT_DMC_GS_CRATE,                                                                                      0x0F);
    locationTable[RC_DMT_GS_BEAN_PATCH] =                                           Location::GSToken(RC_DMT_GS_BEAN_PATCH,                                            RCQUEST_BOTH,                                                                      SCENE_DEATH_MOUNTAIN_TRAIL,         28418,                        0x02, "GS Bean Patch",                               RHT_DMT_GS_BEAN_PATCH,                                                                                 0x0F);
    locationTable[RC_DMT_GS_NEAR_KAK] =                                             Location::GSToken(RC_DMT_GS_NEAR_KAK,                                              RCQUEST_BOTH,                                                                      SCENE_DEATH_MOUNTAIN_TRAIL,         12036,                        0x04, "GS Near Kak",                                 RHT_DMT_GS_NEAR_KAK,                                                                                   0x0F);
    locationTable[RC_DMT_GS_ABOVE_DODONGOS_CAVERN] =                                Location::GSToken(RC_DMT_GS_ABOVE_DODONGOS_CAVERN,                                 RCQUEST_BOTH,                                                                      SCENE_DEATH_MOUNTAIN_TRAIL,         20232,                        0x08, "GS Above Dodongos Cavern",                    RHT_DMT_GS_ABOVE_DODONGOS_CAVERN,                                                                      0x0F);
    locationTable[RC_DMT_GS_FALLING_ROCKS_PATH] =                                   Location::GSToken(RC_DMT_GS_FALLING_ROCKS_PATH,                                    RCQUEST_BOTH,                                                                      SCENE_DEATH_MOUNTAIN_TRAIL,         20240,                        0x10, "GS Falling Rocks Path",                       RHT_DMT_GS_FALLING_ROCKS_PATH,                                                                         0x0F);
    locationTable[RC_GC_GS_CENTER_PLATFORM] =                                       Location::GSToken(RC_GC_GS_CENTER_PLATFORM,                                        RCQUEST_BOTH,                                                                      SCENE_GORON_CITY,                   12064,                        0x20, "GS Center Platform",                          RHT_GC_GS_CENTER_PLATFORM,                                                                             0x0F);
    locationTable[RC_GC_GS_BOULDER_MAZE] =                                          Location::GSToken(RC_GC_GS_BOULDER_MAZE,                                           RCQUEST_BOTH,                                                                      SCENE_GORON_CITY,                   -28864,                       0x40, "GS Boulder Maze",                             RHT_GC_GS_BOULDER_MAZE,                                                                                0x0F);
    // Zora's River, Domain, and Fountain
    locationTable[RC_ZR_GS_LADDER] =                                                Location::GSToken(RC_ZR_GS_LADDER,                                                 RCQUEST_BOTH,                                                                      SCENE_ZORAS_RIVER,                  20737,                        0x01, "GS Ladder",                                   RHT_ZR_GS_LADDER,                                                                                      0x11);
    locationTable[RC_ZR_GS_TREE] =                                                  Location::GSToken(RC_ZR_GS_TREE,                                                   RCQUEST_BOTH,                                                                      SCENE_ZORAS_RIVER,                  -28414,                       0x02, "GS Tree",                                     RHT_ZR_GS_TREE,                                                                                        0x11);
    locationTable[RC_ZR_GS_ABOVE_BRIDGE] =                                          Location::GSToken(RC_ZR_GS_ABOVE_BRIDGE,                                           RCQUEST_BOTH,                                                                      SCENE_ZORAS_RIVER,                  20744,                        0x08, "GS Above Bridge",                             RHT_ZR_GS_ABOVE_BRIDGE,                                                                                0x11);
    locationTable[RC_ZR_GS_NEAR_RAISED_GROTTOS] =                                   Location::GSToken(RC_ZR_GS_NEAR_RAISED_GROTTOS,                                    RCQUEST_BOTH,                                                                      SCENE_ZORAS_RIVER,                  20752,                        0x10, "GS Near Raised Grottos",                      RHT_ZR_GS_NEAR_RAISED_GROTTOS,                                                                         0x11);
    locationTable[RC_ZD_GS_FROZEN_WATERFALL] =                                      Location::GSToken(RC_ZD_GS_FROZEN_WATERFALL,                                       RCQUEST_BOTH,                                                                      SCENE_ZORAS_DOMAIN,                 20800,                        0x40, "GS Frozen Waterfall",                         RHT_ZD_GS_FROZEN_WATERFALL,                                                                            0x11);
    locationTable[RC_ZF_GS_ABOVE_THE_LOG] =                                         Location::GSToken(RC_ZF_GS_ABOVE_THE_LOG,                                          RCQUEST_BOTH,                                                                      SCENE_ZORAS_FOUNTAIN,               20740,                        0x04, "GS Above The Log",                            RHT_ZF_GS_ABOVE_THE_LOG,                                                                               0x11);
    locationTable[RC_ZF_GS_HIDDEN_CAVE] =                                           Location::GSToken(RC_ZF_GS_HIDDEN_CAVE,                                            RCQUEST_BOTH,                                                                      SCENE_ZORAS_FOUNTAIN,               20768,                        0x20, "GS Hidden Cave",                              RHT_ZF_GS_HIDDEN_CAVE,                                                                                 0x11);
    locationTable[RC_ZF_GS_TREE] =                                                  Location::GSToken(RC_ZF_GS_TREE,                                                   RCQUEST_BOTH,                                                                      SCENE_ZORAS_FOUNTAIN,               -28288,                       0x80, "GS Tree",                                     RHT_ZF_GS_TREE,                                                                                        0x11);
    // Lon Lon Ranch
    locationTable[RC_LLR_GS_BACK_WALL] =                                            Location::GSToken(RC_LLR_GS_BACK_WALL,                                             RCQUEST_BOTH,                                                                      SCENE_LON_LON_RANCH,                11009,                        0x01, "GS Back Wall",                                RHT_LLR_GS_BACK_WALL,                                                                                  0x0B);
    locationTable[RC_LLR_GS_RAIN_SHED] =                                            Location::GSToken(RC_LLR_GS_RAIN_SHED,                                             RCQUEST_BOTH,                                                                      SCENE_LON_LON_RANCH,                11010,                        0x02, "GS Rain Shed",                                RHT_LLR_GS_RAIN_SHED,                                                                                  0x0B);
    locationTable[RC_LLR_GS_HOUSE_WINDOW] =                                         Location::GSToken(RC_LLR_GS_HOUSE_WINDOW,                                          RCQUEST_BOTH,                                                                      SCENE_LON_LON_RANCH,                11012,                        0x04, "GS House Window",                             RHT_LLR_GS_HOUSE_WINDOW,                                                                               0x0B);
    locationTable[RC_LLR_GS_TREE] =                                                 Location::GSToken(RC_LLR_GS_TREE,                                                  RCQUEST_BOTH,                                                                      SCENE_LON_LON_RANCH,                -29944,                       0x08, "GS Tree",                                     RHT_LLR_GS_TREE,                                                                                       0x0B);

    // Bosses
    locationTable[RC_LINKS_POCKET] =                                                   Location::Base(RC_LINKS_POCKET,                                                 RCQUEST_BOTH,    RCTYPE_LINKS_POCKET,                RCAREA_KOKIRI_FOREST,                ACTOR_ID_MAX,         SCENE_ID_MAX,                       0x00,                               "Link's Pocket",   "Link's Pocket",            RHT_LINKS_POCKET,                                                RG_NONE,                                                SpoilerCollectionCheck::RandomizerInf(RAND_INF_LINKS_POCKET),                                                                 true);
    locationTable[RC_QUEEN_GOHMA] =                                                    Location::Base(RC_QUEEN_GOHMA,                                                  RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,                                                   ACTOR_DOOR_WARP1,     SCENE_DEKU_TREE_BOSS,               0x00,                               "Queen Gohma",     "Queen Gohma",              RHT_QUEEN_GOHMA,                                                 RG_KOKIRI_EMERALD,                                      SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_USED_DEKU_TREE_BLUE_WARP),                                                    true);
    locationTable[RC_KING_DODONGO] =                                                   Location::Base(RC_KING_DODONGO,                                                 RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,                                                   ACTOR_DOOR_WARP1,     SCENE_DODONGOS_CAVERN_BOSS,         0x00,                               "King Dodongo",    "King Dodongo",             RHT_KING_DODONGO,                                                RG_GORON_RUBY,                                          SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP),                                              true);
    locationTable[RC_BARINADE] =                                                       Location::Base(RC_BARINADE,                                                     RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,                                                   ACTOR_DOOR_WARP1,     SCENE_JABU_JABU_BOSS,               0x00,                               "Barinade",        "Barinade",                 RHT_BARINADE,                                                    RG_ZORA_SAPPHIRE,                                       SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_USED_JABU_JABUS_BELLY_BLUE_WARP),                                             true);
    locationTable[RC_PHANTOM_GANON] =                                                  Location::Base(RC_PHANTOM_GANON,                                                RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,                                                   ACTOR_DOOR_WARP1,     SCENE_FOREST_TEMPLE_BOSS,           0x00,                               "Phantom Ganon",   "Phantom Ganon",            RHT_PHANTOM_GANON,                                               RG_FOREST_MEDALLION,                                    SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP),                                                true);
    locationTable[RC_VOLVAGIA] =                                                       Location::Base(RC_VOLVAGIA,                                                     RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,                                                   ACTOR_DOOR_WARP1,     SCENE_FIRE_TEMPLE_BOSS,             0x00,                               "Volvagia",        "Volvagia",                 RHT_VOLVAGIA,                                                    RG_FIRE_MEDALLION,                                      SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP),                                                  true);
    locationTable[RC_MORPHA] =                                                         Location::Base(RC_MORPHA,                                                       RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,                                                   ACTOR_DOOR_WARP1,     SCENE_WATER_TEMPLE_BOSS,            0x00,                               "Morpha",          "Morpha",                   RHT_MORPHA,                                                      RG_WATER_MEDALLION,                                     SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP),                                                 true);
    locationTable[RC_TWINROVA] =                                                       Location::Base(RC_TWINROVA,                                                     RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,                                                   ACTOR_DOOR_WARP1,     SCENE_SPIRIT_TEMPLE_BOSS,           0x00,                               "Twinrova",        "Twinrova",                 RHT_TWINROVA,                                                    RG_SPIRIT_MEDALLION,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE),                                                  true);
    locationTable[RC_BONGO_BONGO] =                                                    Location::Base(RC_BONGO_BONGO,                                                  RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,                                                   ACTOR_DOOR_WARP1,     SCENE_SHADOW_TEMPLE_BOSS,           0x00,                               "Bongo Bongo",     "Bongo Bongo",              RHT_BONGO_BONGO,                                                 RG_SHADOW_MEDALLION,                                    SpoilerCollectionCheck::RandomizerInf(RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE),                                                  true);
    locationTable[RC_GANON] =                                                          Location::Base(RC_GANON,                                                        RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,                                                   ACTOR_DOOR_WARP1,     SCENE_GANON_BOSS,                   0x00,                               "Ganon",           "Ganon",                    RHT_NONE,                                                        RG_TRIFORCE);
    locationTable[RC_GIFT_FROM_RAURU] =                                                Location::Base(RC_GIFT_FROM_RAURU,                                              RCQUEST_BOTH,    RCTYPE_DUNGEON_REWARD,              RCAREA_MARKET,                       ACTOR_ID_MAX,         SCENE_ID_MAX,                       0x00,                               "Gift from Rauru", "Gift from Rauru",          RHT_GIFT_FROM_RAURU,                                             RG_LIGHT_MEDALLION,                                     SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_TIME_TRAVELED_TO_ADULT),                                                      true);

    // Heart Containers
    locationTable[RC_DEKU_TREE_QUEEN_GOHMA_HEART] =                                    Location::Base(RC_DEKU_TREE_QUEEN_GOHMA_HEART,                                  RCQUEST_BOTH,    RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_ITEM_B_HEART,   SCENE_DEKU_TREE_BOSS,               0x00,                               "Queen Gohma Heart Container",                 RHT_DEKU_TREE_QUEEN_GOHMA_HEART,                                 RG_HEART_CONTAINER,                                     SpoilerCollectionCheck::Collectable(0x11, 0x1F),                                                                              true);
    locationTable[RC_DODONGOS_CAVERN_KING_DODONGO_HEART] =                             Location::Base(RC_DODONGOS_CAVERN_KING_DODONGO_HEART,                           RCQUEST_BOTH,    RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_ITEM_B_HEART,   SCENE_DODONGOS_CAVERN_BOSS,         0x00,                               "King Dodongo Heart Container",                RHT_DODONGOS_CAVERN_KING_DODONGO_HEART,                          RG_HEART_CONTAINER,                                     SpoilerCollectionCheck::Collectable(0x12, 0x1F),                                                                              true);
    locationTable[RC_JABU_JABUS_BELLY_BARINADE_HEART] =                                Location::Base(RC_JABU_JABUS_BELLY_BARINADE_HEART,                              RCQUEST_BOTH,    RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_ITEM_B_HEART,   SCENE_JABU_JABU_BOSS,               0x00,                               "Barinade Heart Container",                    RHT_JABU_JABUS_BELLY_BARINADE_HEART,                             RG_HEART_CONTAINER,                                     SpoilerCollectionCheck::Collectable(0x13, 0x1F),                                                                              true);
    locationTable[RC_FOREST_TEMPLE_PHANTOM_GANON_HEART] =                              Location::Base(RC_FOREST_TEMPLE_PHANTOM_GANON_HEART,                            RCQUEST_BOTH,    RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_ITEM_B_HEART,   SCENE_FOREST_TEMPLE_BOSS,           0x00,                               "Phantom Ganon Heart Container",               RHT_FOREST_TEMPLE_PHANTOM_GANON_HEART,                           RG_HEART_CONTAINER,                                     SpoilerCollectionCheck::Collectable(0x14, 0x1F),                                                                              true);
    locationTable[RC_FIRE_TEMPLE_VOLVAGIA_HEART] =                                     Location::Base(RC_FIRE_TEMPLE_VOLVAGIA_HEART,                                   RCQUEST_BOTH,    RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_ITEM_B_HEART,   SCENE_FIRE_TEMPLE_BOSS,             0x00,                               "Volvagia Heart Container",                    RHT_FIRE_TEMPLE_VOLVAGIA_HEART,                                  RG_HEART_CONTAINER,                                     SpoilerCollectionCheck::Collectable(0x15, 0x1F),                                                                              true);
    locationTable[RC_WATER_TEMPLE_MORPHA_HEART] =                                      Location::Base(RC_WATER_TEMPLE_MORPHA_HEART,                                    RCQUEST_BOTH,    RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_ITEM_B_HEART,   SCENE_WATER_TEMPLE_BOSS,            0x00,                               "Morpha Heart Container",                      RHT_WATER_TEMPLE_MORPHA_HEART,                                   RG_HEART_CONTAINER,                                     SpoilerCollectionCheck::Collectable(0x16, 0x1F),                                                                              true);
    locationTable[RC_SPIRIT_TEMPLE_TWINROVA_HEART] =                                   Location::Base(RC_SPIRIT_TEMPLE_TWINROVA_HEART,                                 RCQUEST_BOTH,    RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_ITEM_B_HEART,   SCENE_SPIRIT_TEMPLE_BOSS,           0x00,                               "Twinrova Heart Container",                    RHT_SPIRIT_TEMPLE_TWINROVA_HEART,                                RG_HEART_CONTAINER,                                     SpoilerCollectionCheck::Collectable(0x17, 0x1F),                                                                              true);
    locationTable[RC_SHADOW_TEMPLE_BONGO_BONGO_HEART] =                                Location::Base(RC_SHADOW_TEMPLE_BONGO_BONGO_HEART,                              RCQUEST_BOTH,    RCTYPE_BOSS_HEART_OR_OTHER_REWARD,                                       ACTOR_ITEM_B_HEART,   SCENE_SHADOW_TEMPLE_BOSS,           0x00,                               "Bongo Bongo Heart Container",                 RHT_SHADOW_TEMPLE_BONGO_BONGO_HEART,                             RG_HEART_CONTAINER,                                     SpoilerCollectionCheck::Collectable(0x18, 0x1F),                                                                              true);

    // Cutscenes
    locationTable[RC_TOT_MASTER_SWORD] =                                               Location::Base(RC_TOT_MASTER_SWORD,                                             RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_TEMPLE_OF_TIME,               0x00,                               "ToT Master Sword",                            RHT_TOT_MASTER_SWORD,                                            RG_MASTER_SWORD,                                        SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL),                                           true);
    locationTable[RC_TOT_LIGHT_ARROWS_CUTSCENE] =                                      Location::Base(RC_TOT_LIGHT_ARROWS_CUTSCENE,                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                                                         ACTOR_ID_MAX,         SCENE_TEMPLE_OF_TIME,               0x00,                               "ToT Light Arrow Cutscene",                    RHT_TOT_LIGHT_ARROWS_CUTSCENE,                                   RG_LIGHT_ARROWS,                                        SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS),                              true);
    locationTable[RC_LW_GIFT_FROM_SARIA] =                                             Location::Base(RC_LW_GIFT_FROM_SARIA,                                           RCQUEST_BOTH,    RCTYPE_OCARINA,                                                          ACTOR_ID_MAX,         SCENE_LOST_WOODS,                   0x00,                               "Gift From Saria",                             RHT_LW_GIFT_FROM_SARIA,                                          RG_PROGRESSIVE_OCARINA,                                 SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_SPOKE_TO_SARIA_ON_BRIDGE),                                                    true);
    locationTable[RC_ZF_GREAT_FAIRY_REWARD] =                                          Location::Base(RC_ZF_GREAT_FAIRY_REWARD,                                        RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_ZORAS_FOUNTAIN,               ACTOR_BG_DY_YOSEIZO,  SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 1,                                  "Great Fairy Reward",                          RHT_ZF_GREAT_FAIRY_REWARD,                                       RG_FARORES_WIND,                                        SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_GREAT_FAIRY_REWARD),                                                        true);
    locationTable[RC_HC_GREAT_FAIRY_REWARD] =                                          Location::Base(RC_HC_GREAT_FAIRY_REWARD,                                        RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_HYRULE_CASTLE,                ACTOR_BG_DY_YOSEIZO,  SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 2,                                  "Great Fairy Reward",                          RHT_HC_GREAT_FAIRY_REWARD,                                       RG_DINS_FIRE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_GREAT_FAIRY_REWARD),                                                        true);
    locationTable[RC_COLOSSUS_GREAT_FAIRY_REWARD] =                                    Location::Base(RC_COLOSSUS_GREAT_FAIRY_REWARD,                                  RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_DESERT_COLOSSUS,              ACTOR_BG_DY_YOSEIZO,  SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 3,                                  "Great Fairy Reward",                          RHT_COLOSSUS_GREAT_FAIRY_REWARD,                                 RG_NAYRUS_LOVE,                                         SpoilerCollectionCheck::RandomizerInf(RAND_INF_COLOSSUS_GREAT_FAIRY_REWARD),                                                  true);
    locationTable[RC_DMT_GREAT_FAIRY_REWARD] =                                         Location::Base(RC_DMT_GREAT_FAIRY_REWARD,                                       RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_DEATH_MOUNTAIN_TRAIL,         ACTOR_BG_DY_YOSEIZO,  SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC,  1,                                  "Great Fairy Reward",                          RHT_DMT_GREAT_FAIRY_REWARD,                                      RG_PROGRESSIVE_MAGIC_METER,                             SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMT_GREAT_FAIRY_REWARD),                                                       true);
    locationTable[RC_DMC_GREAT_FAIRY_REWARD] =                                         Location::Base(RC_DMC_GREAT_FAIRY_REWARD,                                       RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_DEATH_MOUNTAIN_CRATER,        ACTOR_BG_DY_YOSEIZO,  SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC,  2,                                  "Great Fairy Reward",                          RHT_DMC_GREAT_FAIRY_REWARD,                                      RG_PROGRESSIVE_MAGIC_METER,                             SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMC_GREAT_FAIRY_REWARD),                                                       true);
    locationTable[RC_OGC_GREAT_FAIRY_REWARD] =                                         Location::Base(RC_OGC_GREAT_FAIRY_REWARD,                                       RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_HYRULE_CASTLE,                ACTOR_BG_DY_YOSEIZO,  SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC,  3,                                  "OGC Great Fairy Reward", "OGC Great Fairy Reward", RHT_OGC_GREAT_FAIRY_REWARD,                                 RG_DOUBLE_DEFENSE,                                      SpoilerCollectionCheck::RandomizerInf(RAND_INF_OGC_GREAT_FAIRY_REWARD),                                                       true);

    // Songs
    locationTable[RC_SHEIK_IN_FOREST] =                                                Location::Base(RC_SHEIK_IN_FOREST,                                              RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_SACRED_FOREST_MEADOW,         0x00,                               "Sheik in Forest",           "Sheik in Forest",           RHT_SHEIK_IN_FOREST,                                  RG_MINUET_OF_FOREST,                                    SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_MINUET_OF_FOREST),                                                    true);
    locationTable[RC_SHEIK_IN_CRATER] =                                                Location::Base(RC_SHEIK_IN_CRATER,                                              RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_DEATH_MOUNTAIN_CRATER,        0x00,                               "Sheik in Crater",           "Sheik in Crater",           RHT_SHEIK_IN_CRATER,                                  RG_BOLERO_OF_FIRE,                                      SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_BOLERO_OF_FIRE),                                                      true);
    locationTable[RC_SHEIK_IN_ICE_CAVERN] =                                            Location::Base(RC_SHEIK_IN_ICE_CAVERN,                                          RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_ICE_CAVERN,                   0x00,                               "Sheik in Ice Cavern",       "Sheik in Ice Cavern",       RHT_SHEIK_IN_ICE_CAVERN,                              RG_SERENADE_OF_WATER,                                   SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER),                                                   true);
    locationTable[RC_SHEIK_AT_COLOSSUS] =                                              Location::Base(RC_SHEIK_AT_COLOSSUS,                                            RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_DESERT_COLOSSUS,              0x00,                               "Sheik at Colossus",         "Sheik at Colossus",         RHT_SHEIK_AT_COLOSSUS,                                RG_REQUIEM_OF_SPIRIT,                                   SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_REQUIEM_OF_SPIRIT),                                                   true);
    locationTable[RC_SHEIK_IN_KAKARIKO] =                                              Location::Base(RC_SHEIK_IN_KAKARIKO,                                            RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_KAKARIKO_VILLAGE,             0x00,                               "Sheik in Kakariko",         "Sheik in Kakariko",         RHT_SHEIK_IN_KAKARIKO,                                RG_NOCTURNE_OF_SHADOW,                                  SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL),                                               true);
    locationTable[RC_SHEIK_AT_TEMPLE] =                                                Location::Base(RC_SHEIK_AT_TEMPLE,                                              RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_TEMPLE_OF_TIME,               0x00,                               "Sheik at Temple",           "Sheik at Temple",           RHT_SHEIK_AT_TEMPLE,                                  RG_PRELUDE_OF_LIGHT,                                    SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT),                                                    true);
    locationTable[RC_SONG_FROM_IMPA] =                                                 Location::Base(RC_SONG_FROM_IMPA,                                               RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,               RCAREA_HYRULE_CASTLE,                ACTOR_ID_MAX,         SCENE_ID_MAX,                       0x00,                               "Song from Impa",            "Song from Impa",            RHT_SONG_FROM_IMPA,                                   RG_ZELDAS_LULLABY,                                      SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_ZELDAS_LULLABY),                                                      true);
    locationTable[RC_SONG_FROM_MALON] =                                                Location::Base(RC_SONG_FROM_MALON,                                              RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_LON_LON_RANCH,                0x00,                               "Song from Malon",           "Song from Malon",           RHT_SONG_FROM_MALON,                                  RG_EPONAS_SONG,                                         SpoilerCollectionCheck::RandomizerInf(RAND_INF_LEARNED_EPONA_SONG),                                                           true);
    locationTable[RC_SONG_FROM_SARIA] =                                                Location::Base(RC_SONG_FROM_SARIA,                                              RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_SACRED_FOREST_MEADOW,         0x00,                               "Song from Saria",           "Song from Saria",           RHT_SONG_FROM_SARIA,                                  RG_SARIAS_SONG,                                         SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_SARIAS_SONG),                                                         true);
    locationTable[RC_SONG_FROM_ROYAL_FAMILYS_TOMB] =                                   Location::Base(RC_SONG_FROM_ROYAL_FAMILYS_TOMB,                                 RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_ROYAL_FAMILYS_TOMB,           0x00,                               "Song from Composers Grave", "Song from Composers Grave", RHT_SONG_FROM_ROYAL_FAMILYS_TOMB,                     RG_SUNS_SONG,                                           SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_SUNS_SONG),                                                           true);
    locationTable[RC_SONG_FROM_OCARINA_OF_TIME] =                                      Location::Base(RC_SONG_FROM_OCARINA_OF_TIME,                                    RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,                                                    ACTOR_ID_MAX,         SCENE_HYRULE_FIELD,                 0x00,                               "Song from Ocarina of Time", "Song from Ocarina of Time", RHT_SONG_FROM_OCARINA_OF_TIME,                        RG_SONG_OF_TIME,                                        SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_SONG_OF_TIME),                                                        true);
    locationTable[RC_SONG_FROM_WINDMILL] =                                             Location::Base(RC_SONG_FROM_WINDMILL,                                           RCQUEST_BOTH,    RCTYPE_SONG_LOCATION,               RCAREA_KAKARIKO_VILLAGE,             ACTOR_ID_MAX,         SCENE_WINDMILL_AND_DAMPES_GRAVE,    0x00,                               "Song from Windmill",        "Song from Windmill",        RHT_SONG_FROM_WINDMILL,                               RG_SONG_OF_STORMS,                                      SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_LEARNED_SONG_OF_STORMS),                                                      true);

    //Beehives
    locationTable[RC_KF_STORMS_GROTTO_BEEHIVE_LEFT] =                                  Location::Base(RC_KF_STORMS_GROTTO_BEEHIVE_LEFT,                                RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_KOKIRI_FOREST,                ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(-144, 0x2C),       "Storms Grotto Beehive Left",                  RHT_BEEHIVE_CHEST_GROTTO,                                        RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_KF_STORMS_GROTTO_LEFT));
    locationTable[RC_KF_STORMS_GROTTO_BEEHIVE_RIGHT] =                                 Location::Base(RC_KF_STORMS_GROTTO_BEEHIVE_RIGHT,                               RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_KOKIRI_FOREST,                ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(121,  0x2C),       "Storms Grotto Beehive Right",                 RHT_BEEHIVE_CHEST_GROTTO,                                        RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_KF_STORMS_GROTTO_RIGHT));
    locationTable[RC_LW_NEAR_SHORTCUTS_GROTTO_BEEHIVE_LEFT] =                          Location::Base(RC_LW_NEAR_SHORTCUTS_GROTTO_BEEHIVE_LEFT,                        RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_LOST_WOODS,                   ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(-144, 0x14),       "Near Shortcuts Grotto Beehive Left",          RHT_BEEHIVE_CHEST_GROTTO,                                        RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_LW_NEAR_SHORTCUTS_GROTTO_LEFT));
    locationTable[RC_LW_NEAR_SHORTCUTS_GROTTO_BEEHIVE_RIGHT] =                         Location::Base(RC_LW_NEAR_SHORTCUTS_GROTTO_BEEHIVE_RIGHT,                       RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_LOST_WOODS,                   ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(121,  0x14),       "Near Shortcuts Grotto Beehive Right",         RHT_BEEHIVE_CHEST_GROTTO,                                        RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_LW_NEAR_SHORTCUTS_GROTTO_RIGHT));
    locationTable[RC_LW_DEKU_SCRUB_GROTTO_BEEHIVE] =                                   Location::Base(RC_LW_DEKU_SCRUB_GROTTO_BEEHIVE,                                 RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_LOST_WOODS,                   ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(747,  0xF5),       "Deku Scrub Grotto Beehive",                   RHT_BEEHIVE_SCRUB_PAIR_GROTTO,                                   RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_LW_DEKU_SCRUB_GROTTO));
    locationTable[RC_SFM_STORMS_GROTTO_BEEHIVE] =                                      Location::Base(RC_SFM_STORMS_GROTTO_BEEHIVE,                                    RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_SACRED_FOREST_MEADOW,         ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(2262, 0xEE),       "Storms Grotto Beehive",                       RHT_BEEHIVE_SCRUB_PAIR_GROTTO,                                   RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_SFM_STORMS_GROTTO));
    locationTable[RC_HF_NEAR_MARKET_GROTTO_BEEHIVE_LEFT] =                             Location::Base(RC_HF_NEAR_MARKET_GROTTO_BEEHIVE_LEFT,                           RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_HYRULE_FIELD,                 ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(-144, 0x00),       "Near Market Grotto Beehive Left",             RHT_BEEHIVE_CHEST_GROTTO,                                        RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_HF_NEAR_MARKET_GROTTO_LEFT));
    locationTable[RC_HF_NEAR_MARKET_GROTTO_BEEHIVE_RIGHT] =                            Location::Base(RC_HF_NEAR_MARKET_GROTTO_BEEHIVE_RIGHT,                          RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_HYRULE_FIELD,                 ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(121,  0x00),       "Near Market Grotto Beehive Right",            RHT_BEEHIVE_CHEST_GROTTO,                                        RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_HF_NEAR_MARKET_GROTTO_RIGHT));
    locationTable[RC_HF_OPEN_GROTTO_BEEHIVE_LEFT] =                                    Location::Base(RC_HF_OPEN_GROTTO_BEEHIVE_LEFT,                                  RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_HYRULE_FIELD,                 ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(-144, 0x03),       "Open Grotto Beehive Left",                    RHT_BEEHIVE_CHEST_GROTTO,                                        RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_HF_OPEN_GROTTO_LEFT));
    locationTable[RC_HF_OPEN_GROTTO_BEEHIVE_RIGHT] =                                   Location::Base(RC_HF_OPEN_GROTTO_BEEHIVE_RIGHT,                                 RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_HYRULE_FIELD,                 ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(121,  0x03),       "Open Grotto Beehive Right",                   RHT_BEEHIVE_CHEST_GROTTO,                                        RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_HF_OPEN_GROTTO_RIGHT));
    locationTable[RC_HF_SOUTHEAST_GROTTO_BEEHIVE_LEFT] =                               Location::Base(RC_HF_SOUTHEAST_GROTTO_BEEHIVE_LEFT,                             RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_HYRULE_FIELD,                 ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(-144, 0x22),       "Southeast Grotto Beehive Left",               RHT_BEEHIVE_CHEST_GROTTO,                                        RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_HF_SOUTHEAST_GROTTO_LEFT));
    locationTable[RC_HF_SOUTHEAST_GROTTO_BEEHIVE_RIGHT] =                              Location::Base(RC_HF_SOUTHEAST_GROTTO_BEEHIVE_RIGHT,                            RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_HYRULE_FIELD,                 ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(121,  0x22),       "Southeast Grotto Beehive Right",              RHT_BEEHIVE_CHEST_GROTTO,                                        RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_HF_SOUTHEAST_GROTTO_RIGHT));
    locationTable[RC_HF_INSIDE_FENCE_GROTTO_BEEHIVE] =                                 Location::Base(RC_HF_INSIDE_FENCE_GROTTO_BEEHIVE,                               RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_HYRULE_FIELD,                 ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(1410, 0xE6),       "Inside Fence Grotto Beehive",                 RHT_BEEHIVE_LONELY_SCRUB_GROTTO,                                 RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_HF_INSIDE_FENCE_GROTTO));
    locationTable[RC_LLR_GROTTO_BEEHIVE] =                                             Location::Base(RC_LLR_GROTTO_BEEHIVE,                                           RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_LON_LON_RANCH,                ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(5144, 0xFC),       "Grotto Beehive",                              RHT_BEEHIVE_SCRUB_TRIO_GROTTO,                                   RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_LLR_GROTTO));
    locationTable[RC_KAK_OPEN_GROTTO_BEEHIVE_LEFT] =                                   Location::Base(RC_KAK_OPEN_GROTTO_BEEHIVE_LEFT,                                 RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_KAKARIKO_VILLAGE,             ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(-144, 0x28),       "Open Grotto Beehive Left",                    RHT_BEEHIVE_CHEST_GROTTO,                                        RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_KAK_OPEN_GROTTO_LEFT));
    locationTable[RC_KAK_OPEN_GROTTO_BEEHIVE_RIGHT] =                                  Location::Base(RC_KAK_OPEN_GROTTO_BEEHIVE_RIGHT,                                RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_KAKARIKO_VILLAGE,             ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(121,  0x28),       "Open Grotto Beehive Right",                   RHT_BEEHIVE_CHEST_GROTTO,                                        RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_KAK_OPEN_GROTTO_RIGHT));
    locationTable[RC_DMT_COW_GROTTO_BEEHIVE] =                                         Location::Base(RC_DMT_COW_GROTTO_BEEHIVE,                                       RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_DEATH_MOUNTAIN_TRAIL,         ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(2617, 0xF8),       "Cow Grotto Beehive",                          RHT_BEEHIVE_COW_GROTTO,                                          RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_DMT_COW_GROTTO));
    locationTable[RC_DMT_STORMS_GROTTO_BEEHIVE_LEFT] =                                 Location::Base(RC_DMT_STORMS_GROTTO_BEEHIVE_LEFT,                               RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_DEATH_MOUNTAIN_TRAIL,         ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(-144, 0x57),       "Storms Grotto Beehive Left",                  RHT_BEEHIVE_CHEST_GROTTO,                                        RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_DMT_STORMS_GROTTO_LEFT));
    locationTable[RC_DMT_STORMS_GROTTO_BEEHIVE_RIGHT] =                                Location::Base(RC_DMT_STORMS_GROTTO_BEEHIVE_RIGHT,                              RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_DEATH_MOUNTAIN_TRAIL,         ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(121,  0x57),       "Storms Grotto Beehive Right",                 RHT_BEEHIVE_CHEST_GROTTO,                                        RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_DMT_STORMS_GROTTO_RIGHT));
    locationTable[RC_GC_GROTTO_BEEHIVE] =                                              Location::Base(RC_GC_GROTTO_BEEHIVE,                                            RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_GORON_CITY,                   ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(5144, 0xFB),       "Grotto Beehive",                              RHT_BEEHIVE_SCRUB_TRIO_GROTTO,                                   RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_GC_GROTTO));
    locationTable[RC_DMC_UPPER_GROTTO_BEEHIVE_LEFT] =                                  Location::Base(RC_DMC_UPPER_GROTTO_BEEHIVE_LEFT,                                RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_DEATH_MOUNTAIN_CRATER,        ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(-144, 0x7A),       "Upper Grotto Beehive Left",                   RHT_BEEHIVE_CHEST_GROTTO,                                        RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_DMC_UPPER_GROTTO_LEFT));
    locationTable[RC_DMC_UPPER_GROTTO_BEEHIVE_RIGHT] =                                 Location::Base(RC_DMC_UPPER_GROTTO_BEEHIVE_RIGHT,                               RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_DEATH_MOUNTAIN_CRATER,        ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(121,  0x7A),       "Upper Grotto Beehive Right",                  RHT_BEEHIVE_CHEST_GROTTO,                                        RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_DMC_UPPER_GROTTO_RIGHT));
    locationTable[RC_DMC_HAMMER_GROTTO_BEEHIVE] =                                      Location::Base(RC_DMC_HAMMER_GROTTO_BEEHIVE,                                    RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_DEATH_MOUNTAIN_CRATER,        ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(5144, 0xF9),       "Hammer Grotto Beehive",                       RHT_BEEHIVE_SCRUB_TRIO_GROTTO,                                   RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_DMC_HAMMER_GROTTO));
    locationTable[RC_ZR_OPEN_GROTTO_BEEHIVE_LEFT] =                                    Location::Base(RC_ZR_OPEN_GROTTO_BEEHIVE_LEFT,                                  RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_ZORAS_RIVER,                  ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(-144, 0x29),       "Open Grotto Beehive Left",                    RHT_BEEHIVE_CHEST_GROTTO,                                        RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_ZR_OPEN_GROTTO_LEFT));
    locationTable[RC_ZR_OPEN_GROTTO_BEEHIVE_RIGHT] =                                   Location::Base(RC_ZR_OPEN_GROTTO_BEEHIVE_RIGHT,                                 RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_ZORAS_RIVER,                  ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(121,  0x29),       "Open Grotto Beehive Right",                   RHT_BEEHIVE_CHEST_GROTTO,                                        RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_ZR_OPEN_GROTTO_RIGHT));
    locationTable[RC_ZR_STORMS_GROTTO_BEEHIVE] =                                       Location::Base(RC_ZR_STORMS_GROTTO_BEEHIVE,                                     RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_ZORAS_RIVER,                  ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(2262, 0xEB),       "Storms Grotto Beehive",                       RHT_BEEHIVE_SCRUB_PAIR_GROTTO,                                   RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_ZR_STORMS_GROTTO));
    locationTable[RC_ZD_IN_FRONT_OF_KING_ZORA_BEEHIVE_LEFT] =                          Location::Base(RC_ZD_IN_FRONT_OF_KING_ZORA_BEEHIVE_LEFT,                        RCQUEST_BOTH,    RCTYPE_BEEHIVE,                                                          ACTOR_OBJ_COMB,       SCENE_ZORAS_DOMAIN,                 TWO_ACTOR_PARAMS(382,  0x00),       "In Front of King Zora Beehive Left",          RHT_BEEHIVE_IN_FRONT_OF_KING_ZORA,                               RG_BLUE_RUPEE,                                          SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_ZD_IN_FRONT_OF_KING_ZORA_LEFT));
    locationTable[RC_ZD_IN_FRONT_OF_KING_ZORA_BEEHIVE_RIGHT] =                         Location::Base(RC_ZD_IN_FRONT_OF_KING_ZORA_BEEHIVE_RIGHT,                       RCQUEST_BOTH,    RCTYPE_BEEHIVE,                                                          ACTOR_OBJ_COMB,       SCENE_ZORAS_DOMAIN,                 TWO_ACTOR_PARAMS(948,  0x00),       "In Front of King Zora Beehive Right",         RHT_BEEHIVE_IN_FRONT_OF_KING_ZORA,                               RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_ZD_IN_FRONT_OF_KING_ZORA_RIGHT));
    locationTable[RC_ZD_BEHIND_KING_ZORA_BEEHIVE] =                                    Location::Base(RC_ZD_BEHIND_KING_ZORA_BEEHIVE,                                  RCQUEST_BOTH,    RCTYPE_BEEHIVE,                                                          ACTOR_OBJ_COMB,       SCENE_ZORAS_DOMAIN,                 TWO_ACTOR_PARAMS(701,  0x00),       "Behind King Zora Beehive",                    RHT_BEEHIVE_BEHIND_KING_ZORA,                                    RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_ZD_BEHIND_KING_ZORA));
    locationTable[RC_LH_GROTTO_BEEHIVE] =                                              Location::Base(RC_LH_GROTTO_BEEHIVE,                                            RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_LAKE_HYLIA,                   ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(5144, 0xEF),       "Grotto Beehive",                              RHT_BEEHIVE_SCRUB_TRIO_GROTTO,                                   RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_LH_GROTTO));
    locationTable[RC_GV_DEKU_SCRUB_GROTTO_BEEHIVE] =                                   Location::Base(RC_GV_DEKU_SCRUB_GROTTO_BEEHIVE,                                 RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_GERUDO_VALLEY,                ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(2262, 0xF0),       "Deku Scrub Grotto Beehive",                   RHT_BEEHIVE_SCRUB_PAIR_GROTTO,                                   RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_GV_DEKU_SCRUB_GROTTO));
    locationTable[RC_COLOSSUS_GROTTO_BEEHIVE] =                                        Location::Base(RC_COLOSSUS_GROTTO_BEEHIVE,                                      RCQUEST_BOTH,    RCTYPE_BEEHIVE,                     RCAREA_DESERT_COLOSSUS,              ACTOR_OBJ_COMB,       SCENE_GROTTOS,                      TWO_ACTOR_PARAMS(2262, 0xFD),       "Grotto Beehive",                              RHT_BEEHIVE_SCRUB_PAIR_GROTTO,                                   RG_RED_RUPEE,                                           SpoilerCollectionCheck::RandomizerInf(RAND_INF_BEEHIVE_COLOSSUS_GROTTO));

    /*-------------------------------
              --- SHOPS ---
      8     6               2     4

      7     5               1     3
      -------------------------------*/
    // Kokiri Forest
    locationTable[RC_KF_SHOP_ITEM_1] =                                                 Location::Base(RC_KF_SHOP_ITEM_1,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_KOKIRI_SHOP,                  0x00,                               "Shop Item 1",                                 RHT_KF_SHOP_ITEM_1,                                              RG_BUY_DEKU_SHIELD,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_1), true,  40);
    locationTable[RC_KF_SHOP_ITEM_2] =                                                 Location::Base(RC_KF_SHOP_ITEM_2,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_KOKIRI_SHOP,                  0x01,                               "Shop Item 2",                                 RHT_KF_SHOP_ITEM_2,                                              RG_BUY_DEKU_NUTS_5,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_2), false, 15);
    locationTable[RC_KF_SHOP_ITEM_3] =                                                 Location::Base(RC_KF_SHOP_ITEM_3,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_KOKIRI_SHOP,                  0x02,                               "Shop Item 3",                                 RHT_KF_SHOP_ITEM_3,                                              RG_BUY_DEKU_NUTS_10,  SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_3), false, 30);
    locationTable[RC_KF_SHOP_ITEM_4] =                                                 Location::Base(RC_KF_SHOP_ITEM_4,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_KOKIRI_SHOP,                  0x03,                               "Shop Item 4",                                 RHT_KF_SHOP_ITEM_4,                                              RG_BUY_DEKU_STICK_1,  SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_4), false, 10);
    locationTable[RC_KF_SHOP_ITEM_5] =                                                 Location::Base(RC_KF_SHOP_ITEM_5,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_KOKIRI_SHOP,                  0x04,                               "Shop Item 5",                                 RHT_KF_SHOP_ITEM_5,                                              RG_BUY_DEKU_SEEDS_30, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_5), false, 30);
    locationTable[RC_KF_SHOP_ITEM_6] =                                                 Location::Base(RC_KF_SHOP_ITEM_6,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_KOKIRI_SHOP,                  0x05,                               "Shop Item 6",                                 RHT_KF_SHOP_ITEM_6,                                              RG_BUY_ARROWS_10,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_6), false, 20);
    locationTable[RC_KF_SHOP_ITEM_7] =                                                 Location::Base(RC_KF_SHOP_ITEM_7,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_KOKIRI_SHOP,                  0x06,                               "Shop Item 7",                                 RHT_KF_SHOP_ITEM_7,                                              RG_BUY_ARROWS_30,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_7), false, 60);
    locationTable[RC_KF_SHOP_ITEM_8] =                                                 Location::Base(RC_KF_SHOP_ITEM_8,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_KOKIRI_SHOP,                  0x07,                               "Shop Item 8",                                 RHT_KF_SHOP_ITEM_8,                                              RG_BUY_HEART,         SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_8), false, 10);

    // Kakariko Village
    locationTable[RC_KAK_POTION_SHOP_ITEM_1] =                                         Location::Base(RC_KAK_POTION_SHOP_ITEM_1,                                       RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_KAKARIKO,         0x00,                               "Potion Shop Item 1",                          RHT_KAK_POTION_SHOP_ITEM_1,                                      RG_BUY_GREEN_POTION,  SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_1), false, 30);
    locationTable[RC_KAK_POTION_SHOP_ITEM_2] =                                         Location::Base(RC_KAK_POTION_SHOP_ITEM_2,                                       RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_KAKARIKO,         0x01,                               "Potion Shop Item 2",                          RHT_KAK_POTION_SHOP_ITEM_2,                                      RG_BUY_BLUE_FIRE,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_2), false, 300);
    locationTable[RC_KAK_POTION_SHOP_ITEM_3] =                                         Location::Base(RC_KAK_POTION_SHOP_ITEM_3,                                       RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_KAKARIKO,         0x02,                               "Potion Shop Item 3",                          RHT_KAK_POTION_SHOP_ITEM_3,                                      RG_BUY_RED_POTION_30, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_3), false, 30);
    locationTable[RC_KAK_POTION_SHOP_ITEM_4] =                                         Location::Base(RC_KAK_POTION_SHOP_ITEM_4,                                       RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_KAKARIKO,         0x03,                               "Potion Shop Item 4",                          RHT_KAK_POTION_SHOP_ITEM_4,                                      RG_BUY_FAIRYS_SPIRIT, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_4), false, 50);
    locationTable[RC_KAK_POTION_SHOP_ITEM_5] =                                         Location::Base(RC_KAK_POTION_SHOP_ITEM_5,                                       RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_KAKARIKO,         0x04,                               "Potion Shop Item 5",                          RHT_KAK_POTION_SHOP_ITEM_5,                                      RG_BUY_DEKU_NUTS_5,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_5), false, 15);
    locationTable[RC_KAK_POTION_SHOP_ITEM_6] =                                         Location::Base(RC_KAK_POTION_SHOP_ITEM_6,                                       RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_KAKARIKO,         0x05,                               "Potion Shop Item 6",                          RHT_KAK_POTION_SHOP_ITEM_6,                                      RG_BUY_BOTTLE_BUG,    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_6), false, 50);
    locationTable[RC_KAK_POTION_SHOP_ITEM_7] =                                         Location::Base(RC_KAK_POTION_SHOP_ITEM_7,                                       RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_KAKARIKO,         0x06,                               "Potion Shop Item 7",                          RHT_KAK_POTION_SHOP_ITEM_7,                                      RG_BUY_POE,           SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_7), false, 30);
    locationTable[RC_KAK_POTION_SHOP_ITEM_8] =                                         Location::Base(RC_KAK_POTION_SHOP_ITEM_8,                                       RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_KAKARIKO,         0x07,                               "Potion Shop Item 8",                          RHT_KAK_POTION_SHOP_ITEM_8,                                      RG_BUY_FISH,          SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_8), false, 200);
    locationTable[RC_KAK_BAZAAR_ITEM_1] =                                              Location::Base(RC_KAK_BAZAAR_ITEM_1,                                            RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_TEST01,                       0x00,                               "Bazaar Item 1",                               RHT_KAK_BAZAAR_ITEM_1,                                           RG_BUY_HYLIAN_SHIELD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_1), false, 80);
    locationTable[RC_KAK_BAZAAR_ITEM_2] =                                              Location::Base(RC_KAK_BAZAAR_ITEM_2,                                            RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_TEST01,                       0x01,                               "Bazaar Item 2",                               RHT_KAK_BAZAAR_ITEM_2,                                           RG_BUY_BOMBS_535,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_2), false, 35);
    locationTable[RC_KAK_BAZAAR_ITEM_3] =                                              Location::Base(RC_KAK_BAZAAR_ITEM_3,                                            RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_TEST01,                       0x02,                               "Bazaar Item 3",                               RHT_KAK_BAZAAR_ITEM_3,                                           RG_BUY_DEKU_NUTS_5,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_3), false, 10);
    locationTable[RC_KAK_BAZAAR_ITEM_4] =                                              Location::Base(RC_KAK_BAZAAR_ITEM_4,                                            RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_TEST01,                       0x03,                               "Bazaar Item 4",                               RHT_KAK_BAZAAR_ITEM_4,                                           RG_BUY_HEART,         SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_4), false, 20);
    locationTable[RC_KAK_BAZAAR_ITEM_5] =                                              Location::Base(RC_KAK_BAZAAR_ITEM_5,                                            RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_TEST01,                       0x04,                               "Bazaar Item 5",                               RHT_KAK_BAZAAR_ITEM_5,                                           RG_BUY_ARROWS_10,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_5), false, 20);
    locationTable[RC_KAK_BAZAAR_ITEM_6] =                                              Location::Base(RC_KAK_BAZAAR_ITEM_6,                                            RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_TEST01,                       0x05,                               "Bazaar Item 6",                               RHT_KAK_BAZAAR_ITEM_6,                                           RG_BUY_ARROWS_50,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_6), false, 90);
    locationTable[RC_KAK_BAZAAR_ITEM_7] =                                              Location::Base(RC_KAK_BAZAAR_ITEM_7,                                            RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_TEST01,                       0x06,                               "Bazaar Item 7",                               RHT_KAK_BAZAAR_ITEM_7,                                           RG_BUY_DEKU_STICK_1,  SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_7), false, 10);
    locationTable[RC_KAK_BAZAAR_ITEM_8] =                                              Location::Base(RC_KAK_BAZAAR_ITEM_8,                                            RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_TEST01,                       0x07,                               "Bazaar Item 8",                               RHT_KAK_BAZAAR_ITEM_8,                                           RG_BUY_ARROWS_30,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_8), false, 60);

    // Market
    locationTable[RC_MARKET_BOMBCHU_SHOP_ITEM_1] =                                     Location::Base(RC_MARKET_BOMBCHU_SHOP_ITEM_1,                                   RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_BOMBCHU_SHOP,                 0x00,                               "Bombchu Shop Item 1",                         RHT_MARKET_BOMBCHU_SHOP_ITEM_1,                                  RG_BUY_BOMBCHUS_10,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_1), false, 99);
    locationTable[RC_MARKET_BOMBCHU_SHOP_ITEM_2] =                                     Location::Base(RC_MARKET_BOMBCHU_SHOP_ITEM_2,                                   RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_BOMBCHU_SHOP,                 0x01,                               "Bombchu Shop Item 2",                         RHT_MARKET_BOMBCHU_SHOP_ITEM_2,                                  RG_BUY_BOMBCHUS_10,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_2), false, 99);
    locationTable[RC_MARKET_BOMBCHU_SHOP_ITEM_3] =                                     Location::Base(RC_MARKET_BOMBCHU_SHOP_ITEM_3,                                   RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_BOMBCHU_SHOP,                 0x02,                               "Bombchu Shop Item 3",                         RHT_MARKET_BOMBCHU_SHOP_ITEM_3,                                  RG_BUY_BOMBCHUS_10,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_3), false, 99);
    locationTable[RC_MARKET_BOMBCHU_SHOP_ITEM_4] =                                     Location::Base(RC_MARKET_BOMBCHU_SHOP_ITEM_4,                                   RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_BOMBCHU_SHOP,                 0x03,                               "Bombchu Shop Item 4",                         RHT_MARKET_BOMBCHU_SHOP_ITEM_4,                                  RG_BUY_BOMBCHUS_10,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_4), false, 99);
    locationTable[RC_MARKET_BOMBCHU_SHOP_ITEM_5] =                                     Location::Base(RC_MARKET_BOMBCHU_SHOP_ITEM_5,                                   RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_BOMBCHU_SHOP,                 0x04,                               "Bombchu Shop Item 5",                         RHT_MARKET_BOMBCHU_SHOP_ITEM_5,                                  RG_BUY_BOMBCHUS_20,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_5), false, 180);
    locationTable[RC_MARKET_BOMBCHU_SHOP_ITEM_6] =                                     Location::Base(RC_MARKET_BOMBCHU_SHOP_ITEM_6,                                   RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_BOMBCHU_SHOP,                 0x05,                               "Bombchu Shop Item 6",                         RHT_MARKET_BOMBCHU_SHOP_ITEM_6,                                  RG_BUY_BOMBCHUS_20,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_6), false, 180);
    locationTable[RC_MARKET_BOMBCHU_SHOP_ITEM_7] =                                     Location::Base(RC_MARKET_BOMBCHU_SHOP_ITEM_7,                                   RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_BOMBCHU_SHOP,                 0x06,                               "Bombchu Shop Item 7",                         RHT_MARKET_BOMBCHU_SHOP_ITEM_7,                                  RG_BUY_BOMBCHUS_20,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_7), false, 180);
    locationTable[RC_MARKET_BOMBCHU_SHOP_ITEM_8] =                                     Location::Base(RC_MARKET_BOMBCHU_SHOP_ITEM_8,                                   RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_BOMBCHU_SHOP,                 0x07,                               "Bombchu Shop Item 8",                         RHT_MARKET_BOMBCHU_SHOP_ITEM_8,                                  RG_BUY_BOMBCHUS_20,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_8), false, 180);
    locationTable[RC_MARKET_POTION_SHOP_ITEM_1] =                                      Location::Base(RC_MARKET_POTION_SHOP_ITEM_1,                                    RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_MARKET,           0x00,                               "Potion Shop Item 1",                          RHT_MARKET_POTION_SHOP_ITEM_1,                                   RG_BUY_GREEN_POTION,  SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_1), false, 30);
    locationTable[RC_MARKET_POTION_SHOP_ITEM_2] =                                      Location::Base(RC_MARKET_POTION_SHOP_ITEM_2,                                    RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_MARKET,           0x01,                               "Potion Shop Item 2",                          RHT_MARKET_POTION_SHOP_ITEM_2,                                   RG_BUY_BLUE_FIRE,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_2), false, 300);
    locationTable[RC_MARKET_POTION_SHOP_ITEM_3] =                                      Location::Base(RC_MARKET_POTION_SHOP_ITEM_3,                                    RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_MARKET,           0x02,                               "Potion Shop Item 3",                          RHT_MARKET_POTION_SHOP_ITEM_3,                                   RG_BUY_RED_POTION_30, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_3), false, 30);
    locationTable[RC_MARKET_POTION_SHOP_ITEM_4] =                                      Location::Base(RC_MARKET_POTION_SHOP_ITEM_4,                                    RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_MARKET,           0x03,                               "Potion Shop Item 4",                          RHT_MARKET_POTION_SHOP_ITEM_4,                                   RG_BUY_FAIRYS_SPIRIT, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_4), false, 50);
    locationTable[RC_MARKET_POTION_SHOP_ITEM_5] =                                      Location::Base(RC_MARKET_POTION_SHOP_ITEM_5,                                    RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_MARKET,           0x04,                               "Potion Shop Item 5",                          RHT_MARKET_POTION_SHOP_ITEM_5,                                   RG_BUY_DEKU_NUTS_5,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_5), false, 15);
    locationTable[RC_MARKET_POTION_SHOP_ITEM_6] =                                      Location::Base(RC_MARKET_POTION_SHOP_ITEM_6,                                    RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_MARKET,           0x05,                               "Potion Shop Item 6",                          RHT_MARKET_POTION_SHOP_ITEM_6,                                   RG_BUY_BOTTLE_BUG,    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_6), false, 50);
    locationTable[RC_MARKET_POTION_SHOP_ITEM_7] =                                      Location::Base(RC_MARKET_POTION_SHOP_ITEM_7,                                    RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_MARKET,           0x06,                               "Potion Shop Item 7",                          RHT_MARKET_POTION_SHOP_ITEM_7,                                   RG_BUY_POE,           SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_7), false, 30);
    locationTable[RC_MARKET_POTION_SHOP_ITEM_8] =                                      Location::Base(RC_MARKET_POTION_SHOP_ITEM_8,                                    RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_POTION_SHOP_MARKET,           0x07,                               "Potion Shop Item 8",                          RHT_MARKET_POTION_SHOP_ITEM_8,                                   RG_BUY_FISH,          SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_8), false, 200);
    locationTable[RC_MARKET_BAZAAR_ITEM_1] =                                           Location::Base(RC_MARKET_BAZAAR_ITEM_1,                                         RCQUEST_BOTH,    RCTYPE_SHOP,                        RCAREA_MARKET,                       ACTOR_EN_GIRLA,       SCENE_BAZAAR,                       0x00,                               "Bazaar Item 1",                               RHT_MARKET_BAZAAR_ITEM_1,                                        RG_BUY_HYLIAN_SHIELD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_1), false, 80);
    locationTable[RC_MARKET_BAZAAR_ITEM_2] =                                           Location::Base(RC_MARKET_BAZAAR_ITEM_2,                                         RCQUEST_BOTH,    RCTYPE_SHOP,                        RCAREA_MARKET,                       ACTOR_EN_GIRLA,       SCENE_BAZAAR,                       0x01,                               "Bazaar Item 2",                               RHT_MARKET_BAZAAR_ITEM_2,                                        RG_BUY_BOMBS_535,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_2), false, 35);
    locationTable[RC_MARKET_BAZAAR_ITEM_3] =                                           Location::Base(RC_MARKET_BAZAAR_ITEM_3,                                         RCQUEST_BOTH,    RCTYPE_SHOP,                        RCAREA_MARKET,                       ACTOR_EN_GIRLA,       SCENE_BAZAAR,                       0x02,                               "Bazaar Item 3",                               RHT_MARKET_BAZAAR_ITEM_3,                                        RG_BUY_DEKU_NUTS_5,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_3), false, 15);
    locationTable[RC_MARKET_BAZAAR_ITEM_4] =                                           Location::Base(RC_MARKET_BAZAAR_ITEM_4,                                         RCQUEST_BOTH,    RCTYPE_SHOP,                        RCAREA_MARKET,                       ACTOR_EN_GIRLA,       SCENE_BAZAAR,                       0x03,                               "Bazaar Item 4",                               RHT_MARKET_BAZAAR_ITEM_4,                                        RG_BUY_HEART,         SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_4), false, 10);
    locationTable[RC_MARKET_BAZAAR_ITEM_5] =                                           Location::Base(RC_MARKET_BAZAAR_ITEM_5,                                         RCQUEST_BOTH,    RCTYPE_SHOP,                        RCAREA_MARKET,                       ACTOR_EN_GIRLA,       SCENE_BAZAAR,                       0x04,                               "Bazaar Item 5",                               RHT_MARKET_BAZAAR_ITEM_5,                                        RG_BUY_ARROWS_10,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_5), false, 20);
    locationTable[RC_MARKET_BAZAAR_ITEM_6] =                                           Location::Base(RC_MARKET_BAZAAR_ITEM_6,                                         RCQUEST_BOTH,    RCTYPE_SHOP,                        RCAREA_MARKET,                       ACTOR_EN_GIRLA,       SCENE_BAZAAR,                       0x05,                               "Bazaar Item 6",                               RHT_MARKET_BAZAAR_ITEM_6,                                        RG_BUY_ARROWS_50,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_6), false, 90);
    locationTable[RC_MARKET_BAZAAR_ITEM_7] =                                           Location::Base(RC_MARKET_BAZAAR_ITEM_7,                                         RCQUEST_BOTH,    RCTYPE_SHOP,                        RCAREA_MARKET,                       ACTOR_EN_GIRLA,       SCENE_BAZAAR,                       0x06,                               "Bazaar Item 7",                               RHT_MARKET_BAZAAR_ITEM_7,                                        RG_BUY_DEKU_STICK_1,  SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_7), false, 10);
    locationTable[RC_MARKET_BAZAAR_ITEM_8] =                                           Location::Base(RC_MARKET_BAZAAR_ITEM_8,                                         RCQUEST_BOTH,    RCTYPE_SHOP,                        RCAREA_MARKET,                       ACTOR_EN_GIRLA,       SCENE_BAZAAR,                       0x07,                               "Bazaar Item 8",                               RHT_MARKET_BAZAAR_ITEM_8,                                        RG_BUY_ARROWS_30,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_8), false, 60);

    // Zora's Domain
    locationTable[RC_ZD_SHOP_ITEM_1] =                                                 Location::Base(RC_ZD_SHOP_ITEM_1,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_ZORA_SHOP,                    0x00,                               "Shop Item 1",                                 RHT_ZD_SHOP_ITEM_1,                                              RG_BUY_ZORA_TUNIC,    SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_1), false, 200);
    locationTable[RC_ZD_SHOP_ITEM_2] =                                                 Location::Base(RC_ZD_SHOP_ITEM_2,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_ZORA_SHOP,                    0x01,                               "Shop Item 2",                                 RHT_ZD_SHOP_ITEM_2,                                              RG_BUY_ARROWS_10,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_2), false, 20);
    locationTable[RC_ZD_SHOP_ITEM_3] =                                                 Location::Base(RC_ZD_SHOP_ITEM_3,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_ZORA_SHOP,                    0x02,                               "Shop Item 3",                                 RHT_ZD_SHOP_ITEM_3,                                              RG_BUY_HEART,         SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_3), false, 10);
    locationTable[RC_ZD_SHOP_ITEM_4] =                                                 Location::Base(RC_ZD_SHOP_ITEM_4,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_ZORA_SHOP,                    0x03,                               "Shop Item 4",                                 RHT_ZD_SHOP_ITEM_4,                                              RG_BUY_ARROWS_30,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_4), false, 60);
    locationTable[RC_ZD_SHOP_ITEM_5] =                                                 Location::Base(RC_ZD_SHOP_ITEM_5,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_ZORA_SHOP,                    0x04,                               "Shop Item 5",                                 RHT_ZD_SHOP_ITEM_5,                                              RG_BUY_DEKU_NUTS_5,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_5), false, 15);
    locationTable[RC_ZD_SHOP_ITEM_6] =                                                 Location::Base(RC_ZD_SHOP_ITEM_6,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_ZORA_SHOP,                    0x05,                               "Shop Item 6",                                 RHT_ZD_SHOP_ITEM_6,                                              RG_BUY_ARROWS_50,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_6), false, 90);
    locationTable[RC_ZD_SHOP_ITEM_7] =                                                 Location::Base(RC_ZD_SHOP_ITEM_7,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_ZORA_SHOP,                    0x06,                               "Shop Item 7",                                 RHT_ZD_SHOP_ITEM_7,                                              RG_BUY_FISH,          SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_7), false, 200);
    locationTable[RC_ZD_SHOP_ITEM_8] =                                                 Location::Base(RC_ZD_SHOP_ITEM_8,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_ZORA_SHOP,                    0x07,                               "Shop Item 8",                                 RHT_ZD_SHOP_ITEM_8,                                              RG_BUY_RED_POTION_50, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_8), false, 50);

    // Goron City
    locationTable[RC_GC_SHOP_ITEM_1] =                                                 Location::Base(RC_GC_SHOP_ITEM_1,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_GORON_SHOP,                   0x00,                               "Shop Item 1",                                 RHT_GC_SHOP_ITEM_1,                                              RG_BUY_BOMBS_525,     SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_1), false, 25);
    locationTable[RC_GC_SHOP_ITEM_2] =                                                 Location::Base(RC_GC_SHOP_ITEM_2,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_GORON_SHOP,                   0x01,                               "Shop Item 2",                                 RHT_GC_SHOP_ITEM_2,                                              RG_BUY_BOMBS_10,      SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_2), false, 50);
    locationTable[RC_GC_SHOP_ITEM_3] =                                                 Location::Base(RC_GC_SHOP_ITEM_3,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_GORON_SHOP,                   0x02,                               "Shop Item 3",                                 RHT_GC_SHOP_ITEM_3,                                              RG_BUY_BOMBS_20,      SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_3), false, 80);
    locationTable[RC_GC_SHOP_ITEM_4] =                                                 Location::Base(RC_GC_SHOP_ITEM_4,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_GORON_SHOP,                   0x03,                               "Shop Item 4",                                 RHT_GC_SHOP_ITEM_4,                                              RG_BUY_BOMBS_30,      SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_4), false, 120);
    locationTable[RC_GC_SHOP_ITEM_5] =                                                 Location::Base(RC_GC_SHOP_ITEM_5,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_GORON_SHOP,                   0x04,                               "Shop Item 5",                                 RHT_GC_SHOP_ITEM_5,                                              RG_BUY_GORON_TUNIC,   SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_5), false, 200);
    locationTable[RC_GC_SHOP_ITEM_6] =                                                 Location::Base(RC_GC_SHOP_ITEM_6,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_GORON_SHOP,                   0x05,                               "Shop Item 6",                                 RHT_GC_SHOP_ITEM_6,                                              RG_BUY_HEART,         SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_6), false, 10);
    locationTable[RC_GC_SHOP_ITEM_7] =                                                 Location::Base(RC_GC_SHOP_ITEM_7,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_GORON_SHOP,                   0x06,                               "Shop Item 7",                                 RHT_GC_SHOP_ITEM_7,                                              RG_BUY_RED_POTION_40, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_7), false, 40);
    locationTable[RC_GC_SHOP_ITEM_8] =                                                 Location::Base(RC_GC_SHOP_ITEM_8,                                               RCQUEST_BOTH,    RCTYPE_SHOP,                                                             ACTOR_EN_GIRLA,       SCENE_GORON_SHOP,                   0x07,                               "Shop Item 8",                                 RHT_GC_SHOP_ITEM_8,                                              RG_BUY_HEART,         SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_8), false, 10);

    // Gossip Stones
    locationTable[RC_DMC_GOSSIP_STONE] =                                          Location::HintStone(RC_DMC_GOSSIP_STONE,                                 RCQUEST_BOTH,                                                                      SCENE_DEATH_MOUNTAIN_CRATER,        14341,                              "Gossip Stone");
    locationTable[RC_DMT_GOSSIP_STONE] =                                          Location::HintStone(RC_DMT_GOSSIP_STONE,                                 RCQUEST_BOTH,                                                                      SCENE_DEATH_MOUNTAIN_TRAIL,         14340,                              "Gossip Stone");
    locationTable[RC_COLOSSUS_GOSSIP_STONE] =                                     Location::HintStone(RC_COLOSSUS_GOSSIP_STONE,                            RCQUEST_BOTH,                                                                      SCENE_DESERT_COLOSSUS,              14362,                              "Gossip Stone");
    locationTable[RC_DODONGOS_CAVERN_GOSSIP_STONE] =                              Location::HintStone(RC_DODONGOS_CAVERN_GOSSIP_STONE,                     RCQUEST_VANILLA,                                                                   SCENE_DODONGOS_CAVERN,              4372,                               "Gossip Stone");
    locationTable[RC_GV_GOSSIP_STONE] =                                           Location::HintStone(RC_GV_GOSSIP_STONE,                                  RCQUEST_BOTH,                                                                      SCENE_GERUDO_VALLEY,                14353,                              "Gossip Stone");
    locationTable[RC_GC_MAZE_GOSSIP_STONE] =                                      Location::HintStone(RC_GC_MAZE_GOSSIP_STONE,                             RCQUEST_BOTH,                                                                      SCENE_GORON_CITY,                   14357,                              "Maze Gossip Stone");
    locationTable[RC_GC_MEDIGORON_GOSSIP_STONE] =                                 Location::HintStone(RC_GC_MEDIGORON_GOSSIP_STONE,                        RCQUEST_BOTH,                                                                      SCENE_GORON_CITY,                   14873,                              "Medigoron Gossip Stone");
    locationTable[RC_GRAVEYARD_GOSSIP_STONE] =                                    Location::HintStone(RC_GRAVEYARD_GOSSIP_STONE,                           RCQUEST_BOTH,                                                                      SCENE_GRAVEYARD,                    14346,                              "Gossip Stone");
    locationTable[RC_HC_MALON_GOSSIP_STONE] =                                     Location::HintStone(RC_HC_MALON_GOSSIP_STONE,                            RCQUEST_BOTH,                                                                      SCENE_HYRULE_CASTLE,                14610,                              "Malon Gossip Stone");
    locationTable[RC_HC_ROCK_WALL_GOSSIP_STONE] =                                 Location::HintStone(RC_HC_ROCK_WALL_GOSSIP_STONE,                        RCQUEST_BOTH,                                                                      SCENE_HYRULE_CASTLE,                14347,                              "Rock Wall Gossip Stone");
    locationTable[RC_HC_STORMS_GROTTO_GOSSIP_STONE] =                             Location::HintStone(RC_HC_STORMS_GROTTO_GOSSIP_STONE,                    RCQUEST_BOTH,   RCAREA_HYRULE_CASTLE,         SCENE_GROTTOS,                      14355,                              "Storms Grotto Gossip Stone");
    locationTable[RC_KF_DEKU_TREE_LEFT_GOSSIP_STONE] =                            Location::HintStone(RC_KF_DEKU_TREE_LEFT_GOSSIP_STONE,                   RCQUEST_BOTH,                                                                      SCENE_KOKIRI_FOREST,                14623,                              "Deku Tree Left Gossip Stone");
    locationTable[RC_KF_DEKU_TREE_RIGHT_GOSSIP_STONE] =                           Location::HintStone(RC_KF_DEKU_TREE_RIGHT_GOSSIP_STONE,                  RCQUEST_BOTH,                                                                      SCENE_KOKIRI_FOREST,                14880,                              "Deku Tree Right Gossip Stone");
    locationTable[RC_KF_GOSSIP_STONE] =                                           Location::HintStone(RC_KF_GOSSIP_STONE,                                  RCQUEST_BOTH,                                                                      SCENE_KOKIRI_FOREST,                14366,                              "Gossip Stone");
    locationTable[RC_KF_STORMS_GROTTO_GOSSIP_STONE] =                             Location::HintStone(RC_KF_STORMS_GROTTO_GOSSIP_STONE,                    RCQUEST_BOTH,   RCAREA_KOKIRI_FOREST,         SCENE_GROTTOS,                      -22988,                             "Storms Gossip Stone");
    locationTable[RC_LH_LAB_GOSSIP_STONE] =                                       Location::HintStone(RC_LH_LAB_GOSSIP_STONE,                              RCQUEST_BOTH,                                                                      SCENE_LAKE_HYLIA,                   14339,                              "Lab Gossip Stone");
    locationTable[RC_LH_SOUTHEAST_GOSSIP_STONE] =                                 Location::HintStone(RC_LH_SOUTHEAST_GOSSIP_STONE,                        RCQUEST_BOTH,                                                                      SCENE_LAKE_HYLIA,                   14863,                              "Southeast Gossip Stone");
    locationTable[RC_LH_SOUTHWEST_GOSSIP_STONE] =                                 Location::HintStone(RC_LH_SOUTHWEST_GOSSIP_STONE,                        RCQUEST_BOTH,                                                                      SCENE_LAKE_HYLIA,                   14600,                              "Southwest Gossip Stone");
    locationTable[RC_LW_GOSSIP_STONE] =                                           Location::HintStone(RC_LW_GOSSIP_STONE,                                  RCQUEST_BOTH,                                                                      SCENE_LOST_WOODS,                   14365,                              "Gossip Stone");
    locationTable[RC_SFM_MAZE_LOWER_GOSSIP_STONE] =                               Location::HintStone(RC_SFM_MAZE_LOWER_GOSSIP_STONE,                      RCQUEST_BOTH,                                                                      SCENE_SACRED_FOREST_MEADOW,         14358,                              "Maze Lower Gossip Stone");
    locationTable[RC_SFM_MAZE_UPPER_GOSSIP_STONE] =                               Location::HintStone(RC_SFM_MAZE_UPPER_GOSSIP_STONE,                      RCQUEST_BOTH,                                                                      SCENE_SACRED_FOREST_MEADOW,         14615,                              "Maze Upper Gossip Stone");
    locationTable[RC_SFM_SARIA_GOSSIP_STONE] =                                    Location::HintStone(RC_SFM_SARIA_GOSSIP_STONE,                           RCQUEST_BOTH,                                                                      SCENE_SACRED_FOREST_MEADOW,         14876,                              "Saria Gossip Stone");
    locationTable[RC_TOT_LEFTMOST_GOSSIP_STONE] =                                 Location::HintStone(RC_TOT_LEFTMOST_GOSSIP_STONE,                        RCQUEST_BOTH,   RCAREA_MARKET,                SCENE_ID_MAX,                       0x00,                               "ToT Left Gossip Stone");
    locationTable[RC_TOT_RIGHTMOST_GOSSIP_STONE] =                                Location::HintStone(RC_TOT_RIGHTMOST_GOSSIP_STONE,                       RCQUEST_BOTH,   RCAREA_MARKET,                SCENE_ID_MAX,                       0x00,                               "ToT Right Gossip Stone");
    locationTable[RC_TOT_RIGHT_CENTER_GOSSIP_STONE] =                             Location::HintStone(RC_TOT_RIGHT_CENTER_GOSSIP_STONE,                    RCQUEST_BOTH,   RCAREA_MARKET,                SCENE_ID_MAX,                       0x00,                               "ToT Right Center Gossip Stone");
    locationTable[RC_TOT_LEFT_CENTER_GOSSIP_STONE] =                              Location::HintStone(RC_TOT_LEFT_CENTER_GOSSIP_STONE,                     RCQUEST_BOTH,   RCAREA_MARKET,                SCENE_ID_MAX,                       0x00,                               "ToT Left Center Gossip Stone");
    locationTable[RC_ZD_GOSSIP_STONE] =                                           Location::HintStone(RC_ZD_GOSSIP_STONE,                                  RCQUEST_BOTH,                                                                      SCENE_ZORAS_DOMAIN,                 14345,                              "Gossip Stone");
    locationTable[RC_ZF_FAIRY_GOSSIP_STONE] =                                     Location::HintStone(RC_ZF_FAIRY_GOSSIP_STONE,                            RCQUEST_BOTH,                                                                      SCENE_ZORAS_FOUNTAIN,               0x00,                               "Fairy Gossip Stone");
    locationTable[RC_ZF_JABU_GOSSIP_STONE] =                                      Location::HintStone(RC_ZF_JABU_GOSSIP_STONE,                             RCQUEST_BOTH,                                                                      SCENE_ZORAS_FOUNTAIN,               0x00,                               "Jabu Gossip Stone");
    locationTable[RC_ZR_NEAR_GROTTOS_GOSSIP_STONE] =                              Location::HintStone(RC_ZR_NEAR_GROTTOS_GOSSIP_STONE,                     RCQUEST_BOTH,                                                                      SCENE_ZORAS_RIVER,                  14605,                              "Near Grottos Gossip Stone");
    locationTable[RC_ZR_NEAR_DOMAIN_GOSSIP_STONE] =                               Location::HintStone(RC_ZR_NEAR_DOMAIN_GOSSIP_STONE,                      RCQUEST_BOTH,                                                                      SCENE_ZORAS_RIVER,                  14860,                              "Near Domain Gossip Stone");
    locationTable[RC_HF_COW_GROTTO_GOSSIP_STONE] =                                Location::HintStone(RC_HF_COW_GROTTO_GOSSIP_STONE,                       RCQUEST_BOTH,   RCAREA_HYRULE_FIELD,          SCENE_GROTTOS,                      14363,                              "Cow Grotto Gossip Stone");
    locationTable[RC_HF_NEAR_MARKET_GROTTO_GOSSIP_STONE] =                        Location::HintStone(RC_HF_NEAR_MARKET_GROTTO_GOSSIP_STONE,               RCQUEST_BOTH,   RCAREA_HYRULE_FIELD,          SCENE_GROTTOS,                      -22944,                             "Near Market Gossip Stone");
    locationTable[RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE] =                          Location::HintStone(RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE,                 RCQUEST_BOTH,   RCAREA_HYRULE_FIELD,          SCENE_GROTTOS,                      -22978,                             "Southeast Gossip Stone");
    locationTable[RC_HF_OPEN_GROTTO_GOSSIP_STONE] =                               Location::HintStone(RC_HF_OPEN_GROTTO_GOSSIP_STONE,                      RCQUEST_BOTH,   RCAREA_HYRULE_FIELD,          SCENE_GROTTOS,                      -22947,                             "Open Grotto Gossip Stone");
    locationTable[RC_KAK_OPEN_GROTTO_GOSSIP_STONE] =                              Location::HintStone(RC_KAK_OPEN_GROTTO_GOSSIP_STONE,                     RCQUEST_BOTH,   RCAREA_KAKARIKO_VILLAGE,      SCENE_GROTTOS,                      -22984,                             "Open Grotto Gossip Stone");
    locationTable[RC_ZR_OPEN_GROTTO_GOSSIP_STONE] =                               Location::HintStone(RC_ZR_OPEN_GROTTO_GOSSIP_STONE,                      RCQUEST_BOTH,   RCAREA_ZORAS_RIVER,           SCENE_GROTTOS,                      -22985,                             "Open Grotto Gossip Stone");
    locationTable[RC_LW_NEAR_SHORTCUTS_GROTTO_GOSSIP_STONE] =                     Location::HintStone(RC_LW_NEAR_SHORTCUTS_GROTTO_GOSSIP_STONE,            RCQUEST_BOTH,   RCAREA_LOST_WOODS,            SCENE_GROTTOS,                      -22964,                             "Near Shortcuts Gossip Stone");
    locationTable[RC_DMT_STORMS_GROTTO_GOSSIP_STONE] =                            Location::HintStone(RC_DMT_STORMS_GROTTO_GOSSIP_STONE,                   RCQUEST_BOTH,   RCAREA_DEATH_MOUNTAIN_TRAIL,  SCENE_GROTTOS,                      -23255,                             "Storms Grotto Gossip Stone");
    locationTable[RC_DMC_UPPER_GROTTO_GOSSIP_STONE] =                             Location::HintStone(RC_DMC_UPPER_GROTTO_GOSSIP_STONE,                    RCQUEST_BOTH,   RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_GROTTOS,                      -23802,                             "Upper Grotto Gossip Stone");

    // Other Hints
    locationTable[RC_GANONDORF_HINT]    =                                         Location::OtherHint(RC_GANONDORF_HINT,                                   RCQUEST_BOTH,                                                                             ACTOR_EN_GANON_MANT,  SCENE_GANON_BOSS,           "Ganondorf Hint");
    locationTable[RC_SHEIK_HINT_GC]     =                                         Location::OtherHint(RC_SHEIK_HINT_GC,                                    RCQUEST_VANILLA,                                                                          ACTOR_EN_XC,          SCENE_INSIDE_GANONS_CASTLE, "Sheik Hint");
    locationTable[RC_SHEIK_HINT_MQ_GC]  =                                         Location::OtherHint(RC_SHEIK_HINT_MQ_GC,                                 RCQUEST_MQ,                                                                               ACTOR_EN_XC,          SCENE_INSIDE_GANONS_CASTLE, "Sheik Hint");
    locationTable[RC_DAMPE_HINT]        =                                         Location::OtherHint(RC_DAMPE_HINT,                                       RCQUEST_BOTH,                                                                             ACTOR_ID_MAX,         SCENE_GRAVEKEEPERS_HUT,     "Diary Hint");
    locationTable[RC_GREG_HINT]         =                                         Location::OtherHint(RC_GREG_HINT,                                        RCQUEST_BOTH,   RCAREA_MARKET,                       ACTOR_EN_TAKARA_MAN,  SCENE_TREASURE_BOX_SHOP,    "Greg Hint");
    locationTable[RC_SARIA_SONG_HINT]   =                                         Location::OtherHint(RC_SARIA_SONG_HINT,                                  RCQUEST_BOTH,   RCAREA_KOKIRI_FOREST,                ACTOR_ID_MAX,         SCENE_ID_MAX,               "Sarias Song Hint", "Magic Hint Via Saria's Song");
    locationTable[RC_ALTAR_HINT_CHILD]  =                                         Location::OtherHint(RC_ALTAR_HINT_CHILD,                                 RCQUEST_BOTH,                                                                             ACTOR_ID_MAX,         SCENE_TEMPLE_OF_TIME,       "ToT Child Altar Hint");
    locationTable[RC_ALTAR_HINT_ADULT]  =                                         Location::OtherHint(RC_ALTAR_HINT_ADULT,                                 RCQUEST_BOTH,                                                                             ACTOR_ID_MAX,         SCENE_TEMPLE_OF_TIME,       "ToT Adult Altar Hint");
    locationTable[RC_FISHING_POLE_HINT] =                                         Location::OtherHint(RC_FISHING_POLE_HINT,                                RCQUEST_BOTH,                                                                             ACTOR_FISHING,        SCENE_FISHING_POND,         "Fishing Pole Hint");
    locationTable[RC_TOT_SHEIK_HINT] =                                            Location::OtherHint(RC_TOT_SHEIK_HINT,                                   RCQUEST_BOTH,                                                                             ACTOR_EN_XC,          SCENE_TEMPLE_OF_TIME,       "Ocarina of Time Hint");
    locationTable[RC_MASK_SHOP_HINT] =                                            Location::OtherHint(RC_MASK_SHOP_HINT,                                   RCQUEST_BOTH,                                                                             ACTOR_ID_MAX,         SCENE_HAPPY_MASK_SHOP,      "Mask Shop Hint");

    locationTable[RC_TRIFORCE_COMPLETED] =                                        Location::Base(RC_TRIFORCE_COMPLETED,                                    RCQUEST_BOTH,    RCTYPE_STANDARD,                    RCAREA_MARKET,                       ACTOR_ID_MAX,         SCENE_ID_MAX,                       0x00,                               "Completed Triforce", "Completed Triforce",    RHT_NONE,                                                        RG_NONE);
    // clang-format on

    // Init locationNameToEnum
    locationNameToEnum["Invalid Location"] = RC_UNKNOWN_CHECK;
    locationNameToEnum["Link's Pocket"] = RC_LINKS_POCKET;
}

void Rando::StaticData::InitHashMaps() {
    for (auto& location : locationTable) {
        locationNameToEnum[location.GetName()] = location.GetRandomizerCheck();
        CheckFromActorMultimap.emplace(
            std::make_tuple((int16_t)location.GetActorID(), (int16_t)location.GetScene(), location.GetActorParams()),
            location.GetRandomizerCheck());
    }
}

Location* Rando::StaticData::GetLocation(RandomizerCheck locKey) {
    return &(locationTable[locKey]);
}

std::array<Location, RC_MAX>& Rando::StaticData::GetLocationTable() {
    return locationTable;
}
