Stringify Randomizer Enums (#6223)

Moved randomizer enums from randomizerTypes.h to randomizerEnums.h and helpers
This commit is contained in:
xxAtrain223
2026-03-01 18:58:24 -06:00
committed by GitHub
parent 2c07edc4eb
commit 2b650a4979
17 changed files with 9721 additions and 9363 deletions

View File

@@ -78,6 +78,7 @@ set(CMAKE_PROJECT_GIT_COMMIT_TAG "${GIT_COMMIT_TAG}" CACHE STRING "Git commit ta
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT soh)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/utf-8>)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/Zc:preprocessor>)
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
include(CMake/automate-vcpkg.cmake)

View File

@@ -23,8 +23,6 @@ typedef struct {
std::map<uint16_t, const char*> flagDescriptions;
} FlagTable;
#define DEFINE_RAND_INF(rand_inf) { rand_inf, #rand_inf },
// Reference https://tcrf.net/Proto:The_Legend_of_Zelda:_Ocarina_of_Time_Master_Quest/Event_Editor
// The source was last referenced on 2022-09-03 and had a last updated value of 2020-05-02
const std::vector<FlagTable> flagTables = {
@@ -366,12 +364,12 @@ const std::vector<FlagTable> flagTables = {
RANDOMIZER_INF,
(RAND_INF_MAX + 15) / 16,
{
#include "soh/Enhancements/randomizer/randomizer_inf.h"
#define RANDO_ENUM_ITEM(rand_inf) { rand_inf, #rand_inf },
#include "soh/Enhancements/randomizer/randomizerEnums/RandomizerInf.h"
#undef RANDO_ENUM_ITEM
} },
};
#undef DEFINE_RAND_INF
const std::vector<std::string> state1 = {
"Loading",
"Swinging Bottle",

View File

@@ -0,0 +1,37 @@
#include "randomizerEnumStrings.h"
#include "randomizerEnums.h"
// Redefine enum macros to generate string->enum maps for every enum.
#define RANDO_ENUM_BEGIN(EnumName) \
template <> const std::unordered_map<std::string_view, EnumName>& GetStringToEnumMap<EnumName>() { \
static const std::unordered_map<std::string_view, EnumName> map = [] { \
std::unordered_map<std::string_view, EnumName> m;
#define RANDO_ENUM_ITEM(name, ...) m.emplace(#name, name);
#define RANDO_ENUM_END(EnumName) \
return m; \
} \
(); \
return map; \
}
#include "randomizerEnums.h"
// Redefine enum macros to generate enum->string maps for every enum.
#define RANDO_ENUM_BEGIN(EnumName) \
template <> const std::unordered_map<EnumName, std::string_view>& GetEnumToStringMap<EnumName>() { \
static const std::unordered_map<EnumName, std::string_view> map = [] { \
std::unordered_map<EnumName, std::string_view> m;
#define RANDO_ENUM_ITEM(name, ...) m.emplace(name, #name);
#define RANDO_ENUM_END(EnumName) \
return m; \
} \
(); \
return map; \
}
#include "randomizerEnums.h"

View File

@@ -0,0 +1,29 @@
#pragma once
#include <unordered_map>
#include <string_view>
#include <optional>
template <typename T> const std::unordered_map<std::string_view, T>& GetStringToEnumMap();
template <typename T> std::optional<T> StringToEnum(const std::string_view& str) {
const auto& map = GetStringToEnumMap<T>();
auto it = map.find(str);
if (it != map.end()) {
return it->second;
} else {
return std::nullopt;
}
}
template <typename T> const std::unordered_map<T, std::string_view>& GetEnumToStringMap();
template <typename T> std::optional<std::string_view> EnumToString(const T& value) {
const auto& map = GetEnumToStringMap<T>();
auto it = map.find(value);
if (it != map.end()) {
return it->second;
} else {
return std::nullopt;
}
}

View File

@@ -0,0 +1,29 @@
// Default expansion: real enums
#if !defined(RANDO_ENUM_BEGIN) && !defined(RANDO_ENUM_ITEM) && !defined(RANDO_ENUM_END)
// clang-format off
#define RANDO_ENUM_BEGIN(EnumName) typedef enum EnumName {
#define RANDO_ENUM_ITEM(name, ...) name __VA_OPT__(=) __VA_ARGS__,
#define RANDO_ENUM_END(EnumName) } EnumName;
#define RANDO_ENUM__CLEANUP
// clang-format on
#endif
#include "randomizerEnums/LogicVal.h"
#include "randomizerEnums/RandomizerCheck.h"
#include "randomizerEnums/RandomizerGet.h"
#include "randomizerEnums/RandomizerHintTextKey.h"
#include "randomizerEnums/RandomizerInf.h"
#include "randomizerEnums/RandomizerMiscEnums.h"
#include "randomizerEnums/RandomizerOptions.h"
#include "randomizerEnums/RandomizerRegion.h"
#include "randomizerEnums/RandomizerSettingKey.h"
#include "randomizerEnums/RandomizerTrick.h"
// Clean up only the defaults we defined.
#ifdef RANDO_ENUM__CLEANUP
#undef RANDO_ENUM_BEGIN
#undef RANDO_ENUM_ITEM
#undef RANDO_ENUM_END
#undef RANDO_ENUM__CLEANUP
#endif

View File

@@ -0,0 +1,350 @@
#ifndef RANDO_ENUM_BEGIN
#define RANDO_ENUM_BEGIN(...)
#define RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifndef RANDO_ENUM_ITEM
#define RANDO_ENUM_ITEM(...)
#define RANDO_ENUM_ITEM_CLEANUP
#endif
#ifndef RANDO_ENUM_END
#define RANDO_ENUM_END(...)
#define RANDO_ENUM_END_CLEANUP
#endif
RANDO_ENUM_BEGIN(LogicVal)
RANDO_ENUM_ITEM(LOGIC_NONE)
RANDO_ENUM_ITEM(LOGIC_KOKIRI_SWORD)
RANDO_ENUM_ITEM(LOGIC_MASTER_SWORD)
RANDO_ENUM_ITEM(LOGIC_BIGGORON_SWORD)
RANDO_ENUM_ITEM(LOGIC_DEKU_SHIELD)
RANDO_ENUM_ITEM(LOGIC_HYLIAN_SHIELD)
RANDO_ENUM_ITEM(LOGIC_MIRROR_SHIELD)
RANDO_ENUM_ITEM(LOGIC_GORON_TUNIC)
RANDO_ENUM_ITEM(LOGIC_ZORA_TUNIC)
RANDO_ENUM_ITEM(LOGIC_IRON_BOOTS)
RANDO_ENUM_ITEM(LOGIC_HOVER_BOOTS)
RANDO_ENUM_ITEM(LOGIC_BOOMERANG)
RANDO_ENUM_ITEM(LOGIC_LENS_OF_TRUTH)
RANDO_ENUM_ITEM(LOGIC_HAMMER)
RANDO_ENUM_ITEM(LOGIC_STONE_OF_AGONY)
RANDO_ENUM_ITEM(LOGIC_DINS_FIRE)
RANDO_ENUM_ITEM(LOGIC_FARORES_WIND)
RANDO_ENUM_ITEM(LOGIC_NAYRUS_LOVE)
RANDO_ENUM_ITEM(LOGIC_FIRE_ARROWS)
RANDO_ENUM_ITEM(LOGIC_ICE_ARROWS)
RANDO_ENUM_ITEM(LOGIC_LIGHT_ARROWS)
RANDO_ENUM_ITEM(LOGIC_GERUDO_CARD)
RANDO_ENUM_ITEM(LOGIC_MAGIC_BEAN)
RANDO_ENUM_ITEM(LOGIC_MAGIC_BEANPACK)
RANDO_ENUM_ITEM(LOGIC_DOUBLE_DEFENSE)
RANDO_ENUM_ITEM(LOGIC_WEIRD_EGG)
RANDO_ENUM_ITEM(LOGIC_ZELDAS_LETTER)
RANDO_ENUM_ITEM(LOGIC_POCKET_EGG)
RANDO_ENUM_ITEM(LOGIC_COJIRO)
RANDO_ENUM_ITEM(LOGIC_ODD_MUSHROOM)
RANDO_ENUM_ITEM(LOGIC_ODD_POULTICE)
RANDO_ENUM_ITEM(LOGIC_POACHERS_SAW)
RANDO_ENUM_ITEM(LOGIC_BROKEN_SWORD)
RANDO_ENUM_ITEM(LOGIC_PRESCRIPTION)
RANDO_ENUM_ITEM(LOGIC_EYEBALL_FROG)
RANDO_ENUM_ITEM(LOGIC_EYEDROPS)
RANDO_ENUM_ITEM(LOGIC_CLAIM_CHECK)
RANDO_ENUM_ITEM(LOGIC_GOLD_SKULLTULA_TOKENS)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_HOOKSHOT)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_STRENGTH)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_BOMB_BAG)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_BOW)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_BULLET_BAG)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_STICK_BAG)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_NUT_BAG)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_WALLET)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_SCALE)
RANDO_ENUM_ITEM(LOGIC_BOMBCHUS)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_MAGIC)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_OCARINA)
RANDO_ENUM_ITEM(LOGIC_PROGRESSIVE_GIANT_KNIFE)
RANDO_ENUM_ITEM(LOGIC_BOTTLES)
RANDO_ENUM_ITEM(LOGIC_RUTOS_LETTER)
RANDO_ENUM_ITEM(LOGIC_BOTTLE_WITH_BIG_POE)
RANDO_ENUM_ITEM(LOGIC_ZELDAS_LULLABY)
RANDO_ENUM_ITEM(LOGIC_EPONAS_SONG)
RANDO_ENUM_ITEM(LOGIC_SARIAS_SONG)
RANDO_ENUM_ITEM(LOGIC_SUNS_SONG)
RANDO_ENUM_ITEM(LOGIC_SONG_OF_TIME)
RANDO_ENUM_ITEM(LOGIC_SONG_OF_STORMS)
RANDO_ENUM_ITEM(LOGIC_MINUET_OF_FOREST)
RANDO_ENUM_ITEM(LOGIC_BOLERO_OF_FIRE)
RANDO_ENUM_ITEM(LOGIC_SERENADE_OF_WATER)
RANDO_ENUM_ITEM(LOGIC_NOCTURNE_OF_SHADOW)
RANDO_ENUM_ITEM(LOGIC_REQUIEM_OF_SPIRIT)
RANDO_ENUM_ITEM(LOGIC_PRELUDE_OF_LIGHT)
RANDO_ENUM_ITEM(LOGIC_MAP_DEKU_TREE)
RANDO_ENUM_ITEM(LOGIC_MAP_DODONGOS_CAVERN)
RANDO_ENUM_ITEM(LOGIC_MAP_JABU_JABUS_BELLY)
RANDO_ENUM_ITEM(LOGIC_MAP_FOREST_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_MAP_FIRE_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_MAP_WATER_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_MAP_SPIRIT_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_MAP_SHADOW_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_MAP_BOTTOM_OF_THE_WELL)
RANDO_ENUM_ITEM(LOGIC_MAP_ICE_CAVERN)
RANDO_ENUM_ITEM(LOGIC_COMPASS_DEKU_TREE)
RANDO_ENUM_ITEM(LOGIC_COMPASS_DODONGOS_CAVERN)
RANDO_ENUM_ITEM(LOGIC_COMPASS_JABU_JABUS_BELLY)
RANDO_ENUM_ITEM(LOGIC_COMPASS_FOREST_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_COMPASS_FIRE_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_COMPASS_WATER_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_COMPASS_SPIRIT_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_COMPASS_SHADOW_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_COMPASS_BOTTOM_OF_THE_WELL)
RANDO_ENUM_ITEM(LOGIC_COMPASS_ICE_CAVERN)
RANDO_ENUM_ITEM(LOGIC_BOSS_KEY_FOREST_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_BOSS_KEY_FIRE_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_BOSS_KEY_WATER_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_BOSS_KEY_SPIRIT_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_BOSS_KEY_SHADOW_TEMPLE)
RANDO_ENUM_ITEM(LOGIC_BOSS_KEY_GANONS_CASTLE)
RANDO_ENUM_ITEM(LOGIC_FOREST_TEMPLE_KEYS)
RANDO_ENUM_ITEM(LOGIC_FIRE_TEMPLE_KEYS)
RANDO_ENUM_ITEM(LOGIC_WATER_TEMPLE_KEYS)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_TEMPLE_KEYS)
RANDO_ENUM_ITEM(LOGIC_SHADOW_TEMPLE_KEYS)
RANDO_ENUM_ITEM(LOGIC_BOTTOM_OF_THE_WELL_KEYS)
RANDO_ENUM_ITEM(LOGIC_GERUDO_TRAINING_GROUND_KEYS)
RANDO_ENUM_ITEM(LOGIC_GERUDO_FORTRESS_KEYS)
RANDO_ENUM_ITEM(LOGIC_GANONS_CASTLE_KEYS)
RANDO_ENUM_ITEM(LOGIC_TREASURE_GAME_KEYS)
RANDO_ENUM_ITEM(LOGIC_SKELETON_KEY)
RANDO_ENUM_ITEM(LOGIC_GUARD_HOUSE_KEY)
RANDO_ENUM_ITEM(LOGIC_MARKET_BAZAAR_KEY)
RANDO_ENUM_ITEM(LOGIC_MARKET_POTION_SHOP_KEY)
RANDO_ENUM_ITEM(LOGIC_MASK_SHOP_KEY)
RANDO_ENUM_ITEM(LOGIC_MARKET_SHOOTING_GALLERY_KEY)
RANDO_ENUM_ITEM(LOGIC_BOMBCHU_BOWLING_KEY)
RANDO_ENUM_ITEM(LOGIC_TREASURE_CHEST_GAME_BUILDING_KEY)
RANDO_ENUM_ITEM(LOGIC_BOMBCHU_SHOP_KEY)
RANDO_ENUM_ITEM(LOGIC_RICHARDS_HOUSE_KEY)
RANDO_ENUM_ITEM(LOGIC_ALLEY_HOUSE_KEY)
RANDO_ENUM_ITEM(LOGIC_KAK_BAZAAR_KEY)
RANDO_ENUM_ITEM(LOGIC_KAK_POTION_SHOP_KEY)
RANDO_ENUM_ITEM(LOGIC_BOSS_HOUSE_KEY)
RANDO_ENUM_ITEM(LOGIC_GRANNYS_POTION_SHOP_KEY)
RANDO_ENUM_ITEM(LOGIC_SKULLTULA_HOUSE_KEY)
RANDO_ENUM_ITEM(LOGIC_IMPAS_HOUSE_KEY)
RANDO_ENUM_ITEM(LOGIC_WINDMILL_KEY)
RANDO_ENUM_ITEM(LOGIC_KAK_SHOOTING_GALLERY_KEY)
RANDO_ENUM_ITEM(LOGIC_DAMPES_HUT_KEY)
RANDO_ENUM_ITEM(LOGIC_TALONS_HOUSE_KEY)
RANDO_ENUM_ITEM(LOGIC_STABLES_KEY)
RANDO_ENUM_ITEM(LOGIC_BACK_TOWER_KEY)
RANDO_ENUM_ITEM(LOGIC_HYLIA_LAB_KEY)
RANDO_ENUM_ITEM(LOGIC_FISHING_HOLE_KEY)
RANDO_ENUM_ITEM(LOGIC_KOKIRI_EMERALD)
RANDO_ENUM_ITEM(LOGIC_GORON_RUBY)
RANDO_ENUM_ITEM(LOGIC_ZORA_SAPPHIRE)
RANDO_ENUM_ITEM(LOGIC_FOREST_MEDALLION)
RANDO_ENUM_ITEM(LOGIC_FIRE_MEDALLION)
RANDO_ENUM_ITEM(LOGIC_WATER_MEDALLION)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MEDALLION)
RANDO_ENUM_ITEM(LOGIC_SHADOW_MEDALLION)
RANDO_ENUM_ITEM(LOGIC_LIGHT_MEDALLION)
RANDO_ENUM_ITEM(LOGIC_GREG)
RANDO_ENUM_ITEM(LOGIC_PIECE_OF_HEART)
RANDO_ENUM_ITEM(LOGIC_HEART_CONTAINER)
RANDO_ENUM_ITEM(LOGIC_BUY_ARROW)
RANDO_ENUM_ITEM(LOGIC_BUY_BOMB)
RANDO_ENUM_ITEM(LOGIC_NUT_ACCESS)
RANDO_ENUM_ITEM(LOGIC_STICK_ACCESS)
RANDO_ENUM_ITEM(LOGIC_FISH_ACCESS)
RANDO_ENUM_ITEM(LOGIC_BUY_MAGIC_POTION)
RANDO_ENUM_ITEM(LOGIC_BUY_BOMBCHUS)
RANDO_ENUM_ITEM(LOGIC_BUY_SEED)
RANDO_ENUM_ITEM(LOGIC_BLUE_FIRE_ACCESS)
RANDO_ENUM_ITEM(LOGIC_BUG_ACCESS)
RANDO_ENUM_ITEM(LOGIC_FAIRY_ACCESS)
RANDO_ENUM_ITEM(LOGIC_CAN_SUMMON_GOHMA)
RANDO_ENUM_ITEM(LOGIC_CAN_SUMMON_KINGDODONGO)
RANDO_ENUM_ITEM(LOGIC_CAN_SUMMON_BARINADE)
RANDO_ENUM_ITEM(LOGIC_CAN_SUMMON_PHANTOMGANON)
RANDO_ENUM_ITEM(LOGIC_CAN_SUMMON_VOLVAGIA)
RANDO_ENUM_ITEM(LOGIC_CAN_SUMMON_MORPHA)
RANDO_ENUM_ITEM(LOGIC_CAN_SUMMON_BONGOBONGO)
RANDO_ENUM_ITEM(LOGIC_CAN_SUMMON_TWINROVA)
RANDO_ENUM_ITEM(LOGIC_CAN_SUMMON_GANON)
RANDO_ENUM_ITEM(LOGIC_FISHING_POLE)
RANDO_ENUM_ITEM(LOGIC_OCARINA_A_BUTTON)
RANDO_ENUM_ITEM(LOGIC_OCARINA_C_UP_BUTTON)
RANDO_ENUM_ITEM(LOGIC_OCARINA_C_DOWN_BUTTON)
RANDO_ENUM_ITEM(LOGIC_OCARINA_C_LEFT_BUTTON)
RANDO_ENUM_ITEM(LOGIC_OCARINA_C_RIGHT_BUTTON)
RANDO_ENUM_ITEM(LOGIC_TRIFORCE_PIECES)
RANDO_ENUM_ITEM(LOGIC_ROCS_FEATHER)
RANDO_ENUM_ITEM(LOGIC_CAN_BORROW_MASKS)
RANDO_ENUM_ITEM(LOGIC_BORROW_SKULL_MASK)
RANDO_ENUM_ITEM(LOGIC_BORROW_SPOOKY_MASK)
RANDO_ENUM_ITEM(LOGIC_BORROW_BUNNY_HOOD)
RANDO_ENUM_ITEM(LOGIC_BORROW_RIGHT_MASKS)
RANDO_ENUM_ITEM(LOGIC_FREED_EPONA)
RANDO_ENUM_ITEM(LOGIC_DEKU_TREE_CLEAR)
RANDO_ENUM_ITEM(LOGIC_DODONGOS_CAVERN_CLEAR)
RANDO_ENUM_ITEM(LOGIC_JABU_JABUS_BELLY_CLEAR)
RANDO_ENUM_ITEM(LOGIC_FOREST_TEMPLE_CLEAR)
RANDO_ENUM_ITEM(LOGIC_FIRE_TEMPLE_CLEAR)
RANDO_ENUM_ITEM(LOGIC_WATER_TEMPLE_CLEAR)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_TEMPLE_CLEAR)
RANDO_ENUM_ITEM(LOGIC_SHADOW_TEMPLE_CLEAR)
RANDO_ENUM_ITEM(LOGIC_FOREST_TRIAL_CLEAR)
RANDO_ENUM_ITEM(LOGIC_FIRE_TRIAL_CLEAR)
RANDO_ENUM_ITEM(LOGIC_WATER_TRIAL_CLEAR)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_TRIAL_CLEAR)
RANDO_ENUM_ITEM(LOGIC_SHADOW_TRIAL_CLEAR)
RANDO_ENUM_ITEM(LOGIC_LIGHT_TRIAL_CLEAR)
RANDO_ENUM_ITEM(LOGIC_CAN_EMPTY_BIG_POES)
RANDO_ENUM_ITEM(LOGIC_CHILD_SCARECROW)
RANDO_ENUM_ITEM(LOGIC_ADULT_SCARECROW)
RANDO_ENUM_ITEM(LOGIC_CARPET_MERCHANT)
RANDO_ENUM_ITEM(LOGIC_MEDIGORON)
RANDO_ENUM_ITEM(LOGIC_COULD_PLAY_BOWLING)
RANDO_ENUM_ITEM(LOGIC_BIG_POE_KILL)
RANDO_ENUM_ITEM(LOGIC_BUILD_RAINBOW_BRIDGE)
RANDO_ENUM_ITEM(LOGIC_SHOWED_MIDO_SWORD_AND_SHIELD)
RANDO_ENUM_ITEM(LOGIC_TH_COULD_FREE_1_TORCH_CARPENTER)
RANDO_ENUM_ITEM(LOGIC_TH_COULD_FREE_DOUBLE_CELL_CARPENTER)
RANDO_ENUM_ITEM(LOGIC_TH_COULD_FREE_DEAD_END_CARPENTER)
RANDO_ENUM_ITEM(LOGIC_TH_COULD_FREE_SLOPE_CARPENTER)
RANDO_ENUM_ITEM(LOGIC_TH_RESCUED_ALL_CARPENTERS)
RANDO_ENUM_ITEM(LOGIC_GF_GATE_OPEN)
RANDO_ENUM_ITEM(LOGIC_GTG_GATE_OPEN)
RANDO_ENUM_ITEM(LOGIC_DRAIN_WELL)
RANDO_ENUM_ITEM(LOGIC_GORON_CITY_CHILD_FIRE)
RANDO_ENUM_ITEM(LOGIC_GORON_CITY_WOODS_WARP_OPEN)
RANDO_ENUM_ITEM(LOGIC_GORON_CITY_DARUNIAS_DOOR_OPEN_CHILD)
RANDO_ENUM_ITEM(LOGIC_GORON_CITY_STOP_ROLLING_GORON_AS_ADULT)
RANDO_ENUM_ITEM(LOGIC_DEKU_TREE_1F_BROKE_WEB)
RANDO_ENUM_ITEM(LOGIC_DEKU_TREE_B1_BROKE_WEB)
RANDO_ENUM_ITEM(LOGIC_DEKU_TREE_PUSHED_BASEMENT_BLOCK)
RANDO_ENUM_ITEM(LOGIC_DEKU_TREE_MQ_CLEARED_SE_ROOM)
RANDO_ENUM_ITEM(LOGIC_DEKU_TREE_MQ_WATER_ROOM_TORCHES)
RANDO_ENUM_ITEM(LOGIC_DEKU_TREE_MQ_2F_BURNED_WEB)
RANDO_ENUM_ITEM(LOGIC_DC_EYES_LIT)
RANDO_ENUM_ITEM(LOGIC_DC_STAIRS_ROOM_DOOR)
RANDO_ENUM_ITEM(LOGIC_DC_LIFT_PLATFORM)
RANDO_ENUM_ITEM(LOGIC_DC_KILLED_LOWER_LIZALFOS)
RANDO_ENUM_ITEM(LOGIC_DC_MQ_CLEAR_UPPER_LOBBY_ROCKS)
RANDO_ENUM_ITEM(LOGIC_DC_MQ_STAIRS_SILVER_RUPEES)
RANDO_ENUM_ITEM(LOGIC_DC_MQ_BEHIND_FIRE_SWITCH)
RANDO_ENUM_ITEM(LOGIC_JABU_RUTO_IN_1F)
RANDO_ENUM_ITEM(LOGIC_JABU_WEST_TENTACLE)
RANDO_ENUM_ITEM(LOGIC_JABU_EAST_TENTACLE)
RANDO_ENUM_ITEM(LOGIC_JABU_NORTH_TENTACLE)
RANDO_ENUM_ITEM(LOGIC_JABU_LOWERED_PATH)
RANDO_ENUM_ITEM(LOGIC_JABU_MQ_HOLES_ROOM_DOOR)
RANDO_ENUM_ITEM(LOGIC_JABU_MQ_LIFT_ROOM_COW)
RANDO_ENUM_ITEM(LOGIC_JABU_MQ_WATER_SWITCH_LIFT_ACCESS)
RANDO_ENUM_ITEM(LOGIC_JABU_MQ_FORKED_ROOM_DOOR)
RANDO_ENUM_ITEM(LOGIC_FOREST_DRAINED_WELL)
RANDO_ENUM_ITEM(LOGIC_FOREST_SUMMON_NE_SCARECROW)
RANDO_ENUM_ITEM(LOGIC_FOREST_MQ_BLOCK_ROOM_TARGETS)
RANDO_ENUM_ITEM(LOGIC_FOREST_MQ_BURNED_WEB)
RANDO_ENUM_ITEM(LOGIC_FOREST_CAN_TWIST_HALLWAY)
RANDO_ENUM_ITEM(LOGIC_FOREST_CLEAR_BETWEEN_JOELLE_AND_BETH)
RANDO_ENUM_ITEM(LOGIC_FOREST_OPEN_BOSS_HALLWAY)
RANDO_ENUM_ITEM(LOGIC_FOREST_JOELLE)
RANDO_ENUM_ITEM(LOGIC_FOREST_BETH)
RANDO_ENUM_ITEM(LOGIC_FOREST_AMY)
RANDO_ENUM_ITEM(LOGIC_FOREST_MEG)
RANDO_ENUM_ITEM(LOGIC_FIRE_LOOP_SWITCH)
RANDO_ENUM_ITEM(LOGIC_FIRE_OPENED_SHORTCUT_CLIMB)
RANDO_ENUM_ITEM(LOGIC_FIRE_OPENED_LOWEST_GORON_CAGE)
RANDO_ENUM_ITEM(LOGIC_FIRE_OPENED_UPPER_SHORTCUT)
RANDO_ENUM_ITEM(LOGIC_FIRE_HIT_PLATFORM)
RANDO_ENUM_ITEM(LOGIC_FIRE_HIT_STAIRS)
RANDO_ENUM_ITEM(LOGIC_FIRE_CHILD_AT_TOP_OF_STAIRS)
RANDO_ENUM_ITEM(LOGIC_FIRE_HIT_ABOVE_MAZE_PLATFORM)
RANDO_ENUM_ITEM(LOGIC_FIRE_MQ_OPENED_FIRE_MAZE_DOOR)
RANDO_ENUM_ITEM(LOGIC_FIRE_MQ_HIT_SCARECROW_ROOM_PLATFORM)
RANDO_ENUM_ITEM(LOGIC_FIRE_MQ_HIGH_TORCH_LIT)
RANDO_ENUM_ITEM(LOGIC_WATER_LOW)
RANDO_ENUM_ITEM(LOGIC_WATER_MIDDLE)
RANDO_ENUM_ITEM(LOGIC_WATER_HIGH)
RANDO_ENUM_ITEM(LOGIC_WATER_COULD_LOW)
RANDO_ENUM_ITEM(LOGIC_WATER_COULD_LOW_FROM_HIGH)
RANDO_ENUM_ITEM(LOGIC_WATER_COULD_MIDDLE)
RANDO_ENUM_ITEM(LOGIC_WATER_COULD_HIGH_FROM_MID)
RANDO_ENUM_ITEM(LOGIC_WATER_PUSHED_1F_BLOCK)
RANDO_ENUM_ITEM(LOGIC_WATER_SCARECROW)
RANDO_ENUM_ITEM(LOGIC_WATER_MQ_STALFOS_PIT)
RANDO_ENUM_ITEM(LOGIC_WATER_MQ_DRAGON_TORCHES)
RANDO_ENUM_ITEM(LOGIC_WATER_MQ_B1_SWITCH)
RANDO_ENUM_ITEM(LOGIC_WATER_MQ_B1_OPENED_PILLAR)
RANDO_ENUM_ITEM(LOGIC_WATER_MQ_PILLAR_SOT_BLOCK)
RANDO_ENUM_ITEM(LOGIC_WATER_MQ_SIDE_TOWER_TARGETS)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_1F_SILVER_RUPEES)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_CHILD_SWITCH_BRIDGE)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_SILVER_RUPEE_BRIDGE)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_SILVER_RUPEE_BRIDGE_TORCHES)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_SUN_BLOCK_TORCH)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_BOUNDERS_SILVERS)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_STATUE_SOUTH_DOOR)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_NABOORU_KIDNAPPED)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_PLATFORM_LOWERED)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_4F_SWITCH)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_PUSHED_4F_MIRRORS)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MQ_GIBDOS_CLEARED)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MQ_CRAWL_BOULDER)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MQ_TURNTABLE_ENEMY)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MQ_MAP_ROOM_ENEMIES)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MQ_TIME_TRAVEL_CHEST)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MQ_STATUE_ROOM_TORCHES)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MQ_3SUNS_ENEMIES)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MQ_SYMPHONY_ROOM_DOOR)
RANDO_ENUM_ITEM(LOGIC_SPIRIT_MQ_BIG_WALL_SILVERS)
RANDO_ENUM_ITEM(LOGIC_REVERSE_SPIRIT_CHILD)
RANDO_ENUM_ITEM(LOGIC_REVERSE_SPIRIT_ADULT)
RANDO_ENUM_ITEM(LOGIC_FORWARDS_SPIRIT_CHILD)
RANDO_ENUM_ITEM(LOGIC_FORWARDS_SPIRIT_ADULT)
RANDO_ENUM_ITEM(LOGIC_SHADOW_SHORTCUT_BLOCK)
RANDO_ENUM_ITEM(LOGIC_SHADOW_BRIDGE_BEYOND_BOAT_LOWERED)
RANDO_ENUM_ITEM(LOGIC_SHADOW_MQ_FLOOR_SPIKES_RUPEES)
RANDO_ENUM_ITEM(LOGIC_SHADOW_MQ_PIT_STAIRS)
RANDO_ENUM_ITEM(LOGIC_SHADOW_MQ_SWITCH_ACROSS_CHASM)
RANDO_ENUM_ITEM(LOGIC_SHADOW_MQ_EYE_SWITCH_ACROSS_CHASM)
RANDO_ENUM_ITEM(LOGIC_WAKE_UP_ADULT_TALON)
RANDO_ENUM_ITEM(LOGIC_KAKARIKO_GATE_OPEN)
RANDO_ENUM_ITEM(LOGIC_DELIVER_RUTOS_LETTER)
RANDO_ENUM_ITEM(LOGIC_KING_ZORA_THAWED)
RANDO_ENUM_ITEM(LOGIC_LINKS_COW)
RANDO_ENUM_ITEM(LOGIC_BOTW_LOWERED_WATER)
RANDO_ENUM_ITEM(LOGIC_BOTW_MQ_OPENED_GATES)
RANDO_ENUM_ITEM(LOGIC_BOTW_MQ_OPENED_WEST_ROOM)
RANDO_ENUM_ITEM(LOGIC_BOTW_MQ_OPENED_MIDDLE_HOLE)
RANDO_ENUM_ITEM(LOGIC_GTG_MQ_MAZE_SWITCH)
RANDO_ENUM_ITEM(LOGIC_GTG_MQ_RIGHT_SIDE_SWITCH)
RANDO_ENUM_ITEM(LOGIC_GTG_PLATFORM_SILVER_RUPEES)
RANDO_ENUM_ITEM(LOGIC_GTG_UNLOCKED_DOOR_BEHIND_HEAVY_BLOCK)
RANDO_ENUM_ITEM(LOGIC_GTG_PUSHED_HEAVY_BLOCK)
RANDO_ENUM_ITEM(LOGIC_GTG_CLEARED_EYE_STATUE)
RANDO_ENUM_ITEM(LOGIC_FOREST_TRIAL_SILVER_RUPEES)
RANDO_ENUM_ITEM(LOGIC_FOREST_TRIAL_MQ_SPAWN_BEAMOS_CHEST)
RANDO_ENUM_ITEM(LOGIC_FIRE_TRIAL_SILVER_RUPEES)
RANDO_ENUM_ITEM(LOGIC_WATER_TRIAL_RUSTED_SWITCH)
RANDO_ENUM_ITEM(LOGIC_WATER_TRIAL_MQ_SILVER_RUPEES)
RANDO_ENUM_ITEM(LOGIC_WATER_TRIAL_MQ_MELTED_FINAL_DOOR_RED_ICE)
RANDO_ENUM_ITEM(LOGIC_SHADOW_TRIAL_FIRST_CHEST)
RANDO_ENUM_ITEM(LOGIC_SHADOW_TRIAL_LOWER_SWITCH)
RANDO_ENUM_ITEM(LOGIC_SHADOW_TRIAL_RUSTED_SWITCH)
RANDO_ENUM_ITEM(LOGIC_MAX)
RANDO_ENUM_END(LogicVal)
#ifdef RANDO_ENUM_BEGIN_CLEANUP
#undef RANDO_ENUM_BEGIN
#undef RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifdef RANDO_ENUM_ITEM_CLEANUP
#undef RANDO_ENUM_ITEM
#undef RANDO_ENUM_ITEM_CLEANUP
#endif
#ifdef RANDO_ENUM_END_CLEANUP
#undef RANDO_ENUM_END
#undef RANDO_ENUM_END_CLEANUP
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,340 @@
#ifndef RANDO_ENUM_BEGIN
#define RANDO_ENUM_BEGIN(...)
#define RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifndef RANDO_ENUM_ITEM
#define RANDO_ENUM_ITEM(...)
#define RANDO_ENUM_ITEM_CLEANUP
#endif
#ifndef RANDO_ENUM_END
#define RANDO_ENUM_END(...)
#define RANDO_ENUM_END_CLEANUP
#endif
// based on https://github.com/TestRunnerSRL/OoT-Randomizer/blob/e337d7f603b91a6bacb618fb32cc7fd70ed9ffca/ItemList.py
RANDO_ENUM_BEGIN(RandomizerGet)
RANDO_ENUM_ITEM(RG_NONE)
RANDO_ENUM_ITEM(RG_KOKIRI_SWORD)
RANDO_ENUM_ITEM(RG_MASTER_SWORD)
RANDO_ENUM_ITEM(RG_GIANTS_KNIFE)
RANDO_ENUM_ITEM(RG_BIGGORON_SWORD)
RANDO_ENUM_ITEM(RG_DEKU_SHIELD)
RANDO_ENUM_ITEM(RG_HYLIAN_SHIELD)
RANDO_ENUM_ITEM(RG_MIRROR_SHIELD)
RANDO_ENUM_ITEM(RG_GORON_TUNIC)
RANDO_ENUM_ITEM(RG_ZORA_TUNIC)
RANDO_ENUM_ITEM(RG_IRON_BOOTS)
RANDO_ENUM_ITEM(RG_HOVER_BOOTS)
RANDO_ENUM_ITEM(RG_BOOMERANG)
RANDO_ENUM_ITEM(RG_LENS_OF_TRUTH)
RANDO_ENUM_ITEM(RG_MEGATON_HAMMER)
RANDO_ENUM_ITEM(RG_STONE_OF_AGONY)
RANDO_ENUM_ITEM(RG_DINS_FIRE)
RANDO_ENUM_ITEM(RG_FARORES_WIND)
RANDO_ENUM_ITEM(RG_NAYRUS_LOVE)
RANDO_ENUM_ITEM(RG_FIRE_ARROWS)
RANDO_ENUM_ITEM(RG_ICE_ARROWS)
RANDO_ENUM_ITEM(RG_LIGHT_ARROWS)
RANDO_ENUM_ITEM(RG_GERUDO_MEMBERSHIP_CARD)
RANDO_ENUM_ITEM(RG_MAGIC_BEAN)
RANDO_ENUM_ITEM(RG_MAGIC_BEAN_PACK)
RANDO_ENUM_ITEM(RG_DOUBLE_DEFENSE)
RANDO_ENUM_ITEM(RG_WEIRD_EGG)
RANDO_ENUM_ITEM(RG_ZELDAS_LETTER)
RANDO_ENUM_ITEM(RG_POCKET_EGG)
RANDO_ENUM_ITEM(RG_COJIRO)
RANDO_ENUM_ITEM(RG_ODD_MUSHROOM)
RANDO_ENUM_ITEM(RG_ODD_POTION)
RANDO_ENUM_ITEM(RG_POACHERS_SAW)
RANDO_ENUM_ITEM(RG_BROKEN_SWORD)
RANDO_ENUM_ITEM(RG_PRESCRIPTION)
RANDO_ENUM_ITEM(RG_EYEBALL_FROG)
RANDO_ENUM_ITEM(RG_EYEDROPS)
RANDO_ENUM_ITEM(RG_CLAIM_CHECK)
RANDO_ENUM_ITEM(RG_GOLD_SKULLTULA_TOKEN)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_HOOKSHOT)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_STRENGTH)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_BOMB_BAG)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_BOW)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_SLINGSHOT)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_WALLET)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_SCALE)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_NUT_UPGRADE)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_STICK_UPGRADE)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_MAGIC_METER)
RANDO_ENUM_ITEM(RG_MAGIC_SINGLE) // Added for refactor of GetItemEntries
RANDO_ENUM_ITEM(RG_MAGIC_DOUBLE) // Added for refactor of GetItemEntries
RANDO_ENUM_ITEM(RG_PROGRESSIVE_OCARINA)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_GORONSWORD)
RANDO_ENUM_ITEM(RG_EMPTY_BOTTLE)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_MILK)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_RED_POTION)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_GREEN_POTION)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_BLUE_POTION)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_FAIRY)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_FISH)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_BLUE_FIRE)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_BUGS)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_POE)
RANDO_ENUM_ITEM(RG_RUTOS_LETTER)
RANDO_ENUM_ITEM(RG_BOTTLE_WITH_BIG_POE)
RANDO_ENUM_ITEM(RG_ZELDAS_LULLABY)
RANDO_ENUM_ITEM(RG_EPONAS_SONG)
RANDO_ENUM_ITEM(RG_SARIAS_SONG)
RANDO_ENUM_ITEM(RG_SUNS_SONG)
RANDO_ENUM_ITEM(RG_SONG_OF_TIME)
RANDO_ENUM_ITEM(RG_SONG_OF_STORMS)
RANDO_ENUM_ITEM(RG_MINUET_OF_FOREST)
RANDO_ENUM_ITEM(RG_BOLERO_OF_FIRE)
RANDO_ENUM_ITEM(RG_SERENADE_OF_WATER)
RANDO_ENUM_ITEM(RG_REQUIEM_OF_SPIRIT)
RANDO_ENUM_ITEM(RG_NOCTURNE_OF_SHADOW)
RANDO_ENUM_ITEM(RG_PRELUDE_OF_LIGHT)
RANDO_ENUM_ITEM(RG_DEKU_TREE_MAP)
RANDO_ENUM_ITEM(RG_DODONGOS_CAVERN_MAP)
RANDO_ENUM_ITEM(RG_JABU_JABUS_BELLY_MAP)
RANDO_ENUM_ITEM(RG_FOREST_TEMPLE_MAP)
RANDO_ENUM_ITEM(RG_FIRE_TEMPLE_MAP)
RANDO_ENUM_ITEM(RG_WATER_TEMPLE_MAP)
RANDO_ENUM_ITEM(RG_SPIRIT_TEMPLE_MAP)
RANDO_ENUM_ITEM(RG_SHADOW_TEMPLE_MAP)
RANDO_ENUM_ITEM(RG_BOTTOM_OF_THE_WELL_MAP)
RANDO_ENUM_ITEM(RG_ICE_CAVERN_MAP)
RANDO_ENUM_ITEM(RG_DEKU_TREE_COMPASS)
RANDO_ENUM_ITEM(RG_DODONGOS_CAVERN_COMPASS)
RANDO_ENUM_ITEM(RG_JABU_JABUS_BELLY_COMPASS)
RANDO_ENUM_ITEM(RG_FOREST_TEMPLE_COMPASS)
RANDO_ENUM_ITEM(RG_FIRE_TEMPLE_COMPASS)
RANDO_ENUM_ITEM(RG_WATER_TEMPLE_COMPASS)
RANDO_ENUM_ITEM(RG_SPIRIT_TEMPLE_COMPASS)
RANDO_ENUM_ITEM(RG_SHADOW_TEMPLE_COMPASS)
RANDO_ENUM_ITEM(RG_BOTTOM_OF_THE_WELL_COMPASS)
RANDO_ENUM_ITEM(RG_ICE_CAVERN_COMPASS)
RANDO_ENUM_ITEM(RG_FOREST_TEMPLE_BOSS_KEY)
RANDO_ENUM_ITEM(RG_FIRE_TEMPLE_BOSS_KEY)
RANDO_ENUM_ITEM(RG_WATER_TEMPLE_BOSS_KEY)
RANDO_ENUM_ITEM(RG_SPIRIT_TEMPLE_BOSS_KEY)
RANDO_ENUM_ITEM(RG_SHADOW_TEMPLE_BOSS_KEY)
RANDO_ENUM_ITEM(RG_GANONS_CASTLE_BOSS_KEY)
RANDO_ENUM_ITEM(RG_FOREST_TEMPLE_SMALL_KEY)
RANDO_ENUM_ITEM(RG_FIRE_TEMPLE_SMALL_KEY)
RANDO_ENUM_ITEM(RG_WATER_TEMPLE_SMALL_KEY)
RANDO_ENUM_ITEM(RG_SPIRIT_TEMPLE_SMALL_KEY)
RANDO_ENUM_ITEM(RG_SHADOW_TEMPLE_SMALL_KEY)
RANDO_ENUM_ITEM(RG_BOTTOM_OF_THE_WELL_SMALL_KEY)
RANDO_ENUM_ITEM(RG_GERUDO_TRAINING_GROUND_SMALL_KEY)
RANDO_ENUM_ITEM(RG_GERUDO_FORTRESS_SMALL_KEY)
RANDO_ENUM_ITEM(RG_GANONS_CASTLE_SMALL_KEY)
RANDO_ENUM_ITEM(RG_TREASURE_GAME_SMALL_KEY)
RANDO_ENUM_ITEM(RG_FOREST_TEMPLE_KEY_RING)
RANDO_ENUM_ITEM(RG_FIRE_TEMPLE_KEY_RING)
RANDO_ENUM_ITEM(RG_WATER_TEMPLE_KEY_RING)
RANDO_ENUM_ITEM(RG_SPIRIT_TEMPLE_KEY_RING)
RANDO_ENUM_ITEM(RG_SHADOW_TEMPLE_KEY_RING)
RANDO_ENUM_ITEM(RG_BOTTOM_OF_THE_WELL_KEY_RING)
RANDO_ENUM_ITEM(RG_GERUDO_TRAINING_GROUND_KEY_RING)
RANDO_ENUM_ITEM(RG_GERUDO_FORTRESS_KEY_RING)
RANDO_ENUM_ITEM(RG_GANONS_CASTLE_KEY_RING)
RANDO_ENUM_ITEM(RG_TREASURE_GAME_KEY_RING)
RANDO_ENUM_ITEM(RG_KOKIRI_EMERALD)
RANDO_ENUM_ITEM(RG_GORON_RUBY)
RANDO_ENUM_ITEM(RG_ZORA_SAPPHIRE)
RANDO_ENUM_ITEM(RG_FOREST_MEDALLION)
RANDO_ENUM_ITEM(RG_FIRE_MEDALLION)
RANDO_ENUM_ITEM(RG_WATER_MEDALLION)
RANDO_ENUM_ITEM(RG_SPIRIT_MEDALLION)
RANDO_ENUM_ITEM(RG_SHADOW_MEDALLION)
RANDO_ENUM_ITEM(RG_LIGHT_MEDALLION)
RANDO_ENUM_ITEM(RG_RECOVERY_HEART)
RANDO_ENUM_ITEM(RG_GREEN_RUPEE)
RANDO_ENUM_ITEM(RG_GREG_RUPEE)
RANDO_ENUM_ITEM(RG_BLUE_RUPEE)
RANDO_ENUM_ITEM(RG_RED_RUPEE)
RANDO_ENUM_ITEM(RG_PURPLE_RUPEE)
RANDO_ENUM_ITEM(RG_HUGE_RUPEE)
RANDO_ENUM_ITEM(RG_PIECE_OF_HEART)
RANDO_ENUM_ITEM(RG_HEART_CONTAINER)
RANDO_ENUM_ITEM(RG_ICE_TRAP)
RANDO_ENUM_ITEM(RG_MILK)
RANDO_ENUM_ITEM(RG_FISH)
RANDO_ENUM_ITEM(RG_BOMBS_5)
RANDO_ENUM_ITEM(RG_BOMBS_10)
RANDO_ENUM_ITEM(RG_BOMBS_20)
RANDO_ENUM_ITEM(RG_BOMBCHU_5)
RANDO_ENUM_ITEM(RG_BOMBCHU_10)
RANDO_ENUM_ITEM(RG_BOMBCHU_20)
RANDO_ENUM_ITEM(RG_ARROWS_5)
RANDO_ENUM_ITEM(RG_ARROWS_10)
RANDO_ENUM_ITEM(RG_ARROWS_30)
RANDO_ENUM_ITEM(RG_DEKU_NUTS_5)
RANDO_ENUM_ITEM(RG_DEKU_NUTS_10)
RANDO_ENUM_ITEM(RG_DEKU_SEEDS_30)
RANDO_ENUM_ITEM(RG_DEKU_STICK_1)
RANDO_ENUM_ITEM(RG_RED_POTION_REFILL)
RANDO_ENUM_ITEM(RG_GREEN_POTION_REFILL)
RANDO_ENUM_ITEM(RG_BLUE_POTION_REFILL)
RANDO_ENUM_ITEM(RG_TREASURE_GAME_HEART)
RANDO_ENUM_ITEM(RG_TREASURE_GAME_GREEN_RUPEE)
RANDO_ENUM_ITEM(RG_BUY_DEKU_NUTS_5)
RANDO_ENUM_ITEM(RG_BUY_ARROWS_30)
RANDO_ENUM_ITEM(RG_BUY_ARROWS_50)
RANDO_ENUM_ITEM(RG_BUY_BOMBS_525)
RANDO_ENUM_ITEM(RG_BUY_DEKU_NUTS_10)
RANDO_ENUM_ITEM(RG_BUY_DEKU_STICK_1)
RANDO_ENUM_ITEM(RG_BUY_BOMBS_10)
RANDO_ENUM_ITEM(RG_BUY_FISH)
RANDO_ENUM_ITEM(RG_BUY_RED_POTION_30)
RANDO_ENUM_ITEM(RG_BUY_GREEN_POTION)
RANDO_ENUM_ITEM(RG_BUY_BLUE_POTION)
RANDO_ENUM_ITEM(RG_BUY_HYLIAN_SHIELD)
RANDO_ENUM_ITEM(RG_BUY_DEKU_SHIELD)
RANDO_ENUM_ITEM(RG_BUY_GORON_TUNIC)
RANDO_ENUM_ITEM(RG_BUY_ZORA_TUNIC)
RANDO_ENUM_ITEM(RG_BUY_HEART)
RANDO_ENUM_ITEM(RG_BUY_BOMBCHUS_10)
RANDO_ENUM_ITEM(RG_BUY_BOMBCHUS_20)
RANDO_ENUM_ITEM(RG_BUY_DEKU_SEEDS_30)
RANDO_ENUM_ITEM(RG_SOLD_OUT)
RANDO_ENUM_ITEM(RG_BUY_BLUE_FIRE)
RANDO_ENUM_ITEM(RG_BUY_BOTTLE_BUG)
RANDO_ENUM_ITEM(RG_BUY_POE)
RANDO_ENUM_ITEM(RG_BUY_FAIRYS_SPIRIT)
RANDO_ENUM_ITEM(RG_BUY_ARROWS_10)
RANDO_ENUM_ITEM(RG_BUY_BOMBS_20)
RANDO_ENUM_ITEM(RG_BUY_BOMBS_30)
RANDO_ENUM_ITEM(RG_BUY_BOMBS_535)
RANDO_ENUM_ITEM(RG_BUY_RED_POTION_40)
RANDO_ENUM_ITEM(RG_BUY_RED_POTION_50)
RANDO_ENUM_ITEM(RG_TRIFORCE)
RANDO_ENUM_ITEM(RG_TRIFORCE_PIECE)
RANDO_ENUM_ITEM(RG_DEATH_MOUNTAIN_CRATER_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_DEATH_MOUNTAIN_TRAIL_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_DESERT_COLOSSUS_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_GERUDO_VALLEY_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_GRAVEYARD_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_KOKIRI_FOREST_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_LAKE_HYLIA_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_LOST_WOODS_BRIDGE_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_LOST_WOODS_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_ZORAS_RIVER_BEAN_SOUL)
RANDO_ENUM_ITEM(RG_GOHMA_SOUL)
RANDO_ENUM_ITEM(RG_KING_DODONGO_SOUL)
RANDO_ENUM_ITEM(RG_BARINADE_SOUL)
RANDO_ENUM_ITEM(RG_PHANTOM_GANON_SOUL)
RANDO_ENUM_ITEM(RG_VOLVAGIA_SOUL)
RANDO_ENUM_ITEM(RG_MORPHA_SOUL)
RANDO_ENUM_ITEM(RG_BONGO_BONGO_SOUL)
RANDO_ENUM_ITEM(RG_TWINROVA_SOUL)
RANDO_ENUM_ITEM(RG_GANON_SOUL)
RANDO_ENUM_ITEM(RG_OCARINA_A_BUTTON)
RANDO_ENUM_ITEM(RG_OCARINA_C_UP_BUTTON)
RANDO_ENUM_ITEM(RG_OCARINA_C_DOWN_BUTTON)
RANDO_ENUM_ITEM(RG_OCARINA_C_LEFT_BUTTON)
RANDO_ENUM_ITEM(RG_OCARINA_C_RIGHT_BUTTON)
RANDO_ENUM_ITEM(RG_SKELETON_KEY)
RANDO_ENUM_ITEM(RG_FISHING_POLE)
RANDO_ENUM_ITEM(RG_DEKU_STICK_BAG)
RANDO_ENUM_ITEM(RG_DEKU_NUT_BAG)
RANDO_ENUM_ITEM(RG_HINT)
RANDO_ENUM_ITEM(RG_TYCOON_WALLET)
RANDO_ENUM_ITEM(RG_BRONZE_SCALE)
RANDO_ENUM_ITEM(RG_POWER_BRACELET)
RANDO_ENUM_ITEM(RG_CLIMB)
RANDO_ENUM_ITEM(RG_CRAWL)
RANDO_ENUM_ITEM(RG_OPEN_CHEST)
RANDO_ENUM_ITEM(RG_SPEAK_DEKU)
RANDO_ENUM_ITEM(RG_SPEAK_GERUDO)
RANDO_ENUM_ITEM(RG_SPEAK_GORON)
RANDO_ENUM_ITEM(RG_SPEAK_HYLIAN)
RANDO_ENUM_ITEM(RG_SPEAK_KOKIRI)
RANDO_ENUM_ITEM(RG_SPEAK_ZORA)
RANDO_ENUM_ITEM(RG_CHILD_WALLET)
RANDO_ENUM_ITEM(RG_PROGRESSIVE_BOMBCHU_BAG)
RANDO_ENUM_ITEM(RG_QUIVER_INF)
RANDO_ENUM_ITEM(RG_BOMB_BAG_INF)
RANDO_ENUM_ITEM(RG_BULLET_BAG_INF)
RANDO_ENUM_ITEM(RG_STICK_UPGRADE_INF)
RANDO_ENUM_ITEM(RG_NUT_UPGRADE_INF)
RANDO_ENUM_ITEM(RG_MAGIC_INF)
RANDO_ENUM_ITEM(RG_BOMBCHU_INF)
RANDO_ENUM_ITEM(RG_WALLET_INF)
RANDO_ENUM_ITEM(RG_FAIRY_OCARINA)
RANDO_ENUM_ITEM(RG_OCARINA_OF_TIME)
RANDO_ENUM_ITEM(RG_BOMB_BAG)
RANDO_ENUM_ITEM(RG_BIG_BOMB_BAG)
RANDO_ENUM_ITEM(RG_BIGGEST_BOMB_BAG)
RANDO_ENUM_ITEM(RG_FAIRY_BOW)
RANDO_ENUM_ITEM(RG_BIG_QUIVER)
RANDO_ENUM_ITEM(RG_BIGGEST_QUIVER)
RANDO_ENUM_ITEM(RG_FAIRY_SLINGSHOT)
RANDO_ENUM_ITEM(RG_BIG_BULLET_BAG)
RANDO_ENUM_ITEM(RG_BIGGEST_BULLET_BAG)
RANDO_ENUM_ITEM(RG_GORONS_BRACELET)
RANDO_ENUM_ITEM(RG_SILVER_GAUNTLETS)
RANDO_ENUM_ITEM(RG_GOLDEN_GAUNTLETS)
RANDO_ENUM_ITEM(RG_SILVER_SCALE)
RANDO_ENUM_ITEM(RG_GOLDEN_SCALE)
RANDO_ENUM_ITEM(RG_ADULT_WALLET)
RANDO_ENUM_ITEM(RG_GIANT_WALLET)
RANDO_ENUM_ITEM(RG_DEKU_NUT_CAPACITY_30)
RANDO_ENUM_ITEM(RG_DEKU_NUT_CAPACITY_40)
RANDO_ENUM_ITEM(RG_DEKU_STICK_CAPACITY_20)
RANDO_ENUM_ITEM(RG_DEKU_STICK_CAPACITY_30)
RANDO_ENUM_ITEM(RG_HOOKSHOT)
RANDO_ENUM_ITEM(RG_LONGSHOT)
RANDO_ENUM_ITEM(RG_KEATON_MASK)
RANDO_ENUM_ITEM(RG_SKULL_MASK)
RANDO_ENUM_ITEM(RG_SPOOKY_MASK)
RANDO_ENUM_ITEM(RG_BUNNY_HOOD)
RANDO_ENUM_ITEM(RG_GORON_MASK)
RANDO_ENUM_ITEM(RG_ZORA_MASK)
RANDO_ENUM_ITEM(RG_GERUDO_MASK)
RANDO_ENUM_ITEM(RG_MASK_OF_TRUTH)
// Overworld keys
RANDO_ENUM_ITEM(RG_GUARD_HOUSE_KEY)
RANDO_ENUM_ITEM(RG_MARKET_BAZAAR_KEY)
RANDO_ENUM_ITEM(RG_MARKET_POTION_SHOP_KEY)
RANDO_ENUM_ITEM(RG_MASK_SHOP_KEY)
RANDO_ENUM_ITEM(RG_MARKET_SHOOTING_GALLERY_KEY)
RANDO_ENUM_ITEM(RG_BOMBCHU_BOWLING_KEY)
RANDO_ENUM_ITEM(RG_TREASURE_CHEST_GAME_BUILDING_KEY)
RANDO_ENUM_ITEM(RG_BOMBCHU_SHOP_KEY)
RANDO_ENUM_ITEM(RG_RICHARDS_HOUSE_KEY)
RANDO_ENUM_ITEM(RG_ALLEY_HOUSE_KEY)
RANDO_ENUM_ITEM(RG_KAK_BAZAAR_KEY)
RANDO_ENUM_ITEM(RG_KAK_POTION_SHOP_KEY)
RANDO_ENUM_ITEM(RG_BOSS_HOUSE_KEY)
RANDO_ENUM_ITEM(RG_GRANNYS_POTION_SHOP_KEY)
RANDO_ENUM_ITEM(RG_SKULLTULA_HOUSE_KEY)
RANDO_ENUM_ITEM(RG_IMPAS_HOUSE_KEY)
RANDO_ENUM_ITEM(RG_WINDMILL_KEY)
RANDO_ENUM_ITEM(RG_KAK_SHOOTING_GALLERY_KEY)
RANDO_ENUM_ITEM(RG_DAMPES_HUT_KEY)
RANDO_ENUM_ITEM(RG_TALONS_HOUSE_KEY)
RANDO_ENUM_ITEM(RG_STABLES_KEY)
RANDO_ENUM_ITEM(RG_BACK_TOWER_KEY)
RANDO_ENUM_ITEM(RG_HYLIA_LAB_KEY)
RANDO_ENUM_ITEM(RG_FISHING_HOLE_KEY)
// Custom Items
RANDO_ENUM_ITEM(RG_ROCS_FEATHER)
// Logic Only
RANDO_ENUM_ITEM(RG_STICKS)
RANDO_ENUM_ITEM(RG_NUTS)
RANDO_ENUM_ITEM(RG_MAX)
RANDO_ENUM_END(RandomizerGet)
#ifdef RANDO_ENUM_BEGIN_CLEANUP
#undef RANDO_ENUM_BEGIN
#undef RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifdef RANDO_ENUM_ITEM_CLEANUP
#undef RANDO_ENUM_ITEM
#undef RANDO_ENUM_ITEM_CLEANUP
#endif
#ifdef RANDO_ENUM_END_CLEANUP
#undef RANDO_ENUM_END
#undef RANDO_ENUM_END_CLEANUP
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,535 @@
#ifndef RANDO_ENUM_BEGIN
#define RANDO_ENUM_BEGIN(...)
#define RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifndef RANDO_ENUM_ITEM
#define RANDO_ENUM_ITEM(...)
#define RANDO_ENUM_ITEM_CLEANUP
#endif
#ifndef RANDO_ENUM_END
#define RANDO_ENUM_END(...)
#define RANDO_ENUM_END_CLEANUP
#endif
// This should probably go in a less rando-specific location
// but the best location will probably be in the modding engine
// which doesn't exist yet.
RANDO_ENUM_BEGIN(ModIndex)
RANDO_ENUM_ITEM(MOD_NONE)
RANDO_ENUM_ITEM(MOD_RANDOMIZER)
RANDO_ENUM_END(ModIndex)
RANDO_ENUM_BEGIN(TableIndex)
RANDO_ENUM_ITEM(TABLE_VANILLA, MOD_NONE)
RANDO_ENUM_ITEM(TABLE_RANDOMIZER, MOD_RANDOMIZER)
RANDO_ENUM_END(TableIndex)
RANDO_ENUM_BEGIN(HintType)
RANDO_ENUM_ITEM(HINT_TYPE_HINT_KEY)
RANDO_ENUM_ITEM(HINT_TYPE_AREA)
RANDO_ENUM_ITEM(HINT_TYPE_ITEM)
RANDO_ENUM_ITEM(HINT_TYPE_TRIAL)
RANDO_ENUM_ITEM(HINT_TYPE_ENTRANCE)
RANDO_ENUM_ITEM(HINT_TYPE_ITEM_AREA)
RANDO_ENUM_ITEM(HINT_TYPE_ALTAR_CHILD)
RANDO_ENUM_ITEM(HINT_TYPE_ALTAR_ADULT)
RANDO_ENUM_ITEM(HINT_TYPE_WOTH) // Way of the Hero
RANDO_ENUM_ITEM(HINT_TYPE_FOOLISH)
RANDO_ENUM_ITEM(HINT_TYPE_MESSAGE)
RANDO_ENUM_ITEM(HINT_TYPE_MAX)
RANDO_ENUM_END(HintType)
RANDO_ENUM_BEGIN(RandomizerArea)
RANDO_ENUM_ITEM(RA_NONE)
RANDO_ENUM_ITEM(RA_LINKS_POCKET)
RANDO_ENUM_ITEM(RA_KOKIRI_FOREST)
RANDO_ENUM_ITEM(RA_THE_LOST_WOODS)
RANDO_ENUM_ITEM(RA_SACRED_FOREST_MEADOW)
RANDO_ENUM_ITEM(RA_HYRULE_FIELD)
RANDO_ENUM_ITEM(RA_LAKE_HYLIA)
RANDO_ENUM_ITEM(RA_GERUDO_VALLEY)
RANDO_ENUM_ITEM(RA_GERUDO_FORTRESS)
RANDO_ENUM_ITEM(RA_HAUNTED_WASTELAND)
RANDO_ENUM_ITEM(RA_DESERT_COLOSSUS)
RANDO_ENUM_ITEM(RA_THE_MARKET)
RANDO_ENUM_ITEM(RA_TEMPLE_OF_TIME)
RANDO_ENUM_ITEM(RA_HYRULE_CASTLE)
RANDO_ENUM_ITEM(RA_OUTSIDE_GANONS_CASTLE)
RANDO_ENUM_ITEM(RA_CASTLE_GROUNDS)
RANDO_ENUM_ITEM(RA_KAKARIKO_VILLAGE)
RANDO_ENUM_ITEM(RA_THE_GRAVEYARD)
RANDO_ENUM_ITEM(RA_DEATH_MOUNTAIN_TRAIL)
RANDO_ENUM_ITEM(RA_GORON_CITY)
RANDO_ENUM_ITEM(RA_DEATH_MOUNTAIN_CRATER)
RANDO_ENUM_ITEM(RA_ZORAS_RIVER)
RANDO_ENUM_ITEM(RA_ZORAS_DOMAIN)
RANDO_ENUM_ITEM(RA_ZORAS_FOUNTAIN)
RANDO_ENUM_ITEM(RA_LON_LON_RANCH)
RANDO_ENUM_ITEM(RA_DEKU_TREE)
RANDO_ENUM_ITEM(RA_DODONGOS_CAVERN)
RANDO_ENUM_ITEM(RA_JABU_JABUS_BELLY)
RANDO_ENUM_ITEM(RA_FOREST_TEMPLE)
RANDO_ENUM_ITEM(RA_FIRE_TEMPLE)
RANDO_ENUM_ITEM(RA_WATER_TEMPLE)
RANDO_ENUM_ITEM(RA_SPIRIT_TEMPLE)
RANDO_ENUM_ITEM(RA_SHADOW_TEMPLE)
RANDO_ENUM_ITEM(RA_BOTTOM_OF_THE_WELL)
RANDO_ENUM_ITEM(RA_ICE_CAVERN)
RANDO_ENUM_ITEM(RA_GERUDO_TRAINING_GROUND)
RANDO_ENUM_ITEM(RA_GANONS_CASTLE)
RANDO_ENUM_ITEM(RA_MAX)
RANDO_ENUM_END(RandomizerArea)
RANDO_ENUM_BEGIN(TrialKey)
RANDO_ENUM_ITEM(TK_LIGHT_TRIAL)
RANDO_ENUM_ITEM(TK_FOREST_TRIAL)
RANDO_ENUM_ITEM(TK_FIRE_TRIAL)
RANDO_ENUM_ITEM(TK_WATER_TRIAL)
RANDO_ENUM_ITEM(TK_SPIRIT_TRIAL)
RANDO_ENUM_ITEM(TK_SHADOW_TRIAL)
RANDO_ENUM_ITEM(TK_MAX)
RANDO_ENUM_END(TrialKey)
// Check types based on main settings
RANDO_ENUM_BEGIN(RandomizerCheckType)
RANDO_ENUM_ITEM(RCTYPE_STANDARD) // Base set of rando checks
RANDO_ENUM_ITEM(RCTYPE_SKULL_TOKEN) // Gold Skulltulas
RANDO_ENUM_ITEM(RCTYPE_COW) // Cows
RANDO_ENUM_ITEM(RCTYPE_ADULT_TRADE) // Adult trade quest checks
RANDO_ENUM_ITEM(RCTYPE_FROG_SONG) // Frog song purple rupee checks
RANDO_ENUM_ITEM(RCTYPE_MAP) // Maps
RANDO_ENUM_ITEM(RCTYPE_COMPASS) // Compasses
RANDO_ENUM_ITEM(RCTYPE_SMALL_KEY) // Small Keys
RANDO_ENUM_ITEM(RCTYPE_GF_KEY) // Gerudo Fortress Keys
RANDO_ENUM_ITEM(RCTYPE_BOSS_KEY) // Boss Keys
RANDO_ENUM_ITEM(RCTYPE_GANON_BOSS_KEY) // Ganon's boss key
RANDO_ENUM_ITEM(RCTYPE_SHOP) // Shops
RANDO_ENUM_ITEM(RCTYPE_SCRUB) // Scrubs
RANDO_ENUM_ITEM(RCTYPE_MERCHANT) // Merchants
RANDO_ENUM_ITEM(RCTYPE_CHEST_GAME) // RANDOTODO replace this once we implement it, just using it to exclude for now
RANDO_ENUM_ITEM(RCTYPE_LINKS_POCKET) // RANDOTODO this feels hacky, replace with better starting items
RANDO_ENUM_ITEM(RCTYPE_GOSSIP_STONE) // RANDOTODO make these into event access
RANDO_ENUM_ITEM(RCTYPE_STATIC_HINT) // RANDOTODO make these into event access
RANDO_ENUM_ITEM(RCTYPE_SONG_LOCATION) // Song locations
RANDO_ENUM_ITEM(RCTYPE_BOSS_HEART_OR_OTHER_REWARD) // Boss heart container or lesser dungeon rewards (lens, ice arrow)
RANDO_ENUM_ITEM(RCTYPE_POT) // Pots
RANDO_ENUM_ITEM(RCTYPE_CRATE) // Crates
RANDO_ENUM_ITEM(RCTYPE_NLCRATE) // NL Crates
RANDO_ENUM_ITEM(RCTYPE_SMALL_CRATE) // Small crates
RANDO_ENUM_ITEM(RCTYPE_TREE) // Trees
RANDO_ENUM_ITEM(RCTYPE_NLTREE) // NL Trees
RANDO_ENUM_ITEM(RCTYPE_BUSH) // Bushes
RANDO_ENUM_ITEM(RCTYPE_DUNGEON_REWARD) // Dungeon rewards (blue warps)
RANDO_ENUM_ITEM(RCTYPE_OCARINA) // Ocarina locations
RANDO_ENUM_ITEM(RCTYPE_BEEHIVE) // Beehives
RANDO_ENUM_ITEM(RCTYPE_FISH) // Fishes
RANDO_ENUM_ITEM(RCTYPE_FREESTANDING) // Freestanding rupees and hearts
RANDO_ENUM_ITEM(RCTYPE_FOUNTAIN_FAIRY) // Fairies in Fountains
RANDO_ENUM_ITEM(RCTYPE_STONE_FAIRY) // Fairies from Gossip Stones
RANDO_ENUM_ITEM(RCTYPE_BEAN_FAIRY) // Fairies from Beans
RANDO_ENUM_ITEM(RCTYPE_SONG_FAIRY) // Fairies from Songs
RANDO_ENUM_ITEM(RCTYPE_GRASS) // Grass
RANDO_ENUM_END(RandomizerCheckType)
RANDO_ENUM_BEGIN(RandomizerCheckQuest)
RANDO_ENUM_ITEM(RCQUEST_VANILLA)
RANDO_ENUM_ITEM(RCQUEST_MQ)
RANDO_ENUM_ITEM(RCQUEST_BOTH)
RANDO_ENUM_END(RandomizerCheckQuest)
RANDO_ENUM_BEGIN(RandomizerCheckArea)
RANDO_ENUM_ITEM(RCAREA_KOKIRI_FOREST)
RANDO_ENUM_ITEM(RCAREA_LOST_WOODS)
RANDO_ENUM_ITEM(RCAREA_SACRED_FOREST_MEADOW)
RANDO_ENUM_ITEM(RCAREA_HYRULE_FIELD)
RANDO_ENUM_ITEM(RCAREA_LAKE_HYLIA)
RANDO_ENUM_ITEM(RCAREA_GERUDO_VALLEY)
RANDO_ENUM_ITEM(RCAREA_GERUDO_FORTRESS)
RANDO_ENUM_ITEM(RCAREA_WASTELAND)
RANDO_ENUM_ITEM(RCAREA_DESERT_COLOSSUS)
RANDO_ENUM_ITEM(RCAREA_MARKET)
RANDO_ENUM_ITEM(RCAREA_HYRULE_CASTLE)
RANDO_ENUM_ITEM(RCAREA_KAKARIKO_VILLAGE)
RANDO_ENUM_ITEM(RCAREA_GRAVEYARD)
RANDO_ENUM_ITEM(RCAREA_DEATH_MOUNTAIN_TRAIL)
RANDO_ENUM_ITEM(RCAREA_GORON_CITY)
RANDO_ENUM_ITEM(RCAREA_DEATH_MOUNTAIN_CRATER)
RANDO_ENUM_ITEM(RCAREA_ZORAS_RIVER)
RANDO_ENUM_ITEM(RCAREA_ZORAS_DOMAIN)
RANDO_ENUM_ITEM(RCAREA_ZORAS_FOUNTAIN)
RANDO_ENUM_ITEM(RCAREA_LON_LON_RANCH)
RANDO_ENUM_ITEM(RCAREA_DEKU_TREE)
RANDO_ENUM_ITEM(RCAREA_DODONGOS_CAVERN)
RANDO_ENUM_ITEM(RCAREA_JABU_JABUS_BELLY)
RANDO_ENUM_ITEM(RCAREA_FOREST_TEMPLE)
RANDO_ENUM_ITEM(RCAREA_FIRE_TEMPLE)
RANDO_ENUM_ITEM(RCAREA_WATER_TEMPLE)
RANDO_ENUM_ITEM(RCAREA_SPIRIT_TEMPLE)
RANDO_ENUM_ITEM(RCAREA_SHADOW_TEMPLE)
RANDO_ENUM_ITEM(RCAREA_BOTTOM_OF_THE_WELL)
RANDO_ENUM_ITEM(RCAREA_ICE_CAVERN)
RANDO_ENUM_ITEM(RCAREA_GERUDO_TRAINING_GROUND)
RANDO_ENUM_ITEM(RCAREA_GANONS_CASTLE)
// If adding any more RANDO_ENUM_ITEM(areas) Check Tracker will need a refactor
RANDO_ENUM_ITEM(RCAREA_INVALID)
RANDO_ENUM_END(RandomizerCheckArea)
// Check tracker check visibility categories
RANDO_ENUM_BEGIN(RandomizerCheckStatus)
RANDO_ENUM_ITEM(RCSHOW_UNCHECKED)
RANDO_ENUM_ITEM(RCSHOW_SEEN)
RANDO_ENUM_ITEM(RCSHOW_IDENTIFIED)
RANDO_ENUM_ITEM(RCSHOW_SCUMMED)
RANDO_ENUM_ITEM(RCSHOW_COLLECTED)
RANDO_ENUM_ITEM(RCSHOW_SAVED)
RANDO_ENUM_END(RandomizerCheckStatus)
RANDO_ENUM_BEGIN(RandomizerHint)
RANDO_ENUM_ITEM(RH_NONE)
RANDO_ENUM_ITEM(RH_KF_DEKU_TREE_LEFT_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_KF_DEKU_TREE_RIGHT_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_KF_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_KF_STORMS_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_LW_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_LW_NEAR_SHORTCUTS_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_SFM_MAZE_NEAR_LW_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_SFM_MAZE_CENTER_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_SFM_SARIA_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_HF_COW_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_HF_NEAR_MARKET_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_HF_OPEN_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_HF_SOUTHEAST_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_TOT_LEFT_CENTER_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_TOT_LEFTMOST_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_TOT_RIGHT_CENTER_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_TOT_RIGHTMOST_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_HC_MALON_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_HC_ROCK_WALL_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_HC_STORMS_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_KAK_OPEN_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_GRAVEYARD_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_DMT_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_DMT_STORMS_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_GC_MAZE_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_GC_MEDIGORON_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_DMC_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_DMC_UPPER_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_ZR_NEAR_DOMAIN_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_ZR_NEAR_GROTTOS_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_ZR_OPEN_GROTTO_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_ZD_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_ZF_JABU_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_ZF_FAIRY_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_LH_LAB_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_LH_SOUTHEAST_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_LH_SOUTHWEST_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_GV_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_COLOSSUS_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_DODONGOS_CAVERN_GOSSIP_STONE)
RANDO_ENUM_ITEM(RH_GANONDORF_HINT)
RANDO_ENUM_ITEM(RH_GANONDORF_JOKE)
RANDO_ENUM_ITEM(RH_SHEIK_HINT)
RANDO_ENUM_ITEM(RH_DAMPES_DIARY)
RANDO_ENUM_ITEM(RH_GREG_RUPEE)
RANDO_ENUM_ITEM(RH_ALTAR_CHILD)
RANDO_ENUM_ITEM(RH_ALTAR_ADULT)
RANDO_ENUM_ITEM(RH_FOREST_BOSS_KEY_HINT)
RANDO_ENUM_ITEM(RH_FIRE_BOSS_KEY_HINT)
RANDO_ENUM_ITEM(RH_WATER_BOSS_KEY_HINT)
RANDO_ENUM_ITEM(RH_SPIRIT_BOSS_KEY_HINT)
RANDO_ENUM_ITEM(RH_SHADOW_BOSS_KEY_HINT)
RANDO_ENUM_ITEM(RH_GANONS_BOSS_KEY_HINT)
RANDO_ENUM_ITEM(RH_SARIA_HINT)
RANDO_ENUM_ITEM(RH_MIDO_HINT)
RANDO_ENUM_ITEM(RH_LOACH_HINT)
RANDO_ENUM_ITEM(RH_FISHING_POLE)
RANDO_ENUM_ITEM(RH_MINUET_WARP_LOC)
RANDO_ENUM_ITEM(RH_BOLERO_WARP_LOC)
RANDO_ENUM_ITEM(RH_SERENADE_WARP_LOC)
RANDO_ENUM_ITEM(RH_REQUIEM_WARP_LOC)
RANDO_ENUM_ITEM(RH_NOCTURNE_WARP_LOC)
RANDO_ENUM_ITEM(RH_PRELUDE_WARP_LOC)
RANDO_ENUM_ITEM(RH_HBA_HINT)
RANDO_ENUM_ITEM(RH_MALON_HINT)
RANDO_ENUM_ITEM(RH_CHICKENS_HINT)
RANDO_ENUM_ITEM(RH_BIG_POES_HINT)
RANDO_ENUM_ITEM(RH_BIGGORON_HINT)
RANDO_ENUM_ITEM(RH_FROGS_HINT)
RANDO_ENUM_ITEM(RH_OOT_HINT)
RANDO_ENUM_ITEM(RH_MASK_SHOP_HINT)
RANDO_ENUM_ITEM(RH_MAX)
RANDO_ENUM_END(RandomizerHint)
RANDO_ENUM_BEGIN(RandomizerSettingGroupKey)
RANDO_ENUM_ITEM(RSG_NONE)
RANDO_ENUM_ITEM(RSG_LOGIC)
RANDO_ENUM_ITEM(RSG_EXCLUDES_KOKIRI_FOREST)
RANDO_ENUM_ITEM(RSG_EXCLUDES_LOST_WOODS)
RANDO_ENUM_ITEM(RSG_EXCLUDES_SACRED_FOREST_MEADOW)
RANDO_ENUM_ITEM(RSG_EXCLUDES_DEKU_TREE)
RANDO_ENUM_ITEM(RSG_EXCLUDES_FOREST_TEMPLE)
RANDO_ENUM_ITEM(RSG_EXCLUDES_KAKARIKO_VILLAGE)
RANDO_ENUM_ITEM(RSG_EXCLUDES_GRAVEYARD)
RANDO_ENUM_ITEM(RSG_EXCLUDES_BOTTOM_OF_THE_WELL)
RANDO_ENUM_ITEM(RSG_EXCLUDES_SHADOW_TEMPLE)
RANDO_ENUM_ITEM(RSG_EXCLUDES_DEATH_MOUNTAIN_TRAIL)
RANDO_ENUM_ITEM(RSG_EXCLUDES_DEATH_MOUNTAIN_CRATER)
RANDO_ENUM_ITEM(RSG_EXCLUDES_GORON_CITY)
RANDO_ENUM_ITEM(RSG_EXCLUDES_DODONGOS_CAVERN)
RANDO_ENUM_ITEM(RSG_EXCLUDES_FIRE_TEMPLE)
RANDO_ENUM_ITEM(RSG_EXCLUDES_ZORAS_RIVER)
RANDO_ENUM_ITEM(RSG_EXCLUDES_ZORAS_DOMAIN)
RANDO_ENUM_ITEM(RSG_EXCLUDES_ZORAS_FOUNTAIN)
RANDO_ENUM_ITEM(RSG_EXCLUDES_JABU_JABU)
RANDO_ENUM_ITEM(RSG_EXCLUDES_ICE_CAVERN)
RANDO_ENUM_ITEM(RSG_EXCLUDES_HYRULE_FIELD)
RANDO_ENUM_ITEM(RSG_EXCLUDES_LON_LON_RANCH)
RANDO_ENUM_ITEM(RSG_EXCLUDES_LAKE_HYLIA)
RANDO_ENUM_ITEM(RSG_EXCLUDES_WATER_TEMPLE)
RANDO_ENUM_ITEM(RSG_EXCLUDES_GERUDO_VALLEY)
RANDO_ENUM_ITEM(RSG_EXCLUDES_GERUDO_FORTRESS)
RANDO_ENUM_ITEM(RSG_EXCLUDES_HAUNTED_WASTELAND)
RANDO_ENUM_ITEM(RSG_EXCLUDES_DESERT_COLOSSUS)
RANDO_ENUM_ITEM(RSG_EXCLUDES_GERUDO_TRAINING_GROUND)
RANDO_ENUM_ITEM(RSG_EXCLUDES_SPIRIT_TEMPLE)
RANDO_ENUM_ITEM(RSG_EXCLUDES_HYRULE_CASTLE)
RANDO_ENUM_ITEM(RSG_EXCLUDES_MARKET)
RANDO_ENUM_ITEM(RSG_EXCLUDES_GANONS_CASTLE)
RANDO_ENUM_ITEM(RSG_EXCLUDES)
RANDO_ENUM_ITEM(RSG_TRICKS)
RANDO_ENUM_ITEM(RSG_GLITCHES)
RANDO_ENUM_ITEM(RSG_MENU_SIDEBAR_LOGIC_ACCESS)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_LOGIC_WINCON)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_LOGIC)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_WINCON)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_AREA_ACCESS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_AREA_ACCESS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_ENTRANCES)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_ENTRANCES)
RANDO_ENUM_ITEM(RSG_MENU_SIDEBAR_DUNGEONS)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_DUNGEON_ITEMS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_DUNGEON_ITEMS)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_KEYRINGS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_KEYRINGS)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_MQ)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_MQ)
RANDO_ENUM_ITEM(RSG_MENU_SIDEBAR_SHUFFLES)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_BASIC_SHUFFLES)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_BASIC_SHUFFLES)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_SHOP_SHUFFLES)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_SHOP_SHUFFLES)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_ADDITIONAL_ITEMS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_ADDITIONAL_ITEMS)
RANDO_ENUM_ITEM(RSG_MENU_SIDEBAR_HINTS_TRAPS)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_HINTS_TRAPS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_HINTS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_TRAPS)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_STATIC_HINTS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_STATIC_HINTS)
RANDO_ENUM_ITEM(RSG_MENU_SIDEBAR_STARTING_ITEMS)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_STARTING_EQUIPMENT)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_STARTING_EQUIPS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_STARTING_ITEMS)
RANDO_ENUM_ITEM(RSG_MENU_COLUMN_STARTING_SONGS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_NORMAL_SONGS)
RANDO_ENUM_ITEM(RSG_MENU_SECTION_WARP_SONGS)
RANDO_ENUM_ITEM(RSG_OPEN)
RANDO_ENUM_ITEM(RSG_WORLD)
RANDO_ENUM_ITEM(RSG_SHUFFLE)
RANDO_ENUM_ITEM(RSG_SHUFFLE_DUNGEON_ITEMS)
RANDO_ENUM_ITEM(RSG_SHUFFLE_DUNGEON_QUESTS)
RANDO_ENUM_ITEM(RSG_DETAILED_LOGIC)
RANDO_ENUM_ITEM(RSG_STARTING_ITEMS)
RANDO_ENUM_ITEM(RSG_STARTING_SONGS)
RANDO_ENUM_ITEM(RSG_STARTING_OTHER)
RANDO_ENUM_ITEM(RSG_STARTING_INVENTORY)
RANDO_ENUM_ITEM(RSG_TIMESAVERS)
RANDO_ENUM_ITEM(RSG_MISC)
RANDO_ENUM_ITEM(RSG_ITEM_POOL)
RANDO_ENUM_ITEM(RSG_MAX)
RANDO_ENUM_END(RandomizerSettingGroupKey)
RANDO_ENUM_BEGIN(ItemObtainability)
RANDO_ENUM_ITEM(CAN_OBTAIN)
RANDO_ENUM_ITEM(CANT_OBTAIN_MISC)
RANDO_ENUM_ITEM(CANT_OBTAIN_ALREADY_HAVE)
RANDO_ENUM_ITEM(CANT_OBTAIN_NEED_UPGRADE)
RANDO_ENUM_ITEM(CANT_OBTAIN_NEED_EMPTY_BOTTLE)
RANDO_ENUM_END(ItemObtainability)
RANDO_ENUM_BEGIN(TrackerWindowType)
RANDO_ENUM_ITEM(TRACKER_WINDOW_FLOATING)
RANDO_ENUM_ITEM(TRACKER_WINDOW_WINDOW)
RANDO_ENUM_END(TrackerWindowType)
RANDO_ENUM_BEGIN(TrackerDisplayType)
RANDO_ENUM_ITEM(TRACKER_DISPLAY_ALWAYS)
RANDO_ENUM_ITEM(TRACKER_DISPLAY_COMBO_BUTTON)
RANDO_ENUM_END(TrackerDisplayType)
RANDO_ENUM_BEGIN(TrackerComboButton)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_A)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_B)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_C_UP)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_C_DOWN)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_C_LEFT)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_C_RIGHT)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_L)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_Z)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_R)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_START)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_D_UP)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_D_DOWN)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_D_LEFT)
RANDO_ENUM_ITEM(TRACKER_COMBO_BUTTON_D_RIGHT)
RANDO_ENUM_END(TrackerComboButton)
RANDO_ENUM_BEGIN(TriforceHuntMessages)
RANDO_ENUM_ITEM(TH_MESSAGE_START)
RANDO_ENUM_ITEM(TH_MESSAGE_PROGRESS)
RANDO_ENUM_ITEM(TH_MESSAGE_HALFWAY)
RANDO_ENUM_ITEM(TH_MESSAGE_ALMOSTDONE)
RANDO_ENUM_ITEM(TH_MESSAGE_FINISHED)
RANDO_ENUM_ITEM(TH_MESSAGE_SURPLUS)
RANDO_ENUM_END(TriforceHuntMessages)
RANDO_ENUM_BEGIN(RandomizerEnemy)
RANDO_ENUM_ITEM(RE_GOLD_SKULLTULA)
RANDO_ENUM_ITEM(RE_BIG_SKULLTULA)
RANDO_ENUM_ITEM(RE_DODONGO)
RANDO_ENUM_ITEM(RE_LIZALFOS)
RANDO_ENUM_ITEM(RE_GOHMA_LARVA)
RANDO_ENUM_ITEM(RE_KEESE)
RANDO_ENUM_ITEM(RE_FIRE_KEESE)
RANDO_ENUM_ITEM(RE_GUAY)
RANDO_ENUM_ITEM(RE_MAD_SCRUB)
RANDO_ENUM_ITEM(RE_BLUE_BUBBLE)
RANDO_ENUM_ITEM(RE_POE)
RANDO_ENUM_ITEM(RE_DEAD_HAND)
RANDO_ENUM_ITEM(RE_DEKU_BABA)
RANDO_ENUM_ITEM(RE_WITHERED_DEKU_BABA)
RANDO_ENUM_ITEM(RE_LIKE_LIKE)
RANDO_ENUM_ITEM(RE_STALFOS)
RANDO_ENUM_ITEM(RE_IRON_KNUCKLE)
RANDO_ENUM_ITEM(RE_FLARE_DANCER)
RANDO_ENUM_ITEM(RE_WOLFOS)
RANDO_ENUM_ITEM(RE_FLOORMASTER)
RANDO_ENUM_ITEM(RE_REDEAD)
RANDO_ENUM_ITEM(RE_MEG)
RANDO_ENUM_ITEM(RE_ARMOS)
RANDO_ENUM_ITEM(RE_GREEN_BUBBLE)
RANDO_ENUM_ITEM(RE_DINOLFOS)
RANDO_ENUM_ITEM(RE_TORCH_SLUG)
RANDO_ENUM_ITEM(RE_FREEZARD)
RANDO_ENUM_ITEM(RE_SHELL_BLADE)
RANDO_ENUM_ITEM(RE_SPIKE)
RANDO_ENUM_ITEM(RE_WHITE_WOLFOS)
RANDO_ENUM_ITEM(RE_STINGER)
RANDO_ENUM_ITEM(RE_BIG_OCTO)
RANDO_ENUM_ITEM(RE_GERUDO_WARRIOR)
RANDO_ENUM_ITEM(RE_GERUDO_GUARD)
RANDO_ENUM_ITEM(RE_BREAK_ROOM_GUARD)
RANDO_ENUM_ITEM(RE_GIBDO)
RANDO_ENUM_ITEM(RE_GOHMA)
RANDO_ENUM_ITEM(RE_KING_DODONGO)
RANDO_ENUM_ITEM(RE_BARINADE)
RANDO_ENUM_ITEM(RE_PHANTOM_GANON)
RANDO_ENUM_ITEM(RE_VOLVAGIA)
RANDO_ENUM_ITEM(RE_MORPHA)
RANDO_ENUM_ITEM(RE_BONGO_BONGO)
RANDO_ENUM_ITEM(RE_TWINROVA)
RANDO_ENUM_ITEM(RE_GANONDORF)
RANDO_ENUM_ITEM(RE_GANON)
RANDO_ENUM_ITEM(RE_DARK_LINK)
RANDO_ENUM_ITEM(RE_ANUBIS)
RANDO_ENUM_ITEM(RE_BEAMOS)
RANDO_ENUM_ITEM(RE_WALLMASTER)
RANDO_ENUM_ITEM(RE_PURPLE_LEEVER)
RANDO_ENUM_ITEM(RE_TENTACLE)
RANDO_ENUM_ITEM(RE_BARI)
RANDO_ENUM_ITEM(RE_SHABOM)
RANDO_ENUM_ITEM(RE_OCTOROK)
RANDO_ENUM_ITEM(RE_WALLTULA)
RANDO_ENUM_END(RandomizerEnemy)
// RANDOTODO compare child long jumpslash range with adult short
RANDO_ENUM_BEGIN(EnemyDistance)
RANDO_ENUM_ITEM(ED_CLOSE)
// hammer or kokiri sword
RANDO_ENUM_ITEM(ED_SHORT_JUMPSLASH)
RANDO_ENUM_ITEM(ED_MASTER_SWORD_JUMPSLASH)
// sticks or BGS
RANDO_ENUM_ITEM(ED_LONG_JUMPSLASH)
RANDO_ENUM_ITEM(ED_BOMB_THROW)
RANDO_ENUM_ITEM(ED_BOOMERANG)
RANDO_ENUM_ITEM(ED_HOOKSHOT)
RANDO_ENUM_ITEM(ED_LONGSHOT)
RANDO_ENUM_ITEM(ED_FAR)
RANDO_ENUM_END(EnemyDistance)
RANDO_ENUM_BEGIN(RandoWaterLevel)
RANDO_ENUM_ITEM(WL_LOW)
RANDO_ENUM_ITEM(WL_MID)
RANDO_ENUM_ITEM(WL_HIGH)
RANDO_ENUM_ITEM(WL_LOW_OR_MID)
RANDO_ENUM_ITEM(WL_HIGH_OR_MID)
RANDO_ENUM_END(RandoWaterLevel)
RANDO_ENUM_BEGIN(RandoAgeTime)
RANDO_ENUM_ITEM(RAT_NONE)
RANDO_ENUM_ITEM(RAT_CHILD_DAY)
RANDO_ENUM_ITEM(RAT_CHILD_NIGHT)
RANDO_ENUM_ITEM(RAT_ADULT_DAY)
RANDO_ENUM_ITEM(RAT_ADULT_NIGHT)
RANDO_ENUM_ITEM(RAT_MAX)
RANDO_ENUM_END(RandoAgeTime)
RANDO_ENUM_BEGIN(GrottoEntranceOffsets)
/* 0x00 */ RANDO_ENUM_ITEM(GROTTO_COLOSSUS_OFFSET)
/* 0x01 */ RANDO_ENUM_ITEM(GROTTO_LH_OFFSET)
/* 0x02 */ RANDO_ENUM_ITEM(GROTTO_ZR_STORMS_OFFSET)
/* 0x03 */ RANDO_ENUM_ITEM(GROTTO_ZR_FAIRY_OFFSET)
/* 0x04 */ RANDO_ENUM_ITEM(GROTTO_ZR_OPEN_OFFSET)
/* 0x05 */ RANDO_ENUM_ITEM(GROTTO_DMC_HAMMER_OFFSET)
/* 0x06 */ RANDO_ENUM_ITEM(GROTTO_DMC_UPPER_OFFSET)
/* 0x07 */ RANDO_ENUM_ITEM(GROTTO_GORON_CITY_OFFSET)
/* 0x08 */ RANDO_ENUM_ITEM(GROTTO_DMT_STORMS_OFFSET)
/* 0x09 */ RANDO_ENUM_ITEM(GROTTO_DMT_COW_OFFSET)
/* 0x0A */ RANDO_ENUM_ITEM(GROTTO_KAK_OPEN_OFFSET)
/* 0x0B */ RANDO_ENUM_ITEM(GROTTO_KAK_REDEAD_OFFSET)
/* 0x0C */ RANDO_ENUM_ITEM(GROTTO_HC_STORMS_OFFSET)
/* 0x0D */ RANDO_ENUM_ITEM(GROTTO_HF_TEKTITE_OFFSET)
/* 0x0E */ RANDO_ENUM_ITEM(GROTTO_HF_NEAR_KAK_OFFSET)
/* 0x0F */ RANDO_ENUM_ITEM(GROTTO_HF_FAIRY_OFFSET)
/* 0x10 */ RANDO_ENUM_ITEM(GROTTO_HF_NEAR_MARKET_OFFSET)
/* 0x11 */ RANDO_ENUM_ITEM(GROTTO_HF_COW_OFFSET)
/* 0x12 */ RANDO_ENUM_ITEM(GROTTO_HF_INSIDE_FENCE_OFFSET)
/* 0x13 */ RANDO_ENUM_ITEM(GROTTO_HF_OPEN_OFFSET)
/* 0x14 */ RANDO_ENUM_ITEM(GROTTO_HF_SOUTHEAST_OFFSET)
/* 0x15 */ RANDO_ENUM_ITEM(GROTTO_LLR_OFFSET)
/* 0x16 */ RANDO_ENUM_ITEM(GROTTO_SFM_WOLFOS_OFFSET)
/* 0x17 */ RANDO_ENUM_ITEM(GROTTO_SFM_STORMS_OFFSET)
/* 0x18 */ RANDO_ENUM_ITEM(GROTTO_SFM_FAIRY_OFFSET)
/* 0x19 */ RANDO_ENUM_ITEM(GROTTO_LW_SCRUBS_OFFSET)
/* 0x1A */ RANDO_ENUM_ITEM(GROTTO_LW_NEAR_SHORTCUTS_OFFSET)
/* 0x1B */ RANDO_ENUM_ITEM(GROTTO_KF_STORMS_OFFSET)
/* 0x1C */ RANDO_ENUM_ITEM(GROTTO_ZD_STORMS_OFFSET)
/* 0x1D */ RANDO_ENUM_ITEM(GROTTO_GF_STORMS_OFFSET)
/* 0x1E */ RANDO_ENUM_ITEM(GROTTO_GV_STORMS_OFFSET)
/* 0x1F */ RANDO_ENUM_ITEM(GROTTO_GV_OCTOROK_OFFSET)
/* 0x20 */ RANDO_ENUM_ITEM(GROTTO_LW_DEKU_THEATRE_OFFSET)
/* 0x21 */ RANDO_ENUM_ITEM(GROTTO_OFFSET_MAX)
RANDO_ENUM_END(GrottoEntranceOffsets)
#ifdef RANDO_ENUM_BEGIN_CLEANUP
#undef RANDO_ENUM_BEGIN
#undef RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifdef RANDO_ENUM_ITEM_CLEANUP
#undef RANDO_ENUM_ITEM
#undef RANDO_ENUM_ITEM_CLEANUP
#endif
#ifdef RANDO_ENUM_END_CLEANUP
#undef RANDO_ENUM_END
#undef RANDO_ENUM_END_CLEANUP
#endif

View File

@@ -0,0 +1,460 @@
#ifndef RANDO_ENUM_BEGIN
#define RANDO_ENUM_BEGIN(...)
#define RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifndef RANDO_ENUM_ITEM
#define RANDO_ENUM_ITEM(...)
#define RANDO_ENUM_ITEM_CLEANUP
#endif
#ifndef RANDO_ENUM_END
#define RANDO_ENUM_END(...)
#define RANDO_ENUM_END_CLEANUP
#endif
// Generic Settings (any binary option can use this)
// off/on
RANDO_ENUM_BEGIN(RandoOptionGenericOffOn)
RANDO_ENUM_ITEM(RO_GENERIC_OFF)
RANDO_ENUM_ITEM(RO_GENERIC_ON)
RANDO_ENUM_END(RandoOptionGenericOffOn)
// no/yes
RANDO_ENUM_BEGIN(RandoOptionGenericNoYes)
RANDO_ENUM_ITEM(RO_GENERIC_NO)
RANDO_ENUM_ITEM(RO_GENERIC_YES)
RANDO_ENUM_END(RandoOptionGenericNoYes)
// don't skip/skip
RANDO_ENUM_BEGIN(RandoOptionGenericSkip)
RANDO_ENUM_ITEM(RO_GENERIC_DONT_SKIP)
RANDO_ENUM_ITEM(RO_GENERIC_SKIP)
RANDO_ENUM_END(RandoOptionGenericSkip)
// Closed Forest settings (On, Deku Only, Off)
RANDO_ENUM_BEGIN(RandoOptionForest)
RANDO_ENUM_ITEM(RO_CLOSED_FOREST_ON)
RANDO_ENUM_ITEM(RO_CLOSED_FOREST_DEKU_ONLY)
RANDO_ENUM_ITEM(RO_CLOSED_FOREST_OFF)
RANDO_ENUM_END(RandoOptionForest)
// Door of Time settings (closed, song only, open)
RANDO_ENUM_BEGIN(RandoOptionDoorOfTime)
RANDO_ENUM_ITEM(RO_DOOROFTIME_CLOSED)
RANDO_ENUM_ITEM(RO_DOOROFTIME_SONGONLY)
RANDO_ENUM_ITEM(RO_DOOROFTIME_OPEN)
RANDO_ENUM_END(RandoOptionDoorOfTime)
// Zora's Fountain settings (closed, closed as child, open)
RANDO_ENUM_BEGIN(RandoOptionZorasFountain)
RANDO_ENUM_ITEM(RO_ZF_CLOSED)
RANDO_ENUM_ITEM(RO_ZF_CLOSED_CHILD)
RANDO_ENUM_ITEM(RO_ZF_OPEN)
RANDO_ENUM_END(RandoOptionZorasFountain)
// Sleeping Waterfall settings (closed, open)
RANDO_ENUM_BEGIN(RandoOptionSleepingWaterfall)
RANDO_ENUM_ITEM(RO_WATERFALL_CLOSED)
RANDO_ENUM_ITEM(RO_WATERFALL_OPEN)
RANDO_ENUM_END(RandoOptionSleepingWaterfall)
// Jabu-Jabu settings (closed, open)
RANDO_ENUM_BEGIN(RandoOptionJabu)
RANDO_ENUM_ITEM(RO_JABU_CLOSED)
RANDO_ENUM_ITEM(RO_JABU_OPEN)
RANDO_ENUM_END(RandoOptionJabu)
// Starting Age settings (child, adult, random)
RANDO_ENUM_BEGIN(RandoOptionStartingAge)
RANDO_ENUM_ITEM(RO_AGE_CHILD)
RANDO_ENUM_ITEM(RO_AGE_ADULT)
RANDO_ENUM_ITEM(RO_AGE_RANDOM)
RANDO_ENUM_END(RandoOptionStartingAge)
// Fortress Carpenters settings (normal, fast, free)
RANDO_ENUM_BEGIN(RandoOptionGerudoFortress)
RANDO_ENUM_ITEM(RO_GF_CARPENTERS_NORMAL)
RANDO_ENUM_ITEM(RO_GF_CARPENTERS_FAST)
RANDO_ENUM_ITEM(RO_GF_CARPENTERS_FREE)
RANDO_ENUM_END(RandoOptionGerudoFortress)
// Kakariko Gate settings (closed/open)
RANDO_ENUM_BEGIN(RandoOptionKakarikoGate)
RANDO_ENUM_ITEM(RO_KAK_GATE_CLOSED)
RANDO_ENUM_ITEM(RO_KAK_GATE_OPEN)
RANDO_ENUM_END(RandoOptionKakarikoGate)
// Rainbow Bridge settings (vanilla, always open, stones, medallions, dungeon rewards, dungeons, tokens)
RANDO_ENUM_BEGIN(RandoOptionRainbowBridge)
RANDO_ENUM_ITEM(RO_BRIDGE_VANILLA)
RANDO_ENUM_ITEM(RO_BRIDGE_ALWAYS_OPEN)
RANDO_ENUM_ITEM(RO_BRIDGE_STONES)
RANDO_ENUM_ITEM(RO_BRIDGE_MEDALLIONS)
RANDO_ENUM_ITEM(RO_BRIDGE_DUNGEON_REWARDS)
RANDO_ENUM_ITEM(RO_BRIDGE_DUNGEONS)
RANDO_ENUM_ITEM(RO_BRIDGE_TOKENS)
RANDO_ENUM_ITEM(RO_BRIDGE_GREG)
RANDO_ENUM_END(RandoOptionRainbowBridge)
// Bridge Reward Options settings (Standard rewards, Greg as reward, Greg as wildcard)
RANDO_ENUM_BEGIN(RandoOptionBridgeRewards)
RANDO_ENUM_ITEM(RO_BRIDGE_STANDARD_REWARD)
RANDO_ENUM_ITEM(RO_BRIDGE_GREG_REWARD)
RANDO_ENUM_ITEM(RO_BRIDGE_WILDCARD_REWARD)
RANDO_ENUM_END(RandoOptionBridgeRewards)
// Shopsanity settings (off, specific count, random)
RANDO_ENUM_BEGIN(RandoOptionShopsanity)
RANDO_ENUM_ITEM(RO_SHOPSANITY_OFF)
RANDO_ENUM_ITEM(RO_SHOPSANITY_SPECIFIC_COUNT)
RANDO_ENUM_ITEM(RO_SHOPSANITY_RANDOM)
RANDO_ENUM_END(RandoOptionShopsanity)
// Shopsanity count settings (0-7 items)
RANDO_ENUM_BEGIN(RandoOptionShopsanityCount)
RANDO_ENUM_ITEM(RO_SHOPSANITY_COUNT_ZERO_ITEMS)
RANDO_ENUM_ITEM(RO_SHOPSANITY_COUNT_ONE_ITEM)
RANDO_ENUM_ITEM(RO_SHOPSANITY_COUNT_TWO_ITEMS)
RANDO_ENUM_ITEM(RO_SHOPSANITY_COUNT_THREE_ITEMS)
RANDO_ENUM_ITEM(RO_SHOPSANITY_COUNT_FOUR_ITEMS)
RANDO_ENUM_ITEM(RO_SHOPSANITY_COUNT_FIVE_ITEMS)
RANDO_ENUM_ITEM(RO_SHOPSANITY_COUNT_SIX_ITEMS)
RANDO_ENUM_ITEM(RO_SHOPSANITY_COUNT_SEVEN_ITEMS)
RANDO_ENUM_ITEM(RO_SHOPSANITY_COUNT_EIGHT_ITEMS)
RANDO_ENUM_END(RandoOptionShopsanityCount)
// Shopsanity price ranges
RANDO_ENUM_BEGIN(RandoOptionPrices)
RANDO_ENUM_ITEM(RO_PRICE_VANILLA)
RANDO_ENUM_ITEM(RO_PRICE_CHEAP_BALANCED) // Balanced random from 0-95, favoring lower numbers
RANDO_ENUM_ITEM(RO_PRICE_BALANCED) // Random from 0-300, favoring lower numbers
RANDO_ENUM_ITEM(RO_PRICE_FIXED)
RANDO_ENUM_ITEM(RO_PRICE_RANGE)
RANDO_ENUM_ITEM(RO_PRICE_SET_BY_WALLET)
RANDO_ENUM_END(RandoOptionPrices)
// Scrubsanity settings (off, affordable, expensive, random)
RANDO_ENUM_BEGIN(RandoOptionScrubsanity)
RANDO_ENUM_ITEM(RO_SCRUBS_OFF)
RANDO_ENUM_ITEM(RO_SCRUBS_ONE_TIME_ONLY)
RANDO_ENUM_ITEM(RO_SCRUBS_ALL)
RANDO_ENUM_END(RandoOptionScrubsanity)
// Ammo drop settings (on, "on+bombchu", off)
RANDO_ENUM_BEGIN(RandoOptionAmmoDrops)
RANDO_ENUM_ITEM(RO_AMMO_DROPS_OFF)
// RANDO_ENUM_ITEM(RO_AMMO_DROPS_ON_PLUS_BOMBCHU)
RANDO_ENUM_ITEM(RO_AMMO_DROPS_ON)
RANDO_ENUM_END(RandoOptionAmmoDrops)
RANDO_ENUM_BEGIN(RandoOptionBombchuBag)
RANDO_ENUM_ITEM(RO_BOMBCHU_BAG_NONE)
RANDO_ENUM_ITEM(RO_BOMBCHU_BAG_SINGLE)
RANDO_ENUM_ITEM(RO_BOMBCHU_BAG_PROGRESSIVE)
RANDO_ENUM_END(RandoOptionBombchuBag)
RANDO_ENUM_BEGIN(RandoOptionBossSouls)
RANDO_ENUM_ITEM(RO_BOSS_SOULS_OFF)
RANDO_ENUM_ITEM(RO_BOSS_SOULS_ON)
RANDO_ENUM_ITEM(RO_BOSS_SOULS_ON_PLUS_GANON)
RANDO_ENUM_END(RandoOptionBossSouls)
// Fishsanity settings (off, loach only, pond only, grottos only, both)
RANDO_ENUM_BEGIN(RandoOptionsFishsanity)
RANDO_ENUM_ITEM(RO_FISHSANITY_OFF)
RANDO_ENUM_ITEM(RO_FISHSANITY_HYRULE_LOACH)
RANDO_ENUM_ITEM(RO_FISHSANITY_POND)
RANDO_ENUM_ITEM(RO_FISHSANITY_OVERWORLD)
RANDO_ENUM_ITEM(RO_FISHSANITY_BOTH)
RANDO_ENUM_END(RandoOptionsFishsanity)
// Infinite Upgrades settings (off, progressive, condensed progressive)
RANDO_ENUM_BEGIN(RandoOptionInfiniteUpgrades)
RANDO_ENUM_ITEM(RO_INF_UPGRADES_OFF)
RANDO_ENUM_ITEM(RO_INF_UPGRADES_PROGRESSIVE)
RANDO_ENUM_ITEM(RO_INF_UPGRADES_CONDENSED_PROGRESSIVE)
RANDO_ENUM_END(RandoOptionInfiniteUpgrades)
// Any Dungeon Item (start with, vanilla, own dungeon, any dungeon,
// overworld, anywhere)
RANDO_ENUM_BEGIN(RandoOptionDungeonItemLocation)
RANDO_ENUM_ITEM(RO_DUNGEON_ITEM_LOC_STARTWITH)
RANDO_ENUM_ITEM(RO_DUNGEON_ITEM_LOC_VANILLA)
RANDO_ENUM_ITEM(RO_DUNGEON_ITEM_LOC_OWN_DUNGEON)
RANDO_ENUM_ITEM(RO_DUNGEON_ITEM_LOC_ANY_DUNGEON)
RANDO_ENUM_ITEM(RO_DUNGEON_ITEM_LOC_OVERWORLD)
RANDO_ENUM_ITEM(RO_DUNGEON_ITEM_LOC_ANYWHERE)
RANDO_ENUM_END(RandoOptionDungeonItemLocation)
// Dungeon reward settings
RANDO_ENUM_BEGIN(RandoOptionDungeonRewards)
RANDO_ENUM_ITEM(RO_DUNGEON_REWARDS_VANILLA)
RANDO_ENUM_ITEM(RO_DUNGEON_REWARDS_END_OF_DUNGEON)
RANDO_ENUM_ITEM(RO_DUNGEON_REWARDS_ANY_DUNGEON)
RANDO_ENUM_ITEM(RO_DUNGEON_REWARDS_OVERWORLD)
RANDO_ENUM_ITEM(RO_DUNGEON_REWARDS_ANYWHERE)
RANDO_ENUM_END(RandoOptionDungeonRewards)
// Keyring Settings
RANDO_ENUM_BEGIN(RandoOptionKeyrings)
RANDO_ENUM_ITEM(RO_KEYRINGS_OFF)
RANDO_ENUM_ITEM(RO_KEYRINGS_RANDOM)
RANDO_ENUM_ITEM(RO_KEYRINGS_COUNT)
RANDO_ENUM_ITEM(RO_KEYRINGS_SELECTION)
RANDO_ENUM_END(RandoOptionKeyrings)
RANDO_ENUM_BEGIN(RandoOptionKeyringForDungeon)
RANDO_ENUM_ITEM(RO_KEYRING_FOR_DUNGEON_OFF)
RANDO_ENUM_ITEM(RO_KEYRING_FOR_DUNGEON_RANDOM)
RANDO_ENUM_ITEM(RO_KEYRING_FOR_DUNGEON_ON)
RANDO_ENUM_END(RandoOptionKeyringForDungeon)
// Ganon's Boss Key Settings (vanilla, own dungeon, start with,
// overworld, anywhere, 100 GS reward)
RANDO_ENUM_BEGIN(RandoOptionGanonsBossKey)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_VANILLA)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_OWN_DUNGEON)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_STARTWITH)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_ANY_DUNGEON)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_OVERWORLD)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_ANYWHERE)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_LACS_VANILLA)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_LACS_STONES)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_LACS_MEDALLIONS)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_LACS_REWARDS)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_LACS_DUNGEONS)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_LACS_TOKENS)
RANDO_ENUM_ITEM(RO_GANON_BOSS_KEY_KAK_TOKENS)
RANDO_ENUM_END(RandoOptionGanonsBossKey)
RANDO_ENUM_BEGIN(RandoOptionLACSCondition)
RANDO_ENUM_ITEM(RO_LACS_VANILLA)
RANDO_ENUM_ITEM(RO_LACS_STONES)
RANDO_ENUM_ITEM(RO_LACS_MEDALLIONS)
RANDO_ENUM_ITEM(RO_LACS_REWARDS)
RANDO_ENUM_ITEM(RO_LACS_DUNGEONS)
RANDO_ENUM_ITEM(RO_LACS_TOKENS)
RANDO_ENUM_END(RandoOptionLACSCondition)
// LACS Reward Options settings (Standard rewards, Greg as reward, Greg as wildcard)
RANDO_ENUM_BEGIN(RandoOptionLACSRewards)
RANDO_ENUM_ITEM(RO_LACS_STANDARD_REWARD)
RANDO_ENUM_ITEM(RO_LACS_GREG_REWARD)
RANDO_ENUM_ITEM(RO_LACS_WILDCARD_REWARD)
RANDO_ENUM_END(RandoOptionLACSRewards)
// Ganon's Trials
RANDO_ENUM_BEGIN(RandoOptionGanonsTrials)
RANDO_ENUM_ITEM(RO_GANONS_TRIALS_SKIP)
RANDO_ENUM_ITEM(RO_GANONS_TRIALS_SET_NUMBER)
RANDO_ENUM_ITEM(RO_GANONS_TRIALS_RANDOM_NUMBER)
RANDO_ENUM_END(RandoOptionGanonsTrials)
// Shuffle Dungeon Entrance Settings (Off, on, plus ganon)
RANDO_ENUM_BEGIN(RandoOptionDungeonEntranceShuffle)
RANDO_ENUM_ITEM(RO_DUNGEON_ENTRANCE_SHUFFLE_OFF)
RANDO_ENUM_ITEM(RO_DUNGEON_ENTRANCE_SHUFFLE_ON)
RANDO_ENUM_ITEM(RO_DUNGEON_ENTRANCE_SHUFFLE_ON_PLUS_GANON)
RANDO_ENUM_END(RandoOptionDungeonEntranceShuffle)
// Shuffle Boss Room Entrance Settings (Off, Age Restricted, Full)
RANDO_ENUM_BEGIN(RandoOptionBossRoomEntranceShuffle)
RANDO_ENUM_ITEM(RO_BOSS_ROOM_ENTRANCE_SHUFFLE_OFF)
RANDO_ENUM_ITEM(RO_BOSS_ROOM_ENTRANCE_SHUFFLE_AGE_RESTRICTED)
RANDO_ENUM_ITEM(RO_BOSS_ROOM_ENTRANCE_SHUFFLE_FULL)
RANDO_ENUM_END(RandoOptionBossRoomEntranceShuffle)
// Shuffle Interior Entrance Settings (Off, simple, all)
RANDO_ENUM_BEGIN(RandoOptionInteriorEntranceShuffle)
RANDO_ENUM_ITEM(RO_INTERIOR_ENTRANCE_SHUFFLE_OFF)
RANDO_ENUM_ITEM(RO_INTERIOR_ENTRANCE_SHUFFLE_SIMPLE)
RANDO_ENUM_ITEM(RO_INTERIOR_ENTRANCE_SHUFFLE_ALL)
RANDO_ENUM_END(RandoOptionInteriorEntranceShuffle)
// Song shuffle Settings (Song locations, Dungeon rewards, anywhere)
RANDO_ENUM_BEGIN(RandoOptionSongShuffle)
RANDO_ENUM_ITEM(RO_SONG_SHUFFLE_OFF)
RANDO_ENUM_ITEM(RO_SONG_SHUFFLE_SONG_LOCATIONS)
RANDO_ENUM_ITEM(RO_SONG_SHUFFLE_DUNGEON_REWARDS)
RANDO_ENUM_ITEM(RO_SONG_SHUFFLE_ANYWHERE)
RANDO_ENUM_END(RandoOptionSongShuffle)
// Shuffle Merchants Settings (Off, Beans Only, All but Beans, All)
RANDO_ENUM_BEGIN(RandoOptionShuffleMerchants)
RANDO_ENUM_ITEM(RO_SHUFFLE_MERCHANTS_OFF)
RANDO_ENUM_ITEM(RO_SHUFFLE_MERCHANTS_BEANS_ONLY)
RANDO_ENUM_ITEM(RO_SHUFFLE_MERCHANTS_ALL_BUT_BEANS)
RANDO_ENUM_ITEM(RO_SHUFFLE_MERCHANTS_ALL)
RANDO_ENUM_END(RandoOptionShuffleMerchants)
// Starting Ocarina Settings (off, fairy, oot)
RANDO_ENUM_BEGIN(RandoOptionStartingOcarina)
RANDO_ENUM_ITEM(RO_STARTING_OCARINA_OFF)
RANDO_ENUM_ITEM(RO_STARTING_OCARINA_FAIRY)
RANDO_ENUM_ITEM(RO_STARTING_OCARINA_TIME)
RANDO_ENUM_END(RandoOptionStartingOcarina)
// Mask Quest Settings (vanilla, completed, shuffle)
RANDO_ENUM_BEGIN(RandoOptionMaskQuest)
RANDO_ENUM_ITEM(RO_MASK_QUEST_VANILLA)
RANDO_ENUM_ITEM(RO_MASK_QUEST_COMPLETED)
RANDO_ENUM_ITEM(RO_MASK_QUEST_SHUFFLE)
RANDO_ENUM_END(RandoOptionMaskQuest)
// Item Pool Settings
RANDO_ENUM_BEGIN(RandoOptionItemPool)
RANDO_ENUM_ITEM(RO_ITEM_POOL_PLENTIFUL)
RANDO_ENUM_ITEM(RO_ITEM_POOL_BALANCED)
RANDO_ENUM_ITEM(RO_ITEM_POOL_SCARCE)
RANDO_ENUM_ITEM(RO_ITEM_POOL_MINIMAL)
RANDO_ENUM_END(RandoOptionItemPool)
// Ice Trap Settings
RANDO_ENUM_BEGIN(RandoOptionIceTraps)
RANDO_ENUM_ITEM(RO_ICE_TRAPS_OFF)
RANDO_ENUM_ITEM(RO_ICE_TRAPS_NORMAL)
RANDO_ENUM_ITEM(RO_ICE_TRAPS_COUNT)
RANDO_ENUM_ITEM(RO_ICE_TRAPS_PERCENT)
RANDO_ENUM_END(RandoOptionIceTraps)
// Gossip Stone Hint Settings (no hints, needs nothing,
// needs mask of truth, needs stone of agony)
RANDO_ENUM_BEGIN(RandoOptionGossipStones)
RANDO_ENUM_ITEM(RO_GOSSIP_STONES_NONE)
RANDO_ENUM_ITEM(RO_GOSSIP_STONES_NEED_NOTHING)
RANDO_ENUM_ITEM(RO_GOSSIP_STONES_NEED_TRUTH)
RANDO_ENUM_ITEM(RO_GOSSIP_STONES_NEED_STONE)
RANDO_ENUM_END(RandoOptionGossipStones)
// Hint Clarity Settings (obscure, ambiguous, clear)
RANDO_ENUM_BEGIN(RandoOptionHintClarity)
RANDO_ENUM_ITEM(RO_HINT_CLARITY_OBSCURE)
RANDO_ENUM_ITEM(RO_HINT_CLARITY_AMBIGUOUS)
RANDO_ENUM_ITEM(RO_HINT_CLARITY_CLEAR)
RANDO_ENUM_END(RandoOptionHintClarity)
// Hint Distribution Settings (useless, balanced, strong, very strong)
RANDO_ENUM_BEGIN(RandoOptionHintDistribution)
RANDO_ENUM_ITEM(RO_HINT_DIST_USELESS)
RANDO_ENUM_ITEM(RO_HINT_DIST_BALANCED)
RANDO_ENUM_ITEM(RO_HINT_DIST_STRONG)
RANDO_ENUM_ITEM(RO_HINT_DIST_VERY_STRONG)
RANDO_ENUM_END(RandoOptionHintDistribution)
// Gerudo Fortress Key Settings (vanilla, any dungeon, overworld,
// anywhere)
RANDO_ENUM_BEGIN(RandoOptionGerudoKeys)
RANDO_ENUM_ITEM(RO_GERUDO_KEYS_VANILLA)
RANDO_ENUM_ITEM(RO_GERUDO_KEYS_ANY_DUNGEON)
RANDO_ENUM_ITEM(RO_GERUDO_KEYS_OVERWORLD)
RANDO_ENUM_ITEM(RO_GERUDO_KEYS_ANYWHERE)
RANDO_ENUM_END(RandoOptionGerudoKeys)
// Tokensanity settings (off, dungeons, overworld, all)
RANDO_ENUM_BEGIN(RandoOptionTokensanity)
RANDO_ENUM_ITEM(RO_TOKENSANITY_OFF)
RANDO_ENUM_ITEM(RO_TOKENSANITY_DUNGEONS)
RANDO_ENUM_ITEM(RO_TOKENSANITY_OVERWORLD)
RANDO_ENUM_ITEM(RO_TOKENSANITY_ALL)
RANDO_ENUM_END(RandoOptionTokensanity)
// Freestanding Hearts/Rupees settings (off, dungeons, overworld, all)
RANDO_ENUM_BEGIN(RandoOptionFreestanding)
RANDO_ENUM_ITEM(RO_SHUFFLE_FREESTANDING_OFF)
RANDO_ENUM_ITEM(RO_SHUFFLE_FREESTANDING_DUNGEONS)
RANDO_ENUM_ITEM(RO_SHUFFLE_FREESTANDING_OVERWORLD)
RANDO_ENUM_ITEM(RO_SHUFFLE_FREESTANDING_ALL)
RANDO_ENUM_END(RandoOptionFreestanding)
// Shuffle Pots settings (off, dungeons, overworld, all)
RANDO_ENUM_BEGIN(RandoOptionShufflePots)
RANDO_ENUM_ITEM(RO_SHUFFLE_POTS_OFF)
RANDO_ENUM_ITEM(RO_SHUFFLE_POTS_DUNGEONS)
RANDO_ENUM_ITEM(RO_SHUFFLE_POTS_OVERWORLD)
RANDO_ENUM_ITEM(RO_SHUFFLE_POTS_ALL)
RANDO_ENUM_END(RandoOptionShufflePots)
// Shuffle Grass settings (off, dungeons, overworld, all)
RANDO_ENUM_BEGIN(RandoOptionShuffleGrass)
RANDO_ENUM_ITEM(RO_SHUFFLE_GRASS_OFF)
RANDO_ENUM_ITEM(RO_SHUFFLE_GRASS_DUNGEONS)
RANDO_ENUM_ITEM(RO_SHUFFLE_GRASS_OVERWORLD)
RANDO_ENUM_ITEM(RO_SHUFFLE_GRASS_ALL)
RANDO_ENUM_END(RandoOptionShuffleGrass)
// Shuffle Crates settings (off, dungeons, overworld, all)
RANDO_ENUM_BEGIN(RandoOptionShuffleCrates)
RANDO_ENUM_ITEM(RO_SHUFFLE_CRATES_OFF)
RANDO_ENUM_ITEM(RO_SHUFFLE_CRATES_DUNGEONS)
RANDO_ENUM_ITEM(RO_SHUFFLE_CRATES_OVERWORLD)
RANDO_ENUM_ITEM(RO_SHUFFLE_CRATES_ALL)
RANDO_ENUM_END(RandoOptionShuffleCrates)
// Link's Pocket Settings (dungeon reward, advancement, anything, nothing)
RANDO_ENUM_BEGIN(RandoOptionLinksPocket)
RANDO_ENUM_ITEM(RO_LINKS_POCKET_DUNGEON_REWARD)
RANDO_ENUM_ITEM(RO_LINKS_POCKET_ADVANCEMENT)
RANDO_ENUM_ITEM(RO_LINKS_POCKET_ANYTHING)
RANDO_ENUM_ITEM(RO_LINKS_POCKET_NOTHING)
RANDO_ENUM_END(RandoOptionLinksPocket)
// Logic (glitchless/no logic)
RANDO_ENUM_BEGIN(RandoOptionLogic)
RANDO_ENUM_ITEM(RO_LOGIC_GLITCHLESS)
RANDO_ENUM_ITEM(RO_LOGIC_NO_LOGIC)
RANDO_ENUM_END(RandoOptionLogic)
// Damage Multiplier
RANDO_ENUM_BEGIN(RandoOptionDamageMultiplier)
RANDO_ENUM_ITEM(RO_DAMAGE_MULTIPLIER_HALF)
RANDO_ENUM_ITEM(RO_DAMAGE_MULTIPLIER_DEFAULT)
RANDO_ENUM_ITEM(RO_DAMAGE_MULTIPLIER_DOUBLE)
RANDO_ENUM_ITEM(RO_DAMAGE_MULTIPLIER_QUADRUPLE)
RANDO_ENUM_ITEM(RO_DAMAGE_MULTIPLIER_OCTUPLE)
RANDO_ENUM_ITEM(RO_DAMAGE_MULTIPLIER_SEXDECUPLE)
RANDO_ENUM_ITEM(RO_DAMAGE_MULTIPLIER_OHKO)
RANDO_ENUM_END(RandoOptionDamageMultiplier)
// MQ Dungeons
RANDO_ENUM_BEGIN(RandoOptionMQDungeons)
RANDO_ENUM_ITEM(RO_MQ_DUNGEONS_NONE)
RANDO_ENUM_ITEM(RO_MQ_DUNGEONS_SET_NUMBER)
RANDO_ENUM_ITEM(RO_MQ_DUNGEONS_RANDOM_NUMBER)
RANDO_ENUM_ITEM(RO_MQ_DUNGEONS_SELECTION)
RANDO_ENUM_END(RandoOptionMQDungeons)
// Triforce Hunt settings (off, win, Ganon's Boss Key)
RANDO_ENUM_BEGIN(RandoOptionTriforceHunt)
RANDO_ENUM_ITEM(RO_TRIFORCE_HUNT_OFF)
RANDO_ENUM_ITEM(RO_TRIFORCE_HUNT_WIN)
RANDO_ENUM_ITEM(RO_TRIFORCE_HUNT_GBK)
RANDO_ENUM_END(RandoOptionTriforceHunt)
RANDO_ENUM_BEGIN(RandoOptionLocationInclusion)
RANDO_ENUM_ITEM(RO_LOCATION_INCLUDE)
RANDO_ENUM_ITEM(RO_LOCATION_EXCLUDE)
RANDO_ENUM_END(RandoOptionLocationInclusion)
RANDO_ENUM_BEGIN(RandoOptionChestGame)
RANDO_ENUM_ITEM(RO_CHEST_GAME_OFF)
RANDO_ENUM_ITEM(RO_CHEST_GAME_SINGLE_KEYS)
RANDO_ENUM_ITEM(RO_CHEST_GAME_PACK)
RANDO_ENUM_END(RandoOptionChestGame)
RANDO_ENUM_BEGIN(RandoOptionMQSet)
RANDO_ENUM_ITEM(RO_MQ_SET_VANILLA)
RANDO_ENUM_ITEM(RO_MQ_SET_MQ)
RANDO_ENUM_ITEM(RO_MQ_SET_RANDOM)
RANDO_ENUM_END(RandoOptionMQSet)
#ifdef RANDO_ENUM_BEGIN_CLEANUP
#undef RANDO_ENUM_BEGIN
#undef RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifdef RANDO_ENUM_ITEM_CLEANUP
#undef RANDO_ENUM_ITEM
#undef RANDO_ENUM_ITEM_CLEANUP
#endif
#ifdef RANDO_ENUM_END_CLEANUP
#undef RANDO_ENUM_END
#undef RANDO_ENUM_END_CLEANUP
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,260 @@
#ifndef RANDO_ENUM_BEGIN
#define RANDO_ENUM_BEGIN(...)
#define RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifndef RANDO_ENUM_ITEM
#define RANDO_ENUM_ITEM(...)
#define RANDO_ENUM_ITEM_CLEANUP
#endif
#ifndef RANDO_ENUM_END
#define RANDO_ENUM_END(...)
#define RANDO_ENUM_END_CLEANUP
#endif
RANDO_ENUM_BEGIN(RandomizerSettingKey)
RANDO_ENUM_ITEM(RSK_NONE)
RANDO_ENUM_ITEM(RSK_LOGIC_RULES)
RANDO_ENUM_ITEM(RSK_FOREST)
RANDO_ENUM_ITEM(RSK_KAK_GATE)
RANDO_ENUM_ITEM(RSK_DOOR_OF_TIME)
RANDO_ENUM_ITEM(RSK_ZORAS_FOUNTAIN)
RANDO_ENUM_ITEM(RSK_SLEEPING_WATERFALL)
RANDO_ENUM_ITEM(RSK_JABU_OPEN)
RANDO_ENUM_ITEM(RSK_STARTING_AGE)
RANDO_ENUM_ITEM(RSK_SELECTED_STARTING_AGE)
RANDO_ENUM_ITEM(RSK_GERUDO_FORTRESS)
RANDO_ENUM_ITEM(RSK_RAINBOW_BRIDGE)
RANDO_ENUM_ITEM(RSK_RAINBOW_BRIDGE_STONE_COUNT)
RANDO_ENUM_ITEM(RSK_RAINBOW_BRIDGE_MEDALLION_COUNT)
RANDO_ENUM_ITEM(RSK_RAINBOW_BRIDGE_REWARD_COUNT)
RANDO_ENUM_ITEM(RSK_RAINBOW_BRIDGE_DUNGEON_COUNT)
RANDO_ENUM_ITEM(RSK_RAINBOW_BRIDGE_TOKEN_COUNT)
RANDO_ENUM_ITEM(RSK_BRIDGE_OPTIONS)
RANDO_ENUM_ITEM(RSK_GANONS_TRIALS)
RANDO_ENUM_ITEM(RSK_TRIAL_COUNT)
RANDO_ENUM_ITEM(RSK_MEDALLION_LOCKED_TRIALS)
RANDO_ENUM_ITEM(RSK_STARTING_OCARINA)
RANDO_ENUM_ITEM(RSK_SHUFFLE_OCARINA)
RANDO_ENUM_ITEM(RSK_SHUFFLE_OCARINA_BUTTONS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_SWIM)
RANDO_ENUM_ITEM(RSK_SHUFFLE_GRAB)
RANDO_ENUM_ITEM(RSK_SHUFFLE_CLIMB)
RANDO_ENUM_ITEM(RSK_SHUFFLE_CRAWL)
RANDO_ENUM_ITEM(RSK_SHUFFLE_OPEN_CHEST)
RANDO_ENUM_ITEM(RSK_SHUFFLE_SPEAK)
RANDO_ENUM_ITEM(RSK_STARTING_DEKU_SHIELD)
RANDO_ENUM_ITEM(RSK_STARTING_KOKIRI_SWORD)
RANDO_ENUM_ITEM(RSK_STARTING_MASTER_SWORD)
RANDO_ENUM_ITEM(RSK_STARTING_ZELDAS_LULLABY)
RANDO_ENUM_ITEM(RSK_STARTING_EPONAS_SONG)
RANDO_ENUM_ITEM(RSK_STARTING_SARIAS_SONG)
RANDO_ENUM_ITEM(RSK_STARTING_SUNS_SONG)
RANDO_ENUM_ITEM(RSK_STARTING_SONG_OF_TIME)
RANDO_ENUM_ITEM(RSK_STARTING_SONG_OF_STORMS)
RANDO_ENUM_ITEM(RSK_STARTING_MINUET_OF_FOREST)
RANDO_ENUM_ITEM(RSK_STARTING_BOLERO_OF_FIRE)
RANDO_ENUM_ITEM(RSK_STARTING_SERENADE_OF_WATER)
RANDO_ENUM_ITEM(RSK_STARTING_REQUIEM_OF_SPIRIT)
RANDO_ENUM_ITEM(RSK_STARTING_NOCTURNE_OF_SHADOW)
RANDO_ENUM_ITEM(RSK_STARTING_PRELUDE_OF_LIGHT)
RANDO_ENUM_ITEM(RSK_SHUFFLE_KOKIRI_SWORD)
RANDO_ENUM_ITEM(RSK_SHUFFLE_MASTER_SWORD)
RANDO_ENUM_ITEM(RSK_SHUFFLE_CHILD_WALLET)
RANDO_ENUM_ITEM(RSK_INCLUDE_TYCOON_WALLET)
RANDO_ENUM_ITEM(RSK_SHUFFLE_DUNGEON_REWARDS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_SONGS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_TOKENS)
RANDO_ENUM_ITEM(RSK_SHOPSANITY)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_COUNT)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES_FIXED_PRICE)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES_RANGE_1)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES_RANGE_2)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES_NO_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES_CHILD_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES_ADULT_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES_GIANT_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES_TYCOON_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SHOPSANITY_PRICES_AFFORDABLE)
RANDO_ENUM_ITEM(RSK_SHUFFLE_SCRUBS)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES_FIXED_PRICE)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES_RANGE_1)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES_RANGE_2)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES_NO_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES_CHILD_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES_ADULT_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES_GIANT_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES_TYCOON_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_SCRUBS_PRICES_AFFORDABLE)
RANDO_ENUM_ITEM(RSK_SHUFFLE_BEEHIVES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_COWS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_WEIRD_EGG)
RANDO_ENUM_ITEM(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD)
RANDO_ENUM_ITEM(RSK_SHUFFLE_POTS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_CRATES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_TREES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_BUSHES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_FROG_SONG_RUPEES)
RANDO_ENUM_ITEM(RSK_ITEM_POOL)
RANDO_ENUM_ITEM(RSK_BASE_ICE_TRAPS)
RANDO_ENUM_ITEM(RSK_ADDITIONAL_ICE_TRAPS)
RANDO_ENUM_ITEM(RSK_ICE_TRAP_PERCENT)
RANDO_ENUM_ITEM(RSK_GOSSIP_STONE_HINTS)
RANDO_ENUM_ITEM(RSK_TOT_ALTAR_HINT)
RANDO_ENUM_ITEM(RSK_GANONDORF_HINT)
RANDO_ENUM_ITEM(RSK_SHEIK_LA_HINT)
RANDO_ENUM_ITEM(RSK_BOSS_KEY_HINT)
RANDO_ENUM_ITEM(RSK_DAMPES_DIARY_HINT)
RANDO_ENUM_ITEM(RSK_GREG_HINT)
RANDO_ENUM_ITEM(RSK_LOACH_HINT)
RANDO_ENUM_ITEM(RSK_SARIA_HINT)
RANDO_ENUM_ITEM(RSK_MIDO_HINT)
RANDO_ENUM_ITEM(RSK_FROGS_HINT)
RANDO_ENUM_ITEM(RSK_OOT_HINT)
RANDO_ENUM_ITEM(RSK_KAK_10_SKULLS_HINT)
RANDO_ENUM_ITEM(RSK_KAK_20_SKULLS_HINT)
RANDO_ENUM_ITEM(RSK_KAK_30_SKULLS_HINT)
RANDO_ENUM_ITEM(RSK_KAK_40_SKULLS_HINT)
RANDO_ENUM_ITEM(RSK_KAK_50_SKULLS_HINT)
RANDO_ENUM_ITEM(RSK_KAK_100_SKULLS_HINT)
RANDO_ENUM_ITEM(RSK_MASK_SHOP_HINT)
RANDO_ENUM_ITEM(RSK_BIGGORON_HINT)
RANDO_ENUM_ITEM(RSK_BIG_POES_HINT)
RANDO_ENUM_ITEM(RSK_CHICKENS_HINT)
RANDO_ENUM_ITEM(RSK_MALON_HINT)
RANDO_ENUM_ITEM(RSK_HBA_HINT)
RANDO_ENUM_ITEM(RSK_WARP_SONG_HINTS)
RANDO_ENUM_ITEM(RSK_SCRUB_TEXT_HINT)
RANDO_ENUM_ITEM(RSK_MERCHANT_TEXT_HINT)
RANDO_ENUM_ITEM(RSK_FISHING_POLE_HINT)
RANDO_ENUM_ITEM(RSK_HINT_CLARITY)
RANDO_ENUM_ITEM(RSK_HINT_DISTRIBUTION)
RANDO_ENUM_ITEM(RSK_SHUFFLE_MAPANDCOMPASS)
RANDO_ENUM_ITEM(RSK_KEYSANITY)
RANDO_ENUM_ITEM(RSK_GERUDO_KEYS)
RANDO_ENUM_ITEM(RSK_BOSS_KEYSANITY)
RANDO_ENUM_ITEM(RSK_GANONS_BOSS_KEY)
RANDO_ENUM_ITEM(RSK_SKIP_CHILD_STEALTH)
RANDO_ENUM_ITEM(RSK_SKIP_CHILD_ZELDA)
RANDO_ENUM_ITEM(RSK_STARTING_STICKS)
RANDO_ENUM_ITEM(RSK_STARTING_NUTS)
RANDO_ENUM_ITEM(RSK_STARTING_BEANS)
RANDO_ENUM_ITEM(RSK_FULL_WALLETS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_CHEST_MINIGAME)
RANDO_ENUM_ITEM(RSK_BIG_POE_COUNT)
RANDO_ENUM_ITEM(RSK_SKIP_EPONA_RACE)
RANDO_ENUM_ITEM(RSK_MASK_QUEST)
RANDO_ENUM_ITEM(RSK_SKIP_SCARECROWS_SONG)
RANDO_ENUM_ITEM(RSK_SKIP_PLANTING_BEANS)
RANDO_ENUM_ITEM(RSK_SKULLS_SUNS_SONG)
RANDO_ENUM_ITEM(RSK_SHUFFLE_ADULT_TRADE)
RANDO_ENUM_ITEM(RSK_SHUFFLE_MERCHANTS)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES_FIXED_PRICE)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES_RANGE_1)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES_RANGE_2)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES_NO_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES_CHILD_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES_ADULT_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES_GIANT_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES_TYCOON_WALLET_WEIGHT)
RANDO_ENUM_ITEM(RSK_MERCHANT_PRICES_AFFORDABLE)
RANDO_ENUM_ITEM(RSK_BLUE_FIRE_ARROWS)
RANDO_ENUM_ITEM(RSK_SUNLIGHT_ARROWS)
RANDO_ENUM_ITEM(RSK_SLINGBOW_BREAK_BEEHIVES)
RANDO_ENUM_ITEM(RSK_ENABLE_BOMBCHU_DROPS)
RANDO_ENUM_ITEM(RSK_BOMBCHU_BAG)
RANDO_ENUM_ITEM(RSK_LINKS_POCKET)
RANDO_ENUM_ITEM(RSK_MQ_DUNGEON_RANDOM)
RANDO_ENUM_ITEM(RSK_MQ_DUNGEON_COUNT)
RANDO_ENUM_ITEM(RSK_MQ_DUNGEON_SET)
RANDO_ENUM_ITEM(RSK_MQ_DEKU_TREE)
RANDO_ENUM_ITEM(RSK_MQ_DODONGOS_CAVERN)
RANDO_ENUM_ITEM(RSK_MQ_JABU_JABU)
RANDO_ENUM_ITEM(RSK_MQ_FOREST_TEMPLE)
RANDO_ENUM_ITEM(RSK_MQ_FIRE_TEMPLE)
RANDO_ENUM_ITEM(RSK_MQ_WATER_TEMPLE)
RANDO_ENUM_ITEM(RSK_MQ_SPIRIT_TEMPLE)
RANDO_ENUM_ITEM(RSK_MQ_SHADOW_TEMPLE)
RANDO_ENUM_ITEM(RSK_MQ_BOTTOM_OF_THE_WELL)
RANDO_ENUM_ITEM(RSK_MQ_ICE_CAVERN)
RANDO_ENUM_ITEM(RSK_MQ_GTG)
RANDO_ENUM_ITEM(RSK_MQ_GANONS_CASTLE)
RANDO_ENUM_ITEM(RSK_LACS_STONE_COUNT)
RANDO_ENUM_ITEM(RSK_LACS_MEDALLION_COUNT)
RANDO_ENUM_ITEM(RSK_LACS_REWARD_COUNT)
RANDO_ENUM_ITEM(RSK_LACS_DUNGEON_COUNT)
RANDO_ENUM_ITEM(RSK_LACS_TOKEN_COUNT)
RANDO_ENUM_ITEM(RSK_LACS_OPTIONS)
RANDO_ENUM_ITEM(RSK_KEYRINGS)
RANDO_ENUM_ITEM(RSK_KEYRINGS_RANDOM_COUNT)
RANDO_ENUM_ITEM(RSK_KEYRINGS_GERUDO_FORTRESS)
RANDO_ENUM_ITEM(RSK_KEYRINGS_FOREST_TEMPLE)
RANDO_ENUM_ITEM(RSK_KEYRINGS_FIRE_TEMPLE)
RANDO_ENUM_ITEM(RSK_KEYRINGS_WATER_TEMPLE)
RANDO_ENUM_ITEM(RSK_KEYRINGS_SPIRIT_TEMPLE)
RANDO_ENUM_ITEM(RSK_KEYRINGS_SHADOW_TEMPLE)
RANDO_ENUM_ITEM(RSK_KEYRINGS_BOTTOM_OF_THE_WELL)
RANDO_ENUM_ITEM(RSK_KEYRINGS_GTG)
RANDO_ENUM_ITEM(RSK_KEYRINGS_GANONS_CASTLE)
RANDO_ENUM_ITEM(RSK_SHUFFLE_ENTRANCES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_DUNGEON_ENTRANCES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_OVERWORLD_ENTRANCES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_INTERIOR_ENTRANCES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_THIEVES_HIDEOUT_ENTRANCES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_GROTTO_ENTRANCES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_OWL_DROPS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_WARP_SONGS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_OVERWORLD_SPAWNS)
RANDO_ENUM_ITEM(RSK_MIXED_ENTRANCE_POOLS)
RANDO_ENUM_ITEM(RSK_MIX_DUNGEON_ENTRANCES)
RANDO_ENUM_ITEM(RSK_MIX_BOSS_ENTRANCES)
RANDO_ENUM_ITEM(RSK_MIX_OVERWORLD_ENTRANCES)
RANDO_ENUM_ITEM(RSK_MIX_INTERIOR_ENTRANCES)
RANDO_ENUM_ITEM(RSK_MIX_THIEVES_HIDEOUT_ENTRANCES)
RANDO_ENUM_ITEM(RSK_MIX_GROTTO_ENTRANCES)
RANDO_ENUM_ITEM(RSK_DECOUPLED_ENTRANCES)
RANDO_ENUM_ITEM(RSK_STARTING_SKULLTULA_TOKEN)
RANDO_ENUM_ITEM(RSK_STARTING_HEARTS)
RANDO_ENUM_ITEM(RSK_DAMAGE_MULTIPLIER)
RANDO_ENUM_ITEM(RSK_ALL_LOCATIONS_REACHABLE)
RANDO_ENUM_ITEM(RSK_SHUFFLE_BOSS_ENTRANCES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_GANONS_TOWER_ENTRANCE)
RANDO_ENUM_ITEM(RSK_SHUFFLE_100_GS_REWARD)
RANDO_ENUM_ITEM(RSK_TRIFORCE_HUNT)
RANDO_ENUM_ITEM(RSK_TRIFORCE_HUNT_PIECES_TOTAL)
RANDO_ENUM_ITEM(RSK_TRIFORCE_HUNT_PIECES_REQUIRED)
RANDO_ENUM_ITEM(RSK_SHUFFLE_BEAN_SOULS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_BOSS_SOULS)
RANDO_ENUM_ITEM(RSK_FISHSANITY)
RANDO_ENUM_ITEM(RSK_FISHSANITY_POND_COUNT)
RANDO_ENUM_ITEM(RSK_FISHSANITY_AGE_SPLIT)
RANDO_ENUM_ITEM(RSK_SHUFFLE_FISHING_POLE)
RANDO_ENUM_ITEM(RSK_INFINITE_UPGRADES)
RANDO_ENUM_ITEM(RSK_SKELETON_KEY)
RANDO_ENUM_ITEM(RSK_SHUFFLE_DEKU_STICK_BAG)
RANDO_ENUM_ITEM(RSK_SHUFFLE_DEKU_NUT_BAG)
RANDO_ENUM_ITEM(RSK_SHUFFLE_FREESTANDING)
RANDO_ENUM_ITEM(RSK_SHUFFLE_FOUNTAIN_FAIRIES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_STONE_FAIRIES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_BEAN_FAIRIES)
RANDO_ENUM_ITEM(RSK_SHUFFLE_SONG_FAIRIES)
RANDO_ENUM_ITEM(RSK_LOCK_OVERWORLD_DOORS)
RANDO_ENUM_ITEM(RSK_SHUFFLE_GRASS)
RANDO_ENUM_ITEM(RSK_ROCS_FEATHER)
RANDO_ENUM_ITEM(RSK_MAX)
RANDO_ENUM_END(RandomizerSettingKey)
#ifdef RANDO_ENUM_BEGIN_CLEANUP
#undef RANDO_ENUM_BEGIN
#undef RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifdef RANDO_ENUM_ITEM_CLEANUP
#undef RANDO_ENUM_ITEM
#undef RANDO_ENUM_ITEM_CLEANUP
#endif
#ifdef RANDO_ENUM_END_CLEANUP
#undef RANDO_ENUM_END
#undef RANDO_ENUM_END_CLEANUP
#endif

View File

@@ -0,0 +1,306 @@
#ifndef RANDO_ENUM_BEGIN
#define RANDO_ENUM_BEGIN(...)
#define RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifndef RANDO_ENUM_ITEM
#define RANDO_ENUM_ITEM(...)
#define RANDO_ENUM_ITEM_CLEANUP
#endif
#ifndef RANDO_ENUM_END
#define RANDO_ENUM_END(...)
#define RANDO_ENUM_END_CLEANUP
#endif
// Randomizer tricks and glitches (beta) based on knowledge of what is achievable in Ship of Harkinian randomizer,
// excludes Item manipulation (e.g. RBA/GIM/SRM) and Wrong Warping and Ganon BK Skip
// TODO Fill and alphabetize (area based tricks must have area in name and come alphetized after general tricks)
// TODO test commented out tricks to see if consistent with console on SoH
// TODO add area specific tricks
RANDO_ENUM_BEGIN(RandomizerTrick)
RANDO_ENUM_ITEM(RT_VISIBLE_COLLISION) // -- general tricks
RANDO_ENUM_ITEM(RT_GROTTOS_WITHOUT_AGONY)
RANDO_ENUM_ITEM(RT_FEWER_TUNIC_REQUIREMENTS)
RANDO_ENUM_ITEM(RT_UNINTUITIVE_JUMPS)
RANDO_ENUM_ITEM(RT_RUSTED_SWITCHES)
RANDO_ENUM_ITEM(RT_FLAMING_CHESTS)
RANDO_ENUM_ITEM(RT_BUNNY_HOOD_JUMPS)
RANDO_ENUM_ITEM(RT_DAMAGE_BOOST_SIMPLE)
RANDO_ENUM_ITEM(RT_HOVER_BOOST_SIMPLE)
RANDO_ENUM_ITEM(RT_BOMBCHU_BEEHIVES)
RANDO_ENUM_ITEM(RT_BLUE_FIRE_MUD_WALLS)
RANDO_ENUM_ITEM(RT_OPEN_UNDERWATER_CHEST)
RANDO_ENUM_ITEM(RT_DISTANT_BOULDER_COLLISION)
RANDO_ENUM_ITEM(RT_HOOKSHOT_EXTENSION)
RANDO_ENUM_ITEM(RT_SLIDE_JUMP)
RANDO_ENUM_ITEM(RT_KF_ADULT_GS) // -- location tricks
RANDO_ENUM_ITEM(RT_LW_BRIDGE)
RANDO_ENUM_ITEM(RT_LW_MIDO_BACKFLIP)
RANDO_ENUM_ITEM(RT_LW_GS_BEAN)
RANDO_ENUM_ITEM(RT_HC_STORMS_GS)
RANDO_ENUM_ITEM(RT_HF_BIG_POE_WITHOUT_EPONA)
RANDO_ENUM_ITEM(RT_KAK_TOWER_GS)
RANDO_ENUM_ITEM(RT_KAK_CHILD_WINDMILL_POH)
RANDO_ENUM_ITEM(RT_KAK_ROOFTOP_GS)
RANDO_ENUM_ITEM(RT_GY_POH)
RANDO_ENUM_ITEM(RT_GY_CHILD_DAMPE_RACE_POH)
RANDO_ENUM_ITEM(RT_GY_SHADOW_FIRE_ARROWS)
RANDO_ENUM_ITEM(RT_DMT_SOIL_GS)
RANDO_ENUM_ITEM(RT_DMT_BOMBABLE)
RANDO_ENUM_ITEM(RT_DMT_HOVERS_LOWER_GS)
RANDO_ENUM_ITEM(RT_DMT_BEAN_LOWER_GS)
RANDO_ENUM_ITEM(RT_DMT_JS_LOWER_GS)
RANDO_ENUM_ITEM(RT_DMT_CLIMB_HOVERS)
RANDO_ENUM_ITEM(RT_DMT_UPPER_GS)
RANDO_ENUM_ITEM(RT_DMT_BOLERO_BIGGORON)
RANDO_ENUM_ITEM(RT_GC_POT)
RANDO_ENUM_ITEM(RT_GC_POT_STRENGTH)
RANDO_ENUM_ITEM(RT_GC_ROLLING_STRENGTH)
RANDO_ENUM_ITEM(RT_GC_LEFTMOST)
RANDO_ENUM_ITEM(RT_GC_GROTTO)
RANDO_ENUM_ITEM(RT_GC_LINK_GORON_DINS)
RANDO_ENUM_ITEM(RT_DMC_HOVER_BEAN_POH)
RANDO_ENUM_ITEM(RT_DMC_BOLERO_JUMP)
RANDO_ENUM_ITEM(RT_DMC_BOULDER_JS)
RANDO_ENUM_ITEM(RT_DMC_BOULDER_SKIP)
RANDO_ENUM_ITEM(RT_ZR_LOWER)
RANDO_ENUM_ITEM(RT_ZR_UPPER)
RANDO_ENUM_ITEM(RT_ZR_HOVERS)
RANDO_ENUM_ITEM(RT_ZR_CUCCO)
RANDO_ENUM_ITEM(RT_ZD_KING_ZORA_SKIP)
RANDO_ENUM_ITEM(RT_ZD_GS)
RANDO_ENUM_ITEM(RT_ZF_GREAT_FAIRY_WITHOUT_EXPLOSIVES)
RANDO_ENUM_ITEM(RT_LH_LAB_WALL_GS)
RANDO_ENUM_ITEM(RT_LH_LAB_DIVING)
RANDO_ENUM_ITEM(RT_LH_WATER_HOOKSHOT)
RANDO_ENUM_ITEM(RT_GV_CRATE_HOVERS)
RANDO_ENUM_ITEM(RT_GV_CHILD_TENT)
RANDO_ENUM_ITEM(RT_GV_CHILD_CUCCO_JUMP)
RANDO_ENUM_ITEM(RT_PASS_GUARDS_WITH_NOTHING)
RANDO_ENUM_ITEM(RT_GF_CHILD_SKIP_WASTELAND_GATE)
RANDO_ENUM_ITEM(RT_GF_ADULT_SKIP_WASTELAND_GATE)
RANDO_ENUM_ITEM(RT_GF_WARRIOR_WITH_DIFFICULT_WEAPON)
RANDO_ENUM_ITEM(RT_GF_LEDGE_CLIP_INTO_GTG)
RANDO_ENUM_ITEM(RT_HW_BUNNY_CROSSING)
RANDO_ENUM_ITEM(RT_HW_CROSSING)
RANDO_ENUM_ITEM(RT_LENS_HW)
RANDO_ENUM_ITEM(RT_HW_REVERSE)
RANDO_ENUM_ITEM(RT_COLOSSUS_GS)
RANDO_ENUM_ITEM(RT_DEKU_BASEMENT_GS)
RANDO_ENUM_ITEM(RT_DEKU_B1_SKIP)
RANDO_ENUM_ITEM(RT_DEKU_B1_BOW_WEBS)
RANDO_ENUM_ITEM(RT_DEKU_B1_BACKFLIP_OVER_SPIKED_LOG)
RANDO_ENUM_ITEM(RT_DEKU_MQ_COMPASS_GS)
RANDO_ENUM_ITEM(RT_DEKU_MQ_LOG)
RANDO_ENUM_ITEM(RT_DC_SCARECROW_GS)
RANDO_ENUM_ITEM(RT_DC_VINES_GS)
RANDO_ENUM_ITEM(RT_DC_STAIRS_WITH_BOW)
RANDO_ENUM_ITEM(RT_DC_SLINGSHOT_SKIP)
RANDO_ENUM_ITEM(RT_DC_SCRUB_ROOM)
RANDO_ENUM_ITEM(RT_DC_HAMMER_FLOOR)
RANDO_ENUM_ITEM(RT_DC_MQ_STAIRS_WITH_ONLY_STRENGTH)
RANDO_ENUM_ITEM(RT_DC_MQ_CHILD_BOMBS)
RANDO_ENUM_ITEM(RT_DC_MQ_CHILD_EYES)
RANDO_ENUM_ITEM(RT_DC_MQ_ADULT_EYES)
RANDO_ENUM_ITEM(RT_DC_DODONGO_CHU)
RANDO_ENUM_ITEM(RT_DC_EYES_CHU)
RANDO_ENUM_ITEM(RT_JABU_BOSS_HOVER)
RANDO_ENUM_ITEM(RT_JABU_NEAR_BOSS_RANGED)
RANDO_ENUM_ITEM(RT_JABU_NEAR_BOSS_EXPLOSIVES)
RANDO_ENUM_ITEM(RT_JABU_B1_CUBE_HOVER)
RANDO_ENUM_ITEM(RT_LENS_JABU_MQ)
RANDO_ENUM_ITEM(RT_JABU_MQ_RANG_JUMP)
RANDO_ENUM_ITEM(RT_JABU_MQ_SOT_GS)
RANDO_ENUM_ITEM(RT_JABU_BARINADE_POTS)
RANDO_ENUM_ITEM(RT_LENS_BOTW)
RANDO_ENUM_ITEM(RT_BOTW_CHILD_DEADHAND)
RANDO_ENUM_ITEM(RT_BOTW_BASEMENT)
RANDO_ENUM_ITEM(RT_BOTW_PITS)
RANDO_ENUM_ITEM(RT_BOTW_MQ_DEADHAND_KEY)
RANDO_ENUM_ITEM(RT_FOREST_FIRST_GS)
RANDO_ENUM_ITEM(RT_FOREST_COURTYARD_EAST_GS)
RANDO_ENUM_ITEM(RT_FOREST_VINES)
RANDO_ENUM_ITEM(RT_FOREST_COURTYARD_LEDGE)
RANDO_ENUM_ITEM(RT_FOREST_DOORFRAME)
RANDO_ENUM_ITEM(RT_FOREST_OUTSIDE_BACKDOOR)
RANDO_ENUM_ITEM(RT_FOREST_COURTYARD_HEARTS_BOOMERANG)
RANDO_ENUM_ITEM(RT_FOREST_WELL_SWIM)
RANDO_ENUM_ITEM(RT_FOREST_MQ_BLOCK_PUZZLE)
RANDO_ENUM_ITEM(RT_FOREST_MQ_JS_HALLWAY_SWITCH)
RANDO_ENUM_ITEM(RT_FOREST_MQ_HOOKSHOT_HALLWAY_SWITCH)
RANDO_ENUM_ITEM(RT_FOREST_MQ_RANG_HALLWAY_SWITCH)
RANDO_ENUM_ITEM(RT_FOREST_MQ_CHILD_DOORFRAME)
RANDO_ENUM_ITEM(RT_FIRE_SOT)
RANDO_ENUM_ITEM(RT_FIRE_STRENGTH)
RANDO_ENUM_ITEM(RT_FIRE_SCARECROW)
RANDO_ENUM_ITEM(RT_FIRE_SKIP_FLAME_WALLS)
RANDO_ENUM_ITEM(RT_FIRE_MQ_NEAR_BOSS)
RANDO_ENUM_ITEM(RT_FIRE_MQ_BLOCKED_CHEST)
RANDO_ENUM_ITEM(RT_FIRE_MQ_BK_CHEST)
RANDO_ENUM_ITEM(RT_FIRE_MQ_CLIMB)
RANDO_ENUM_ITEM(RT_FIRE_MQ_MAZE_SIDE_ROOM)
RANDO_ENUM_ITEM(RT_FIRE_MQ_MAZE_HOVERS)
RANDO_ENUM_ITEM(RT_FIRE_MQ_MAZE_JUMP)
RANDO_ENUM_ITEM(RT_FIRE_MQ_ABOVE_MAZE_GS)
RANDO_ENUM_ITEM(RT_WATER_LONGSHOT_TORCH)
RANDO_ENUM_ITEM(RT_WATER_CRACKED_WALL_HOVERS)
RANDO_ENUM_ITEM(RT_WATER_CRACKED_WALL)
RANDO_ENUM_ITEM(RT_WATER_BK_REGION)
RANDO_ENUM_ITEM(RT_WATER_NORTH_BASEMENT_LEDGE_JUMP)
RANDO_ENUM_ITEM(RT_WATER_FW_CENTRAL_GS)
RANDO_ENUM_ITEM(RT_WATER_IRONS_CENTRAL_GS)
RANDO_ENUM_ITEM(RT_WATER_CENTRAL_BOW)
RANDO_ENUM_ITEM(RT_WATER_HOOKSHOT_FALLING_PLATFORM_GS)
RANDO_ENUM_ITEM(RT_WATER_RANG_FALLING_PLATFORM_GS)
RANDO_ENUM_ITEM(RT_WATER_RIVER_GS)
RANDO_ENUM_ITEM(RT_WATER_DRAGON_JUMP_DIVE)
RANDO_ENUM_ITEM(RT_WATER_ADULT_DRAGON)
RANDO_ENUM_ITEM(RT_WATER_CHILD_DRAGON)
RANDO_ENUM_ITEM(RT_WATER_MQ_CENTRAL_PILLAR)
RANDO_ENUM_ITEM(RT_WATER_IRON_BOOTS_LEDGE_GRAB)
RANDO_ENUM_ITEM(RT_WATER_INVISIBLE_HOOKSHOT_TARGET)
RANDO_ENUM_ITEM(RT_WATER_MORPHA_WITHOUT_HOOKSHOT)
RANDO_ENUM_ITEM(RT_LENS_SHADOW)
RANDO_ENUM_ITEM(RT_LENS_SHADOW_PLATFORM)
RANDO_ENUM_ITEM(RT_LENS_BONGO)
RANDO_ENUM_ITEM(RT_SHADOW_UMBRELLA_HOVER)
RANDO_ENUM_ITEM(RT_SHADOW_UMBRELLA_CLIP)
RANDO_ENUM_ITEM(RT_SHADOW_UMBRELLA_GS)
RANDO_ENUM_ITEM(RT_SHADOW_FREESTANDING_KEY)
RANDO_ENUM_ITEM(RT_SHADOW_STATUE)
RANDO_ENUM_ITEM(RT_SHADOW_BONGO)
RANDO_ENUM_ITEM(RT_LENS_SHADOW_MQ)
RANDO_ENUM_ITEM(RT_LENS_SHADOW_MQ_INVISIBLE_BLADES)
RANDO_ENUM_ITEM(RT_LENS_SHADOW_MQ_PLATFORM)
RANDO_ENUM_ITEM(RT_LENS_SHADOW_MQ_DEADHAND)
RANDO_ENUM_ITEM(RT_SHADOW_MQ_GAP)
RANDO_ENUM_ITEM(RT_SHADOW_MQ_INVISIBLE_BLADES)
RANDO_ENUM_ITEM(RT_SHADOW_MQ_HUGE_PIT)
RANDO_ENUM_ITEM(RT_SHADOW_MQ_WINDY_WALKWAY)
RANDO_ENUM_ITEM(RT_LENS_SPIRIT)
RANDO_ENUM_ITEM(RT_SPIRIT_CHILD_CHU)
RANDO_ENUM_ITEM(RT_SPIRIT_WEST_LEDGE)
RANDO_ENUM_ITEM(RT_SPIRIT_LOWER_ADULT_SWITCH)
RANDO_ENUM_ITEM(RT_SPIRIT_STATUE_JUMP)
RANDO_ENUM_ITEM(RT_SPIRIT_PLATFORM_HOOKSHOT)
RANDO_ENUM_ITEM(RT_SPIRIT_MAP_CHEST)
RANDO_ENUM_ITEM(RT_SPIRIT_SUN_CHEST)
RANDO_ENUM_ITEM(RT_SPIRIT_WALL)
RANDO_ENUM_ITEM(RT_LENS_SPIRIT_MQ)
RANDO_ENUM_ITEM(RT_SPIRIT_MQ_SUN_BLOCK_SOT)
RANDO_ENUM_ITEM(RT_SPIRIT_MQ_SUN_BLOCK_GS)
RANDO_ENUM_ITEM(RT_SPIRIT_MQ_LOWER_ADULT)
RANDO_ENUM_ITEM(RT_SPIRIT_MQ_FROZEN_EYE)
RANDO_ENUM_ITEM(RT_ICE_STALAGMITE_CLIP)
RANDO_ENUM_ITEM(RT_ICE_STALAGMITE_HOOKSHOT)
RANDO_ENUM_ITEM(RT_ICE_BLOCK_GS)
RANDO_ENUM_ITEM(RT_ICE_MQ_RED_ICE_GS)
RANDO_ENUM_ITEM(RT_ICE_MQ_SCARECROW)
RANDO_ENUM_ITEM(RT_LENS_GTG)
RANDO_ENUM_ITEM(RT_GTG_WITHOUT_HOOKSHOT)
RANDO_ENUM_ITEM(RT_GTG_FAKE_WALL)
RANDO_ENUM_ITEM(RT_GTG_LAVA_JUMP)
RANDO_ENUM_ITEM(RT_LENS_GTG_MQ)
RANDO_ENUM_ITEM(RT_GTG_MQ_WITH_HOOKSHOT)
RANDO_ENUM_ITEM(RT_GTG_MQ_WITHOUT_HOOKSHOT)
RANDO_ENUM_ITEM(RT_LENS_GANON)
RANDO_ENUM_ITEM(RT_GANON_SPIRIT_TRIAL_HOOKSHOT)
RANDO_ENUM_ITEM(RT_LENS_GANON_MQ)
RANDO_ENUM_ITEM(RT_GANON_MQ_FIRE_TRIAL)
RANDO_ENUM_ITEM(RT_GANON_MQ_SHADOW_TRIAL)
RANDO_ENUM_ITEM(RT_GANON_MQ_LIGHT_TRIAL)
// RT_ROCS_FEATHER --if implemented with main branch
RANDO_ENUM_ITEM(RT_FOREST_TEMPLE_BK_SKIP)
RANDO_ENUM_ITEM(RT_FIRE_TEMPLE_BK_SKIP)
RANDO_ENUM_ITEM(RT_WATER_TEMPLE_BK_SKIP)
RANDO_ENUM_ITEM(RT_SHADOW_TEMPLE_BK_SKIP)
RANDO_ENUM_ITEM(RT_SPIRIT_BK_SKIP)
RANDO_ENUM_ITEM(RT_ACUTE_ANGLE_CLIP)
RANDO_ENUM_ITEM(RT_ADVANCED_CLIPS)
RANDO_ENUM_ITEM(RT_BIG_SKULLTULA_PAUSE_LIFT)
RANDO_ENUM_ITEM(RT_BLANK_A)
RANDO_ENUM_ITEM(RT_CUTSCENE_DIVE)
RANDO_ENUM_ITEM(RT_DOOM_JUMP)
RANDO_ENUM_ITEM(RT_EPG)
RANDO_ENUM_ITEM(RT_EQUIP_SWAP)
RANDO_ENUM_ITEM(RT_EQUIP_SWAP_EXPECTS_DINS)
RANDO_ENUM_ITEM(RT_FLAME_STORAGE)
RANDO_ENUM_ITEM(RT_FW_VOID_WARP)
RANDO_ENUM_ITEM(RT_GROUND_CLIP)
RANDO_ENUM_ITEM(RT_GROUND_JUMP)
RANDO_ENUM_ITEM(RT_GROUND_JUMP_HARD)
RANDO_ENUM_ITEM(RT_HESS)
RANDO_ENUM_ITEM(RT_HOOKSHOT_CLIP)
RANDO_ENUM_ITEM(RT_HOOKSHOT_JUMP)
RANDO_ENUM_ITEM(RT_HOVERING)
RANDO_ENUM_ITEM(RT_HOVERING_BOW_SLINGSHOT)
RANDO_ENUM_ITEM(RT_HOVERING_CONTORTION)
RANDO_ENUM_ITEM(RT_HOVERING_ENEMY)
RANDO_ENUM_ITEM(RT_HOVERING_HOVERBOOTS)
RANDO_ENUM_ITEM(RT_HOVERING_WALL)
RANDO_ENUM_ITEM(RT_ISG)
RANDO_ENUM_ITEM(RT_LADDER_CLIP)
RANDO_ENUM_ITEM(RT_LADDER_CLIP_HOOKSHOT)
RANDO_ENUM_ITEM(RT_LEDGE_CANCEL)
RANDO_ENUM_ITEM(RT_LEDGE_CLIP)
RANDO_ENUM_ITEM(RT_LUNGE_STORAGE)
RANDO_ENUM_ITEM(RT_MEGAFLIP_BOMB)
RANDO_ENUM_ITEM(RT_MEGAFLIP_BOMBCHU)
RANDO_ENUM_ITEM(RT_MEGASIDEHOP_BOMB)
RANDO_ENUM_ITEM(RT_MEGASIDEHOP_BOMBCHU)
RANDO_ENUM_ITEM(RT_NAVI_DIVE)
RANDO_ENUM_ITEM(RT_BOTTOM_OF_THE_WELL_NAVI_DIVE)
RANDO_ENUM_ITEM(RT_LOST_WOOD_NAVI_DIVE)
RANDO_ENUM_ITEM(RT_OCARINA_ITEMS)
RANDO_ENUM_ITEM(RT_OCARINA_ITEMS_BOMB)
RANDO_ENUM_ITEM(RT_OCARINA_ITEMS_ESS)
RANDO_ENUM_ITEM(RT_OCARINA_ITEMS_PUTAWAY)
RANDO_ENUM_ITEM(RT_QUICKDRAW)
RANDO_ENUM_ITEM(RT_QUICK_PUTAWAY)
RANDO_ENUM_ITEM(RT_SEEMWALK)
RANDO_ENUM_ITEM(RT_SUPERSLIDE)
RANDO_ENUM_ITEM(RT_SUPERSLIDE_TELEPORT)
RANDO_ENUM_ITEM(RT_TIME_STOP)
RANDO_ENUM_ITEM(RT_TRIPLE_SLASH_CLIP)
RANDO_ENUM_ITEM(RT_VINE_CLIP)
RANDO_ENUM_ITEM(RT_WEIRDSHOT)
RANDO_ENUM_ITEM(RT_WEIRDSHOT_CHU)
RANDO_ENUM_ITEM(RT_WEIRDSHOT_ENEMY)
// RANDO_ENUM_ITEM(RT_FW_VOID_WARP_FAST_TEXT) --untested tricks:
// RANDO_ENUM_ITEM(RT_ACTION_SWAP)
// RANDO_ENUM_ITEM(RT_ACTOR_GLITCH)
// RANDO_ENUM_ITEM(RT_ADULT_TRADE_TTG)
RANDO_ENUM_ITEM(RT_TOT_DOT_SKIP_SWORDLESS) // AREA SPECIFIC GLITCHES
RANDO_ENUM_ITEM(RT_TOT_DOT_SKIP_SWORD)
RANDO_ENUM_ITEM(RT_LLR_STEAL_EPONA)
RANDO_ENUM_ITEM(RT_KF_POKEY_SKIP)
RANDO_ENUM_ITEM(RT_KF_MIDO_SKIP)
RANDO_ENUM_ITEM(RT_KF_CLIMB_TWINS_HOUSE)
RANDO_ENUM_ITEM(RT_KF_DEKU_TREE_ADULT)
RANDO_ENUM_ITEM(RT_KF_WWT_ESCAPE)
RANDO_ENUM_ITEM(RT_LW_AQUAESCAPE)
RANDO_ENUM_ITEM(RT_LW_MIDO_SKIP_ADULT)
RANDO_ENUM_ITEM(RT_OGC_GOLD_GAUNTLET_SKIP)
RANDO_ENUM_ITEM(RT_GY_ROYAL_TOMB)
RANDO_ENUM_ITEM(RT_ZF_JABU_ADULT_BOMBCHU)
RANDO_ENUM_ITEM(RT_ZF_JABU_ADULT_HOVERBOOT_BOMB)
RANDO_ENUM_ITEM(RT_FOREST_TEMPLE_FOUR_POE_SKIP)
RANDO_ENUM_ITEM(RT_FOREST_TEMPLE_JUNGLE_JUMP)
// RANDO_ENUM_ITEM(RT_DARUNIA_CUTSCENE)
RANDO_ENUM_ITEM(RT_BOTTOM_OF_THE_WELL_SKULL_PUSH)
RANDO_ENUM_ITEM(RT_GANONS_CASTLE_BARRIER_SKIP_HOVER)
RANDO_ENUM_ITEM(RT_GANONS_CASTLE_GOLD_GAUNTLET_SKIP)
RANDO_ENUM_ITEM(RT_MAX)
RANDO_ENUM_END(RandomizerTrick)
#ifdef RANDO_ENUM_BEGIN_CLEANUP
#undef RANDO_ENUM_BEGIN
#undef RANDO_ENUM_BEGIN_CLEANUP
#endif
#ifdef RANDO_ENUM_ITEM_CLEANUP
#undef RANDO_ENUM_ITEM
#undef RANDO_ENUM_ITEM_CLEANUP
#endif
#ifdef RANDO_ENUM_END_CLEANUP
#undef RANDO_ENUM_END
#undef RANDO_ENUM_END_CLEANUP
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff