From e807c2df5ac252a81ca9a53fcbd51890237c047d Mon Sep 17 00:00:00 2001 From: MelonSpeedruns Date: Wed, 1 Jun 2022 14:03:13 -0400 Subject: [PATCH] more oot3d rando work --- soh/include/randomizer/item_location.hpp | 1 - soh/include/randomizer/spoiler_log.hpp | 97 +- soh/include/z64save.h | 4 +- soh/randomizerTypes.h | 1003 +++++++++++-- soh/soh/Enhancements/randomizer.cpp | 1748 +++++++++++----------- soh/soh/Enhancements/randomizer.h | 11 +- soh/soh/OTRGlobals.cpp | 2 +- soh/soh/OTRGlobals.h | 2 +- 8 files changed, 1889 insertions(+), 979 deletions(-) diff --git a/soh/include/randomizer/item_location.hpp b/soh/include/randomizer/item_location.hpp index 8248b4a06..699346e9e 100644 --- a/soh/include/randomizer/item_location.hpp +++ b/soh/include/randomizer/item_location.hpp @@ -9,7 +9,6 @@ #include #include "spoiler_log.hpp" #include "item_list.hpp" -#include "randomizerTypes.h" enum ItemOverride_Type { OVR_BASE_ITEM = 0, diff --git a/soh/include/randomizer/spoiler_log.hpp b/soh/include/randomizer/spoiler_log.hpp index a0cd8afc4..f355f94ba 100644 --- a/soh/include/randomizer/spoiler_log.hpp +++ b/soh/include/randomizer/spoiler_log.hpp @@ -3,10 +3,105 @@ #include #include #include -#include "randomizerTypes.h" using RandomizerHash = std::array; + +typedef enum { + SPOILER_CHK_NONE, + SPOILER_CHK_ALWAYS_COLLECTED, + SPOILER_CHK_CHEST, + SPOILER_CHK_COLLECTABLE, + SPOILER_CHK_GOLD_SKULLTULA, + SPOILER_CHK_ITEM_GET_INF, + SPOILER_CHK_EVENT_CHK_INF, + SPOILER_CHK_INF_TABLE, + SPOILER_CHK_COW, + SPOILER_CHK_MINIGAME, + SPOILER_CHK_SCRUB, + SPOILER_CHK_BIGGORON, + SPOILER_CHK_GERUDO_TOKEN, + SPOILER_CHK_POE_POINTS, + SPOILER_CHK_SHOP_ITEM, + SPOILER_CHK_MAGIC_BEANS, +} SpoilerCollectionCheckType; + +// Location groups for checks, used to group the checks by logical location +typedef enum { + GROUP_NO_GROUP, + GROUP_KOKIRI_FOREST, // 0x55, 0x28 + GROUP_LOST_WOODS, // 0x5B, 0x56 + GROUP_DUNGEON_DEKU_TREE, // 0x00, 0x11 + GROUP_DUNGEON_FOREST_TEMPLE, // 0x03 + GROUP_KAKARIKO, // 0x37, 0x42, 0x3F, 0x40, 0x41, 0x48, 0x52, 0x53 + GROUP_DUNGEON_BOTTOM_OF_THE_WELL, // 0x08 + GROUP_DUNGEON_SHADOW_TEMPLE, // 0x07 + GROUP_DEATH_MOUNTAIN, // 0x60, 0x61 + GROUP_GORON_CITY, // 0x62 + GROUP_DUNGEON_DODONGOS_CAVERN, // 0x01, 0x12 + GROUP_DUNGEON_FIRE_TEMPLE, // 0x04 + GROUP_ZORAS_RIVER, // 0x54 + GROUP_ZORAS_DOMAIN, // 0x58, 0x59 + GROUP_DUNGEON_JABUJABUS_BELLY, // 0x02, 0x13 + GROUP_DUNGEON_ICE_CAVERN, // 0x09 + GROUP_HYRULE_FIELD, // 0x51 + GROUP_LON_LON_RANCH, // 0x4C + GROUP_LAKE_HYLIA, // 0x57 + GROUP_DUNGEON_WATER_TEMPLE, // 0x05 + GROUP_GERUDO_VALLEY, // 0x5A, 0x5D, 0x0C, 0x5E, 0x5C + GROUP_GERUDO_TRAINING_GROUND, // 0x0B + GROUP_DUNGEON_SPIRIT_TEMPLE, // 0x06 + GROUP_HYRULE_CASTLE, // 0x10, 0x4B, 0x35, 0x42, 0x4D, 0x5F, 0x4A + GROUP_DUNGEON_GANONS_CASTLE, // 0x0A, 0x0D, 0x0E, 0x0F + SPOILER_COLLECTION_GROUP_COUNT, + // Grottos are all 0x3E +} SpoilerCollectionCheckGroup; + +typedef enum { + COLLECTTYPE_NORMAL, + COLLECTTYPE_REPEATABLE, + COLLECTTYPE_NEVER, +} SpoilerItemCollectType; + +typedef enum { + REVEALTYPE_NORMAL, + REVEALTYPE_SCENE, + REVEALTYPE_ALWAYS, +} SpoilerItemRevealType; + +#define SPOILER_SPHERES_MAX 50 +#define SPOILER_ITEMS_MAX 512 +#define SPOILER_STRING_DATA_SIZE 16384 + +typedef struct { + std::string LocationStr; + std::string ItemStr; + uint16_t LocationStrOffset; + uint16_t ItemStrOffset; + SpoilerCollectionCheckType CollectionCheckType; + uint8_t LocationScene; + uint8_t LocationFlag; + SpoilerCollectionCheckGroup Group; + SpoilerItemCollectType CollectType; + SpoilerItemRevealType RevealType; +} SpoilerItemLocation; + +typedef struct { + uint8_t ItemCount; + uint16_t ItemLocationsOffset; +} SpoilerSphere; + +typedef struct { + uint8_t SphereCount; + uint16_t ItemLocationsCount; + SpoilerSphere Spheres[SPOILER_SPHERES_MAX]; + SpoilerItemLocation ItemLocations[SPOILER_ITEMS_MAX]; + uint16_t SphereItemLocations[SPOILER_ITEMS_MAX]; + char StringData[SPOILER_STRING_DATA_SIZE]; + uint16_t GroupItemCounts[SPOILER_COLLECTION_GROUP_COUNT]; + uint16_t GroupOffsets[SPOILER_COLLECTION_GROUP_COUNT]; +} SpoilerData; + void GenerateHash(); const RandomizerHash& GetRandomizerHash(); diff --git a/soh/include/z64save.h b/soh/include/z64save.h index b4ace7f3b..f47e806f8 100644 --- a/soh/include/z64save.h +++ b/soh/include/z64save.h @@ -63,8 +63,8 @@ typedef struct { } FaroresWindData; // size = 0x28 typedef struct { - Key check; - Key get; + RandomizerCheck check; + RandomizerGet get; } ItemLocation; typedef struct { diff --git a/soh/randomizerTypes.h b/soh/randomizerTypes.h index d639e44ff..b71eb944d 100644 --- a/soh/randomizerTypes.h +++ b/soh/randomizerTypes.h @@ -4,101 +4,920 @@ typedef struct { char tex[512]; uint16_t width; uint16_t height; - uint8_t im_fmt; + uint8_t im_fmt; uint8_t im_siz; } Sprite; typedef enum { - SPOILER_CHK_NONE, - SPOILER_CHK_ALWAYS_COLLECTED, - SPOILER_CHK_CHEST, - SPOILER_CHK_COLLECTABLE, - SPOILER_CHK_GOLD_SKULLTULA, - SPOILER_CHK_ITEM_GET_INF, - SPOILER_CHK_EVENT_CHK_INF, - SPOILER_CHK_INF_TABLE, - SPOILER_CHK_COW, - SPOILER_CHK_MINIGAME, - SPOILER_CHK_SCRUB, - SPOILER_CHK_BIGGORON, - SPOILER_CHK_GERUDO_TOKEN, - SPOILER_CHK_POE_POINTS, - SPOILER_CHK_SHOP_ITEM, - SPOILER_CHK_MAGIC_BEANS, -} SpoilerCollectionCheckType; + RC_LINKS_POCKET, + RC_QUEEN_GOHMA, + RC_KING_DODONGO, + RC_BARINADE, + RC_PHANTOM_GANON, + RC_VOLVAGIA, + RC_MORPHA, + RC_BONGO_BONGO, + RC_TWINROVA, + RC_GANON, + RC_GIFT_FROM_SAGES, + RC_SONG_FROM_IMPA, + RC_SONG_FROM_MALON, + RC_SONG_FROM_SARIA, + RC_SONG_FROM_ROYAL_FAMILYS_TOMB, + RC_SONG_FROM_OCARINA_OF_TIME, + RC_SONG_FROM_WINDMILL, + RC_SHEIK_IN_FOREST, + RC_SHEIK_IN_CRATER, + RC_SHEIK_IN_ICE_CAVERN, + RC_SHEIK_AT_COLOSSUS, + RC_SHEIK_IN_KAKARIKO, + RC_SHEIK_AT_TEMPLE, + RC_KF_MIDOS_TOP_LEFT_CHEST, + RC_KF_MIDOS_TOP_RIGHT_CHEST, + RC_KF_MIDOS_BOTTOM_LEFT_CHEST, + RC_KF_MIDOS_BOTTOM_RIGHT_CHEST, + RC_KF_KOKIRI_SWORD_CHEST, + RC_KF_STORMS_GROTTO_CHEST, + RC_KF_LINKS_HOUSE_COW, + RC_KF_GS_KNOW_IT_ALL_HOUSE, + RC_KF_GS_BEAN_PATCH, + RC_KF_GS_HOUSE_OF_TWINS, + RC_KF_SHOP_ITEM_1, + RC_KF_SHOP_ITEM_2, + RC_KF_SHOP_ITEM_3, + RC_KF_SHOP_ITEM_4, + RC_KF_SHOP_ITEM_5, + RC_KF_SHOP_ITEM_6, + RC_KF_SHOP_ITEM_7, + RC_KF_SHOP_ITEM_8, + RC_LW_GIFT_FROM_SARIA, + RC_LW_OCARINA_MEMORY_GAME, + RC_LW_TARGET_IN_WOODS, + RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST, + RC_DEKU_THEATER_SKULL_MASK, + RC_DEKU_THEATER_MASK_OF_TRUTH, + RC_LW_SKULL_KID, + RC_LW_DEKU_SCRUB_NEAR_BRIDGE, + RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT, + RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT, + RC_LW_DEKU_SCRUB_GROTTO_FRONT, + RC_LW_DEKU_SCRUB_GROTTO_REAR, + RC_LW_GS_BEAN_PATCH_NEAR_BRIDGE, + RC_LW_GS_BEAN_PATCH_NEAR_THEATER, + RC_LW_GS_ABOVE_THEATER, + RC_SFM_WOLFOS_GROTTO_CHEST, + RC_SFM_DEKU_SCRUB_GROTTO_FRONT, + RC_SFM_DEKU_SCRUB_GROTTO_REAR, + RC_SFM_GS, + RC_HF_OCARINA_OF_TIME_ITEM, + RC_HF_NEAR_MARKET_GROTTO_CHEST, + RC_HF_TEKTITE_GROTTO_FREESTANDING_POH, + RC_HF_SOUTHEAST_GROTTO_CHEST, + RC_HF_OPEN_GROTTO_CHEST, + RC_HF_DEKU_SCRUB_GROTTO, + RC_HF_COW_GROTTO_COW, + RC_HF_GS_COW_GROTTO, + RC_HF_GS_NEAR_KAK_GROTTO, + RC_MARKET_SHOOTING_GALLERY_REWARD, + RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE, + RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE, + RC_MARKET_BOMBCHU_BOWLING_BOMBCHUS, + RC_MARKET_LOST_DOG, + RC_MARKET_TREASURE_CHEST_GAME_REWARD, + RC_MARKET_10_BIG_POES, + RC_MARKET_GS_GUARD_HOUSE, + RC_MARKET_BAZAAR_ITEM_1, + RC_MARKET_BAZAAR_ITEM_2, + RC_MARKET_BAZAAR_ITEM_3, + RC_MARKET_BAZAAR_ITEM_4, + RC_MARKET_BAZAAR_ITEM_5, + RC_MARKET_BAZAAR_ITEM_6, + RC_MARKET_BAZAAR_ITEM_7, + RC_MARKET_BAZAAR_ITEM_8, + RC_MARKET_POTION_SHOP_ITEM_1, + RC_MARKET_POTION_SHOP_ITEM_2, + RC_MARKET_POTION_SHOP_ITEM_3, + RC_MARKET_POTION_SHOP_ITEM_4, + RC_MARKET_POTION_SHOP_ITEM_5, + RC_MARKET_POTION_SHOP_ITEM_6, + RC_MARKET_POTION_SHOP_ITEM_7, + RC_MARKET_POTION_SHOP_ITEM_8, + RC_MARKET_BOMBCHU_SHOP_ITEM_1, + RC_MARKET_BOMBCHU_SHOP_ITEM_2, + RC_MARKET_BOMBCHU_SHOP_ITEM_3, + RC_MARKET_BOMBCHU_SHOP_ITEM_4, + RC_MARKET_BOMBCHU_SHOP_ITEM_5, + RC_MARKET_BOMBCHU_SHOP_ITEM_6, + RC_MARKET_BOMBCHU_SHOP_ITEM_7, + RC_MARKET_BOMBCHU_SHOP_ITEM_8, + RC_TOT_LIGHT_ARROWS_CUTSCENE, + RC_HC_MALON_EGG, + RC_HC_ZELDAS_LETTER, + RC_HC_GREAT_FAIRY_REWARD, + RC_HC_GS_TREE, + RC_HC_GS_STORMS_GROTTO, + RC_LLR_TALONS_CHICKENS, + RC_LLR_FREESTANDING_POH, + RC_LLR_DEKU_SCRUB_GROTTO_LEFT, + RC_LLR_DEKU_SCRUB_GROTTO_CENTER, + RC_LLR_DEKU_SCRUB_GROTTO_RIGHT, + RC_LLR_STABLES_LEFT_COW, + RC_LLR_STABLES_RIGHT_COW, + RC_LLR_TOWER_LEFT_COW, + RC_LLR_TOWER_RIGHT_COW, + RC_LLR_GS_HOUSE_WINDOW, + RC_LLR_GS_TREE, + RC_LLR_GS_RAIN_SHED, + RC_LLR_GS_BACK_WALL, + RC_KAK_ANJU_AS_CHILD, + RC_KAK_ANJU_AS_ADULT, + RC_KAK_IMPAS_HOUSE_FREESTANDING_POH, + RC_KAK_WINDMILL_FREESTANDING_POH, + RC_KAK_MAN_ON_ROOF, + RC_KAK_OPEN_GROTTO_CHEST, + RC_KAK_REDEAD_GROTTO_CHEST, + RC_KAK_SHOOTING_GALLERY_REWARD, + RC_KAK_10_GOLD_SKULLTULA_REWARD, + RC_KAK_20_GOLD_SKULLTULA_REWARD, + RC_KAK_30_GOLD_SKULLTULA_REWARD, + RC_KAK_40_GOLD_SKULLTULA_REWARD, + RC_KAK_50_GOLD_SKULLTULA_REWARD, + RC_KAK_IMPAS_HOUSE_COW, + RC_KAK_GS_TREE, + RC_KAK_GS_GUARDS_HOUSE, + RC_KAK_GS_WATCHTOWER, + RC_KAK_GS_SKULLTULA_HOUSE, + RC_KAK_GS_HOUSE_UNDER_CONSTRUCTION, + RC_KAK_GS_ABOVE_IMPAS_HOUSE, + RC_KAK_BAZAAR_ITEM_1, + RC_KAK_BAZAAR_ITEM_2, + RC_KAK_BAZAAR_ITEM_3, + RC_KAK_BAZAAR_ITEM_4, + RC_KAK_BAZAAR_ITEM_5, + RC_KAK_BAZAAR_ITEM_6, + RC_KAK_BAZAAR_ITEM_7, + RC_KAK_BAZAAR_ITEM_8, + RC_KAK_POTION_SHOP_ITEM_1, + RC_KAK_POTION_SHOP_ITEM_2, + RC_KAK_POTION_SHOP_ITEM_3, + RC_KAK_POTION_SHOP_ITEM_4, + RC_KAK_POTION_SHOP_ITEM_5, + RC_KAK_POTION_SHOP_ITEM_6, + RC_KAK_POTION_SHOP_ITEM_7, + RC_KAK_POTION_SHOP_ITEM_8, + RC_GRAVEYARD_SHIELD_GRAVE_CHEST, + RC_GRAVEYARD_HEART_PIECE_GRAVE_CHEST, + RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST, + RC_GRAVEYARD_FREESTANDING_POH, + RC_GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR, + RC_GRAVEYARD_HOOKSHOT_CHEST, + RC_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH, + RC_GRAVEYARD_GS_BEAN_PATCH, + RC_GRAVEYARD_GS_WALL, + RC_DMT_FREESTANDING_POH, + RC_DMT_CHEST, + RC_DMT_STORMS_GROTTO_CHEST, + RC_DMT_GREAT_FAIRY_REWARD, + RC_DMT_BIGGORON, + RC_DMT_COW_GROTTO_COW, + RC_DMT_GS_NEAR_KAK, + RC_DMT_GS_BEAN_PATCH, + RC_DMT_GS_ABOVE_DODONGOS_CAVERN, + RC_DMT_GS_FALLING_ROCKS_PATH, + RC_GC_DARUNIAS_JOY, + RC_GC_POT_FREESTANDING_POH, + RC_GC_ROLLING_GORON_AS_CHILD, + RC_GC_ROLLING_GORON_AS_ADULT, + RC_GC_MEDIGORON, + RC_GC_MAZE_LEFT_CHEST, + RC_GC_MAZE_RIGHT_CHEST, + RC_GC_MAZE_CENTER_CHEST, + RC_GC_DEKU_SCRUB_GROTTO_LEFT, + RC_GC_DEKU_SCRUB_GROTTO_CENTER, + RC_GC_DEKU_SCRUB_GROTTO_RIGHT, + RC_GC_GS_CENTER_PLATFORM, + RC_GC_GS_BOULDER_MAZE, + RC_GC_SHOP_ITEM_1, + RC_GC_SHOP_ITEM_2, + RC_GC_SHOP_ITEM_3, + RC_GC_SHOP_ITEM_4, + RC_GC_SHOP_ITEM_5, + RC_GC_SHOP_ITEM_6, + RC_GC_SHOP_ITEM_7, + RC_GC_SHOP_ITEM_8, + RC_DMC_VOLCANO_FREESTANDING_POH, + RC_DMC_WALL_FREESTANDING_POH, + RC_DMC_UPPER_GROTTO_CHEST, + RC_DMC_GREAT_FAIRY_REWARD, + RC_DMC_DEKU_SCRUB, + RC_DMC_DEKU_SCRUB_GROTTO_LEFT, + RC_DMC_DEKU_SCRUB_GROTTO_CENTER, + RC_DMC_DEKU_SCRUB_GROTTO_RIGHT, + RC_DMC_GS_CRATE, + RC_DMC_GS_BEAN_PATCH, + RC_ZR_MAGIC_BEAN_SALESMAN, + RC_ZR_OPEN_GROTTO_CHEST, + RC_ZR_FROGS_ZELDAS_LULLABY, + RC_ZR_FROGS_EPONAS_SONG, + RC_ZR_FROGS_SARIAS_SONG, + RC_ZR_FROGS_SUNS_SONG, + RC_ZR_FROGS_SONG_OF_TIME, + RC_ZR_FROGS_IN_THE_RAIN, + RC_ZR_FROGS_OCARINA_GAME, + RC_ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH, + RC_ZR_NEAR_DOMAIN_FREESTANDING_POH, + RC_ZR_DEKU_SCRUB_GROTTO_FRONT, + RC_ZR_DEKU_SCRUB_GROTTO_REAR, + RC_ZR_GS_TREE, + RC_ZR_GS_LADDER, + RC_ZR_GS_NEAR_RAISED_GROTTOS, + RC_ZR_GS_ABOVE_BRIDGE, + RC_ZD_DIVING_MINIGAME, + RC_ZD_CHEST, + RC_ZD_KING_ZORA_THAWED, + RC_ZD_GS_FROZEN_WATERFALL, + RC_ZD_SHOP_ITEM_1, + RC_ZD_SHOP_ITEM_2, + RC_ZD_SHOP_ITEM_3, + RC_ZD_SHOP_ITEM_4, + RC_ZD_SHOP_ITEM_5, + RC_ZD_SHOP_ITEM_6, + RC_ZD_SHOP_ITEM_7, + RC_ZD_SHOP_ITEM_8, + RC_ZF_GREAT_FAIRY_REWARD, + RC_ZF_ICEBERC_FREESTANDING_POH, + RC_ZF_BOTTOM_FREESTANDING_POH, + RC_ZF_GS_ABOVE_THE_LOG, + RC_ZF_GS_TREE, + RC_ZF_GS_HIDDEN_CAVE, + RC_LH_UNDERWATER_ITEM, + RC_LH_CHILD_FISHING, + RC_LH_ADULT_FISHING, + RC_LH_LAB_DIVE, + RC_LH_FREESTANDING_POH, + RC_LH_SUN, + RC_LH_DEKU_SCRUB_GROTTO_LEFT, + RC_LH_DEKU_SCRUB_GROTTO_CENTER, + RC_LH_DEKU_SCRUB_GROTTO_RIGHT, + RC_LH_GS_BEAN_PATCH, + RC_LH_GS_LAB_WALL, + RC_LH_GS_SMALL_ISLAND, + RC_LH_GS_LAB_CRATE, + RC_LH_GS_TREE, + RC_GV_CRATE_FREESTANDING_POH, + RC_GV_WATERFALL_FREESTANDING_POH, + RC_GV_CHEST, + RC_GV_DEKU_SCRUB_GROTTO_FRONT, + RC_GV_DEKU_SCRUB_GROTTO_REAR, + RC_GV_COW, + RC_GV_GS_SMALL_BRIDGE, + RC_GV_GS_BEAN_PATCH, + RC_GV_GS_BEHIND_TENT, + RC_GV_GS_PILLAR, + RC_GF_CHEST, + RC_GF_HBA_1000_POINTS, + RC_GF_HBA_1500_POINTS, + RC_GF_GS_TOP_FLOOR, + RC_GF_GS_ARCHERY_RANGE, + RC_HIDEOUT_JAIL_GUARD_1_TORCH, + RC_HIDEOUT_JAIL_GUARD_2_TORCHES, + RC_HIDEOUT_JAIL_GUARD_3_TORCHES, + RC_HIDEOUT_JAIL_GUARD_4_TORCHES, + RC_HIDEOUT_GERUDO_MEMBERSHIP_CARD, + RC_WASTELAND_BOMBCHU_SALESMAN, + RC_WASTELAND_CHEST, + RC_WASTELAND_GS, + RC_COLOSSUS_GREAT_FAIRY_REWARD, + RC_COLOSSUS_FREESTANDING_POH, + RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT, + RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR, + RC_COLOSSUS_GS_BEAN_PATCH, + RC_COLOSSUS_GS_TREE, + RC_COLOSSUS_GS_HILL, + RC_OGC_GREAT_FAIRY_REWARD, + RC_OGC_GS, + RC_DEKU_TREE_MAP_CHEST, + RC_DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST, + RC_DEKU_TREE_SLINGSHOT_CHEST, + RC_DEKU_TREE_COMPASS_CHEST, + RC_DEKU_TREE_COMPASS_ROOM_SIDE_CHEST, + RC_DEKU_TREE_BASEMENT_CHEST, + RC_DEKU_TREE_GS_COMPASS_ROOM, + RC_DEKU_TREE_GS_BASEMENT_VINES, + RC_DEKU_TREE_GS_BASEMENT_GATE, + RC_DEKU_TREE_GS_BASEMENT_BACK_ROOM, + RC_DEKU_TREE_MQ_MAP_CHEST, + RC_DEKU_TREE_MQ_SLINGSHOT_CHEST, + RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_BACK_CHEST, + RC_DEKU_TREE_MQ_COMPASS_CHEST, + RC_DEKU_TREE_MQ_BASEMENT_CHEST, + RC_DEKU_TREE_MQ_BEFORE_SPINNING_LOG_CHEST, + RC_DEKU_TREE_MQ_AFTER_SPINNING_LOG_CHEST, + RC_DEKU_TREE_MQ_DEKU_SCRUB, + RC_DEKU_TREE_MQ_GS_LOBBY, + RC_DEKU_TREE_MQ_GS_COMPASS_ROOM, + RC_DEKU_TREE_MQ_GS_BASEMENT_GRAVES_ROOM, + RC_DEKU_TREE_MQ_GS_BASEMENT_BACK_ROOM, + RC_DEKU_TREE_QUEEN_GOHMA_HEART, + RC_DODONGOS_CAVERN_MAP_CHEST, + RC_DODONGOS_CAVERN_COMPASS_CHEST, + RC_DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST, + RC_DODONGOS_CAVERN_BOMB_BAG_CHEST, + RC_DODONGOS_CAVERN_END_OF_BRIDGE_CHEST, + RC_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS, + RC_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY, + RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT, + RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT, + RC_DODONGOS_CAVERN_GS_SIDE_ROOM_NEAR_LOWER_LIZALFOS, + RC_DODONGOS_CAVERN_GS_SCARECROW, + RC_DODONGOS_CAVERN_GS_ALCOVE_ABOVE_STAIRS, + RC_DODONGOS_CAVERN_GS_VINES_ABOVE_STAIRS, + RC_DODONGOS_CAVERN_GS_BACK_ROOM, + RC_DODONGOS_CAVERN_MQ_MAP_CHEST, + RC_DODONGOS_CAVERN_MQ_BOMB_BAG_CHEST, + RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_ROOM_CHEST, + RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CHEST, + RC_DODONGOS_CAVERN_MQ_COMPASS_CHEST, + RC_DODONGOS_CAVERN_MQ_UNDER_GRAVE_CHEST, + RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT, + RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR, + RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS, + RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE, + RC_DODONGOS_CAVERN_MQ_GS_SCRUB_ROOM, + RC_DODONGOS_CAVERN_MQ_GS_LARVAE_ROOM, + RC_DODONGOS_CAVERN_MQ_GS_LIZALFOS_ROOM, + RC_DODONGOS_CAVERN_MQ_GS_SONG_OF_TIME_BLOCK_ROOM, + RC_DODONGOS_CAVERN_MQ_GS_BACK_AREA, + RC_DODONGOS_CAVERN_BOSS_ROOM_CHEST, + RC_DODONGOS_CAVERN_KING_DODONGO_HEART, + RC_JABU_JABUS_BELLY_BOOMERANG_CHEST, + RC_JABU_JABUS_BELLY_MAP_CHEST, + RC_JABU_JABUS_BELLY_COMPASS_CHEST, + RC_JABU_JABUS_BELLY_DEKU_SCRUB, + RC_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM, + RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_LOWER, + RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_UPPER, + RC_JABU_JABUS_BELLY_GS_NEAR_BOSS, + RC_JABU_JABUS_BELLY_MQ_MAP_CHEST, + RC_JABU_JABUS_BELLY_MQ_FIRST_ROOM_SIDE_CHEST, + RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_LOWER_CHEST, + RC_JABU_JABUS_BELLY_MQ_COMPASS_CHEST, + RC_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_SWITCHES_CHEST, + RC_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_VINES_CHEST, + RC_JABU_JABUS_BELLY_MQ_BOOMERANG_ROOM_SMALL_CHEST, + RC_JABU_JABUS_BELLY_MQ_BOOMERANG_CHEST, + RC_JABU_JABUS_BELLY_MQ_FALLING_LIKE_LIKE_ROOM_CHEST, + RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_UPPER_CHEST, + RC_JABU_JABUS_BELLY_MQ_NEAR_BOSS_CHEST, + RC_JABU_JABUS_BELLY_MQ_COW, + RC_JABU_JABUS_BELLY_MQ_GS_BOOMERANG_CHEST_ROOM, + RC_JABU_JABUS_BELLY_MQ_GS_TAILPASARAN_ROOM, + RC_JABU_JABUS_BELLY_MQ_GS_INVISIBLE_ENEMIES_ROOM, + RC_JABU_JABUS_BELLY_MQ_GS_NEAR_BOSS, + RC_JABU_JABUS_BELLY_BARINADE_HEART, + RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST, + RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST, + RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST, + RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST, + RC_BOTTOM_OF_THE_WELL_FREESTANDING_KEY, + RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST, + RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST, + RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST, + RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST, + RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST, + RC_BOTTOM_OF_THE_WELL_MAP_CHEST, + RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST, + RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST, + RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST, + RC_BOTTOM_OF_THE_WELL_GS_WEST_INNER_ROOM, + RC_BOTTOM_OF_THE_WELL_GS_EAST_INNER_ROOM, + RC_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE, + RC_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST, + RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY, + RC_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST, + RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY, + RC_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST, + RC_BOTTOM_OF_THE_WELL_MQ_GS_COFFIN_ROOM, + RC_BOTTOM_OF_THE_WELL_MQ_GS_WEST_INNER_ROOM, + RC_BOTTOM_OF_THE_WELL_MQ_GS_BASEMENT, + RC_FOREST_TEMPLE_FIRST_ROOM_CHEST, + RC_FOREST_TEMPLE_FIRST_STALFOS_CHEST, + RC_FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST, + RC_FOREST_TEMPLE_MAP_CHEST, + RC_FOREST_TEMPLE_WELL_CHEST, + RC_FOREST_TEMPLE_EYE_SWITCH_CHEST, + RC_FOREST_TEMPLE_BOSS_KEY_CHEST, + RC_FOREST_TEMPLE_FLOORMASTER_CHEST, + RC_FOREST_TEMPLE_RED_POE_CHEST, + RC_FOREST_TEMPLE_BOW_CHEST, + RC_FOREST_TEMPLE_BLUE_POE_CHEST, + RC_FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST, + RC_FOREST_TEMPLE_BASEMENT_CHEST, + RC_FOREST_TEMPLE_GS_FIRST_ROOM, + RC_FOREST_TEMPLE_GS_LOBBY, + RC_FOREST_TEMPLE_GS_RAISED_ISLAND_COURTYARD, + RC_FOREST_TEMPLE_GS_LEVEL_ISLAND_COURTYARD, + RC_FOREST_TEMPLE_GS_BASEMENT, + RC_FOREST_TEMPLE_MQ_FIRST_ROOM_CHEST, + RC_FOREST_TEMPLE_MQ_WOLFOS_CHEST, + RC_FOREST_TEMPLE_MQ_WELL_CHEST, + RC_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_LOWER_CHEST, + RC_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_UPPER_CHEST, + RC_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST, + RC_FOREST_TEMPLE_MQ_REDEAD_CHEST, + RC_FOREST_TEMPLE_MQ_MAP_CHEST, + RC_FOREST_TEMPLE_MQ_BOW_CHEST, + RC_FOREST_TEMPLE_MQ_COMPASS_CHEST, + RC_FOREST_TEMPLE_MQ_FALLING_CEILING_ROOM_CHEST, + RC_FOREST_TEMPLE_MQ_BASEMENT_CHEST, + RC_FOREST_TEMPLE_MQ_GS_FIRST_HALLWAY, + RC_FOREST_TEMPLE_MQ_GS_RAISED_ISLAND_COURTYARD, + RC_FOREST_TEMPLE_MQ_GS_LEVEL_ISLAND_COURTYARD, + RC_FOREST_TEMPLE_MQ_GS_WELL, + RC_FOREST_TEMPLE_MQ_GS_BLOCK_PUSH_ROOM, + RC_FOREST_TEMPLE_PHANTOM_GANON_HEART, + RC_FIRE_TEMPLE_NEAR_BOSS_CHEST, + RC_FIRE_TEMPLE_FLARE_DANCER_CHEST, + RC_FIRE_TEMPLE_BOSS_KEY_CHEST, + RC_FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST, + RC_FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST, + RC_FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST, + RC_FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST, + RC_FIRE_TEMPLE_MAP_CHEST, + RC_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST, + RC_FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST, + RC_FIRE_TEMPLE_SCARECROW_CHEST, + RC_FIRE_TEMPLE_COMPASS_CHEST, + RC_FIRE_TEMPLE_MEGATON_HAMMER_CHEST, + RC_FIRE_TEMPLE_HIGHEST_GORON_CHEST, + RC_FIRE_TEMPLE_GS_BOSS_KEY_LOOP, + RC_FIRE_TEMPLE_GS_SONG_OF_TIME_ROOM, + RC_FIRE_TEMPLE_GS_BOULDER_MAZE, + RC_FIRE_TEMPLE_GS_SCARECROW_CLIMB, + RC_FIRE_TEMPLE_GS_SCARECROW_TOP, + RC_FIRE_TEMPLE_MQ_MAP_ROOM_SIDE_CHEST, + RC_FIRE_TEMPLE_MQ_MEGATON_HAMMER_CHEST, + RC_FIRE_TEMPLE_MQ_MAP_CHEST, + RC_FIRE_TEMPLE_MQ_NEAR_BOSS_CHEST, + RC_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST, + RC_FIRE_TEMPLE_MQ_BOSS_KEY_CHEST, + RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_SIDE_ROOM_CHEST, + RC_FIRE_TEMPLE_MQ_COMPASS_CHEST, + RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_CHEST, + RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_LOWER_CHEST, + RC_FIRE_TEMPLE_MQ_FREESTANDING_KEY, + RC_FIRE_TEMPLE_MQ_CHEST_ON_FIRE, + RC_FIRE_TEMPLE_MQ_GS_BIG_LAVA_ROOM_OPEN_DOOR, + RC_FIRE_TEMPLE_MQ_GS_SKULL_ON_FIRE, + RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_CENTER, + RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_SIDE_ROOM, + RC_FIRE_TEMPLE_MQ_GS_ABOVE_FIRE_WALL_MAZE, + RC_FIRE_TEMPLE_VOLVAGIA_HEART, + RC_WATER_TEMPLE_COMPASS_CHEST, + RC_WATER_TEMPLE_MAP_CHEST, + RC_WATER_TEMPLE_CRACKED_WALL_CHEST, + RC_WATER_TEMPLE_TORCHES_CHEST, + RC_WATER_TEMPLE_BOSS_KEY_CHEST, + RC_WATER_TEMPLE_CENTRAL_PILLAR_CHEST, + RC_WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST, + RC_WATER_TEMPLE_LONGSHOT_CHEST, + RC_WATER_TEMPLE_RIVER_CHEST, + RC_WATER_TEMPLE_DRAGON_CHEST, + RC_WATER_TEMPLE_GS_BEHIND_GATE, + RC_WATER_TEMPLE_GS_NEAR_BOSS_KEY_CHEST, + RC_WATER_TEMPLE_GS_CENTRAL_PILLAR, + RC_WATER_TEMPLE_GS_FALLING_PLATFORM_ROOM, + RC_WATER_TEMPLE_GS_RIVER, + RC_WATER_TEMPLE_MQ_LONGSHOT_CHEST, + RC_WATER_TEMPLE_MQ_MAP_CHEST, + RC_WATER_TEMPLE_MQ_COMPASS_CHEST, + RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_CHEST, + RC_WATER_TEMPLE_MQ_BOSS_KEY_CHEST, + RC_WATER_TEMPLE_MQ_FREESTANDING_KEY, + RC_WATER_TEMPLE_MQ_GS_LIZALFOS_HALLWAY, + RC_WATER_TEMPLE_MQ_GS_BEFORE_UPPER_WATER_SWITCH, + RC_WATER_TEMPLE_MQ_GS_RIVER, + RC_WATER_TEMPLE_MQ_GS_FREESTANDING_KEY_AREA, + RC_WATER_TEMPLE_MQ_GS_TRIPLE_WALL_TORCH, + RC_WATER_TEMPLE_MORPHA_HEART, + RC_SHADOW_TEMPLE_MAP_CHEST, + RC_SHADOW_TEMPLE_HOVER_BOOTS_CHEST, + RC_SHADOW_TEMPLE_COMPASS_CHEST, + RC_SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST, + RC_SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST, + RC_SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST, + RC_SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST, + RC_SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST, + RC_SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST, + RC_SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST, + RC_SHADOW_TEMPLE_FREESTANDING_KEY, + RC_SHADOW_TEMPLE_WIND_HINT_CHEST, + RC_SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST, + RC_SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST, + RC_SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST, + RC_SHADOW_TEMPLE_BOSS_KEY_CHEST, + RC_SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST, + RC_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM, + RC_SHADOW_TEMPLE_GS_FALLING_SPIKES_ROOM, + RC_SHADOW_TEMPLE_GS_SINGLE_GIANT_POT, + RC_SHADOW_TEMPLE_GS_NEAR_SHIP, + RC_SHADOW_TEMPLE_GS_TRIPLE_GIANT_POT, + RC_SHADOW_TEMPLE_MQ_EARLY_GIBDOS_CHEST, + RC_SHADOW_TEMPLE_MQ_MAP_CHEST, + RC_SHADOW_TEMPLE_MQ_NEAR_SHIP_INVISIBLE_CHEST, + RC_SHADOW_TEMPLE_MQ_COMPASS_CHEST, + RC_SHADOW_TEMPLE_MQ_HOVER_BOOTS_CHEST, + RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_INVISIBLE_CHEST, + RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_VISIBLE_CHEST, + RC_SHADOW_TEMPLE_MQ_BEAMOS_SILVER_RUPEES_CHEST, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_LOWER_CHEST, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_UPPER_CHEST, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_SWITCH_CHEST, + RC_SHADOW_TEMPLE_MQ_INVISIBLE_SPIKES_CHEST, + RC_SHADOW_TEMPLE_MQ_STALFOS_ROOM_CHEST, + RC_SHADOW_TEMPLE_MQ_WIND_HINT_CHEST, + RC_SHADOW_TEMPLE_MQ_AFTER_WIND_HIDDEN_CHEST, + RC_SHADOW_TEMPLE_MQ_AFTER_WIND_ENEMY_CHEST, + RC_SHADOW_TEMPLE_MQ_BOSS_KEY_CHEST, + RC_SHADOW_TEMPLE_MQ_SPIKE_WALLS_LEFT_CHEST, + RC_SHADOW_TEMPLE_MQ_FREESTANDING_KEY, + RC_SHADOW_TEMPLE_MQ_BOMB_FLOWER_CHEST, + RC_SHADOW_TEMPLE_MQ_GS_FALLING_SPIKES_ROOM, + RC_SHADOW_TEMPLE_MQ_GS_WIND_HINT_ROOM, + RC_SHADOW_TEMPLE_MQ_GS_AFTER_WIND, + RC_SHADOW_TEMPLE_MQ_GS_AFTER_SHIP, + RC_SHADOW_TEMPLE_MQ_GS_NEAR_BOSS, + RC_SHADOW_TEMPLE_BONGO_BONGO_HEART, + RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST, + RC_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST, + RC_SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST, + RC_SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST, + RC_SPIRIT_TEMPLE_MAP_CHEST, + RC_SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_LEFT_CHEST, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_RIGHT_CHEST, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_RIGHT_CHEST, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_LEFT_CHEST, + RC_SPIRIT_TEMPLE_MQ_MAP_CHEST, + RC_SPIRIT_TEMPLE_MQ_MAP_ROOM_ENEMY_CHEST, + RC_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_NORTH_CHEST, + RC_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_SOUTH_CHEST, + RC_SPIRIT_TEMPLE_MQ_COMPASS_CHEST, + RC_SPIRIT_TEMPLE_MQ_SILVER_BLOCK_HALLWAY_CHEST, + RC_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM_CHEST, + RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST, + RC_SPIRIT_TEMPLE_COMPASS_CHEST, + RC_SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST, + RC_SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST, + RC_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST, + RC_SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST, + RC_SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST, + RC_SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST, + RC_SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST, + RC_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST, + RC_SPIRIT_TEMPLE_MQ_CHILD_HAMMER_SWITCH_CHEST, + RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_LULLABY_CHEST, + RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_INVISIBLE_CHEST, + RC_SPIRIT_TEMPLE_MQ_LEEVER_ROOM_CHEST, + RC_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM_CHEST, + RC_SPIRIT_TEMPLE_MQ_BEAMOS_ROOM_CHEST, + RC_SPIRIT_TEMPLE_MQ_CHEST_SWITCH_CHEST, + RC_SPIRIT_TEMPLE_MQ_BOSS_KEY_CHEST, + RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST, + RC_SPIRIT_TEMPLE_BOSS_KEY_CHEST, + RC_SPIRIT_TEMPLE_TOPMOST_CHEST, + RC_SPIRIT_TEMPLE_MQ_MIRROR_PUZZLE_INVISIBLE_CHEST, + RC_SPIRIT_TEMPLE_GS_METAL_FENCE, + RC_SPIRIT_TEMPLE_GS_SUN_ON_FLOOR_ROOM, + RC_SPIRIT_TEMPLE_GS_HALL_AFTER_SUN_BLOCK_ROOM, + RC_SPIRIT_TEMPLE_GS_LOBBY, + RC_SPIRIT_TEMPLE_GS_BOULDER_ROOM, + RC_SPIRIT_TEMPLE_MQ_GS_SUN_BLOCK_ROOM, + RC_SPIRIT_TEMPLE_MQ_GS_LEEVER_ROOM, + RC_SPIRIT_TEMPLE_MQ_GS_SYMPHONY_ROOM, + RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_WEST, + RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_NORTH, + RC_SPIRIT_TEMPLE_TWINROVA_HEART, + RC_ICE_CAVERN_MAP_CHEST, + RC_ICE_CAVERN_COMPASS_CHEST, + RC_ICE_CAVERN_FREESTANDING_POH, + RC_ICE_CAVERN_IRON_BOOTS_CHEST, + RC_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM, + RC_ICE_CAVERN_GS_HEART_PIECE_ROOM, + RC_ICE_CAVERN_GS_PUSH_BLOCK_ROOM, + RC_ICE_CAVERN_MQ_MAP_CHEST, + RC_ICE_CAVERN_MQ_COMPASS_CHEST, + RC_ICE_CAVERN_MQ_FREESTANDING_POH, + RC_ICE_CAVERN_MQ_IRON_BOOTS_CHEST, + RC_ICE_CAVERN_MQ_GS_RED_ICE, + RC_ICE_CAVERN_MQ_GS_ICE_BLOCK, + RC_ICE_CAVERN_MQ_GS_SCARECROW, + RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST, + RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST, + RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST, + RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST, + RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST, + RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST, + RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST, + RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST, + RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST, + RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST, + RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST, + RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST, + RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY, + RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST, + RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST, + RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, + RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST, + RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST, + RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST, + RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST, + RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST, + RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST, + RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST, + RC_GANONS_CASTLE_FOREST_TRIAL_CHEST, + RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST, + RC_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST, + RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST, + RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST, + RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST, + RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST, + RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST, + RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST, + RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST, + RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST, + RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST, + RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST, + RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST, + RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST, + RC_GANONS_CASTLE_DEKU_SCRUB_LEFT, + RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT, + RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT, + RC_GANONS_CASTLE_DEKU_SCRUB_RIGHT, + RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FREESTANDING_KEY, + RC_GANONS_CASTLE_MQ_FOREST_TRIAL_EYE_SWITCH_CHEST, + RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FROZEN_EYE_SWITCH_CHEST, + RC_GANONS_CASTLE_MQ_WATER_TRIAL_CHEST, + RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST, + RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_EYE_SWITCH_CHEST, + RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_LULLABY_CHEST, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_FIRST_CHEST, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_INVISIBLE_CHEST, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_FRONT_LEFT_CHEST, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_LEFT_CHEST, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_RIGHT_CHEST, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_GOLDEN_GAUNTLETS_CHEST, + RC_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT, + RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT, + RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER, + RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT, + RC_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT, + RC_GANONS_TOWER_BOSS_KEY_CHEST, + RC_PIERRE, + RC_DELIVER_RUTOS_LETTER, + RC_MASTER_SWORD_PEDESTAL, + RC_UNKNOWN_CHECK +} RandomizerCheck; -// Location groups for checks, used to group the checks by logical location +// based on https://github.com/TestRunnerSRL/OoT-Randomizer/blob/e337d7f603b91a6bacb618fb32cc7fd70ed9ffca/ItemList.py typedef enum { - GROUP_NO_GROUP, - GROUP_KOKIRI_FOREST, // 0x55, 0x28 - GROUP_LOST_WOODS, // 0x5B, 0x56 - GROUP_DUNGEON_DEKU_TREE, // 0x00, 0x11 - GROUP_DUNGEON_FOREST_TEMPLE, // 0x03 - GROUP_KAKARIKO, // 0x37, 0x42, 0x3F, 0x40, 0x41, 0x48, 0x52, 0x53 - GROUP_DUNGEON_BOTTOM_OF_THE_WELL, // 0x08 - GROUP_DUNGEON_SHADOW_TEMPLE, // 0x07 - GROUP_DEATH_MOUNTAIN, // 0x60, 0x61 - GROUP_GORON_CITY, // 0x62 - GROUP_DUNGEON_DODONGOS_CAVERN, // 0x01, 0x12 - GROUP_DUNGEON_FIRE_TEMPLE, // 0x04 - GROUP_ZORAS_RIVER, // 0x54 - GROUP_ZORAS_DOMAIN, // 0x58, 0x59 - GROUP_DUNGEON_JABUJABUS_BELLY, // 0x02, 0x13 - GROUP_DUNGEON_ICE_CAVERN, // 0x09 - GROUP_HYRULE_FIELD, // 0x51 - GROUP_LON_LON_RANCH, // 0x4C - GROUP_LAKE_HYLIA, // 0x57 - GROUP_DUNGEON_WATER_TEMPLE, // 0x05 - GROUP_GERUDO_VALLEY, // 0x5A, 0x5D, 0x0C, 0x5E, 0x5C - GROUP_GERUDO_TRAINING_GROUND, // 0x0B - GROUP_DUNGEON_SPIRIT_TEMPLE, // 0x06 - GROUP_HYRULE_CASTLE, // 0x10, 0x4B, 0x35, 0x42, 0x4D, 0x5F, 0x4A - GROUP_DUNGEON_GANONS_CASTLE, // 0x0A, 0x0D, 0x0E, 0x0F - SPOILER_COLLECTION_GROUP_COUNT, - // Grottos are all 0x3E -} SpoilerCollectionCheckGroup; - -typedef enum { - COLLECTTYPE_NORMAL, - COLLECTTYPE_REPEATABLE, - COLLECTTYPE_NEVER, -} SpoilerItemCollectType; - -typedef enum { - REVEALTYPE_NORMAL, - REVEALTYPE_SCENE, - REVEALTYPE_ALWAYS, -} SpoilerItemRevealType; - -#define SPOILER_SPHERES_MAX 50 -#define SPOILER_ITEMS_MAX 512 -#define SPOILER_STRING_DATA_SIZE 16384 - -typedef struct { - std::string LocationStr; - std::string ItemStr; - uint16_t LocationStrOffset; - uint16_t ItemStrOffset; - SpoilerCollectionCheckType CollectionCheckType; - uint8_t LocationScene; - uint8_t LocationFlag; - SpoilerCollectionCheckGroup Group; - SpoilerItemCollectType CollectType; - SpoilerItemRevealType RevealType; -} SpoilerItemLocation; - -typedef struct { - uint8_t ItemCount; - uint16_t ItemLocationsOffset; -} SpoilerSphere; - -typedef struct { - uint8_t SphereCount; - uint16_t ItemLocationsCount; - SpoilerSphere Spheres[SPOILER_SPHERES_MAX]; - SpoilerItemLocation ItemLocations[SPOILER_ITEMS_MAX]; - uint16_t SphereItemLocations[SPOILER_ITEMS_MAX]; - char StringData[SPOILER_STRING_DATA_SIZE]; - uint16_t GroupItemCounts[SPOILER_COLLECTION_GROUP_COUNT]; - uint16_t GroupOffsets[SPOILER_COLLECTION_GROUP_COUNT]; -} SpoilerData; \ No newline at end of file + RG_UNKNOWN_GET = 0, + RG_BOMBS_5, + RG_DEKU_NUTS_5, + RG_BOMBCHUS_10, + RG_BOOMERANG, + RG_DEKU_STICK_1, + RG_LENS_OF_TRUTH, + RG_MEGATON_HAMMER, + RG_COJIRO, + RG_BOTTLE, + RG_BOTTLE_WITH_MILK, + RG_RUTOS_LETTER, + RG_DELIVER_LETTER, + RG_SELL_BIG_POE, + RG_MAGIC_BEAN, + RG_SKULL_MASK, + RG_SPOOKY_MASK, + RG_KEATON_MASK, + RG_BUNNY_HOOD, + RG_MASK_OF_TRUTH, + RG_POCKET_EGG, + RG_POCKET_CUCCO, + RG_ODD_MUSHROOM, + RG_ODD_POTION, + RG_POACHERS_SAW, + RG_BROKEN_SWORD, + RG_PRESCRIPTION, + RG_EYEBALL_FROG, + RG_EYEDROPS, + RG_CLAIM_CHECK, + RG_KOKIRI_SWORD, + RG_GIANTS_KNIFE, + RG_DEKU_SHIELD, + RG_HYLIAN_SHIELD, + RG_MIRROR_SHIELD, + RG_GORON_TUNIC, + RG_ZORA_TUNIC, + RG_IRON_BOOTS, + RG_HOVER_BOOTS, + RG_STONE_OF_AGONY, + RG_GERUDO_MEMBERSHIP_CARD, + RG_HEART_CONTAINER, + RG_PIECE_OF_HEART, + RG_BOSS_KEY, + RG_COMPASS, + RG_MAP, + RG_SMALL_KEY, + RG_WEIRD_EGG, + RG_RECOVERY_HEART, + RG_ARROWS_5, + RG_ARROWS_10, + RG_ARROWS_30, + RG_RUPEE_1, + RG_RUPEES_5, + RG_RUPEES_20, + RG_MILK, + RG_GORON_MASK, + RG_ZORA_MASK, + RG_GERUDO_MASK, + RG_RUPEES_50, + RG_RUPEES_200, + RG_BIGGORON_SWORD, + RG_FIRE_ARROWS, + RG_ICE_ARROWS, + RG_LIGHT_ARROWS, + RG_GOLD_SKULLTULA_TOKEN, + RG_DINS_FIRE, + RG_NAYRUS_LOVE, + RG_FARORES_WIND, + RG_DEKU_NUTS_10, + RG_BOMBS_10, + RG_BOMBS_20, + RG_DEKU_SEEDS_30, + RG_BOMBCHUS_5, + RG_BOMBCHUS_20, + RG_RUPEE_TREASURE_CHEST_GAME, + RG_PIECE_OF_HEART_TREASURE_CHEST_GAME, + RG_ICE_TRAP, + RG_PROGRESSIVE_HOOKSHOT, + RG_PROGRESSIVE_STRENGTH_UPGRADE, + RG_BOMB_BAG, + RG_BOW, + RG_SLINGSHOT, + RG_PROGRESSIVE_WALLET, + RG_PROGRESSIVE_SCALE, + RG_DEKU_NUT_CAPACITY, + RG_DEKU_STICK_CAPACITY, + RG_BOMBCHUS, + RG_MAGIC_METER, + RG_OCARINA, + RG_BOTTLE_WITH_RED_POTION, + RG_BOTTLE_WITH_GREEN_POTION, + RG_BOTTLE_WITH_BLUE_POTION, + RG_BOTTLE_WITH_FAIRY, + RG_BOTTLE_WITH_FISH, + RG_BOTTLE_WITH_BLUE_FIRE, + RG_BOTTLE_WITH_BUGS, + RG_BOTTLE_WITH_BIG_POE, + RG_BOTTLE_WITH_POE, + RG_BOSS_KEY_FOREST_TEMPLE, + RG_BOSS_KEY_FIRE_TEMPLE, + RG_BOSS_KEY_WATER_TEMPLE, + RG_BOSS_KEY_SPIRIT_TEMPLE, + RG_BOSS_KEY_SHADOW_TEMPLE, + RG_BOSS_KEY_GANONS_CASTLE, + RG_COMPASS_DEKU_TREE, + RG_COMPASS_DODONGOS_CAVERN, + RG_COMPASS_JABU_JABUS_BELLY, + RG_COMPASS_FOREST_TEMPLE, + RG_COMPASS_FIRE_TEMPLE, + RG_COMPASS_WATER_TEMPLE, + RG_COMPASS_SPIRIT_TEMPLE, + RG_COMPASS_SHADOW_TEMPLE, + RG_COMPASS_BOTTOM_OF_THE_WELL, + RG_COMPASS_ICE_CAVERN, + RG_MAP_DEKU_TREE, + RG_MAP_DODONGOS_CAVERN, + RG_MAP_JABU_JABUS_BELLY, + RG_MAP_FOREST_TEMPLE, + RG_MAP_FIRE_TEMPLE, + RG_MAP_WATER_TEMPLE, + RG_MAP_SPIRIT_TEMPLE, + RG_MAP_SHADOW_TEMPLE, + RG_MAP_BOTTOM_OF_THE_WELL, + RG_MAP_ICE_CAVERN, + RG_SMALL_KEY_FOREST_TEMPLE, + RG_SMALL_KEY_FIRE_TEMPLE, + RG_SMALL_KEY_WATER_TEMPLE, + RG_SMALL_KEY_SPIRIT_TEMPLE, + RG_SMALL_KEY_SHADOW_TEMPLE, + RG_SMALL_KEY_BOTTOM_OF_THE_WELL, + RG_SMALL_KEY_GERUDO_TRAINING_GROUND, + RG_SMALL_KEY_THIEVES_HIDEOUT, + RG_SMALL_KEY_GANONS_CASTLE, + RG_DOUBLE_DEFENSE, + RG_MAGIC_BEAN_PACK, + RG_TRIFORCE_PIECE, + RG_ZELDAS_LETTER, + RG_TIME_TRAVEL, + RG_SCARECROW_SONG, + RG_TRIFORCE, + RG_SMALL_KEY_RING_FOREST_TEMPLE, + RG_SMALL_KEY_RING_FIRE_TEMPLE, + RG_SMALL_KEY_RING_WATER_TEMPLE, + RG_SMALL_KEY_RING_SPIRIT_TEMPLE, + RG_SMALL_KEY_RING_SHADOW_TEMPLE, + RG_SMALL_KEY_RING_BOTTOM_OF_THE_WELL, + RG_SMALL_KEY_RING_GERUDO_TRAINING_GROUND, + RG_SMALL_KEY_RING_THIEVES_HIDEOUT, + RG_SMALL_KEY_RING_GANONS_CASTLE, + RG_WATER_TEMPLE_CLEAR, + RG_FOREST_TRIAL_CLEAR, + RG_FIRE_TRIAL_CLEAR, + RG_WATER_TRIAL_CLEAR, + RG_SHADOW_TRIAL_CLEAR, + RG_SPIRIT_TRIAL_CLEAR, + RG_LIGHT_TRIAL_CLEAR, + RG_DEKU_STICK_DROP, + RG_DEKU_NUT_DROP, + RG_BLUE_FIRE, + RG_FAIRY, + RG_FISH, + RG_BUGS, + RG_BIG_POE, + RG_BOMBCHU_DROP, + RG_ARROWS_CONSUMABLE_REFILL, + RG_BOMBS_CONSUMABLE_REFILL, + RG_DEKU_SEEDS_CONSUMABLE_REFILL, + RG_DEKU_STICKS_CONSUMABLE_REFILL, + RG_DEKU_NUTS_CONSUMABLE_REFILL, + RG_RUPEES_CONSUMABLE_REFILL, + RG_MINUET_OF_FOREST, + RG_BOLERO_OF_FIRE, + RG_SERENADE_OF_WATER, + RG_REQUIEM_OF_SPIRIT, + RG_NOCTURNE_OF_SHADOW, + RG_PRELUDE_OF_LIGHT, + RG_ZELDAS_LULLABY, + RG_EPONAS_SONG, + RG_SARIAS_SONG, + RG_SUNS_SONG, + RG_SONG_OF_TIME, + RG_SONG_OF_STORMS, + RG_BUY_DEKU_NUT_5, + RG_BUY_ARROWS_30, + RG_BUY_ARROWS_50, + RG_BUY_BOMBS_5_FOR_25_RUPEES, + RG_BUY_DEKU_NUT_10, + RG_BUY_DEKU_STICK_1, + RG_BUY_BOMBS_10, + RG_BUY_FISH, + RG_BUY_RED_POTION_FOR_30_RUPEES, + RG_BUY_GREEN_POTION, + RG_BUY_BLUE_POTION, + RG_BUY_HYLIAN_SHIELD, + RG_BUY_DEKU_SHIELD, + RG_BUY_GORON_TUNIC, + RG_BUY_ZORA_TUNIC, + RG_BUY_HEART, + RG_BUY_BOMBCHU_10, + RG_BUY_BOMBCHU_20, + RG_BUY_BOMBCHU_5, + RG_BUY_DEKU_SEEDS_30, + RG_SOLD_OUT, + RG_BUY_BLUE_FIRE, + RG_BUY_BOTTLE_BUG, + RG_BUY_POE, + RG_BUY_FAIRYS_SPIRIT, + RG_BUY_ARROWS_10, + RG_BUY_BOMBS_20, + RG_BUY_BOMBS_30, + RG_BUY_BOMBS_5_FOR_35_RUPEES, + RG_BUY_RED_POTION_FOR_40_RUPEES, + RG_BUY_RED_POTION_FOR_50_RUPEES, + RG_KOKIRI_EMERALD, + RG_GORON_RUBY, + RG_ZORA_SAPPHIRE, + RG_FOREST_MEDALLION, + RG_FIRE_MEDALLION, + RG_WATER_MEDALLION, + RG_SPIRIT_MEDALLION, + RG_SHADOW_MEDALLION, + RG_LIGHT_MEDALLION +} RandomizerGet; \ No newline at end of file diff --git a/soh/soh/Enhancements/randomizer.cpp b/soh/soh/Enhancements/randomizer.cpp index 3b730870a..b2e70f646 100644 --- a/soh/soh/Enhancements/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer.cpp @@ -9,7 +9,6 @@ #include #include #include -#include using json = nlohmann::json; @@ -87,274 +86,275 @@ Randomizer::~Randomizer() { this->itemLocations.clear(); } -std::unordered_map SpoilerfileCheckNameToEnum = { - {"Links Pocket", LINKS_POCKET}, - {"Queen Gohma", QUEEN_GOHMA}, - {"King Dodongo", KING_DODONGO}, - {"Barinade", BARINADE}, - {"Phantom Ganon", PHANTOM_GANON}, - {"Volvagia", VOLVAGIA}, - {"Morpha", MORPHA}, - {"Bongo Bongo", BONGO_BONGO}, - {"Twinrova", TWINROVA}, - {"Song from Impa", SONG_FROM_IMPA}, - {"Song from Malon", SONG_FROM_MALON}, - {"Song from Saria", SONG_FROM_SARIA}, - {"Song from Royal Familys Tomb", SONG_FROM_COMPOSERS_GRAVE}, - {"Song from Ocarina of Time", SONG_FROM_OCARINA_OF_TIME}, - {"Song from Windmill", SONG_FROM_WINDMILL}, - {"Sheik in Forest", SHEIK_IN_FOREST}, - {"Sheik in Crater", SHEIK_IN_CRATER}, - {"Sheik in Ice Cavern", SHEIK_IN_ICE_CAVERN}, - {"Sheik at Colossus", SHEIK_AT_COLOSSUS}, - {"Sheik in Kakariko", SHEIK_IN_KAKARIKO}, - {"Sheik at Temple", SHEIK_AT_TEMPLE}, - {"KF Midos Top Left Chest", KF_MIDOS_TOP_LEFT_CHEST}, - {"KF Midos Top Right Chest", KF_MIDOS_TOP_RIGHT_CHEST}, - {"KF Midos Bottom Left Chest", KF_MIDOS_BOTTOM_LEFT_CHEST}, - {"KF Midos Bottom Right Chest", KF_MIDOS_BOTTOM_RIGHT_CHEST}, - {"KF Kokiri Sword Chest", KF_KOKIRI_SWORD_CHEST}, - {"KF Storms Grotto Chest", KF_STORMS_GROTTO_CHEST}, - {"LW Ocarina Memory Game", LW_OCARINA_MEMORY_GAME}, - {"LW Target in Woods", LW_TARGET_IN_WOODS}, - {"LW Near Shortcuts Grotto Chest", LW_NEAR_SHORTCUTS_GROTTO_CHEST}, - {"Deku Theater Skull Mask", DEKU_THEATER_SKULL_MASK}, - {"Deku Theater Mask of Truth", DEKU_THEATER_MASK_OF_TRUTH}, - {"LW Skull Kid", LW_SKULL_KID}, - {"LW Deku Scrub Near Bridge", LW_DEKU_SCRUB_NEAR_BRIDGE}, - {"LW Deku Scrub Grotto Front", LW_DEKU_SCRUB_GROTTO_FRONT}, - {"SFM Wolfos Grotto Chest", SFM_WOLFOS_GROTTO_CHEST}, - {"HF Near Market Grotto Chest", HF_NEAR_MARKET_GROTTO_CHEST}, - {"HF Tektite Grotto Freestanding PoH", HF_TEKTITE_GROTTO_FREESTANDING_POH}, - {"HF Southeast Grotto Chest", HF_SOUTHEAST_GROTTO_CHEST}, - {"HF Open Grotto Chest", HF_OPEN_GROTTO_CHEST}, - {"HF Deku Scrub Grotto", HF_DEKU_SCRUB_GROTTO}, - {"Market Shooting Gallery Reward", MARKET_SHOOTING_GALLERY_REWARD}, - {"Market Bombchu Bowling First Prize", MARKET_BOMBCHU_BOWLING_FIRST_PRIZE}, - {"Market Bombchu Bowling Second Prize", MARKET_BOMBCHU_BOWLING_SECOND_PRIZE}, - {"Market Lost Dog", MARKET_LOST_DOG}, - {"Market Treasure Chest Game Reward", MARKET_TREASURE_CHEST_GAME_REWARD}, - {"Market 10 Big Poes", MARKET_10_BIG_POES}, - {"ToT Light Arrows Cutscene", TOT_LIGHT_ARROWS_CUTSCENE}, - {"HC Great Fairy Reward", HC_GREAT_FAIRY_REWARD}, - {"LLR Talons Chickens", LLR_TALONS_CHICKENS}, - {"LLR Freestanding PoH", LLR_FREESTANDING_POH}, - {"Kak Anju as Child", KAK_ANJU_AS_CHILD}, - {"Kak Anju as Adult", KAK_ANJU_AS_ADULT}, - {"Kak Impas House Freestanding PoH", KAK_IMPAS_HOUSE_FREESTANDING_POH}, - {"Kak Windmill Freestanding PoH", KAK_WINDMILL_FREESTANDING_POH}, - {"Kak Man on Roof", KAK_MAN_ON_ROOF}, - {"Kak Open Grotto Chest", KAK_OPEN_GROTTO_CHEST}, - {"Kak Redead Grotto Chest", KAK_REDEAD_GROTTO_CHEST}, - {"Kak Shooting Gallery Reward", KAK_SHOOTING_GALLERY_REWARD}, - {"Kak 10 Gold Skulltula Reward", KAK_10_GOLD_SKULLTULA_REWARD}, - {"Kak 20 Gold Skulltula Reward", KAK_20_GOLD_SKULLTULA_REWARD}, - {"Kak 30 Gold Skulltula Reward", KAK_30_GOLD_SKULLTULA_REWARD}, - {"Kak 40 Gold Skulltula Reward", KAK_40_GOLD_SKULLTULA_REWARD}, - {"Kak 50 Gold Skulltula Reward", KAK_50_GOLD_SKULLTULA_REWARD}, - {"Graveyard Shield Grave Chest", GRAVEYARD_SHIELD_GRAVE_CHEST}, - {"Graveyard Heart Piece Grave Chest", GRAVEYARD_HEART_PIECE_GRAVE_CHEST}, - { "Graveyard Royal Familys Tomb Chest", GRAVEYARD_COMPOSERS_GRAVE_CHEST }, - {"Graveyard Freestanding PoH", GRAVEYARD_FREESTANDING_POH}, - {"Graveyard Dampe Gravedigging Tour", GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR}, - {"Graveyard Hookshot Chest", GRAVEYARD_HOOKSHOT_CHEST}, - {"Graveyard Dampe Race Freestanding PoH", GRAVEYARD_DAMPE_RACE_FREESTANDING_POH}, - {"DMT Freestanding PoH", DMT_FREESTANDING_POH}, - {"DMT Chest", DMT_CHEST}, - {"DMT Storms Grotto Chest", DMT_STORMS_GROTTO_CHEST}, - {"DMT Great Fairy Reward", DMT_GREAT_FAIRY_REWARD}, - {"DMT Biggoron", DMT_TRADE_CLAIM_CHECK}, - {"GC Darunias Joy", GC_DARUNIAS_JOY}, - {"GC Pot Freestanding PoH", GC_POT_FREESTANDING_POH}, - {"GC Rolling Goron as Child", GC_ROLLING_GORON_AS_CHILD}, - {"GC Rolling Goron as Adult", GC_ROLLING_GORON_AS_ADULT}, - {"GC Maze Left Chest", GC_MAZE_LEFT_CHEST}, - {"GC Maze Right Chest", GC_MAZE_RIGHT_CHEST}, - {"GC Maze Center Chest", GC_MAZE_CENTER_CHEST}, - {"DMC Volcano Freestanding PoH", DMC_VOLCANO_FREESTANDING_POH}, - {"DMC Wall Freestanding PoH", DMC_WALL_FREESTANDING_POH}, - {"DMC Upper Grotto Chest", DMC_UPPER_GROTTO_CHEST}, - {"DMC Great Fairy Reward", DMC_GREAT_FAIRY_REWARD}, - {"ZR Open Grotto Chest", ZR_OPEN_GROTTO_CHEST}, - {"ZR Frogs in the Rain", ZR_FROGS_IN_THE_RAIN}, - {"ZR Frogs Ocarina Game", ZR_FROGS_OCARINA_GAME}, - {"ZR Near Open Grotto Freestanding PoH", ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH}, - {"ZR Near Domain Freestanding PoH", ZR_NEAR_DOMAIN_FREESTANDING_POH}, - {"ZD Diving Minigame", ZD_DIVING_MINIGAME}, - {"ZD Chest", ZD_CHEST}, - {"ZD King Zora Thawed", ZD_KING_ZORA_THAWED}, - {"ZF Great Fairy Reward", ZF_GREAT_FAIRY_REWARD}, - {"ZF Iceberg Freestanding PoH", ZF_ICEBERG_FREESTANDING_POH}, - {"ZF Bottom Freestanding PoH", ZF_BOTTOM_FREESTANDING_POH}, - {"LH Underwater Item", LH_UNDERWATER_ITEM}, - {"LH Child Fishing", LH_CHILD_FISHING}, - {"LH Adult Fishing", LH_ADULT_FISHING}, - {"LH Lab Dive", LH_LAB_DIVE}, - {"LH Freestanding PoH", LH_FREESTANDING_POH}, - {"LH Sun", LH_SUN}, - {"GV Crate Freestanding PoH", GV_CRATE_FREESTANDING_POH}, - {"GV Waterfall Freestanding PoH", GV_WATERFALL_FREESTANDING_POH}, - {"GV Chest", GV_CHEST}, - {"GF Chest", GF_CHEST}, - {"GF HBA 1000 Points", GF_HBA_1000_POINTS}, - {"GF HBA 1500 Points", GF_HBA_1500_POINTS}, - {"HC Zeldas Letter", HC_ZELDAS_LETTER}, - {"Wasteland Chest", WASTELAND_CHEST}, - {"Colossus Great Fairy Reward", COLOSSUS_GREAT_FAIRY_REWARD}, - {"Colossus Freestanding PoH", COLOSSUS_FREESTANDING_POH}, - {"OGC Great Fairy Reward", OGC_GREAT_FAIRY_REWARD}, - {"Deku Tree Map Chest", DEKU_TREE_MAP_CHEST}, - {"Deku Tree Slingshot Room Side Chest", DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST}, - {"Deku Tree Slingshot Chest", DEKU_TREE_SLINGSHOT_CHEST}, - {"Deku Tree Compass Chest", DEKU_TREE_COMPASS_CHEST}, - {"Deku Tree Compass Room Side Chest", DEKU_TREE_COMPASS_ROOM_SIDE_CHEST}, - {"Deku Tree Basement Chest", DEKU_TREE_BASEMENT_CHEST}, - {"Deku Tree Queen Gohma Heart", DEKU_TREE_QUEEN_GOHMA_HEART}, - {"Dodongos Cavern Map Chest", DODONGOS_CAVERN_MAP_CHEST}, - {"Dodongos Cavern Compass Chest", DODONGOS_CAVERN_COMPASS_CHEST}, - {"Dodongos Cavern Bomb Flower Platform Chest", DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST}, - {"Dodongos Cavern Bomb Bag Chest", DODONGOS_CAVERN_BOMB_BAG_CHEST}, - {"Dodongos Cavern End of Bridge Chest", DODONGOS_CAVERN_END_OF_BRIDGE_CHEST}, - {"Dodongos Cavern Boss Room Chest", DODONGOS_CAVERN_BOSS_ROOM_CHEST}, - {"Dodongos Cavern King Dodongo Heart", DODONGOS_CAVERN_KING_DODONGO_HEART}, - {"Jabu Jabus Belly Boomerang Chest", JABU_JABUS_BELLY_BOOMERANG_CHEST}, - {"Jabu Jabus Belly Map Chest", JABU_JABUS_BELLY_MAP_CHEST}, - {"Jabu Jabus Belly Compass Chest", JABU_JABUS_BELLY_COMPASS_CHEST}, - {"Jabu Jabus Belly Barinade Heart", JABU_JABUS_BELLY_BARINADE_HEART}, - {"Bottom of the Well Front Left Fake Wall Chest", BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST}, - {"Bottom of the Well Front Center Bombable Chest", BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST}, - {"Bottom of the Well Back Left Bombable Chest", BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST}, - {"Bottom of the Well Underwater Left Chest", BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST}, - {"Bottom of the Well Freestanding Key", BOTTOM_OF_THE_WELL_FREESTANDING_KEY}, - {"Bottom of the Well Compass Chest", BOTTOM_OF_THE_WELL_COMPASS_CHEST}, - {"Bottom of the Well Center Skulltula Chest", BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST}, - {"Bottom of the Well Right Bottom Fake Wall Chest", BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST}, - {"Bottom of the Well Fire Keese Chest", BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST}, - {"Bottom of the Well Like Like Chest", BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST}, - {"Bottom of the Well Map Chest", BOTTOM_OF_THE_WELL_MAP_CHEST}, - {"Bottom of the Well Underwater Front Chest", BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST}, - {"Bottom of the Well Invisible Chest", BOTTOM_OF_THE_WELL_INVISIBLE_CHEST}, - {"Bottom of the Well Lens of Truth Chest", BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST}, - {"Forest Temple First Room Chest", FOREST_TEMPLE_FIRST_ROOM_CHEST}, - {"Forest Temple First Stalfos Chest", FOREST_TEMPLE_FIRST_STALFOS_CHEST}, - {"Forest Temple Raised Island Courtyard Chest", FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST}, - {"Forest Temple Map Chest", FOREST_TEMPLE_MAP_CHEST}, - {"Forest Temple Well Chest", FOREST_TEMPLE_WELL_CHEST}, - {"Forest Temple Eye Switch Chest", FOREST_TEMPLE_EYE_SWITCH_CHEST}, - {"Forest Temple Boss Key Chest", FOREST_TEMPLE_BOSS_KEY_CHEST}, - {"Forest Temple Floormaster Chest", FOREST_TEMPLE_FLOORMASTER_CHEST}, - {"Forest Temple Red Poe Chest", FOREST_TEMPLE_RED_POE_CHEST}, - {"Forest Temple Bow Chest", FOREST_TEMPLE_BOW_CHEST}, - {"Forest Temple Blue Poe Chest", FOREST_TEMPLE_BLUE_POE_CHEST}, - {"Forest Temple Falling Ceiling Room Chest", FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST}, - {"Forest Temple Basement Chest", FOREST_TEMPLE_BASEMENT_CHEST}, - {"Forest Temple Phantom Ganon Heart", FOREST_TEMPLE_PHANTOM_GANON_HEART}, - {"Fire Temple Near Boss Chest", FIRE_TEMPLE_NEAR_BOSS_CHEST}, - {"Fire Temple Flare Dancer Chest", FIRE_TEMPLE_FLARE_DANCER_CHEST}, - {"Fire Temple Boss Key Chest", FIRE_TEMPLE_BOSS_KEY_CHEST}, - {"Fire Temple Big Lava Room Lower Open Door Chest", FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST}, - {"Fire Temple Big Lava Room Blocked Door Chest", FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST}, - {"Fire Temple Boulder Maze Lower Chest", FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST}, - {"Fire Temple Boulder Maze Side Room Chest", FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST}, - {"Fire Temple Map Chest", FIRE_TEMPLE_MAP_CHEST}, - {"Fire Temple Boulder Maze Shortcut Chest", FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST}, - {"Fire Temple Boulder Maze Upper Chest", FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST}, - {"Fire Temple Scarecrow Chest", FIRE_TEMPLE_SCARECROW_CHEST}, - {"Fire Temple Compass Chest", FIRE_TEMPLE_COMPASS_CHEST}, - {"Fire Temple Megaton Hammer Chest", FIRE_TEMPLE_MEGATON_HAMMER_CHEST}, - {"Fire Temple Highest Goron Chest", FIRE_TEMPLE_HIGHEST_GORON_CHEST}, - {"Fire Temple Volvagia Heart", FIRE_TEMPLE_VOLVAGIA_HEART}, - {"Water Temple Compass Chest", WATER_TEMPLE_COMPASS_CHEST}, - {"Water Temple Map Chest", WATER_TEMPLE_MAP_CHEST}, - {"Water Temple Cracked Wall Chest", WATER_TEMPLE_CRACKED_WALL_CHEST}, - {"Water Temple Torches Chest", WATER_TEMPLE_TORCHES_CHEST}, - {"Water Temple Boss Key Chest", WATER_TEMPLE_BOSS_KEY_CHEST}, - {"Water Temple Central Pillar Chest", WATER_TEMPLE_CENTRAL_PILLAR_CHEST}, - {"Water Temple Central Bow Target Chest", WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST}, - {"Water Temple Longshot Chest", WATER_TEMPLE_LONGSHOT_CHEST}, - {"Water Temple River Chest", WATER_TEMPLE_RIVER_CHEST}, - {"Water Temple Dragon Chest", WATER_TEMPLE_DRAGON_CHEST}, - {"Water Temple Morpha Heart", WATER_TEMPLE_MORPHA_HEART}, - {"Shadow Temple Map Chest", SHADOW_TEMPLE_MAP_CHEST}, - {"Shadow Temple Hover Boots Chest", SHADOW_TEMPLE_HOVER_BOOTS_CHEST}, - {"Shadow Temple Compass Chest", SHADOW_TEMPLE_COMPASS_CHEST}, - {"Shadow Temple Early Silver Rupee Chest", SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST}, - {"Shadow Temple Invisible Blades Visible Chest", SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST}, - {"Shadow Temple Invisible Blades Invisible Chest", SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST}, - {"Shadow Temple Falling Spikes Lower Chest", SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST}, - {"Shadow Temple Falling Spikes Upper Chest", SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST}, - {"Shadow Temple Falling Spikes Switch Chest", SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST}, - {"Shadow Temple Invisible Spikes Chest", SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST}, - {"Shadow Temple Freestanding Key", SHADOW_TEMPLE_FREESTANDING_KEY}, - {"Shadow Temple Wind Hint Chest", SHADOW_TEMPLE_WIND_HINT_CHEST}, - {"Shadow Temple After Wind Enemy Chest", SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST}, - {"Shadow Temple After Wind Hidden Chest", SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST}, - {"Shadow Temple Spike Walls Left Chest", SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST}, - {"Shadow Temple Boss Key Chest", SHADOW_TEMPLE_BOSS_KEY_CHEST}, - {"Shadow Temple Invisible Floormaster Chest", SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST}, - {"Shadow Temple Bongo Bongo Heart", SHADOW_TEMPLE_BONGO_BONGO_HEART}, - {"Spirit Temple Child Bridge Chest", SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST}, - {"Spirit Temple Child Early Torches Chest", SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST}, - {"Spirit Temple Child Climb North Chest", SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST}, - {"Spirit Temple Child Climb East Chest", SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST}, - {"Spirit Temple Map Chest", SPIRIT_TEMPLE_MAP_CHEST}, - {"Spirit Temple Sun Block Room Chest", SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST}, - {"Spirit Temple Silver Gauntlets Chest", SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST}, - {"Spirit Temple Compass Chest", SPIRIT_TEMPLE_COMPASS_CHEST}, - {"Spirit Temple Early Adult Right Chest", SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST}, - {"Spirit Temple First Mirror Left Chest", SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST}, - {"Spirit Temple First Mirror Right Chest", SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST}, - {"Spirit Temple Statue Room Northeast Chest", SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST}, - {"Spirit Temple Statue Room Hand Chest", SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST}, - {"Spirit Temple Near Four Armos Chest", SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST}, - {"Spirit Temple Hallway Right Invisible Chest", SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST}, - {"Spirit Temple Hallway Left Invisible Chest", SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST}, - {"Spirit Temple Mirror Shield Chest", SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST}, - {"Spirit Temple Boss Key Chest", SPIRIT_TEMPLE_BOSS_KEY_CHEST}, - {"Spirit Temple Topmost Chest", SPIRIT_TEMPLE_TOPMOST_CHEST}, - {"Spirit Temple Twinrova Heart", SPIRIT_TEMPLE_TWINROVA_HEART}, - {"Ice Cavern Map Chest", ICE_CAVERN_MAP_CHEST}, - {"Ice Cavern Compass Chest", ICE_CAVERN_COMPASS_CHEST}, - {"Ice Cavern Freestanding PoH", ICE_CAVERN_FREESTANDING_POH}, - {"Ice Cavern Iron Boots Chest", ICE_CAVERN_IRON_BOOTS_CHEST}, - {"Gerudo Training Ground Lobby Left Chest", GERUDO_TRAINING_GROUNDS_LOBBY_LEFT_CHEST}, - {"Gerudo Training Ground Lobby Right Chest", GERUDO_TRAINING_GROUNDS_LOBBY_RIGHT_CHEST}, - {"Gerudo Training Ground Stalfos Chest", GERUDO_TRAINING_GROUNDS_STALFOS_CHEST}, - {"Gerudo Training Ground Before Heavy Block Chest", GERUDO_TRAINING_GROUNDS_BEFORE_HEAVY_BLOCK_CHEST}, - {"Gerudo Training Ground Heavy Block First Chest", GERUDO_TRAINING_GROUNDS_HEAVY_BLOCK_FIRST_CHEST}, - {"Gerudo Training Ground Heavy Block Second Chest", GERUDO_TRAINING_GROUNDS_HEAVY_BLOCK_SECOND_CHEST}, - {"Gerudo Training Ground Heavy Block Third Chest", GERUDO_TRAINING_GROUNDS_HEAVY_BLOCK_THIRD_CHEST}, - {"Gerudo Training Ground Heavy Block Fourth Chest", GERUDO_TRAINING_GROUNDS_HEAVY_BLOCK_FOURTH_CHEST}, - {"Gerudo Training Ground Eye Statue Chest", GERUDO_TRAINING_GROUNDS_EYE_STATUE_CHEST}, - {"Gerudo Training Ground Near Scarecrow Chest", GERUDO_TRAINING_GROUNDS_NEAR_SCARECROW_CHEST}, - {"Gerudo Training Ground Hammer Room Clear Chest", GERUDO_TRAINING_GROUNDS_HAMMER_ROOM_CLEAR_CHEST}, - {"Gerudo Training Ground Hammer Room Switch Chest", GERUDO_TRAINING_GROUNDS_HAMMER_ROOM_SWITCH_CHEST}, - {"Gerudo Training Ground Freestanding Key", GERUDO_TRAINING_GROUNDS_FREESTANDING_KEY}, - {"Gerudo Training Ground Maze Right Central Chest", GERUDO_TRAINING_GROUNDS_MAZE_RIGHT_CENTRAL_CHEST}, - {"Gerudo Training Ground Maze Right Side Chest", GERUDO_TRAINING_GROUNDS_MAZE_RIGHT_SIDE_CHEST}, - {"Gerudo Training Ground Underwater Silver Rupee Chest", GERUDO_TRAINING_GROUNDS_UNDERWATER_SILVER_RUPEE_CHEST}, - {"Gerudo Training Ground Beamos Chest", GERUDO_TRAINING_GROUNDS_BEAMOS_CHEST}, - {"Gerudo Training Ground Hidden Ceiling Chest", GERUDO_TRAINING_GROUNDS_HIDDEN_CEILING_CHEST}, - {"Gerudo Training Ground Maze Path First Chest", GERUDO_TRAINING_GROUNDS_MAZE_PATH_FIRST_CHEST}, - {"Gerudo Training Ground Maze Path Second Chest", GERUDO_TRAINING_GROUNDS_MAZE_PATH_SECOND_CHEST}, - {"Gerudo Training Ground Maze Path Third Chest", GERUDO_TRAINING_GROUNDS_MAZE_PATH_THIRD_CHEST}, - {"Gerudo Training Ground Maze Path Final Chest", GERUDO_TRAINING_GROUNDS_MAZE_PATH_FINAL_CHEST}, - {"Ganons Castle Forest Trial Chest", GANONS_CASTLE_FOREST_TRIAL_CHEST}, - {"Ganons Castle Water Trial Left Chest", GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST}, - {"Ganons Castle Water Trial Right Chest", GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST}, - {"Ganons Castle Shadow Trial Front Chest", GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST}, - {"Ganons Castle Shadow Trial Golden Gauntlets Chest", GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST}, - {"Ganons Castle Light Trial First Left Chest", GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST}, - {"Ganons Castle Light Trial Second Left Chest", GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST}, - {"Ganons Castle Light Trial Third Left Chest", GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST}, - {"Ganons Castle Light Trial First Right Chest", GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST}, - {"Ganons Castle Light Trial Second Right Chest", GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST}, - {"Ganons Castle Light Trial Third Right Chest", GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST}, - {"Ganons Castle Light Trial Invisible Enemies Chest", GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST}, - {"Ganons Castle Light Trial Lullaby Chest", GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST}, - {"Ganons Castle Spirit Trial Crystal Switch Chest", GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST}, - {"Ganons Castle Spirit Trial Invisible Chest", GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST}, - {"Ganons Tower Boss Key Chest", GANONS_TOWER_BOSS_KEY_CHEST} +std::unordered_map SpoilerfileCheckNameToEnum = { + { "Links Pocket", RC_LINKS_POCKET }, + { "Queen Gohma", RC_QUEEN_GOHMA }, + { "King Dodongo", RC_KING_DODONGO }, + { "Barinade", RC_BARINADE }, + { "Phantom Ganon", RC_PHANTOM_GANON }, + { "Volvagia", RC_VOLVAGIA }, + { "Morpha", RC_MORPHA }, + { "Bongo Bongo", RC_BONGO_BONGO }, + { "Twinrova", RC_TWINROVA }, + { "Song from Impa", RC_SONG_FROM_IMPA }, + { "Song from Malon", RC_SONG_FROM_MALON }, + { "Song from Saria", RC_SONG_FROM_SARIA }, + { "Song from Royal Familys Tomb", RC_SONG_FROM_ROYAL_FAMILYS_TOMB }, + { "Song from Ocarina of Time", RC_SONG_FROM_OCARINA_OF_TIME }, + { "Song from Windmill", RC_SONG_FROM_WINDMILL }, + { "Sheik in Forest", RC_SHEIK_IN_FOREST }, + { "Sheik in Crater", RC_SHEIK_IN_CRATER }, + { "Sheik in Ice Cavern", RC_SHEIK_IN_ICE_CAVERN }, + { "Sheik at Colossus", RC_SHEIK_AT_COLOSSUS }, + { "Sheik in Kakariko", RC_SHEIK_IN_KAKARIKO }, + { "Sheik at Temple", RC_SHEIK_AT_TEMPLE }, + { "KF Midos Top Left Chest", RC_KF_MIDOS_TOP_LEFT_CHEST }, + { "KF Midos Top Right Chest", RC_KF_MIDOS_TOP_RIGHT_CHEST }, + { "KF Midos Bottom Left Chest", RC_KF_MIDOS_BOTTOM_LEFT_CHEST }, + { "KF Midos Bottom Right Chest", RC_KF_MIDOS_BOTTOM_RIGHT_CHEST }, + { "KF Kokiri Sword Chest", RC_KF_KOKIRI_SWORD_CHEST }, + { "KF Storms Grotto Chest", RC_KF_STORMS_GROTTO_CHEST }, + { "LW Ocarina Memory Game", RC_LW_OCARINA_MEMORY_GAME }, + { "LW Target in Woods", RC_LW_TARGET_IN_WOODS }, + { "LW Near Shortcuts Grotto Chest", RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST }, + { "Deku Theater Skull Mask", RC_DEKU_THEATER_SKULL_MASK }, + { "Deku Theater Mask of Truth", RC_DEKU_THEATER_MASK_OF_TRUTH }, + { "LW Skull Kid", RC_LW_SKULL_KID }, + { "LW Deku Scrub Near Bridge", RC_LW_DEKU_SCRUB_NEAR_BRIDGE }, + { "LW Deku Scrub Grotto Front", RC_LW_DEKU_SCRUB_GROTTO_FRONT }, + { "SFM Wolfos Grotto Chest", RC_SFM_WOLFOS_GROTTO_CHEST }, + { "HF Near Market Grotto Chest", RC_HF_NEAR_MARKET_GROTTO_CHEST }, + { "HF Tektite Grotto Freestanding PoH", RC_HF_TEKTITE_GROTTO_FREESTANDING_POH }, + { "HF Southeast Grotto Chest", RC_HF_SOUTHEAST_GROTTO_CHEST }, + { "HF Open Grotto Chest", RC_HF_OPEN_GROTTO_CHEST }, + { "HF Deku Scrub Grotto", RC_HF_DEKU_SCRUB_GROTTO }, + { "Market Shooting Gallery Reward", RC_MARKET_SHOOTING_GALLERY_REWARD }, + { "Market Bombchu Bowling First Prize", RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE }, + { "Market Bombchu Bowling Second Prize", RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE }, + { "Market Lost Dog", RC_MARKET_LOST_DOG }, + { "Market Treasure Chest Game Reward", RC_MARKET_TREASURE_CHEST_GAME_REWARD }, + { "Market 10 Big Poes", RC_MARKET_10_BIG_POES }, + { "ToT Light Arrows Cutscene", RC_TOT_LIGHT_ARROWS_CUTSCENE }, + { "HC Great Fairy Reward", RC_HC_GREAT_FAIRY_REWARD }, + { "LLR Talons Chickens", RC_LLR_TALONS_CHICKENS }, + { "LLR Freestanding PoH", RC_LLR_FREESTANDING_POH }, + { "Kak Anju as Child", RC_KAK_ANJU_AS_CHILD }, + { "Kak Anju as Adult", RC_KAK_ANJU_AS_ADULT }, + { "Kak Impas House Freestanding PoH", RC_KAK_IMPAS_HOUSE_FREESTANDING_POH }, + { "Kak Windmill Freestanding PoH", RC_KAK_WINDMILL_FREESTANDING_POH }, + { "Kak Man on Roof", RC_KAK_MAN_ON_ROOF }, + { "Kak Open Grotto Chest", RC_KAK_OPEN_GROTTO_CHEST }, + { "Kak Redead Grotto Chest", RC_KAK_REDEAD_GROTTO_CHEST }, + { "Kak Shooting Gallery Reward", RC_KAK_SHOOTING_GALLERY_REWARD }, + { "Kak 10 Gold Skulltula Reward", RC_KAK_10_GOLD_SKULLTULA_REWARD }, + { "Kak 20 Gold Skulltula Reward", RC_KAK_20_GOLD_SKULLTULA_REWARD }, + { "Kak 30 Gold Skulltula Reward", RC_KAK_30_GOLD_SKULLTULA_REWARD }, + { "Kak 40 Gold Skulltula Reward", RC_KAK_40_GOLD_SKULLTULA_REWARD }, + { "Kak 50 Gold Skulltula Reward", RC_KAK_50_GOLD_SKULLTULA_REWARD }, + { "Graveyard Shield Grave Chest", RC_GRAVEYARD_SHIELD_GRAVE_CHEST }, + { "Graveyard Heart Piece Grave Chest", RC_GRAVEYARD_HEART_PIECE_GRAVE_CHEST }, + { "Graveyard Royal Familys Tomb Chest", RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST }, + { "Graveyard Freestanding PoH", RC_GRAVEYARD_FREESTANDING_POH }, + { "Graveyard Dampe Gravedigging Tour", RC_GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR }, + { "Graveyard Hookshot Chest", RC_GRAVEYARD_HOOKSHOT_CHEST }, + { "Graveyard Dampe Race Freestanding PoH", RC_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH }, + { "DMT Freestanding PoH", RC_DMT_FREESTANDING_POH }, + { "DMT Chest", RC_DMT_CHEST }, + { "DMT Storms Grotto Chest", RC_DMT_STORMS_GROTTO_CHEST }, + { "DMT Great Fairy Reward", RC_DMT_GREAT_FAIRY_REWARD }, + { "DMT Biggoron", RC_DMT_BIGGORON }, + { "GC Darunias Joy", RC_GC_DARUNIAS_JOY }, + { "GC Pot Freestanding PoH", RC_GC_POT_FREESTANDING_POH }, + { "GC Rolling Goron as Child", RC_GC_ROLLING_GORON_AS_CHILD }, + { "GC Rolling Goron as Adult", RC_GC_ROLLING_GORON_AS_ADULT }, + { "GC Maze Left Chest", RC_GC_MAZE_LEFT_CHEST }, + { "GC Maze Right Chest", RC_GC_MAZE_RIGHT_CHEST }, + { "GC Maze Center Chest", RC_GC_MAZE_CENTER_CHEST }, + { "DMC Volcano Freestanding PoH", RC_DMC_VOLCANO_FREESTANDING_POH }, + { "DMC Wall Freestanding PoH", RC_DMC_WALL_FREESTANDING_POH }, + { "DMC Upper Grotto Chest", RC_DMC_UPPER_GROTTO_CHEST }, + { "DMC Great Fairy Reward", RC_DMC_GREAT_FAIRY_REWARD }, + { "ZR Open Grotto Chest", RC_ZR_OPEN_GROTTO_CHEST }, + { "ZR Frogs in the Rain", RC_ZR_FROGS_IN_THE_RAIN }, + { "ZR Frogs Ocarina Game", RC_ZR_FROGS_OCARINA_GAME }, + { "ZR Near Open Grotto Freestanding PoH", RC_ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH }, + { "ZR Near Domain Freestanding PoH", RC_ZR_NEAR_DOMAIN_FREESTANDING_POH }, + { "ZD Diving Minigame", RC_ZD_DIVING_MINIGAME }, + { "ZD Chest", RC_ZD_CHEST }, + { "ZD King Zora Thawed", RC_ZD_KING_ZORA_THAWED }, + { "ZF Great Fairy Reward", RC_ZF_GREAT_FAIRY_REWARD }, + { "ZF Iceberg Freestanding PoH", RC_ZF_ICEBERC_FREESTANDING_POH }, + { "ZF Bottom Freestanding PoH", RC_ZF_BOTTOM_FREESTANDING_POH }, + { "LH Underwater Item", RC_LH_UNDERWATER_ITEM }, + { "LH Child Fishing", RC_LH_CHILD_FISHING }, + { "LH Adult Fishing", RC_LH_ADULT_FISHING }, + { "LH Lab Dive", RC_LH_LAB_DIVE }, + { "LH Freestanding PoH", RC_LH_FREESTANDING_POH }, + { "LH Sun", RC_LH_SUN }, + { "GV Crate Freestanding PoH", RC_GV_CRATE_FREESTANDING_POH }, + { "GV Waterfall Freestanding PoH", RC_GV_WATERFALL_FREESTANDING_POH }, + { "GV Chest", RC_GV_CHEST }, + { "GF Chest", RC_GF_CHEST }, + { "GF HBA 1000 Points", RC_GF_HBA_1000_POINTS }, + { "GF HBA 1500 Points", RC_GF_HBA_1500_POINTS }, + { "HC Zeldas Letter", RC_HC_ZELDAS_LETTER }, + { "Wasteland Chest", RC_WASTELAND_CHEST }, + { "Colossus Great Fairy Reward", RC_COLOSSUS_GREAT_FAIRY_REWARD }, + { "Colossus Freestanding PoH", RC_COLOSSUS_FREESTANDING_POH }, + { "OGC Great Fairy Reward", RC_OGC_GREAT_FAIRY_REWARD }, + { "Deku Tree Map Chest", RC_DEKU_TREE_MAP_CHEST }, + { "Deku Tree Slingshot Room Side Chest", RC_DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST }, + { "Deku Tree Slingshot Chest", RC_DEKU_TREE_SLINGSHOT_CHEST }, + { "Deku Tree Compass Chest", RC_DEKU_TREE_COMPASS_CHEST }, + { "Deku Tree Compass Room Side Chest", RC_DEKU_TREE_COMPASS_ROOM_SIDE_CHEST }, + { "Deku Tree Basement Chest", RC_DEKU_TREE_BASEMENT_CHEST }, + { "Deku Tree Queen Gohma Heart", RC_DEKU_TREE_QUEEN_GOHMA_HEART }, + { "Dodongos Cavern Map Chest", RC_DODONGOS_CAVERN_MAP_CHEST }, + { "Dodongos Cavern Compass Chest", RC_DODONGOS_CAVERN_COMPASS_CHEST }, + { "Dodongos Cavern Bomb Flower Platform Chest", RC_DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST }, + { "Dodongos Cavern Bomb Bag Chest", RC_DODONGOS_CAVERN_BOMB_BAG_CHEST }, + { "Dodongos Cavern End of Bridge Chest", RC_DODONGOS_CAVERN_END_OF_BRIDGE_CHEST }, + { "Dodongos Cavern Boss Room Chest", RC_DODONGOS_CAVERN_BOSS_ROOM_CHEST }, + { "Dodongos Cavern King Dodongo Heart", RC_DODONGOS_CAVERN_KING_DODONGO_HEART }, + { "Jabu Jabus Belly Boomerang Chest", RC_JABU_JABUS_BELLY_BOOMERANG_CHEST }, + { "Jabu Jabus Belly Map Chest", RC_JABU_JABUS_BELLY_MAP_CHEST }, + { "Jabu Jabus Belly Compass Chest", RC_JABU_JABUS_BELLY_COMPASS_CHEST }, + { "Jabu Jabus Belly Barinade Heart", RC_JABU_JABUS_BELLY_BARINADE_HEART }, + { "Bottom of the Well Front Left Fake Wall Chest", RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST }, + { "Bottom of the Well Front Center Bombable Chest", RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST }, + { "Bottom of the Well Back Left Bombable Chest", RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST }, + { "Bottom of the Well Underwater Left Chest", RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST }, + { "Bottom of the Well Freestanding Key", RC_BOTTOM_OF_THE_WELL_FREESTANDING_KEY }, + { "Bottom of the Well Compass Chest", RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST }, + { "Bottom of the Well Center Skulltula Chest", RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST }, + { "Bottom of the Well Right Bottom Fake Wall Chest", RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST }, + { "Bottom of the Well Fire Keese Chest", RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST }, + { "Bottom of the Well Like Like Chest", RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST }, + { "Bottom of the Well Map Chest", RC_BOTTOM_OF_THE_WELL_MAP_CHEST }, + { "Bottom of the Well Underwater Front Chest", RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST }, + { "Bottom of the Well Invisible Chest", RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST }, + { "Bottom of the Well Lens of Truth Chest", RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST }, + { "Forest Temple First Room Chest", RC_FOREST_TEMPLE_FIRST_ROOM_CHEST }, + { "Forest Temple First Stalfos Chest", RC_FOREST_TEMPLE_FIRST_STALFOS_CHEST }, + { "Forest Temple Raised Island Courtyard Chest", RC_FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST }, + { "Forest Temple Map Chest", RC_FOREST_TEMPLE_MAP_CHEST }, + { "Forest Temple Well Chest", RC_FOREST_TEMPLE_WELL_CHEST }, + { "Forest Temple Eye Switch Chest", RC_FOREST_TEMPLE_EYE_SWITCH_CHEST }, + { "Forest Temple Boss Key Chest", RC_FOREST_TEMPLE_BOSS_KEY_CHEST }, + { "Forest Temple Floormaster Chest", RC_FOREST_TEMPLE_FLOORMASTER_CHEST }, + { "Forest Temple Red Poe Chest", RC_FOREST_TEMPLE_RED_POE_CHEST }, + { "Forest Temple Bow Chest", RC_FOREST_TEMPLE_BOW_CHEST }, + { "Forest Temple Blue Poe Chest", RC_FOREST_TEMPLE_BLUE_POE_CHEST }, + { "Forest Temple Falling Ceiling Room Chest", RC_FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST }, + { "Forest Temple Basement Chest", RC_FOREST_TEMPLE_BASEMENT_CHEST }, + { "Forest Temple Phantom Ganon Heart", RC_FOREST_TEMPLE_PHANTOM_GANON_HEART }, + { "Fire Temple Near Boss Chest", RC_FIRE_TEMPLE_NEAR_BOSS_CHEST }, + { "Fire Temple Flare Dancer Chest", RC_FIRE_TEMPLE_FLARE_DANCER_CHEST }, + { "Fire Temple Boss Key Chest", RC_FIRE_TEMPLE_BOSS_KEY_CHEST }, + { "Fire Temple Big Lava Room Lower Open Door Chest", RC_FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST }, + { "Fire Temple Big Lava Room Blocked Door Chest", RC_FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST }, + { "Fire Temple Boulder Maze Lower Chest", RC_FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST }, + { "Fire Temple Boulder Maze Side Room Chest", RC_FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST }, + { "Fire Temple Map Chest", RC_FIRE_TEMPLE_MAP_CHEST }, + { "Fire Temple Boulder Maze Shortcut Chest", RC_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST }, + { "Fire Temple Boulder Maze Upper Chest", RC_FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST }, + { "Fire Temple Scarecrow Chest", RC_FIRE_TEMPLE_SCARECROW_CHEST }, + { "Fire Temple Compass Chest", RC_FIRE_TEMPLE_COMPASS_CHEST }, + { "Fire Temple Megaton Hammer Chest", RC_FIRE_TEMPLE_MEGATON_HAMMER_CHEST }, + { "Fire Temple Highest Goron Chest", RC_FIRE_TEMPLE_HIGHEST_GORON_CHEST }, + { "Fire Temple Volvagia Heart", RC_FIRE_TEMPLE_VOLVAGIA_HEART }, + { "Water Temple Compass Chest", RC_WATER_TEMPLE_COMPASS_CHEST }, + { "Water Temple Map Chest", RC_WATER_TEMPLE_MAP_CHEST }, + { "Water Temple Cracked Wall Chest", RC_WATER_TEMPLE_CRACKED_WALL_CHEST }, + { "Water Temple Torches Chest", RC_WATER_TEMPLE_TORCHES_CHEST }, + { "Water Temple Boss Key Chest", RC_WATER_TEMPLE_BOSS_KEY_CHEST }, + { "Water Temple Central Pillar Chest", RC_WATER_TEMPLE_CENTRAL_PILLAR_CHEST }, + { "Water Temple Central Bow Target Chest", RC_WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST }, + { "Water Temple Longshot Chest", RC_WATER_TEMPLE_LONGSHOT_CHEST }, + { "Water Temple River Chest", RC_WATER_TEMPLE_RIVER_CHEST }, + { "Water Temple Dragon Chest", RC_WATER_TEMPLE_DRAGON_CHEST }, + { "Water Temple Morpha Heart", RC_WATER_TEMPLE_MORPHA_HEART }, + { "Shadow Temple Map Chest", RC_SHADOW_TEMPLE_MAP_CHEST }, + { "Shadow Temple Hover Boots Chest", RC_SHADOW_TEMPLE_HOVER_BOOTS_CHEST }, + { "Shadow Temple Compass Chest", RC_SHADOW_TEMPLE_COMPASS_CHEST }, + { "Shadow Temple Early Silver Rupee Chest", RC_SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST }, + { "Shadow Temple Invisible Blades Visible Chest", RC_SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST }, + { "Shadow Temple Invisible Blades Invisible Chest", RC_SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST }, + { "Shadow Temple Falling Spikes Lower Chest", RC_SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST }, + { "Shadow Temple Falling Spikes Upper Chest", RC_SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST }, + { "Shadow Temple Falling Spikes Switch Chest", RC_SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST }, + { "Shadow Temple Invisible Spikes Chest", RC_SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST }, + { "Shadow Temple Freestanding Key", RC_SHADOW_TEMPLE_FREESTANDING_KEY }, + { "Shadow Temple Wind Hint Chest", RC_SHADOW_TEMPLE_WIND_HINT_CHEST }, + { "Shadow Temple After Wind Enemy Chest", RC_SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST }, + { "Shadow Temple After Wind Hidden Chest", RC_SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST }, + { "Shadow Temple Spike Walls Left Chest", RC_SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST }, + { "Shadow Temple Boss Key Chest", RC_SHADOW_TEMPLE_BOSS_KEY_CHEST }, + { "Shadow Temple Invisible Floormaster Chest", RC_SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST }, + { "Shadow Temple Bongo Bongo Heart", RC_SHADOW_TEMPLE_BONGO_BONGO_HEART }, + { "Spirit Temple Child Bridge Chest", RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST }, + { "Spirit Temple Child Early Torches Chest", RC_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST }, + { "Spirit Temple Child Climb North Chest", RC_SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST }, + { "Spirit Temple Child Climb East Chest", RC_SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST }, + { "Spirit Temple Map Chest", RC_SPIRIT_TEMPLE_MAP_CHEST }, + { "Spirit Temple Sun Block Room Chest", RC_SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST }, + { "Spirit Temple Silver Gauntlets Chest", RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST }, + { "Spirit Temple Compass Chest", RC_SPIRIT_TEMPLE_COMPASS_CHEST }, + { "Spirit Temple Early Adult Right Chest", RC_SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST }, + { "Spirit Temple First Mirror Left Chest", RC_SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST }, + { "Spirit Temple First Mirror Right Chest", RC_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST }, + { "Spirit Temple Statue Room Northeast Chest", RC_SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST }, + { "Spirit Temple Statue Room Hand Chest", RC_SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST }, + { "Spirit Temple Near Four Armos Chest", RC_SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST }, + { "Spirit Temple Hallway Right Invisible Chest", RC_SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST }, + { "Spirit Temple Hallway Left Invisible Chest", RC_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST }, + { "Spirit Temple Mirror Shield Chest", RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST }, + { "Spirit Temple Boss Key Chest", RC_SPIRIT_TEMPLE_BOSS_KEY_CHEST }, + { "Spirit Temple Topmost Chest", RC_SPIRIT_TEMPLE_TOPMOST_CHEST }, + { "Spirit Temple Twinrova Heart", RC_SPIRIT_TEMPLE_TWINROVA_HEART }, + { "Ice Cavern Map Chest", RC_ICE_CAVERN_MAP_CHEST }, + { "Ice Cavern Compass Chest", RC_ICE_CAVERN_COMPASS_CHEST }, + { "Ice Cavern Freestanding PoH", RC_ICE_CAVERN_FREESTANDING_POH }, + { "Ice Cavern Iron Boots Chest", RC_ICE_CAVERN_IRON_BOOTS_CHEST }, + { "Gerudo Training Ground Lobby Left Chest", RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST }, + { "Gerudo Training Ground Lobby Right Chest", RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST }, + { "Gerudo Training Ground Stalfos Chest", RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST }, + { "Gerudo Training Ground Before Heavy Block Chest", RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST }, + { "Gerudo Training Ground Heavy Block First Chest", RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST }, + { "Gerudo Training Ground Heavy Block Second Chest", RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST }, + { "Gerudo Training Ground Heavy Block Third Chest", RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST }, + { "Gerudo Training Ground Heavy Block Fourth Chest", RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST }, + { "Gerudo Training Ground Eye Statue Chest", RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST }, + { "Gerudo Training Ground Near Scarecrow Chest", RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST }, + { "Gerudo Training Ground Hammer Room Clear Chest", RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST }, + { "Gerudo Training Ground Hammer Room Switch Chest", RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST }, + { "Gerudo Training Ground Freestanding Key", RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY }, + { "Gerudo Training Ground Maze Right Central Chest", RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST }, + { "Gerudo Training Ground Maze Right Side Chest", RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST }, + { "Gerudo Training Ground Underwater Silver Rupee Chest", + RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST }, + { "Gerudo Training Ground Beamos Chest", RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST }, + { "Gerudo Training Ground Hidden Ceiling Chest", RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST }, + { "Gerudo Training Ground Maze Path First Chest", RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST }, + { "Gerudo Training Ground Maze Path Second Chest", RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST }, + { "Gerudo Training Ground Maze Path Third Chest", RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST }, + { "Gerudo Training Ground Maze Path Final Chest", RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST }, + { "Ganons Castle Forest Trial Chest", RC_GANONS_CASTLE_FOREST_TRIAL_CHEST }, + { "Ganons Castle Water Trial Left Chest", RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST }, + { "Ganons Castle Water Trial Right Chest", RC_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST }, + { "Ganons Castle Shadow Trial Front Chest", RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST }, + { "Ganons Castle Shadow Trial Golden Gauntlets Chest", RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST }, + { "Ganons Castle Light Trial First Left Chest", RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST }, + { "Ganons Castle Light Trial Second Left Chest", RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST }, + { "Ganons Castle Light Trial Third Left Chest", RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST }, + { "Ganons Castle Light Trial First Right Chest", RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST }, + { "Ganons Castle Light Trial Second Right Chest", RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST }, + { "Ganons Castle Light Trial Third Right Chest", RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST }, + { "Ganons Castle Light Trial Invisible Enemies Chest", RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST }, + { "Ganons Castle Light Trial Lullaby Chest", RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST }, + { "Ganons Castle Spirit Trial Crystal Switch Chest", RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST }, + { "Ganons Castle Spirit Trial Invisible Chest", RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST }, + { "Ganons Tower Boss Key Chest", RC_GANONS_TOWER_BOSS_KEY_CHEST } }; std::unordered_map itemIdToModel = { { GI_NONE, GID_MAX }, @@ -486,229 +486,229 @@ std::unordered_map itemIdToModel = { { GI_NONE, GID_MAX }, { GI_ICE_TRAP, GID_MAX }, { GI_TEXT_0, GID_MAX } }; -std::unordered_map SpoilerfileGetNameToEnum = { - {"Bombs (5)", BOMBS_5}, - {"Deku Nuts (5)", DEKU_NUTS_5}, - {"Bombchus (10)", BOMBCHU_10}, - {"Boomerang", BOOMERANG}, - {"Deku Stick (1)", DEKU_STICK_1}, - {"Lens of Truth", LENS_OF_TRUTH}, - {"Megaton Hammer", MEGATON_HAMMER}, - {"Cojiro", COJIRO}, - {"Bottle", EMPTY_BOTTLE}, - {"Bottle with Milk", BOTTLE_WITH_MILK}, - {"Rutos Letter", RUTOS_LETTER}, - {"Deliver Letter", DELIVER_LETTER}, - {"Sell Big Poe", BOTTLE_WITH_BIG_POE}, - {"Magic Bean", MAGIC_BEAN}, - {"Skull Mask", SKULL_MASK}, - {"Spooky Mask", SPOOKY_MASK}, - {"Keaton Mask", KEATON_MASK}, - {"Bunny Hood", BUNNY_HOOD}, - {"Mask of Truth", MASK_OF_TRUTH}, - {"Pocket Egg", POCKET_EGG}, - {"Pocket Cucco", POCKET_CUCCO}, - {"Odd Mushroom", ODD_MUSHROOM}, - {"Odd Potion", ODD_POTION}, - {"Poachers Saw", POACHERS_SAW}, - {"Broken Sword", BROKEN_SWORD}, - {"Prescription", PRESCRIPTION}, - {"Eyeball Frog", EYEBALL_FROG}, - {"Eyedrops", EYEDROPS}, - {"Claim Check", CLAIM_CHECK}, - {"Kokiri Sword", KOKIRI_SWORD}, - {"Giants Knife", GIANTS_KNIFE}, - {"Deku Shield", DEKU_SHIELD}, - {"Hylian Shield", HYLIAN_SHIELD}, - {"Mirror Shield", MIRROR_SHIELD}, - {"Goron Tunic", GORON_TUNIC}, - {"Zora Tunic", ZORA_TUNIC}, - {"Iron Boots", IRON_BOOTS}, - {"Hover Boots", HOVER_BOOTS}, - {"Stone of Agony", STONE_OF_AGONY}, - {"Gerudo Membership Card", GERUDO_CARD}, - {"Heart Container", HEART_CONTAINER}, - {"Piece of Heart", PIECE_OF_HEART}, - {"Boss Key", BOSS_KEY}, - {"Compass", COMPASS}, - {"Map", MAP}, - {"Small Key", SMALL_KEY}, - {"Weird Egg", WEIRD_EGG}, - {"Recovery Heart", RECOVERY_HEART}, - {"Arrows (5)", ARROWS_5}, - {"Arrows (10)", ARROWS_10}, - {"Arrows (30)", ARROWS_30}, - {"Rupee (1)", RUPEE_1}, - {"Rupees (5)", RUPEES_5}, - {"Rupees (20)", RUPEES_20}, - {"Milk", MILK}, - {"Goron Mask", GORON_MASK}, - {"Zora Mask", ZORA_MASK}, - {"Gerudo Mask", GERUDO_MASK}, - {"Rupees (50)", RUPEES_50}, - {"Rupees (200)", RUPEES_200}, - {"Biggoron Sword", BIGGORON_SWORD}, - {"Fire Arrows", FIRE_ARROWS}, - {"Ice Arrows", ICE_ARROWS}, - {"Light Arrows", LIGHT_ARROWS}, - {"Gold Skulltula Token", GOLD_SKULLTULA_TOKEN}, - {"Dins Fire", DINS_FIRE}, - {"Nayrus Love", NAYRUS_LOVE}, - {"Farores Wind", FARORES_WIND}, - {"Deku Nuts (10)", DEKU_NUTS_10}, - {"Bombs (10)", BOMBS_10}, - {"Bombs (20)", BOMBS_20}, - {"Deku Seeds (30)", DEKU_SEEDS_30}, - {"Bombchus (5)", BOMBCHUS_5}, - {"Bombchus (20)", BOMBCHUS_20}, - {"Rupee (Treasure Chest Game)", RUPEE_TREASURE_CHEST_GAME}, - {"Piece of Heart (Treasure Chest Game)", PIECE_OF_HEART_TREASURE_CHEST_GAME}, - {"Ice Trap", ICE_TRAP}, - {"Progressive Hookshot", PROGRESSIVE_HOOKSHOT}, - {"Progressive Strength Upgrade", PROGRESSIVE_STRENGTH_UPGRADE}, - {"Bomb Bag", BOMB_BAG}, - {"Bow", BOW}, - {"Slingshot", SLINGSHOT}, - {"Progressive Wallet", PROGRESSIVE_WALLET}, - {"Progressive Scale", PROGRESSIVE_SCALE}, - {"Deku Nut Capacity", DEKU_NUT_CAPACITY}, - {"Deku Stick Capacity", DEKU_STICK_CAPACITY}, - {"Bombchus", BOMBCHUS}, - {"Magic Meter", MAGIC_METER}, - {"Ocarina", OCARINA}, - {"Bottle with Red Potion", BOTTLE_WITH_RED_POTION}, - {"Bottle with Green Potion", BOTTLE_WITH_GREEN_POTION}, - {"Bottle with Blue Potion", BOTTLE_WITH_BLUE_POTION}, - {"Bottle with Fairy", BOTTLE_WITH_FAIRY}, - {"Bottle with Fish", BOTTLE_WITH_FISH}, - {"Bottle with Blue Fire", BOTTLE_WITH_BLUE_FIRE}, - {"Bottle with Bugs", BOTTLE_WITH_BUGS}, - {"Bottle with Big Poe", BOTTLE_WITH_BIG_POE}, - {"Bottle with Poe", BOTTLE_WITH_POE}, - {"Boss Key (Forest Temple)", BOSS_KEY_FOREST_TEMPLE}, - {"Boss Key (Fire Temple)", BOSS_KEY_FIRE_TEMPLE}, - {"Boss Key (Water Temple)", BOSS_KEY_WATER_TEMPLE}, - {"Boss Key (Spirit Temple)", BOSS_KEY_SPIRIT_TEMPLE}, - {"Boss Key (Shadow Temple)", BOSS_KEY_SHADOW_TEMPLE}, - {"Boss Key (Ganons Castle)", BOSS_KEY_GANONS_CASTLE}, - {"Compass (Deku Tree)", COMPASS_DEKU_TREE}, - {"Compass (Dodongos Cavern)", COMPASS_DODONGOS_CAVERN}, - {"Compass (Jabu Jabus Belly)", COMPASS_JABU_JABUS_BELLY}, - {"Compass (Forest Temple)", COMPASS_FOREST_TEMPLE}, - {"Compass (Fire Temple)", COMPASS_FIRE_TEMPLE}, - {"Compass (Water Temple)", COMPASS_WATER_TEMPLE}, - {"Compass (Spirit Temple)", COMPASS_SPIRIT_TEMPLE}, - {"Compass (Shadow Temple)", COMPASS_SHADOW_TEMPLE}, - {"Compass (Bottom of the Well)", COMPASS_BOTTOM_OF_THE_WELL}, - {"Compass (Ice Cavern)", COMPASS_ICE_CAVERN}, - {"Map (Deku Tree)", MAP_DEKU_TREE}, - {"Map (Dodongos Cavern)", MAP_DODONGOS_CAVERN}, - {"Map (Jabu Jabus Belly)", MAP_JABU_JABUS_BELLY}, - {"Map (Forest Temple)", MAP_FOREST_TEMPLE}, - {"Map (Fire Temple)", MAP_FIRE_TEMPLE}, - {"Map (Water Temple)", MAP_WATER_TEMPLE}, - {"Map (Spirit Temple)", MAP_SPIRIT_TEMPLE}, - {"Map (Shadow Temple)", MAP_SHADOW_TEMPLE}, - {"Map (Bottom of the Well)", MAP_BOTTOM_OF_THE_WELL}, - {"Map (Ice Cavern)", MAP_ICE_CAVERN}, - {"Small Key (Forest Temple)", SMALL_KEY_FOREST_TEMPLE}, - {"Small Key (Fire Temple)", SMALL_KEY_FIRE_TEMPLE}, - {"Small Key (Water Temple)", SMALL_KEY_WATER_TEMPLE}, - {"Small Key (Spirit Temple)", SMALL_KEY_SPIRIT_TEMPLE}, - {"Small Key (Shadow Temple)", SMALL_KEY_SHADOW_TEMPLE}, - {"Small Key (Bottom of the Well)", SMALL_KEY_BOTTOM_OF_THE_WELL}, - {"Small Key (Gerudo Training Ground)", SMALL_KEY_GERUDO_TRAINING_GROUND}, - {"Small Key (Thieves Hideout)", SMALL_KEY_THIEVES_HIDEOUT}, - {"Small Key (Ganons Castle)", SMALL_KEY_GANONS_CASTLE}, - {"Double Defense", DOUBLE_DEFENSE}, - {"Magic Bean Pack", MAGIC_BEAN_PACK}, - {"Triforce Piece", TRIFORCE_PIECE}, - {"Zeldas Letter", ZELDAS_LETTER}, - {"Time Travel", TIME_TRAVEL}, - {"Scarecrow Song", SCARECROW_SONG}, - {"Triforce", TRIFORCE}, - {"Small Key Ring (Forest Temple)", SMALL_KEY_RING_FOREST_TEMPLE}, - {"Small Key Ring (Fire Temple)", SMALL_KEY_RING_FIRE_TEMPLE}, - {"Small Key Ring (Water Temple)", SMALL_KEY_RING_WATER_TEMPLE}, - {"Small Key Ring (Spirit Temple)", SMALL_KEY_RING_SPIRIT_TEMPLE}, - {"Small Key Ring (Shadow Temple)", SMALL_KEY_RING_SHADOW_TEMPLE}, - {"Small Key Ring (Bottom of the Well)", SMALL_KEY_RING_BOTTOM_OF_THE_WELL}, - {"Small Key Ring (Gerudo Training Ground)", SMALL_KEY_RING_GERUDO_TRAINING_GROUND}, - {"Small Key Ring (Thieves Hideout)", SMALL_KEY_RING_THIEVES_HIDEOUT}, - {"Small Key Ring (Ganons Castle)", SMALL_KEY_RING_GANONS_CASTLE}, - {"Water Temple Clear", WATER_TEMPLE_CLEAR}, - {"Forest Trial Clear", FOREST_TRIAL_CLEAR}, - {"Fire Trial Clear", FIRE_TRIAL_CLEAR}, - {"Water Trial Clear", WATER_TRIAL_CLEAR}, - {"Shadow Trial Clear", SHADOW_TRIAL_CLEAR}, - {"Spirit Trial Clear", SPIRIT_TRIAL_CLEAR}, - {"Light Trial Clear", LIGHT_TRIAL_CLEAR}, - {"Deku Stick Drop", DEKU_STICK_DROP}, - {"Deku Nut Drop", DEKU_NUT_DROP}, - {"Blue Fire", BLUE_FIRE}, - {"Fairy", FAIRY}, - {"Fish", FISH}, - {"Bugs", BUGS}, - {"Big Poe", BIG_POE}, - {"Bombchu Drop", BOMBCHU_DROP}, - {"Arrows", ARROWS_CONSUMABLE_REFILL}, - {"Bombs", BOMBS_CONSUMABLE_REFILL}, - {"Deku Seeds", DEKU_SEEDS_CONSUMABLE_REFILL}, - {"Deku Sticks", DEKU_STICKS_CONSUMABLE_REFILL}, - {"Deku Nuts", DEKU_NUTS_CONSUMABLE_REFILL}, - {"Rupees", RUPEES_CONSUMABLE_REFILL}, - {"Minuet of Forest", MINUET_OF_FOREST}, - {"Bolero of Fire", BOLERO_OF_FIRE}, - {"Serenade of Water", SERENADE_OF_WATER}, - {"Requiem of Spirit", REQUIEM_OF_SPIRIT}, - {"Nocturne of Shadow", NOCTURNE_OF_SHADOW}, - {"Prelude of Light", PRELUDE_OF_LIGHT}, - {"Zeldas Lullaby", ZELDAS_LULLABY}, - {"Eponas Song", EPONAS_SONG}, - {"Sarias Song", SARIAS_SONG}, - {"Suns Song", SUNS_SONG}, - {"Song of Time", SONG_OF_TIME}, - {"Song of Storms", SONG_OF_STORMS}, - {"Buy Deku Nut (5)", BUY_DEKU_NUT_5}, - {"Buy Arrows (30)", BUY_ARROWS_30}, - {"Buy Arrows (50)", BUY_ARROWS_50}, - {"Buy Bombs (5) for 25 Rupees", BUY_BOMBS_5_FOR_25_RUPEES}, - {"Buy Deku Nut (10)", BUY_DEKU_NUT_10}, - {"Buy Deku Stick (1)", BUY_DEKU_STICK_1}, - {"Buy Bombs (10)", BUY_BOMBS_10}, - {"Buy Fish", BUY_FISH}, - {"Buy Red Potion for 30 Rupees", BUY_RED_POTION_FOR_30_RUPEES}, - {"Buy Green Potion", BUY_GREEN_POTION}, - {"Buy Blue Potion", BUY_BLUE_POTION}, - {"Buy Hylian Shield", BUY_HYLIAN_SHIELD}, - {"Buy Deku Shield", BUY_DEKU_SHIELD}, - {"Buy Goron Tunic", BUY_GORON_TUNIC}, - {"Buy Zora Tunic", BUY_ZORA_TUNIC}, - {"Buy Heart", BUY_HEART}, - {"Buy Bombchu (10)", BUY_BOMBCHU_10}, - {"Buy Bombchu (20)", BUY_BOMBCHU_20}, - {"Buy Bombchu (5)", BUY_BOMBCHU_5}, - {"Buy Deku Seeds (30)", BUY_DEKU_SEEDS_30}, - {"Sold Out", SOLD_OUT}, - {"Buy Blue Fire", BUY_BLUE_FIRE}, - {"Buy Bottle Bug", BUY_BOTTLE_BUG}, - {"Buy Poe", BUY_POE}, - {"Buy Fairy\'s Spirit", BUY_FAIRYS_SPIRIT}, - {"Buy Arrows (10)", BUY_ARROWS_10}, - {"Buy Bombs (20)", BUY_BOMBS_20}, - {"Buy Bombs (30)", BUY_BOMBS_30}, - {"Buy Bombs (5) for 35 Rupees", BUY_BOMBS_5_FOR_35_RUPEES}, - {"Buy Red Potion for 40 Rupees", BUY_RED_POTION_FOR_40_RUPEES}, - {"Buy Red Potion for 50 Rupees", BUY_RED_POTION_FOR_50_RUPEES}, - {"Kokiri Emerald", KOKIRI_EMERALD}, - {"Goron Ruby", GORON_RUBY}, - {"Zora Sapphire", ZORA_SAPPHIRE}, - {"Forest Medallion", FOREST_MEDALLION}, - {"Fire Medallion", FIRE_MEDALLION}, - {"Water Medallion", WATER_MEDALLION}, - {"Spirit Medallion", SPIRIT_MEDALLION}, - {"Shadow Medallion", SHADOW_MEDALLION}, - {"Light Medallion", LIGHT_MEDALLION} +std::unordered_map SpoilerfileGetNameToEnum = { + { "Bombs (5)", RG_BOMBS_5 }, + { "Deku Nuts (5)", RG_DEKU_NUTS_5 }, + { "Bombchus (10)", RG_BOMBCHUS_10 }, + { "Boomerang", RG_BOOMERANG }, + { "Deku Stick (1)", RG_DEKU_STICK_1 }, + { "Lens of Truth", RG_LENS_OF_TRUTH }, + { "Megaton Hammer", RG_MEGATON_HAMMER }, + { "Cojiro", RG_COJIRO }, + { "Bottle", RG_BOTTLE }, + { "Bottle with Milk", RG_BOTTLE_WITH_MILK }, + { "Rutos Letter", RG_RUTOS_LETTER }, + { "Deliver Letter", RG_DELIVER_LETTER }, + { "Sell Big Poe", RG_BOTTLE_WITH_BIG_POE }, + { "Magic Bean", RG_MAGIC_BEAN }, + { "Skull Mask", RG_SKULL_MASK }, + { "Spooky Mask", RG_SPOOKY_MASK }, + { "Keaton Mask", RG_KEATON_MASK }, + { "Bunny Hood", RG_BUNNY_HOOD }, + { "Mask of Truth", RG_MASK_OF_TRUTH }, + { "Pocket Egg", RG_POCKET_EGG }, + { "Pocket Cucco", RG_POCKET_CUCCO }, + { "Odd Mushroom", RG_ODD_MUSHROOM }, + { "Odd Potion", RG_ODD_POTION }, + { "Poachers Saw", RG_POACHERS_SAW }, + { "Broken Sword", RG_BROKEN_SWORD }, + { "Prescription", RG_PRESCRIPTION }, + { "Eyeball Frog", RG_EYEBALL_FROG }, + { "Eyedrops", RG_EYEDROPS }, + { "Claim Check", RG_CLAIM_CHECK }, + { "Kokiri Sword", RG_KOKIRI_SWORD }, + { "Giants Knife", RG_GIANTS_KNIFE }, + { "Deku Shield", RG_DEKU_SHIELD }, + { "Hylian Shield", RG_HYLIAN_SHIELD }, + { "Mirror Shield", RG_MIRROR_SHIELD }, + { "Goron Tunic", RG_GORON_TUNIC }, + { "Zora Tunic", RG_ZORA_TUNIC }, + { "Iron Boots", RG_IRON_BOOTS }, + { "Hover Boots", RG_HOVER_BOOTS }, + { "Stone of Agony", RG_STONE_OF_AGONY }, + { "Gerudo Membership Card", RG_GERUDO_MEMBERSHIP_CARD }, + { "Heart Container", RG_HEART_CONTAINER }, + { "Piece of Heart", RG_PIECE_OF_HEART }, + { "Boss Key", RG_BOSS_KEY }, + { "Compass", RG_COMPASS }, + { "Map", RG_MAP }, + { "Small Key", RG_SMALL_KEY }, + { "Weird Egg", RG_WEIRD_EGG }, + { "Recovery Heart", RG_RECOVERY_HEART }, + { "Arrows (5)", RG_ARROWS_5 }, + { "Arrows (10)", RG_ARROWS_10 }, + { "Arrows (30)", RG_ARROWS_30 }, + { "Rupee (1)", RG_RUPEE_1 }, + { "Rupees (5)", RG_RUPEES_5 }, + { "Rupees (20)", RG_RUPEES_20 }, + { "Milk", RG_MILK }, + { "Goron Mask", RG_GORON_MASK }, + { "Zora Mask", RG_ZORA_MASK }, + { "Gerudo Mask", RG_GERUDO_MASK }, + { "Rupees (50)", RG_RUPEES_50 }, + { "Rupees (200)", RG_RUPEES_200 }, + { "Biggoron Sword", RG_BIGGORON_SWORD }, + { "Fire Arrows", RG_FIRE_ARROWS }, + { "Ice Arrows", RG_ICE_ARROWS }, + { "Light Arrows", RG_LIGHT_ARROWS }, + { "Gold Skulltula Token", RG_GOLD_SKULLTULA_TOKEN }, + { "Dins Fire", RG_DINS_FIRE }, + { "Nayrus Love", RG_NAYRUS_LOVE }, + { "Farores Wind", RG_FARORES_WIND }, + { "Deku Nuts (10)", RG_DEKU_NUTS_10 }, + { "Bombs (10)", RG_BOMBS_10 }, + { "Bombs (20)", RG_BOMBS_20 }, + { "Deku Seeds (30)", RG_DEKU_SEEDS_30 }, + { "Bombchus (5)", RG_BOMBCHUS_5 }, + { "Bombchus (20)", RG_BOMBCHUS_20 }, + { "Rupee (Treasure Chest Game)", RG_RUPEE_TREASURE_CHEST_GAME }, + { "Piece of Heart (Treasure Chest Game)", RG_PIECE_OF_HEART_TREASURE_CHEST_GAME }, + { "Ice Trap", RG_ICE_TRAP }, + { "Progressive Hookshot", RG_PROGRESSIVE_HOOKSHOT }, + { "Progressive Strength Upgrade", RG_PROGRESSIVE_STRENGTH_UPGRADE }, + { "Bomb Bag", RG_BOMB_BAG }, + { "Bow", RG_BOW }, + { "Slingshot", RG_SLINGSHOT }, + { "Progressive Wallet", RG_PROGRESSIVE_WALLET }, + { "Progressive Scale", RG_PROGRESSIVE_SCALE }, + { "Deku Nut Capacity", RG_DEKU_NUT_CAPACITY }, + { "Deku Stick Capacity", RG_DEKU_STICK_CAPACITY }, + { "Bombchus", RG_BOMBCHUS }, + { "Magic Meter", RG_MAGIC_METER }, + { "Ocarina", RG_OCARINA }, + { "Bottle with Red Potion", RG_BOTTLE_WITH_RED_POTION }, + { "Bottle with Green Potion", RG_BOTTLE_WITH_GREEN_POTION }, + { "Bottle with Blue Potion", RG_BOTTLE_WITH_BLUE_POTION }, + { "Bottle with Fairy", RG_BOTTLE_WITH_FAIRY }, + { "Bottle with Fish", RG_BOTTLE_WITH_FISH }, + { "Bottle with Blue Fire", RG_BOTTLE_WITH_BLUE_FIRE }, + { "Bottle with Bugs", RG_BOTTLE_WITH_BUGS }, + { "Bottle with Big Poe", RG_BOTTLE_WITH_BIG_POE }, + { "Bottle with Poe", RG_BOTTLE_WITH_POE }, + { "Boss Key (Forest Temple)", RG_BOSS_KEY_FOREST_TEMPLE }, + { "Boss Key (Fire Temple)", RG_BOSS_KEY_FIRE_TEMPLE }, + { "Boss Key (Water Temple)", RG_BOSS_KEY_WATER_TEMPLE }, + { "Boss Key (Spirit Temple)", RG_BOSS_KEY_SPIRIT_TEMPLE }, + { "Boss Key (Shadow Temple)", RG_BOSS_KEY_SHADOW_TEMPLE }, + { "Boss Key (Ganons Castle)", RG_BOSS_KEY_GANONS_CASTLE }, + { "Compass (Deku Tree)", RG_COMPASS_DEKU_TREE }, + { "Compass (Dodongos Cavern)", RG_COMPASS_DODONGOS_CAVERN }, + { "Compass (Jabu Jabus Belly)", RG_COMPASS_JABU_JABUS_BELLY }, + { "Compass (Forest Temple)", RG_COMPASS_FOREST_TEMPLE }, + { "Compass (Fire Temple)", RG_COMPASS_FIRE_TEMPLE }, + { "Compass (Water Temple)", RG_COMPASS_WATER_TEMPLE }, + { "Compass (Spirit Temple)", RG_COMPASS_SPIRIT_TEMPLE }, + { "Compass (Shadow Temple)", RG_COMPASS_SHADOW_TEMPLE }, + { "Compass (Bottom of the Well)", RG_COMPASS_BOTTOM_OF_THE_WELL }, + { "Compass (Ice Cavern)", RG_COMPASS_ICE_CAVERN }, + { "Map (Deku Tree)", RG_MAP_DEKU_TREE }, + { "Map (Dodongos Cavern)", RG_MAP_DODONGOS_CAVERN }, + { "Map (Jabu Jabus Belly)", RG_MAP_JABU_JABUS_BELLY }, + { "Map (Forest Temple)", RG_MAP_FOREST_TEMPLE }, + { "Map (Fire Temple)", RG_MAP_FIRE_TEMPLE }, + { "Map (Water Temple)", RG_MAP_WATER_TEMPLE }, + { "Map (Spirit Temple)", RG_MAP_SPIRIT_TEMPLE }, + { "Map (Shadow Temple)", RG_MAP_SHADOW_TEMPLE }, + { "Map (Bottom of the Well)", RG_MAP_BOTTOM_OF_THE_WELL }, + { "Map (Ice Cavern)", RG_MAP_ICE_CAVERN }, + { "Small Key (Forest Temple)", RG_SMALL_KEY_FOREST_TEMPLE }, + { "Small Key (Fire Temple)", RG_SMALL_KEY_FIRE_TEMPLE }, + { "Small Key (Water Temple)", RG_SMALL_KEY_WATER_TEMPLE }, + { "Small Key (Spirit Temple)", RG_SMALL_KEY_SPIRIT_TEMPLE }, + { "Small Key (Shadow Temple)", RG_SMALL_KEY_SHADOW_TEMPLE }, + { "Small Key (Bottom of the Well)", RG_SMALL_KEY_BOTTOM_OF_THE_WELL }, + { "Small Key (Gerudo Training Ground)", RG_SMALL_KEY_GERUDO_TRAINING_GROUND }, + { "Small Key (Thieves Hideout)", RG_SMALL_KEY_THIEVES_HIDEOUT }, + { "Small Key (Ganons Castle)", RG_SMALL_KEY_GANONS_CASTLE }, + { "Double Defense", RG_DOUBLE_DEFENSE }, + { "Magic Bean Pack", RG_MAGIC_BEAN_PACK }, + { "Triforce Piece", RG_TRIFORCE_PIECE }, + { "Zeldas Letter", RG_ZELDAS_LETTER }, + { "Time Travel", RG_TIME_TRAVEL }, + { "Scarecrow Song", RG_SCARECROW_SONG }, + { "Triforce", RG_TRIFORCE }, + { "Small Key Ring (Forest Temple)", RG_SMALL_KEY_RING_FOREST_TEMPLE }, + { "Small Key Ring (Fire Temple)", RG_SMALL_KEY_RING_FIRE_TEMPLE }, + { "Small Key Ring (Water Temple)", RG_SMALL_KEY_RING_WATER_TEMPLE }, + { "Small Key Ring (Spirit Temple)", RG_SMALL_KEY_RING_SPIRIT_TEMPLE }, + { "Small Key Ring (Shadow Temple)", RG_SMALL_KEY_RING_SHADOW_TEMPLE }, + { "Small Key Ring (Bottom of the Well)", RG_SMALL_KEY_RING_BOTTOM_OF_THE_WELL }, + { "Small Key Ring (Gerudo Training Ground)", RG_SMALL_KEY_RING_GERUDO_TRAINING_GROUND }, + { "Small Key Ring (Thieves Hideout)", RG_SMALL_KEY_RING_THIEVES_HIDEOUT }, + { "Small Key Ring (Ganons Castle)", RG_SMALL_KEY_RING_GANONS_CASTLE }, + { "Water Temple Clear", RG_WATER_TEMPLE_CLEAR }, + { "Forest Trial Clear", RG_FOREST_TRIAL_CLEAR }, + { "Fire Trial Clear", RG_FIRE_TRIAL_CLEAR }, + { "Water Trial Clear", RG_WATER_TRIAL_CLEAR }, + { "Shadow Trial Clear", RG_SHADOW_TRIAL_CLEAR }, + { "Spirit Trial Clear", RG_SPIRIT_TRIAL_CLEAR }, + { "Light Trial Clear", RG_LIGHT_TRIAL_CLEAR }, + { "Deku Stick Drop", RG_DEKU_STICK_DROP }, + { "Deku Nut Drop", RG_DEKU_NUT_DROP }, + { "Blue Fire", RG_BLUE_FIRE }, + { "Fairy", RG_FAIRY }, + { "Fish", RG_FISH }, + { "Bugs", RG_BUGS }, + { "Big Poe", RG_BIG_POE }, + { "Bombchu Drop", RG_BOMBCHU_DROP }, + { "Arrows", RG_ARROWS_CONSUMABLE_REFILL }, + { "Bombs", RG_BOMBS_CONSUMABLE_REFILL }, + { "Deku Seeds", RG_DEKU_SEEDS_CONSUMABLE_REFILL }, + { "Deku Sticks", RG_DEKU_STICKS_CONSUMABLE_REFILL }, + { "Deku Nuts", RG_DEKU_NUTS_CONSUMABLE_REFILL }, + { "Rupees", RG_RUPEES_CONSUMABLE_REFILL }, + { "Minuet of Forest", RG_MINUET_OF_FOREST }, + { "Bolero of Fire", RG_BOLERO_OF_FIRE }, + { "Serenade of Water", RG_SERENADE_OF_WATER }, + { "Requiem of Spirit", RG_REQUIEM_OF_SPIRIT }, + { "Nocturne of Shadow", RG_NOCTURNE_OF_SHADOW }, + { "Prelude of Light", RG_PRELUDE_OF_LIGHT }, + { "Zeldas Lullaby", RG_ZELDAS_LULLABY }, + { "Eponas Song", RG_EPONAS_SONG }, + { "Sarias Song", RG_SARIAS_SONG }, + { "Suns Song", RG_SUNS_SONG }, + { "Song of Time", RG_SONG_OF_TIME }, + { "Song of Storms", RG_SONG_OF_STORMS }, + { "Buy Deku Nut (5)", RG_BUY_DEKU_NUT_5 }, + { "Buy Arrows (30)", RG_BUY_ARROWS_30 }, + { "Buy Arrows (50)", RG_BUY_ARROWS_50 }, + { "Buy Bombs (5) for 25 Rupees", RG_BUY_BOMBS_5_FOR_25_RUPEES }, + { "Buy Deku Nut (10)", RG_BUY_DEKU_NUT_10 }, + { "Buy Deku Stick (1)", RG_BUY_DEKU_STICK_1 }, + { "Buy Bombs (10)", RG_BUY_BOMBS_10 }, + { "Buy Fish", RG_BUY_FISH }, + { "Buy Red Potion for 30 Rupees", RG_BUY_RED_POTION_FOR_30_RUPEES }, + { "Buy Green Potion", RG_BUY_GREEN_POTION }, + { "Buy Blue Potion", RG_BUY_BLUE_POTION }, + { "Buy Hylian Shield", RG_BUY_HYLIAN_SHIELD }, + { "Buy Deku Shield", RG_BUY_DEKU_SHIELD }, + { "Buy Goron Tunic", RG_BUY_GORON_TUNIC }, + { "Buy Zora Tunic", RG_BUY_ZORA_TUNIC }, + { "Buy Heart", RG_BUY_HEART }, + { "Buy Bombchu (10)", RG_BUY_BOMBCHU_10 }, + { "Buy Bombchu (20)", RG_BUY_BOMBCHU_20 }, + { "Buy Bombchu (5)", RG_BUY_BOMBCHU_5 }, + { "Buy Deku Seeds (30)", RG_BUY_DEKU_SEEDS_30 }, + { "Sold Out", RG_SOLD_OUT }, + { "Buy Blue Fire", RG_BUY_BLUE_FIRE }, + { "Buy Bottle Bug", RG_BUY_BOTTLE_BUG }, + { "Buy Poe", RG_BUY_POE }, + { "Buy Fairy\'s Spirit", RG_BUY_FAIRYS_SPIRIT }, + { "Buy Arrows (10)", RG_BUY_ARROWS_10 }, + { "Buy Bombs (20)", RG_BUY_BOMBS_20 }, + { "Buy Bombs (30)", RG_BUY_BOMBS_30 }, + { "Buy Bombs (5) for 35 Rupees", RG_BUY_BOMBS_5_FOR_35_RUPEES }, + { "Buy Red Potion for 40 Rupees", RG_BUY_RED_POTION_FOR_40_RUPEES }, + { "Buy Red Potion for 50 Rupees", RG_BUY_RED_POTION_FOR_50_RUPEES }, + { "Kokiri Emerald", RG_KOKIRI_EMERALD }, + { "Goron Ruby", RG_GORON_RUBY }, + { "Zora Sapphire", RG_ZORA_SAPPHIRE }, + { "Forest Medallion", RG_FOREST_MEDALLION }, + { "Fire Medallion", RG_FIRE_MEDALLION }, + { "Water Medallion", RG_WATER_MEDALLION }, + { "Spirit Medallion", RG_SPIRIT_MEDALLION }, + { "Shadow Medallion", RG_SHADOW_MEDALLION }, + { "Light Medallion", RG_LIGHT_MEDALLION } }; s16 Randomizer::GetItemModelFromId(s16 itemId) { @@ -739,26 +739,26 @@ GetItemID Randomizer::GetItemFromActor(s16 actorId, s16 actorParams, s16 sceneNu } GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) { - switch(randoGet) { - case UNKNOWN_GET: + switch (randoGet) { + case RG_UNKNOWN_GET: return ogItemId; - case KOKIRI_SWORD: + case RG_KOKIRI_SWORD: return GI_SWORD_KOKIRI; - case DEKU_SHIELD: + case RG_DEKU_SHIELD: return GI_SHIELD_DEKU; - case BOMBCHUS_20: + case RG_BOMBCHUS_20: return GI_BOMBCHUS_20; - case ICE_TRAP: + case RG_ICE_TRAP: return GI_ICE_TRAP; - case PIECE_OF_HEART: + case RG_PIECE_OF_HEART: return GI_HEART_PIECE; - case BOMBS_5: + case RG_BOMBS_5: return GI_BOMBS_5; - case DEKU_NUTS_5: + case RG_DEKU_NUTS_5: return GI_NUTS_5; - case BOMBCHUS_10: + case RG_BOMBCHUS_10: return GI_BOMBCHUS_10; - case BOW: + case RG_BOW: switch (CUR_UPG_VALUE(UPG_QUIVER)) { case 0: return GI_BOW; @@ -767,7 +767,7 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) case 2: return GI_QUIVER_50; } - case SLINGSHOT: + case RG_SLINGSHOT: switch (CUR_UPG_VALUE(UPG_BULLET_BAG)) { case 0: return GI_SLINGSHOT; @@ -776,36 +776,36 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) case 2: return GI_BULLET_BAG_50; } - case BOOMERANG: + case RG_BOOMERANG: return GI_BOOMERANG; - case PROGRESSIVE_HOOKSHOT: + case RG_PROGRESSIVE_HOOKSHOT: switch (gSaveContext.inventory.items[SLOT_HOOKSHOT]) { - case ITEM_NONE: - return GI_HOOKSHOT; - case ITEM_HOOKSHOT: - return GI_LONGSHOT; + case ITEM_NONE: + return GI_HOOKSHOT; + case ITEM_HOOKSHOT: + return GI_LONGSHOT; } - case LENS_OF_TRUTH: + case RG_LENS_OF_TRUTH: return GI_LENS; - case ZELDAS_LETTER: + case RG_ZELDAS_LETTER: return GI_LETTER_ZELDA; - case MEGATON_HAMMER: + case RG_MEGATON_HAMMER: return GI_HAMMER; - case PRESCRIPTION: + case RG_PRESCRIPTION: return GI_PRESCRIPTION; - case HYLIAN_SHIELD: + case RG_HYLIAN_SHIELD: return GI_SHIELD_HYLIAN; - case MIRROR_SHIELD: + case RG_MIRROR_SHIELD: return GI_SHIELD_MIRROR; - case GORON_TUNIC: + case RG_GORON_TUNIC: return GI_TUNIC_GORON; - case ZORA_TUNIC: + case RG_ZORA_TUNIC: return GI_TUNIC_ZORA; - case IRON_BOOTS: + case RG_IRON_BOOTS: return GI_BOOTS_IRON; - case HOVER_BOOTS: + case RG_HOVER_BOOTS: return GI_BOOTS_HOVER; - case BOMB_BAG: + case RG_BOMB_BAG: switch (CUR_UPG_VALUE(UPG_BOMB_BAG)) { case ITEM_NONE: return GI_BOMB_BAG_20; @@ -814,7 +814,7 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) case ITEM_BOMB_BAG_30: return GI_BOMB_BAG_40; } - case PROGRESSIVE_STRENGTH_UPGRADE: + case RG_PROGRESSIVE_STRENGTH_UPGRADE: switch (CUR_UPG_VALUE(UPG_STRENGTH)) { case 0: return GI_BRACELET; @@ -823,202 +823,202 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) case 2: return GI_GAUNTLETS_GOLD; } - case PROGRESSIVE_SCALE: + case RG_PROGRESSIVE_SCALE: switch (CUR_UPG_VALUE(UPG_SCALE)) { case 0: return GI_SCALE_SILVER; case 1: return GI_SCALE_GOLD; } - case STONE_OF_AGONY: + case RG_STONE_OF_AGONY: return GI_STONE_OF_AGONY; - case GERUDO_MEMBERSHIP_CARD: + case RG_GERUDO_MEMBERSHIP_CARD: return GI_GERUDO_CARD; - case HEART_CONTAINER: + case RG_HEART_CONTAINER: // todo figure out what GI_HEART_CONTAINER_2 is return GI_HEART_CONTAINER; // todo implement dungeon-specific keys/keyrings - case BOSS_KEY: - case BOSS_KEY_FIRE_TEMPLE: - case BOSS_KEY_FOREST_TEMPLE: - case BOSS_KEY_GANONS_CASTLE: - case BOSS_KEY_SHADOW_TEMPLE: - case BOSS_KEY_SPIRIT_TEMPLE: - case BOSS_KEY_WATER_TEMPLE: + case RG_BOSS_KEY: + case RG_BOSS_KEY_FIRE_TEMPLE: + case RG_BOSS_KEY_FOREST_TEMPLE: + case RG_BOSS_KEY_GANONS_CASTLE: + case RG_BOSS_KEY_SHADOW_TEMPLE: + case RG_BOSS_KEY_SPIRIT_TEMPLE: + case RG_BOSS_KEY_WATER_TEMPLE: return GI_KEY_BOSS; - case SMALL_KEY: - case SMALL_KEY_BOTTOM_OF_THE_WELL: - case SMALL_KEY_FIRE_TEMPLE: - case SMALL_KEY_FOREST_TEMPLE: - case SMALL_KEY_GANONS_CASTLE: - case SMALL_KEY_GERUDO_TRAINING_GROUND: - case SMALL_KEY_SHADOW_TEMPLE: - case SMALL_KEY_SPIRIT_TEMPLE: - case SMALL_KEY_THIEVES_HIDEOUT: - case SMALL_KEY_WATER_TEMPLE: + case RG_SMALL_KEY: + case RG_SMALL_KEY_BOTTOM_OF_THE_WELL: + case RG_SMALL_KEY_FIRE_TEMPLE: + case RG_SMALL_KEY_FOREST_TEMPLE: + case RG_SMALL_KEY_GANONS_CASTLE: + case RG_SMALL_KEY_GERUDO_TRAINING_GROUND: + case RG_SMALL_KEY_SHADOW_TEMPLE: + case RG_SMALL_KEY_SPIRIT_TEMPLE: + case RG_SMALL_KEY_THIEVES_HIDEOUT: + case RG_SMALL_KEY_WATER_TEMPLE: return GI_KEY_SMALL; // todo implement dungeon-specific maps/compasses - case MAP_DEKU_TREE: - case MAP_DODONGOS_CAVERN: - case MAP_JABU_JABUS_BELLY: - case MAP_FOREST_TEMPLE: - case MAP_FIRE_TEMPLE: - case MAP_WATER_TEMPLE: - case MAP_SPIRIT_TEMPLE: - case MAP_SHADOW_TEMPLE: - case MAP_BOTTOM_OF_THE_WELL: - case MAP_ICE_CAVERN: + case RG_MAP_DEKU_TREE: + case RG_MAP_DODONGOS_CAVERN: + case RG_MAP_JABU_JABUS_BELLY: + case RG_MAP_FOREST_TEMPLE: + case RG_MAP_FIRE_TEMPLE: + case RG_MAP_WATER_TEMPLE: + case RG_MAP_SPIRIT_TEMPLE: + case RG_MAP_SHADOW_TEMPLE: + case RG_MAP_BOTTOM_OF_THE_WELL: + case RG_MAP_ICE_CAVERN: return GI_MAP; - case COMPASS_DEKU_TREE: - case COMPASS_DODONGOS_CAVERN: - case COMPASS_JABU_JABUS_BELLY: - case COMPASS_FOREST_TEMPLE: - case COMPASS_FIRE_TEMPLE: - case COMPASS_WATER_TEMPLE: - case COMPASS_SPIRIT_TEMPLE: - case COMPASS_SHADOW_TEMPLE: - case COMPASS_BOTTOM_OF_THE_WELL: - case COMPASS_ICE_CAVERN: + case RG_COMPASS_DEKU_TREE: + case RG_COMPASS_DODONGOS_CAVERN: + case RG_COMPASS_JABU_JABUS_BELLY: + case RG_COMPASS_FOREST_TEMPLE: + case RG_COMPASS_FIRE_TEMPLE: + case RG_COMPASS_WATER_TEMPLE: + case RG_COMPASS_SPIRIT_TEMPLE: + case RG_COMPASS_SHADOW_TEMPLE: + case RG_COMPASS_BOTTOM_OF_THE_WELL: + case RG_COMPASS_ICE_CAVERN: return GI_COMPASS; - case MAGIC_METER: + case RG_MAGIC_METER: switch (gSaveContext.magicLevel) { case 0: return GI_MAGIC_SMALL; case 1: return GI_MAGIC_LARGE; } - case PROGRESSIVE_WALLET: + case RG_PROGRESSIVE_WALLET: switch (CUR_UPG_VALUE(UPG_WALLET)) { case 0: return GI_WALLET_ADULT; case 1: return GI_WALLET_GIANT; } - case RECOVERY_HEART: + case RG_RECOVERY_HEART: return GI_HEART; - case RUPEE_1: + case RG_RUPEE_1: return GI_RUPEE_GREEN; - case RUPEES_5: + case RG_RUPEES_5: return GI_RUPEE_BLUE; - case RUPEES_20: + case RG_RUPEES_20: return GI_RUPEE_RED; - case RUPEES_50: + case RG_RUPEES_50: return GI_RUPEE_PURPLE; - case RUPEES_200: + case RG_RUPEES_200: return GI_RUPEE_GOLD; - case FIRE_ARROWS: + case RG_FIRE_ARROWS: return GI_ARROW_FIRE; - case ICE_ARROWS: + case RG_ICE_ARROWS: return GI_ARROW_ICE; - case LIGHT_ARROWS: + case RG_LIGHT_ARROWS: return GI_ARROW_LIGHT; - case DINS_FIRE: + case RG_DINS_FIRE: return GI_DINS_FIRE; - case FARORES_WIND: + case RG_FARORES_WIND: return GI_FARORES_WIND; - case NAYRUS_LOVE: + case RG_NAYRUS_LOVE: return GI_NAYRUS_LOVE; - case DEKU_NUTS_10: + case RG_DEKU_NUTS_10: return GI_NUTS_10; - case BOMBS_10: + case RG_BOMBS_10: return GI_BOMBS_10; - case BOMBS_20: + case RG_BOMBS_20: return GI_BOMBS_20; - case DEKU_SEEDS_30: + case RG_DEKU_SEEDS_30: return GI_SEEDS_30; - case BOTTLE_WITH_BIG_POE: + case RG_BOTTLE_WITH_BIG_POE: return GI_BIG_POE; - case BOTTLE: + case RG_BOTTLE: return GI_BOTTLE; - case BOTTLE_WITH_BLUE_FIRE: + case RG_BOTTLE_WITH_BLUE_FIRE: return GI_BLUE_FIRE; - case BOTTLE_WITH_BLUE_POTION: + case RG_BOTTLE_WITH_BLUE_POTION: return GI_POTION_BLUE; - case BOTTLE_WITH_BUGS: + case RG_BOTTLE_WITH_BUGS: return GI_BUGS; - case BOTTLE_WITH_FAIRY: + case RG_BOTTLE_WITH_FAIRY: return GI_FAIRY; - case BOTTLE_WITH_FISH: + case RG_BOTTLE_WITH_FISH: return GI_FISH; - case BOTTLE_WITH_GREEN_POTION: + case RG_BOTTLE_WITH_GREEN_POTION: return GI_POTION_GREEN; - case BOTTLE_WITH_MILK: + case RG_BOTTLE_WITH_MILK: return GI_MILK_BOTTLE; - case BOTTLE_WITH_POE: + case RG_BOTTLE_WITH_POE: return GI_POE; - case BOTTLE_WITH_RED_POTION: + case RG_BOTTLE_WITH_RED_POTION: return GI_POTION_RED; - case PIECE_OF_HEART_TREASURE_CHEST_GAME: + case RG_PIECE_OF_HEART_TREASURE_CHEST_GAME: return GI_HEART_PIECE_WIN; - case DEKU_STICK_CAPACITY: + case RG_DEKU_STICK_CAPACITY: switch (CUR_UPG_VALUE(UPG_STICKS)) { case 0: return GI_STICK_UPGRADE_20; case 1: return GI_STICK_UPGRADE_30; } - case DEKU_NUT_CAPACITY: + case RG_DEKU_NUT_CAPACITY: switch (CUR_UPG_VALUE(UPG_NUTS)) { case 0: return GI_NUT_UPGRADE_30; case 1: return GI_NUT_UPGRADE_40; } - case RUTOS_LETTER: + case RG_RUTOS_LETTER: return GI_LETTER_RUTO; - case ARROWS_5: + case RG_ARROWS_5: return GI_ARROWS_SMALL; - case ARROWS_10: + case RG_ARROWS_10: return GI_ARROWS_MEDIUM; - case ARROWS_30: + case RG_ARROWS_30: return GI_ARROWS_LARGE; - case DEKU_STICK_1: + case RG_DEKU_STICK_1: return GI_STICKS_1; - case LIGHT_MEDALLION: + case RG_LIGHT_MEDALLION: return GI_MEDALLION_LIGHT; - case FOREST_MEDALLION: + case RG_FOREST_MEDALLION: return GI_MEDALLION_FOREST; - case FIRE_MEDALLION: + case RG_FIRE_MEDALLION: return GI_MEDALLION_FIRE; - case WATER_MEDALLION: + case RG_WATER_MEDALLION: return GI_MEDALLION_WATER; - case SHADOW_MEDALLION: + case RG_SHADOW_MEDALLION: return GI_MEDALLION_SHADOW; - case SPIRIT_MEDALLION: + case RG_SPIRIT_MEDALLION: return GI_MEDALLION_SPIRIT; - case KOKIRI_EMERALD: + case RG_KOKIRI_EMERALD: return GI_STONE_KOKIRI; - case GORON_RUBY: + case RG_GORON_RUBY: return GI_STONE_GORON; - case ZORA_SAPPHIRE: + case RG_ZORA_SAPPHIRE: return GI_STONE_ZORA; - case ZELDAS_LULLABY: + case RG_ZELDAS_LULLABY: return GI_ZELDAS_LULLABY; - case SUNS_SONG: + case RG_SUNS_SONG: return GI_SUNS_SONG; - case EPONAS_SONG: + case RG_EPONAS_SONG: return GI_EPONAS_SONG; - case SONG_OF_STORMS: + case RG_SONG_OF_STORMS: return GI_SONG_OF_STORMS; - case SONG_OF_TIME: + case RG_SONG_OF_TIME: return GI_SONG_OF_TIME; - case SARIAS_SONG: + case RG_SARIAS_SONG: return GI_SARIAS_SONG; - case MINUET_OF_FOREST: + case RG_MINUET_OF_FOREST: return GI_MINUET_OF_FOREST; - case BOLERO_OF_FIRE: + case RG_BOLERO_OF_FIRE: return GI_BOLERO_OF_FIRE; - case SERENADE_OF_WATER: + case RG_SERENADE_OF_WATER: return GI_SERENADE_OF_WATER; - case NOCTURNE_OF_SHADOW: + case RG_NOCTURNE_OF_SHADOW: return GI_NOCTURNE_OF_SHADOW; - case REQUIEM_OF_SPIRIT: + case RG_REQUIEM_OF_SPIRIT: return GI_REQUIEM_OF_SPIRIT; - case PRELUDE_OF_LIGHT: + case RG_PRELUDE_OF_LIGHT: return GI_PRELUDE_OF_LIGHT; default: @@ -1026,580 +1026,576 @@ GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) } } -GetItemID Randomizer::GetRandomizedItemIdFromKnownCheck(Key randomizerCheck, GetItemID ogId) { +GetItemID Randomizer::GetRandomizedItemIdFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId) { return GetItemFromGet(this->itemLocations[randomizerCheck], ogId); } -Key Randomizer::GetCheckFromActor(s16 sceneNum, s16 actorId, s16 actorParams) { - if (!gSaveContext.n64ddFlag) { - return NONE; - } - - switch(sceneNum) { +RandomizerCheck Randomizer::GetCheckFromActor(s16 sceneNum, s16 actorId, s16 actorParams) { + switch (sceneNum) { case 82: switch (actorId) { case 316: if (LINK_IS_ADULT) { - return KAK_ANJU_AS_ADULT; + return RC_KAK_ANJU_AS_ADULT; } else { - return KAK_ANJU_AS_CHILD; + return RC_KAK_ANJU_AS_CHILD; } } case 17: switch (actorId) { case 95: - return DEKU_TREE_QUEEN_GOHMA_HEART; + return RC_DEKU_TREE_QUEEN_GOHMA_HEART; case 93: - return QUEEN_GOHMA; + return RC_QUEEN_GOHMA; } case 18: switch (actorId) { case 95: - return DODONGOS_CAVERN_KING_DODONGO_HEART; + return RC_DODONGOS_CAVERN_KING_DODONGO_HEART; case 93: - return KING_DODONGO; + return RC_KING_DODONGO; } case 19: switch (actorId) { case 95: - return JABU_JABUS_BELLY_BARINADE_HEART; + return RC_JABU_JABUS_BELLY_BARINADE_HEART; case 93: - return BARINADE; + return RC_BARINADE; } case 20: switch (actorId) { case 95: - return FOREST_TEMPLE_PHANTOM_GANON_HEART; + return RC_FOREST_TEMPLE_PHANTOM_GANON_HEART; case 93: - return PHANTOM_GANON; + return RC_PHANTOM_GANON; } case 21: switch (actorId) { case 95: - return FIRE_TEMPLE_VOLVAGIA_HEART; + return RC_FIRE_TEMPLE_VOLVAGIA_HEART; case 93: - return VOLVAGIA; + return RC_VOLVAGIA; } case 22: switch (actorId) { case 95: - return WATER_TEMPLE_MORPHA_HEART; + return RC_WATER_TEMPLE_MORPHA_HEART; case 93: - return MORPHA; + return RC_MORPHA; } case 23: switch (actorId) { case 95: - return SPIRIT_TEMPLE_TWINROVA_HEART; + return RC_SPIRIT_TEMPLE_TWINROVA_HEART; case 93: - return TWINROVA; + return RC_TWINROVA; } case 24: switch (actorId) { case 95: - return SHADOW_TEMPLE_BONGO_BONGO_HEART; + return RC_SHADOW_TEMPLE_BONGO_BONGO_HEART; case 93: - return BONGO_BONGO; + return RC_BONGO_BONGO; } case 40: - switch(actorParams) { + switch (actorParams) { case 22944: - return KF_MIDOS_TOP_LEFT_CHEST; + return RC_KF_MIDOS_TOP_LEFT_CHEST; case 22945: - return KF_MIDOS_TOP_RIGHT_CHEST; + return RC_KF_MIDOS_TOP_RIGHT_CHEST; case 22914: - return KF_MIDOS_BOTTOM_LEFT_CHEST; + return RC_KF_MIDOS_BOTTOM_LEFT_CHEST; case 22787: - return KF_MIDOS_BOTTOM_RIGHT_CHEST; + return RC_KF_MIDOS_BOTTOM_RIGHT_CHEST; } case 84: switch (actorParams) { case 1030: - return ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH; + return RC_ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH; case 2822: - return ZR_NEAR_DOMAIN_FREESTANDING_POH; + return RC_ZR_NEAR_DOMAIN_FREESTANDING_POH; } case 85: - switch(actorParams) { + switch (actorParams) { case 1248: - return KF_KOKIRI_SWORD_CHEST; + return RC_KF_KOKIRI_SWORD_CHEST; } case 62: - switch(actorParams) { + switch (actorParams) { case 22988: - return KF_STORMS_GROTTO_CHEST; + return RC_KF_STORMS_GROTTO_CHEST; case 22964: - return LW_NEAR_SHORTCUTS_GROTTO_CHEST; + return RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST; case 31409: - return SFM_WOLFOS_GROTTO_CHEST; + return RC_SFM_WOLFOS_GROTTO_CHEST; case 22944: - return HF_NEAR_MARKET_GROTTO_CHEST; + return RC_HF_NEAR_MARKET_GROTTO_CHEST; case 22978: - return HF_SOUTHEAST_GROTTO_CHEST; + return RC_HF_SOUTHEAST_GROTTO_CHEST; case 22947: - return HF_OPEN_GROTTO_CHEST; + return RC_HF_OPEN_GROTTO_CHEST; case 22984: - return KAK_OPEN_GROTTO_CHEST; + return RC_KAK_OPEN_GROTTO_CHEST; case 31434: - return KAK_REDEAD_GROTTO_CHEST; + return RC_KAK_REDEAD_GROTTO_CHEST; case 23255: - return DMT_STORMS_GROTTO_CHEST; + return RC_DMT_STORMS_GROTTO_CHEST; case 23802: - return DMC_UPPER_GROTTO_CHEST; + return RC_DMC_UPPER_GROTTO_CHEST; case 22985: - return ZR_OPEN_GROTTO_CHEST; + return RC_ZR_OPEN_GROTTO_CHEST; case 262: - return HF_TEKTITE_GROTTO_FREESTANDING_POH; + return RC_HF_TEKTITE_GROTTO_FREESTANDING_POH; } case 64: - switch(actorParams) { + switch (actorParams) { case 21824: - return GRAVEYARD_SHIELD_GRAVE_CHEST; + return RC_GRAVEYARD_SHIELD_GRAVE_CHEST; } case 63: - switch(actorParams) { + switch (actorParams) { case -22592: - return GRAVEYARD_HEART_PIECE_GRAVE_CHEST; + return RC_GRAVEYARD_HEART_PIECE_GRAVE_CHEST; } case 65: - switch(actorParams) { + switch (actorParams) { case -32736: - return GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST; + return RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST; } case 72: // todo make sure dampe gives the PoH when the chest is opened // default logic seems to be give PoH when hookshot in inventory - switch(actorParams) { + switch (actorParams) { case 4352: - return GRAVEYARD_HOOKSHOT_CHEST; + return RC_GRAVEYARD_HOOKSHOT_CHEST; case 262: - return KAK_WINDMILL_FREESTANDING_POH; + return RC_KAK_WINDMILL_FREESTANDING_POH; case 1798: - return GRAVEYARD_DAMPE_RACE_FREESTANDING_POH; + return RC_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH; } case 96: - switch(actorParams) { + switch (actorParams) { case 7686: - return DMT_FREESTANDING_POH; + return RC_DMT_FREESTANDING_POH; case 23201: - return DMT_CHEST; + return RC_DMT_CHEST; } case 98: - switch(actorParams) { + switch (actorParams) { case 23232: - return GC_MAZE_LEFT_CHEST; + return RC_GC_MAZE_LEFT_CHEST; case 23201: - return GC_MAZE_RIGHT_CHEST; + return RC_GC_MAZE_RIGHT_CHEST; case 23202: - return GC_MAZE_CENTER_CHEST; + return RC_GC_MAZE_CENTER_CHEST; case 7942: - return GC_POT_FREESTANDING_POH; + return RC_GC_POT_FREESTANDING_POH; } case 88: - switch(actorParams) { + switch (actorParams) { case -18496: - return ZD_CHEST; + return RC_ZD_CHEST; } case 90: - switch(actorParams) { + switch (actorParams) { case 23200: - return GV_CHEST; + return RC_GV_CHEST; case 262: - return GV_WATERFALL_FREESTANDING_POH; + return RC_GV_WATERFALL_FREESTANDING_POH; case 518: - return GV_CRATE_FREESTANDING_POH; + return RC_GV_CRATE_FREESTANDING_POH; } case 93: - switch(actorParams) { + switch (actorParams) { case 1984: - return GF_CHEST; + return RC_GF_CHEST; } case 94: - switch(actorParams) { + switch (actorParams) { case -30048: - return WASTELAND_CHEST; + return RC_WASTELAND_CHEST; } case 0: - switch(actorParams) { + switch (actorParams) { case 2083: - return DEKU_TREE_MAP_CHEST; + return RC_DEKU_TREE_MAP_CHEST; case 22789: - return DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST; + return RC_DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST; case 161: - return DEKU_TREE_SLINGSHOT_CHEST; + return RC_DEKU_TREE_SLINGSHOT_CHEST; case 2050: - return DEKU_TREE_COMPASS_CHEST; + return RC_DEKU_TREE_COMPASS_CHEST; case 22790: - return DEKU_TREE_COMPASS_ROOM_SIDE_CHEST; + return RC_DEKU_TREE_COMPASS_ROOM_SIDE_CHEST; case 22788: - return DEKU_TREE_BASEMENT_CHEST; + return RC_DEKU_TREE_BASEMENT_CHEST; } case 1: - switch(actorParams) { + switch (actorParams) { case 2088: - return DODONGOS_CAVERN_MAP_CHEST; + return RC_DODONGOS_CAVERN_MAP_CHEST; case 2053: - return DODONGOS_CAVERN_COMPASS_CHEST; + return RC_DODONGOS_CAVERN_COMPASS_CHEST; case 22982: - return DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST; + return RC_DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST; case 1604: - return DODONGOS_CAVERN_BOMB_BAG_CHEST; + return RC_DODONGOS_CAVERN_BOMB_BAG_CHEST; case 21802: - return DODONGOS_CAVERN_END_OF_BRIDGE_CHEST; + return RC_DODONGOS_CAVERN_END_OF_BRIDGE_CHEST; case 20512: - return DODONGOS_CAVERN_BOSS_ROOM_CHEST; + return RC_DODONGOS_CAVERN_BOSS_ROOM_CHEST; } case 2: - switch(actorParams) { + switch (actorParams) { case 4289: - return JABU_JABUS_BELLY_BOOMERANG_CHEST; + return RC_JABU_JABUS_BELLY_BOOMERANG_CHEST; case 6178: - return JABU_JABUS_BELLY_MAP_CHEST; + return RC_JABU_JABUS_BELLY_MAP_CHEST; case -18428: - return JABU_JABUS_BELLY_COMPASS_CHEST; + return RC_JABU_JABUS_BELLY_COMPASS_CHEST; } case 8: - switch(actorParams) { + switch (actorParams) { case 22600: - return BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST; + return RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST; case 20578: - return BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST; + return RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST; case 23684: - return BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST; + return RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST; case 22793: - return BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST; + return RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST; case 2049: - return BOTTOM_OF_THE_WELL_COMPASS_CHEST; + return RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST; case 20558: - return BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST; + return RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST; case 22597: - return BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST; + return RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST; case 21802: - return BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST; + return RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST; case 21836: - return BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST; + return RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST; case 2087: - return BOTTOM_OF_THE_WELL_MAP_CHEST; + return RC_BOTTOM_OF_THE_WELL_MAP_CHEST; case 23760: - return BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST; + return RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST; case 4419: - return BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST; + return RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST; case 27348: - return BOTTOM_OF_THE_WELL_INVISIBLE_CHEST; + return RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST; } case 3: - switch(actorParams) { + switch (actorParams) { case 22595: - return FOREST_TEMPLE_FIRST_ROOM_CHEST; + return RC_FOREST_TEMPLE_FIRST_ROOM_CHEST; case 30784: - return FOREST_TEMPLE_FIRST_STALFOS_CHEST; + return RC_FOREST_TEMPLE_FIRST_STALFOS_CHEST; case 22789: - return FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST; + return RC_FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST; case 6177: - return FOREST_TEMPLE_MAP_CHEST; + return RC_FOREST_TEMPLE_MAP_CHEST; case 22601: - return FOREST_TEMPLE_WELL_CHEST; + return RC_FOREST_TEMPLE_WELL_CHEST; case -30364: - return FOREST_TEMPLE_EYE_SWITCH_CHEST; + return RC_FOREST_TEMPLE_EYE_SWITCH_CHEST; case 10222: - return FOREST_TEMPLE_BOSS_KEY_CHEST; + return RC_FOREST_TEMPLE_BOSS_KEY_CHEST; case 30786: - return FOREST_TEMPLE_FLOORMASTER_CHEST; + return RC_FOREST_TEMPLE_FLOORMASTER_CHEST; case 30797: - return FOREST_TEMPLE_RED_POE_CHEST; + return RC_FOREST_TEMPLE_RED_POE_CHEST; case -20340: - return FOREST_TEMPLE_BOW_CHEST; + return RC_FOREST_TEMPLE_BOW_CHEST; case 6159: - return FOREST_TEMPLE_BLUE_POE_CHEST; + return RC_FOREST_TEMPLE_BLUE_POE_CHEST; case 22855: - return FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST; + return RC_FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST; case 22827: - return FOREST_TEMPLE_BASEMENT_CHEST; + return RC_FOREST_TEMPLE_BASEMENT_CHEST; } case 4: - switch(actorParams) { + switch (actorParams) { case 22593: - return FIRE_TEMPLE_NEAR_BOSS_CHEST; + return RC_FIRE_TEMPLE_NEAR_BOSS_CHEST; case 31936: - return FIRE_TEMPLE_FLARE_DANCER_CHEST; + return RC_FIRE_TEMPLE_FLARE_DANCER_CHEST; case 10220: - return FIRE_TEMPLE_BOSS_KEY_CHEST; + return RC_FIRE_TEMPLE_BOSS_KEY_CHEST; case 22596: - return FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST; + return RC_FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST; case 22594: - return FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST; + return RC_FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST; case 22595: - return FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST; + return RC_FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST; case 22600: - return FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST; + return RC_FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST; case 2090: - return FIRE_TEMPLE_MAP_CHEST; + return RC_FIRE_TEMPLE_MAP_CHEST; case 22603: - return FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST; + return RC_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST; case 22598: - return FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST; + return RC_FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST; case 23245: - return FIRE_TEMPLE_SCARECROW_CHEST; + return RC_FIRE_TEMPLE_SCARECROW_CHEST; case 2055: - return FIRE_TEMPLE_COMPASS_CHEST; + return RC_FIRE_TEMPLE_COMPASS_CHEST; case 421: - return FIRE_TEMPLE_MEGATON_HAMMER_CHEST; + return RC_FIRE_TEMPLE_MEGATON_HAMMER_CHEST; case 22601: - return FIRE_TEMPLE_HIGHEST_GORON_CHEST; + return RC_FIRE_TEMPLE_HIGHEST_GORON_CHEST; } case 5: - switch(actorParams) { + switch (actorParams) { case 2057: - return WATER_TEMPLE_COMPASS_CHEST; + return RC_WATER_TEMPLE_COMPASS_CHEST; case 6178: - return WATER_TEMPLE_MAP_CHEST; + return RC_WATER_TEMPLE_MAP_CHEST; case 22592: - return WATER_TEMPLE_CRACKED_WALL_CHEST; + return RC_WATER_TEMPLE_CRACKED_WALL_CHEST; case 30785: - return WATER_TEMPLE_TORCHES_CHEST; + return RC_WATER_TEMPLE_TORCHES_CHEST; case 10213: - return WATER_TEMPLE_BOSS_KEY_CHEST; + return RC_WATER_TEMPLE_BOSS_KEY_CHEST; case 22598: - return WATER_TEMPLE_CENTRAL_PILLAR_CHEST; + return RC_WATER_TEMPLE_CENTRAL_PILLAR_CHEST; case 22600: - return WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST; + return RC_WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST; case 295: - return WATER_TEMPLE_LONGSHOT_CHEST; + return RC_WATER_TEMPLE_LONGSHOT_CHEST; case 22595: - return WATER_TEMPLE_RIVER_CHEST; + return RC_WATER_TEMPLE_RIVER_CHEST; case 22602: - return WATER_TEMPLE_DRAGON_CHEST; + return RC_WATER_TEMPLE_DRAGON_CHEST; } case 7: - switch(actorParams) { + switch (actorParams) { case 6177: - return SHADOW_TEMPLE_MAP_CHEST; + return RC_SHADOW_TEMPLE_MAP_CHEST; case 5607: - return SHADOW_TEMPLE_HOVER_BOOTS_CHEST; + return RC_SHADOW_TEMPLE_HOVER_BOOTS_CHEST; case 6147: - return SHADOW_TEMPLE_COMPASS_CHEST; + return RC_SHADOW_TEMPLE_COMPASS_CHEST; case 22594: - return SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST; + return RC_SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST; case 22668: - return SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST; + return RC_SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST; case 26998: - return SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST; + return RC_SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST; case 22853: - return SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST; + return RC_SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST; case 22662: - return SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST; + return RC_SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST; case -30652: - return SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST; + return RC_SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST; case 30857: - return SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST; + return RC_SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST; case 26965: - return SHADOW_TEMPLE_WIND_HINT_CHEST; + return RC_SHADOW_TEMPLE_WIND_HINT_CHEST; case 30856: - return SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST; + return RC_SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST; case 26708: - return SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST; + return RC_SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST; case 22666: - return SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST; + return RC_SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST; case 10219: - return SHADOW_TEMPLE_BOSS_KEY_CHEST; + return RC_SHADOW_TEMPLE_BOSS_KEY_CHEST; case 30797: - return SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST; + return RC_SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST; } case 6: - switch(actorParams) { + switch (actorParams) { case 21800: - return SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST; + return RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST; case -30656: - return SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST; + return RC_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST; case -32666: - return SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST; + return RC_SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST; case -31444: - return SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST; + return RC_SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST; case -18397: - return SPIRIT_TEMPLE_MAP_CHEST; + return RC_SPIRIT_TEMPLE_MAP_CHEST; case -30655: - return SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST; + return RC_SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST; case 14340: - return SPIRIT_TEMPLE_COMPASS_CHEST; + return RC_SPIRIT_TEMPLE_COMPASS_CHEST; case 22599: - return SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST; + return RC_SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST; case -30451: - return SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST; + return RC_SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST; case -28786: - return SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST; + return RC_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST; case -30577: - return SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST; + return RC_SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST; case -30654: - return SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST; + return RC_SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST; case 22597: - return SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST; + return RC_SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST; case 26900: - return SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST; + return RC_SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST; case 26901: - return SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST; + return RC_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST; case 10218: - return SPIRIT_TEMPLE_BOSS_KEY_CHEST; + return RC_SPIRIT_TEMPLE_BOSS_KEY_CHEST; case -29454: - return SPIRIT_TEMPLE_TOPMOST_CHEST; + return RC_SPIRIT_TEMPLE_TOPMOST_CHEST; } case 92: - switch(actorParams) { + switch (actorParams) { case 1707: - return SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST; + return RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST; case 13673: - return SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST; + return RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST; case 3334: - return COLOSSUS_FREESTANDING_POH; + return RC_COLOSSUS_FREESTANDING_POH; } case 9: - switch(actorParams) { + switch (actorParams) { case 2080: - return ICE_CAVERN_MAP_CHEST; + return RC_ICE_CAVERN_MAP_CHEST; case 2049: - return ICE_CAVERN_COMPASS_CHEST; + return RC_ICE_CAVERN_COMPASS_CHEST; case 5570: - return ICE_CAVERN_IRON_BOOTS_CHEST; + return RC_ICE_CAVERN_IRON_BOOTS_CHEST; case 262: - return ICE_CAVERN_FREESTANDING_POH; + return RC_ICE_CAVERN_FREESTANDING_POH; } case 11: - switch(actorParams) { + switch (actorParams) { case -30573: - return GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST; + return RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST; case -30393: - return GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST; + return RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST; case -30656: - return GERUDO_TRAINING_GROUND_STALFOS_CHEST; + return RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST; case 31089: - return GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST; + return RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST; case 31439: - return GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST; + return RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST; case 30862: - return GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST; + return RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST; case 26708: - return GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST; + return RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST; case 24450: - return GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST; + return RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST; case -30653: - return GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST; + return RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST; case 22596: - return GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST; + return RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST; case 31058: - return GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST; + return RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST; case 22608: - return GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST; + return RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST; case 23877: - return GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST; + return RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST; case 22888: - return GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST; + return RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST; case -30643: - return GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST; + return RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST; case -30655: - return GERUDO_TRAINING_GROUND_BEAMOS_CHEST; + return RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST; case 22603: - return GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST; + return RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST; case 23206: - return GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST; + return RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST; case 22986: - return GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST; + return RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST; case 22889: - return GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST; + return RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST; case 2860: - return GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST; + return RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST; } case 13: - switch(actorParams) { + switch (actorParams) { case 30857: - return GANONS_CASTLE_FOREST_TRIAL_CHEST; + return RC_GANONS_CASTLE_FOREST_TRIAL_CHEST; case 24455: - return GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST; + return RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST; case 22790: - return GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST; + return RC_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST; case 22664: - return GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST; + return RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST; case 14021: - return GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST; + return RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST; case 22668: - return GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST; + return RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST; case 24459: - return GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST; + return RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST; case 22797: - return GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST; + return RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST; case 24462: - return GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST; + return RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST; case 22890: - return GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST; + return RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST; case 24463: - return GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST; + return RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST; case 30800: - return GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST; + return RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST; case -30639: - return GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST; + return RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST; case -29326: - return GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST; + return RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST; case 26964: - return GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST; + return RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST; } case 10: - switch(actorParams) { + switch (actorParams) { case 10219: - return GANONS_TOWER_BOSS_KEY_CHEST; + return RC_GANONS_TOWER_BOSS_KEY_CHEST; } case 87: - switch(actorParams) { + switch (actorParams) { case 7686: - return LH_FREESTANDING_POH; + return RC_LH_FREESTANDING_POH; } case 76: - switch(actorParams) { + switch (actorParams) { case 262: - return LLR_FREESTANDING_POH; + return RC_LLR_FREESTANDING_POH; } case 55: - switch(actorParams) { + switch (actorParams) { case 262: - return KAK_IMPAS_HOUSE_FREESTANDING_POH; + return RC_KAK_IMPAS_HOUSE_FREESTANDING_POH; } case 83: - switch(actorParams) { + switch (actorParams) { case 1030: - return GRAVEYARD_FREESTANDING_POH; + return RC_GRAVEYARD_FREESTANDING_POH; } case 97: - switch(actorParams) { + switch (actorParams) { case 2054: - return DMC_VOLCANO_FREESTANDING_POH; + return RC_DMC_VOLCANO_FREESTANDING_POH; case 518: - return DMC_WALL_FREESTANDING_POH; + return RC_DMC_WALL_FREESTANDING_POH; } case 89: - switch(actorParams) { + switch (actorParams) { case 5126: - return ZF_BOTTOM_FREESTANDING_POH; + return RC_ZF_BOTTOM_FREESTANDING_POH; case 262: - return ZF_ICEBERG_FREESTANDING_POH; + return RC_ZF_ICEBERC_FREESTANDING_POH; } case 59: - // using fountainType as actorParams - switch(actorParams) { + // using fountainType as actorParams + switch (actorParams) { case 1: - return DMT_GREAT_FAIRY_REWARD; + return RC_DMT_GREAT_FAIRY_REWARD; case 2: - return DMC_GREAT_FAIRY_REWARD; + return RC_DMC_GREAT_FAIRY_REWARD; case 3: - return OGC_GREAT_FAIRY_REWARD; + return RC_OGC_GREAT_FAIRY_REWARD; } case 61: // using fountainType as actorParams - switch(actorParams) { + switch (actorParams) { case 1: - return ZF_GREAT_FAIRY_REWARD; + return RC_ZF_GREAT_FAIRY_REWARD; case 2: - return HC_GREAT_FAIRY_REWARD; + return RC_HC_GREAT_FAIRY_REWARD; case 3: - return COLOSSUS_GREAT_FAIRY_REWARD; + return RC_COLOSSUS_GREAT_FAIRY_REWARD; } } - return UNKNOWN_CHECK; + return RC_UNKNOWN_CHECK; } diff --git a/soh/soh/Enhancements/randomizer.h b/soh/soh/Enhancements/randomizer.h index 7cfe7ea3e..c7f7065a7 100644 --- a/soh/soh/Enhancements/randomizer.h +++ b/soh/soh/Enhancements/randomizer.h @@ -5,14 +5,15 @@ #include #include "../../include/ultra64.h" #include "../../include/z64item.h" -#include #include "randomizer/keys.hpp" +#include +#include class Randomizer { private: - std::unordered_map itemLocations; - GetItemID GetItemFromGet(Key randoGet, GetItemID ogItemId); - Key GetCheckFromActor(s16 actorId, s16 actorParams, s16 sceneNum); + std::unordered_map itemLocations; + GetItemID GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId); + RandomizerCheck GetCheckFromActor(s16 actorId, s16 actorParams, s16 sceneNum); GetItemID GetItemFromActor(s16 actorId, s16 actorParams, s16 sceneNum, GetItemID ogItemId); public: @@ -21,7 +22,7 @@ class Randomizer { s16 GetItemModelFromId(s16 itemId); void ParseItemLocations(SpoilerData spoilerData); - GetItemID GetRandomizedItemIdFromKnownCheck(Key randomizerCheck, GetItemID ogId); + GetItemID GetRandomizedItemIdFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId); GetItemID GetRandomizedItemId(GetItemID ogId, s16 actorId, s16 actorParams, s16 sceneNum); }; diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index ba14a69e7..90be99272 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -1038,6 +1038,6 @@ extern "C" s32 GetRandomizedItemId(GetItemID ogId, s16 actorId, s16 actorParams, return OTRGlobals::Instance->gRandomizer->GetRandomizedItemId(ogId, actorId, actorParams, sceneNum); } -extern "C" s32 GetRandomizedItemIdFromKnownCheck(Key randomizerCheck, GetItemID ogId) { +extern "C" s32 GetRandomizedItemIdFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId) { return OTRGlobals::Instance->gRandomizer->GetRandomizedItemIdFromKnownCheck(randomizerCheck, ogId); } diff --git a/soh/soh/OTRGlobals.h b/soh/soh/OTRGlobals.h index f5747689a..400503a0a 100644 --- a/soh/soh/OTRGlobals.h +++ b/soh/soh/OTRGlobals.h @@ -79,7 +79,7 @@ void ParseItemLocations(SpoilerData spoilerData); ItemID GetItemIdFromGetItem(GetItemID getItemId); s16 GetItemModelFromId(s16 itemId); s32 GetRandomizedItemId(GetItemID ogId, s16 actorId, s16 actorParams, s16 sceneNum); -s32 GetRandomizedItemIdFromKnownCheck(Key randomizerCheck, GetItemID ogId); +s32 GetRandomizedItemIdFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId); #endif #endif \ No newline at end of file