mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-07-15 09:33:00 -07:00
Merge b00f1994d6
into 237dcfec74
This commit is contained in:
commit
ea9dd6de93
35 changed files with 2178 additions and 1452 deletions
|
@ -25,7 +25,7 @@ typedef enum GetItemCategory {
|
||||||
/* 0x01 */ ITEM_CATEGORY_LESSER,
|
/* 0x01 */ ITEM_CATEGORY_LESSER,
|
||||||
/* 0x02 */ ITEM_CATEGORY_BOSS_KEY,
|
/* 0x02 */ ITEM_CATEGORY_BOSS_KEY,
|
||||||
/* 0x03 */ ITEM_CATEGORY_SMALL_KEY,
|
/* 0x03 */ ITEM_CATEGORY_SMALL_KEY,
|
||||||
/* 0x04 */ ITEM_CATEGORY_SKULLTULA_TOKEN,
|
/* 0x04 */ ITEM_CATEGORY_SKULL_TOKEN,
|
||||||
/* 0x05 */ ITEM_CATEGORY_MAJOR,
|
/* 0x05 */ ITEM_CATEGORY_MAJOR,
|
||||||
} GetItemCategory;
|
} GetItemCategory;
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ static void RemoveStartingItemsFromPool() {
|
||||||
} else if (startingItem == ItemPool[i] || (Rando::StaticData::RetrieveItem(startingItem).IsBottleItem() &&
|
} else if (startingItem == ItemPool[i] || (Rando::StaticData::RetrieveItem(startingItem).IsBottleItem() &&
|
||||||
Rando::StaticData::RetrieveItem(ItemPool[i]).IsBottleItem())) {
|
Rando::StaticData::RetrieveItem(ItemPool[i]).IsBottleItem())) {
|
||||||
if (AdditionalHeartContainers > 0 &&
|
if (AdditionalHeartContainers > 0 &&
|
||||||
(startingItem == RG_PIECE_OF_HEART || startingItem == RG_TREASURE_GAME_HEART)) {
|
(startingItem == RG_PIECE_OF_HEART || startingItem == RG_TCG_PIECE_OF_HEART)) {
|
||||||
ItemPool[i] = RG_HEART_CONTAINER;
|
ItemPool[i] = RG_HEART_CONTAINER;
|
||||||
AdditionalHeartContainers--;
|
AdditionalHeartContainers--;
|
||||||
} else {
|
} else {
|
||||||
|
@ -848,7 +848,7 @@ static void AssumedFill(const std::vector<RandomizerGet>& items, const std::vect
|
||||||
// NOLINTNEXTLINE(clang-diagnostic-unused-variable)
|
// NOLINTNEXTLINE(clang-diagnostic-unused-variable)
|
||||||
for (const RandomizerGet item : items) {
|
for (const RandomizerGet item : items) {
|
||||||
SPDLOG_DEBUG("\t");
|
SPDLOG_DEBUG("\t");
|
||||||
SPDLOG_DEBUG(Rando::StaticData::RetrieveItem(item).GetName().GetEnglish());
|
SPDLOG_DEBUG(Rando::StaticData::RetrieveItem(item).GetName().GetForCurrentLanguage(MF_RAW));
|
||||||
SPDLOG_DEBUG("\n");
|
SPDLOG_DEBUG("\n");
|
||||||
}
|
}
|
||||||
SPDLOG_DEBUG("\nAllowed Locations:\n");
|
SPDLOG_DEBUG("\nAllowed Locations:\n");
|
||||||
|
@ -888,7 +888,6 @@ static void AssumedFill(const std::vector<RandomizerGet>& items, const std::vect
|
||||||
Shuffle(itemsToPlace);
|
Shuffle(itemsToPlace);
|
||||||
while (!itemsToPlace.empty()) {
|
while (!itemsToPlace.empty()) {
|
||||||
RandomizerGet item = std::move(itemsToPlace.back());
|
RandomizerGet item = std::move(itemsToPlace.back());
|
||||||
Rando::StaticData::RetrieveItem(item).SetAsPlaythrough();
|
|
||||||
itemsToPlace.pop_back();
|
itemsToPlace.pop_back();
|
||||||
|
|
||||||
// assume we have all unplaced items
|
// assume we have all unplaced items
|
||||||
|
@ -907,7 +906,7 @@ static void AssumedFill(const std::vector<RandomizerGet>& items, const std::vect
|
||||||
if (accessibleLocations.empty()) {
|
if (accessibleLocations.empty()) {
|
||||||
|
|
||||||
SPDLOG_DEBUG("\nCANNOT PLACE ");
|
SPDLOG_DEBUG("\nCANNOT PLACE ");
|
||||||
SPDLOG_DEBUG(Rando::StaticData::RetrieveItem(item).GetName().GetEnglish());
|
SPDLOG_DEBUG(Rando::StaticData::RetrieveItem(item).GetName().GetForCurrentLanguage(MF_RAW));
|
||||||
SPDLOG_DEBUG(". TRYING AGAIN...\n");
|
SPDLOG_DEBUG(". TRYING AGAIN...\n");
|
||||||
|
|
||||||
// reset any locations that got an item
|
// reset any locations that got an item
|
||||||
|
@ -1135,14 +1134,12 @@ static void RandomizeDungeonItems() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->GetOption(RSK_GERUDO_KEYS).Is(RO_GERUDO_KEYS_ANY_DUNGEON)) {
|
if (ctx->GetOption(RSK_GERUDO_KEYS).Is(RO_GERUDO_KEYS_ANY_DUNGEON)) {
|
||||||
auto gerudoKeys = FilterAndEraseFromPool(ItemPool, [](const auto i) {
|
auto gerudoKeys = FilterAndEraseFromPool(
|
||||||
return i == RG_GERUDO_FORTRESS_SMALL_KEY || i == RG_GERUDO_FORTRESS_KEY_RING;
|
ItemPool, [](const auto i) { return i == RG_HIDEOUT_SMALL_KEY || i == RG_HIDEOUT_KEY_RING; });
|
||||||
});
|
|
||||||
AddElementsToPool(anyDungeonItems, gerudoKeys);
|
AddElementsToPool(anyDungeonItems, gerudoKeys);
|
||||||
} else if (ctx->GetOption(RSK_GERUDO_KEYS).Is(RO_GERUDO_KEYS_OVERWORLD)) {
|
} else if (ctx->GetOption(RSK_GERUDO_KEYS).Is(RO_GERUDO_KEYS_OVERWORLD)) {
|
||||||
auto gerudoKeys = FilterAndEraseFromPool(ItemPool, [](const auto i) {
|
auto gerudoKeys = FilterAndEraseFromPool(
|
||||||
return i == RG_GERUDO_FORTRESS_SMALL_KEY || i == RG_GERUDO_FORTRESS_KEY_RING;
|
ItemPool, [](const auto i) { return i == RG_HIDEOUT_SMALL_KEY || i == RG_HIDEOUT_KEY_RING; });
|
||||||
});
|
|
||||||
AddElementsToPool(overworldItems, gerudoKeys);
|
AddElementsToPool(overworldItems, gerudoKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ void StaticData::HintTable_Init() {
|
||||||
/*--------------------------
|
/*--------------------------
|
||||||
| GENERAL TEXT |
|
| GENERAL TEXT |
|
||||||
---------------------------*/
|
---------------------------*/
|
||||||
hintTextTable[RHT_NONE] = HintText(CustomMessage("No Hint", "Kein Hinweis", "Pas d'Indice" ));
|
hintTextTable[RHT_NONE] = HintText(CustomMessage("No Hint", "Kein Hinweis", "Pas d'Indice" ), {}, {}, CustomMessage("No Item", "Rien", "Kein Artikel"));
|
||||||
hintTextTable[RHT_WAY_OF_THE_HERO] =
|
hintTextTable[RHT_WAY_OF_THE_HERO] =
|
||||||
HintText(CustomMessage( "They say that #[[1]]# is on #the way of the hero#.",
|
HintText(CustomMessage( "They say that #[[1]]# is on #the way of the hero#.",
|
||||||
/*german*/ "Man erzählt sich, daß #[[1]]# #der Weg des Helden# verlaufe.",
|
/*german*/ "Man erzählt sich, daß #[[1]]# #der Weg des Helden# verlaufe.",
|
||||||
|
@ -1004,7 +1004,7 @@ void StaticData::HintTable_Init() {
|
||||||
|
|
||||||
hintTextTable[RHT_CASTLE_GROUNDS] = HintText(CustomMessage("the Castle Grounds",
|
hintTextTable[RHT_CASTLE_GROUNDS] = HintText(CustomMessage("the Castle Grounds",
|
||||||
/*german*/ "auf dem Schloßgelände",
|
/*german*/ "auf dem Schloßgelände",
|
||||||
/*french*/ "le Château d'Hyrule"));
|
/*french*/ "le Château d'Hyrule")); //TRANSLATE_TODO name differently to RHT_HYRULE_CASTLE
|
||||||
// /*spanish*/
|
// /*spanish*/
|
||||||
|
|
||||||
hintTextTable[RHT_HYRULE_CASTLE] = HintText(CustomMessage("Hyrule Castle",
|
hintTextTable[RHT_HYRULE_CASTLE] = HintText(CustomMessage("Hyrule Castle",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -27,15 +27,21 @@ HintDistributionSetting::HintDistributionSetting(std::string _name, HintType _ty
|
||||||
dungeonLimit = _dungeonLimit;
|
dungeonLimit = _dungeonLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RANDOTODO rearrange once all HintText's have names
|
||||||
HintText::HintText(CustomMessage clearText_, std::vector<CustomMessage> ambiguousText_,
|
HintText::HintText(CustomMessage clearText_, std::vector<CustomMessage> ambiguousText_,
|
||||||
std::vector<CustomMessage> obscureText_)
|
std::vector<CustomMessage> obscureText_, CustomMessage name_)
|
||||||
: clearText(std::move(clearText_)), ambiguousText(std::move(ambiguousText_)), obscureText(std::move(obscureText_)) {
|
: clearText(std::move(clearText_)), ambiguousText(std::move(ambiguousText_)), obscureText(std::move(obscureText_)),
|
||||||
|
name(std::move(name_)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const CustomMessage& HintText::GetClear() const {
|
const CustomMessage& HintText::GetClear() const {
|
||||||
return clearText;
|
return clearText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CustomMessage& HintText::GetName() const {
|
||||||
|
return name.GetEnglish() == "" ? clearText : name;
|
||||||
|
}
|
||||||
|
|
||||||
const CustomMessage& HintText::GetObscure() const {
|
const CustomMessage& HintText::GetObscure() const {
|
||||||
return obscureText.size() > 0 ? RandomElement(obscureText) : clearText;
|
return obscureText.size() > 0 ? RandomElement(obscureText) : clearText;
|
||||||
}
|
}
|
||||||
|
@ -456,7 +462,7 @@ static RandomizerCheck CreateRandomHint(std::vector<RandomizerCheck>& possibleHi
|
||||||
SPDLOG_DEBUG("\n");
|
SPDLOG_DEBUG("\n");
|
||||||
|
|
||||||
SPDLOG_DEBUG("\tItem: ");
|
SPDLOG_DEBUG("\tItem: ");
|
||||||
SPDLOG_DEBUG(ctx->GetItemLocation(hintedLocation)->GetPlacedItemName().GetEnglish());
|
SPDLOG_DEBUG(ctx->GetItemLocation(hintedLocation)->GetPlacedItemName().GetForCurrentLanguage(MF_RAW));
|
||||||
SPDLOG_DEBUG("\n");
|
SPDLOG_DEBUG("\n");
|
||||||
|
|
||||||
placed = CreateHint(hintedLocation, copies, type, distributionName);
|
placed = CreateHint(hintedLocation, copies, type, distributionName);
|
||||||
|
|
|
@ -34,7 +34,8 @@ class HintText {
|
||||||
public:
|
public:
|
||||||
HintText() = default;
|
HintText() = default;
|
||||||
HintText(CustomMessage clearText_, std::vector<CustomMessage> ambiguousText_ = {},
|
HintText(CustomMessage clearText_, std::vector<CustomMessage> ambiguousText_ = {},
|
||||||
std::vector<CustomMessage> obscureText_ = {});
|
std::vector<CustomMessage> obscureText_ = {}, CustomMessage name_ = { "" });
|
||||||
|
const CustomMessage& GetName() const;
|
||||||
const CustomMessage& GetClear() const;
|
const CustomMessage& GetClear() const;
|
||||||
const CustomMessage& GetObscure() const;
|
const CustomMessage& GetObscure() const;
|
||||||
const CustomMessage& GetObscure(size_t selection) const;
|
const CustomMessage& GetObscure(size_t selection) const;
|
||||||
|
@ -48,9 +49,11 @@ class HintText {
|
||||||
bool operator!=(const HintText& right) const;
|
bool operator!=(const HintText& right) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CustomMessage clearText;
|
CustomMessage clearText; // RANDOTODO proper system to define use of articles instead of having the name and name
|
||||||
|
// with articles repeated
|
||||||
std::vector<CustomMessage> ambiguousText = {};
|
std::vector<CustomMessage> ambiguousText = {};
|
||||||
std::vector<CustomMessage> obscureText = {};
|
std::vector<CustomMessage> obscureText = {};
|
||||||
|
CustomMessage name;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct StaticHintInfo {
|
struct StaticHintInfo {
|
||||||
|
|
|
@ -59,13 +59,13 @@ const std::array<RandomizerGet, 59> alwaysItems = {
|
||||||
RG_PROGRESSIVE_BOMB_BAG,
|
RG_PROGRESSIVE_BOMB_BAG,
|
||||||
RG_PROGRESSIVE_WALLET, // 2 progressive wallets
|
RG_PROGRESSIVE_WALLET, // 2 progressive wallets
|
||||||
RG_PROGRESSIVE_WALLET,
|
RG_PROGRESSIVE_WALLET,
|
||||||
RG_PROGRESSIVE_MAGIC_METER, // 2 progressive magic meters
|
RG_PROGRESSIVE_MAGIC, // 2 progressive magic meters
|
||||||
RG_PROGRESSIVE_MAGIC_METER,
|
RG_PROGRESSIVE_MAGIC,
|
||||||
RG_DOUBLE_DEFENSE,
|
RG_DOUBLE_DEFENSE,
|
||||||
RG_PROGRESSIVE_STICK_UPGRADE, // 2 stick upgrades
|
RG_PROGRESSIVE_STICK_BAG, // 2 stick upgrades
|
||||||
RG_PROGRESSIVE_STICK_UPGRADE,
|
RG_PROGRESSIVE_STICK_BAG,
|
||||||
RG_PROGRESSIVE_NUT_UPGRADE, // 2 nut upgrades
|
RG_PROGRESSIVE_NUT_BAG, // 2 nut upgrades
|
||||||
RG_PROGRESSIVE_NUT_UPGRADE,
|
RG_PROGRESSIVE_NUT_BAG,
|
||||||
RG_RECOVERY_HEART, // 6 recovery hearts
|
RG_RECOVERY_HEART, // 6 recovery hearts
|
||||||
RG_RECOVERY_HEART,
|
RG_RECOVERY_HEART,
|
||||||
RG_RECOVERY_HEART,
|
RG_RECOVERY_HEART,
|
||||||
|
@ -80,7 +80,7 @@ const std::array<RandomizerGet, 59> alwaysItems = {
|
||||||
RG_ARROWS_10, // 5
|
RG_ARROWS_10, // 5
|
||||||
RG_ARROWS_10,
|
RG_ARROWS_10,
|
||||||
RG_ARROWS_10,
|
RG_ARROWS_10,
|
||||||
RG_TREASURE_GAME_HEART,
|
RG_TCG_PIECE_OF_HEART,
|
||||||
};
|
};
|
||||||
const std::array<RandomizerGet, 44> easyItems = {
|
const std::array<RandomizerGet, 44> easyItems = {
|
||||||
RG_BIGGORON_SWORD,
|
RG_BIGGORON_SWORD,
|
||||||
|
@ -101,9 +101,9 @@ const std::array<RandomizerGet, 44> easyItems = {
|
||||||
RG_PROGRESSIVE_STRENGTH,
|
RG_PROGRESSIVE_STRENGTH,
|
||||||
RG_PROGRESSIVE_SCALE,
|
RG_PROGRESSIVE_SCALE,
|
||||||
RG_PROGRESSIVE_WALLET,
|
RG_PROGRESSIVE_WALLET,
|
||||||
RG_PROGRESSIVE_MAGIC_METER,
|
RG_PROGRESSIVE_MAGIC,
|
||||||
RG_PROGRESSIVE_STICK_UPGRADE,
|
RG_PROGRESSIVE_STICK_BAG,
|
||||||
RG_PROGRESSIVE_NUT_UPGRADE,
|
RG_PROGRESSIVE_NUT_BAG,
|
||||||
RG_PROGRESSIVE_BOW,
|
RG_PROGRESSIVE_BOW,
|
||||||
RG_PROGRESSIVE_SLINGSHOT,
|
RG_PROGRESSIVE_SLINGSHOT,
|
||||||
RG_PROGRESSIVE_BOMB_BAG,
|
RG_PROGRESSIVE_BOMB_BAG,
|
||||||
|
@ -238,7 +238,7 @@ const std::array<RandomizerGet, 4> GTG_Vanilla = {
|
||||||
RG_HUGE_RUPEE,
|
RG_HUGE_RUPEE,
|
||||||
};
|
};
|
||||||
const std::array<RandomizerGet, 5> GTG_MQ = {
|
const std::array<RandomizerGet, 5> GTG_MQ = {
|
||||||
RG_TREASURE_GAME_GREEN_RUPEE, RG_TREASURE_GAME_GREEN_RUPEE, RG_ARROWS_10, RG_GREEN_RUPEE, RG_PURPLE_RUPEE,
|
RG_LOSER_GREEN_RUPEE, RG_LOSER_GREEN_RUPEE, RG_ARROWS_10, RG_GREEN_RUPEE, RG_PURPLE_RUPEE,
|
||||||
};
|
};
|
||||||
const std::array<RandomizerGet, 4> GC_Vanilla = {
|
const std::array<RandomizerGet, 4> GC_Vanilla = {
|
||||||
RG_BLUE_RUPEE,
|
RG_BLUE_RUPEE,
|
||||||
|
@ -425,10 +425,10 @@ static void SetScarceItemPool() {
|
||||||
ReplaceMaxItem(RG_BOMBCHU_5, 1);
|
ReplaceMaxItem(RG_BOMBCHU_5, 1);
|
||||||
ReplaceMaxItem(RG_BOMBCHU_10, 2);
|
ReplaceMaxItem(RG_BOMBCHU_10, 2);
|
||||||
ReplaceMaxItem(RG_BOMBCHU_20, 0);
|
ReplaceMaxItem(RG_BOMBCHU_20, 0);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_MAGIC_METER, 1);
|
ReplaceMaxItem(RG_PROGRESSIVE_MAGIC, 1);
|
||||||
ReplaceMaxItem(RG_DOUBLE_DEFENSE, 0);
|
ReplaceMaxItem(RG_DOUBLE_DEFENSE, 0);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_STICK_UPGRADE, ctx->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG) ? 2 : 1);
|
ReplaceMaxItem(RG_PROGRESSIVE_STICK_BAG, ctx->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG) ? 2 : 1);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_NUT_UPGRADE, ctx->GetOption(RSK_SHUFFLE_DEKU_NUT_BAG) ? 2 : 1);
|
ReplaceMaxItem(RG_PROGRESSIVE_NUT_BAG, ctx->GetOption(RSK_SHUFFLE_DEKU_NUT_BAG) ? 2 : 1);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_BOW, 2);
|
ReplaceMaxItem(RG_PROGRESSIVE_BOW, 2);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_SLINGSHOT, 2);
|
ReplaceMaxItem(RG_PROGRESSIVE_SLINGSHOT, 2);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_BOMB_BAG, 2);
|
ReplaceMaxItem(RG_PROGRESSIVE_BOMB_BAG, 2);
|
||||||
|
@ -442,10 +442,10 @@ static void SetMinimalItemPool() {
|
||||||
ReplaceMaxItem(RG_BOMBCHU_10, 0);
|
ReplaceMaxItem(RG_BOMBCHU_10, 0);
|
||||||
ReplaceMaxItem(RG_BOMBCHU_20, 0);
|
ReplaceMaxItem(RG_BOMBCHU_20, 0);
|
||||||
ReplaceMaxItem(RG_NAYRUS_LOVE, 0);
|
ReplaceMaxItem(RG_NAYRUS_LOVE, 0);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_MAGIC_METER, 1);
|
ReplaceMaxItem(RG_PROGRESSIVE_MAGIC, 1);
|
||||||
ReplaceMaxItem(RG_DOUBLE_DEFENSE, 0);
|
ReplaceMaxItem(RG_DOUBLE_DEFENSE, 0);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_STICK_UPGRADE, ctx->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG) ? 1 : 0);
|
ReplaceMaxItem(RG_PROGRESSIVE_STICK_BAG, ctx->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG) ? 1 : 0);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_NUT_UPGRADE, ctx->GetOption(RSK_SHUFFLE_DEKU_NUT_BAG) ? 1 : 0);
|
ReplaceMaxItem(RG_PROGRESSIVE_NUT_BAG, ctx->GetOption(RSK_SHUFFLE_DEKU_NUT_BAG) ? 1 : 0);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_BOW, 1);
|
ReplaceMaxItem(RG_PROGRESSIVE_BOW, 1);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_SLINGSHOT, 1);
|
ReplaceMaxItem(RG_PROGRESSIVE_SLINGSHOT, 1);
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_BOMB_BAG, 1);
|
ReplaceMaxItem(RG_PROGRESSIVE_BOMB_BAG, 1);
|
||||||
|
@ -462,29 +462,18 @@ void GenerateItemPool() {
|
||||||
|
|
||||||
// Initialize ice trap models to always major items
|
// Initialize ice trap models to always major items
|
||||||
ctx->possibleIceTrapModels = {
|
ctx->possibleIceTrapModels = {
|
||||||
RG_MIRROR_SHIELD,
|
RG_MIRROR_SHIELD, RG_BOOMERANG,
|
||||||
RG_BOOMERANG,
|
RG_LENS_OF_TRUTH, RG_MEGATON_HAMMER,
|
||||||
RG_LENS_OF_TRUTH,
|
RG_IRON_BOOTS, RG_HOVER_BOOTS,
|
||||||
RG_MEGATON_HAMMER,
|
RG_STONE_OF_AGONY, RG_DINS_FIRE,
|
||||||
RG_IRON_BOOTS,
|
RG_FARORES_WIND, RG_NAYRUS_LOVE,
|
||||||
RG_HOVER_BOOTS,
|
RG_FIRE_ARROWS, RG_ICE_ARROWS,
|
||||||
RG_STONE_OF_AGONY,
|
RG_LIGHT_ARROWS, RG_DOUBLE_DEFENSE,
|
||||||
RG_DINS_FIRE,
|
RG_CLAIM_CHECK, RG_PROGRESSIVE_HOOKSHOT,
|
||||||
RG_FARORES_WIND,
|
RG_PROGRESSIVE_STRENGTH, RG_PROGRESSIVE_BOMB_BAG,
|
||||||
RG_NAYRUS_LOVE,
|
RG_PROGRESSIVE_BOW, RG_PROGRESSIVE_SLINGSHOT,
|
||||||
RG_FIRE_ARROWS,
|
RG_PROGRESSIVE_WALLET, RG_PROGRESSIVE_SCALE,
|
||||||
RG_ICE_ARROWS,
|
RG_PROGRESSIVE_MAGIC,
|
||||||
RG_LIGHT_ARROWS,
|
|
||||||
RG_DOUBLE_DEFENSE,
|
|
||||||
RG_CLAIM_CHECK,
|
|
||||||
RG_PROGRESSIVE_HOOKSHOT,
|
|
||||||
RG_PROGRESSIVE_STRENGTH,
|
|
||||||
RG_PROGRESSIVE_BOMB_BAG,
|
|
||||||
RG_PROGRESSIVE_BOW,
|
|
||||||
RG_PROGRESSIVE_SLINGSHOT,
|
|
||||||
RG_PROGRESSIVE_WALLET,
|
|
||||||
RG_PROGRESSIVE_SCALE,
|
|
||||||
RG_PROGRESSIVE_MAGIC_METER,
|
|
||||||
};
|
};
|
||||||
// Check song shuffle and dungeon reward shuffle just for ice traps
|
// Check song shuffle and dungeon reward shuffle just for ice traps
|
||||||
if (ctx->GetOption(RSK_SHUFFLE_SONGS).Is(RO_SONG_SHUFFLE_ANYWHERE)) {
|
if (ctx->GetOption(RSK_SHUFFLE_SONGS).Is(RO_SONG_SHUFFLE_ANYWHERE)) {
|
||||||
|
@ -655,10 +644,10 @@ void GenerateItemPool() {
|
||||||
if (ctx->GetOption(RSK_INFINITE_UPGRADES).Is(RO_INF_UPGRADES_PROGRESSIVE)) {
|
if (ctx->GetOption(RSK_INFINITE_UPGRADES).Is(RO_INF_UPGRADES_PROGRESSIVE)) {
|
||||||
AddItemToMainPool(RG_PROGRESSIVE_BOMB_BAG);
|
AddItemToMainPool(RG_PROGRESSIVE_BOMB_BAG);
|
||||||
AddItemToMainPool(RG_PROGRESSIVE_BOW);
|
AddItemToMainPool(RG_PROGRESSIVE_BOW);
|
||||||
AddItemToMainPool(RG_PROGRESSIVE_NUT_UPGRADE);
|
AddItemToMainPool(RG_PROGRESSIVE_NUT_BAG);
|
||||||
AddItemToMainPool(RG_PROGRESSIVE_SLINGSHOT);
|
AddItemToMainPool(RG_PROGRESSIVE_SLINGSHOT);
|
||||||
AddItemToMainPool(RG_PROGRESSIVE_STICK_UPGRADE);
|
AddItemToMainPool(RG_PROGRESSIVE_STICK_BAG);
|
||||||
AddItemToMainPool(RG_PROGRESSIVE_MAGIC_METER);
|
AddItemToMainPool(RG_PROGRESSIVE_MAGIC);
|
||||||
AddItemToMainPool(RG_PROGRESSIVE_WALLET);
|
AddItemToMainPool(RG_PROGRESSIVE_WALLET);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -713,9 +702,9 @@ void GenerateItemPool() {
|
||||||
AddItemToMainPool(RG_CLAIM_CHECK);
|
AddItemToMainPool(RG_CLAIM_CHECK);
|
||||||
|
|
||||||
if (ctx->GetOption(RSK_SHUFFLE_CHEST_MINIGAME).Is(RO_CHEST_GAME_SINGLE_KEYS)) {
|
if (ctx->GetOption(RSK_SHUFFLE_CHEST_MINIGAME).Is(RO_CHEST_GAME_SINGLE_KEYS)) {
|
||||||
AddItemToMainPool(RG_TREASURE_GAME_SMALL_KEY, 6); // 6 individual keys
|
AddItemToMainPool(RG_TCG_SMALL_KEY, 6); // 6 individual keys
|
||||||
} else if (ctx->GetOption(RSK_SHUFFLE_CHEST_MINIGAME).Is(RO_CHEST_GAME_PACK)) {
|
} else if (ctx->GetOption(RSK_SHUFFLE_CHEST_MINIGAME).Is(RO_CHEST_GAME_PACK)) {
|
||||||
AddItemToMainPool(RG_TREASURE_GAME_SMALL_KEY); // 1 key which will behave as a pack of 6
|
AddItemToMainPool(RG_TCG_SMALL_KEY); // 1 key which will behave as a pack of 6
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->GetOption(RSK_SHUFFLE_TOKENS).Is(RO_TOKENSANITY_OFF)) {
|
if (ctx->GetOption(RSK_SHUFFLE_TOKENS).Is(RO_TOKENSANITY_OFF)) {
|
||||||
|
@ -785,11 +774,11 @@ void GenerateItemPool() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG)) {
|
if (ctx->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG)) {
|
||||||
AddItemToMainPool(RG_PROGRESSIVE_STICK_UPGRADE);
|
AddItemToMainPool(RG_PROGRESSIVE_STICK_BAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->GetOption(RSK_SHUFFLE_DEKU_NUT_BAG)) {
|
if (ctx->GetOption(RSK_SHUFFLE_DEKU_NUT_BAG)) {
|
||||||
AddItemToMainPool(RG_PROGRESSIVE_NUT_UPGRADE);
|
AddItemToMainPool(RG_PROGRESSIVE_NUT_BAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->GetOption(RSK_BOMBCHU_BAG)) {
|
if (ctx->GetOption(RSK_BOMBCHU_BAG)) {
|
||||||
|
@ -817,41 +806,41 @@ void GenerateItemPool() {
|
||||||
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
} else if (ctx->GetOption(RSK_GERUDO_KEYS).IsNot(RO_GERUDO_KEYS_VANILLA)) {
|
} else if (ctx->GetOption(RSK_GERUDO_KEYS).IsNot(RO_GERUDO_KEYS_VANILLA)) {
|
||||||
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST)) {
|
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST)) {
|
||||||
AddItemToMainPool(RG_GERUDO_FORTRESS_SMALL_KEY);
|
AddItemToMainPool(RG_HIDEOUT_SMALL_KEY);
|
||||||
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
} else {
|
} else {
|
||||||
// Only add key ring if 4 Fortress keys necessary
|
// Only add key ring if 4 Fortress keys necessary
|
||||||
if (ctx->GetOption(RSK_KEYRINGS_GERUDO_FORTRESS) && ctx->GetOption(RSK_KEYRINGS)) {
|
if (ctx->GetOption(RSK_KEYRINGS_GERUDO_FORTRESS) && ctx->GetOption(RSK_KEYRINGS)) {
|
||||||
AddItemToMainPool(RG_GERUDO_FORTRESS_KEY_RING);
|
AddItemToMainPool(RG_HIDEOUT_KEY_RING);
|
||||||
// Add junk to make up for missing keys
|
// Add junk to make up for missing keys
|
||||||
for (uint8_t i = 0; i < 3; i++) {
|
for (uint8_t i = 0; i < 3; i++) {
|
||||||
AddItemToMainPool(GetJunkItem());
|
AddItemToMainPool(GetJunkItem());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
AddItemToMainPool(RG_GERUDO_FORTRESS_SMALL_KEY, 4);
|
AddItemToMainPool(RG_HIDEOUT_SMALL_KEY, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ctx->GetOption(RSK_ITEM_POOL).Is(RO_ITEM_POOL_PLENTIFUL)) {
|
if (ctx->GetOption(RSK_ITEM_POOL).Is(RO_ITEM_POOL_PLENTIFUL)) {
|
||||||
if (ctx->GetOption(RSK_KEYRINGS_GERUDO_FORTRESS) &&
|
if (ctx->GetOption(RSK_KEYRINGS_GERUDO_FORTRESS) &&
|
||||||
ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && ctx->GetOption(RSK_KEYRINGS)) {
|
ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && ctx->GetOption(RSK_KEYRINGS)) {
|
||||||
AddItemToPool(PendingJunkPool, RG_GERUDO_FORTRESS_KEY_RING);
|
AddItemToPool(PendingJunkPool, RG_HIDEOUT_KEY_RING);
|
||||||
} else {
|
} else {
|
||||||
AddItemToPool(PendingJunkPool, RG_GERUDO_FORTRESS_SMALL_KEY);
|
AddItemToPool(PendingJunkPool, RG_HIDEOUT_SMALL_KEY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST)) {
|
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST)) {
|
||||||
ctx->PlaceItemInLocation(RC_TH_1_TORCH_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_1_TORCH_CARPENTER, RG_HIDEOUT_SMALL_KEY, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
} else {
|
} else {
|
||||||
ctx->PlaceItemInLocation(RC_TH_1_TORCH_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_1_TORCH_CARPENTER, RG_HIDEOUT_SMALL_KEY, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_HIDEOUT_SMALL_KEY, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_HIDEOUT_SMALL_KEY, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_HIDEOUT_SMALL_KEY, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -896,9 +885,9 @@ void GenerateItemPool() {
|
||||||
ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_ANY_DUNGEON) ||
|
ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_ANY_DUNGEON) ||
|
||||||
ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_OVERWORLD)) {
|
ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_OVERWORLD)) {
|
||||||
if (ctx->GetDungeon(Rando::BOTTOM_OF_THE_WELL)->HasKeyRing()) {
|
if (ctx->GetDungeon(Rando::BOTTOM_OF_THE_WELL)->HasKeyRing()) {
|
||||||
AddItemToPool(PendingJunkPool, RG_BOTTOM_OF_THE_WELL_KEY_RING);
|
AddItemToPool(PendingJunkPool, RG_BOTW_KEY_RING);
|
||||||
} else {
|
} else {
|
||||||
AddItemToPool(PendingJunkPool, RG_BOTTOM_OF_THE_WELL_SMALL_KEY);
|
AddItemToPool(PendingJunkPool, RG_BOTW_SMALL_KEY);
|
||||||
}
|
}
|
||||||
if (ctx->GetDungeon(Rando::FOREST_TEMPLE)->HasKeyRing()) {
|
if (ctx->GetDungeon(Rando::FOREST_TEMPLE)->HasKeyRing()) {
|
||||||
AddItemToPool(PendingJunkPool, RG_FOREST_TEMPLE_KEY_RING);
|
AddItemToPool(PendingJunkPool, RG_FOREST_TEMPLE_KEY_RING);
|
||||||
|
@ -926,9 +915,9 @@ void GenerateItemPool() {
|
||||||
AddItemToPool(PendingJunkPool, RG_SHADOW_TEMPLE_SMALL_KEY);
|
AddItemToPool(PendingJunkPool, RG_SHADOW_TEMPLE_SMALL_KEY);
|
||||||
}
|
}
|
||||||
if (ctx->GetDungeon(Rando::GERUDO_TRAINING_GROUND)->HasKeyRing()) {
|
if (ctx->GetDungeon(Rando::GERUDO_TRAINING_GROUND)->HasKeyRing()) {
|
||||||
AddItemToPool(PendingJunkPool, RG_GERUDO_TRAINING_GROUND_KEY_RING);
|
AddItemToPool(PendingJunkPool, RG_GTG_KEY_RING);
|
||||||
} else {
|
} else {
|
||||||
AddItemToPool(PendingJunkPool, RG_GERUDO_TRAINING_GROUND_SMALL_KEY);
|
AddItemToPool(PendingJunkPool, RG_GTG_SMALL_KEY);
|
||||||
}
|
}
|
||||||
if (ctx->GetDungeon(Rando::GANONS_CASTLE)->HasKeyRing()) {
|
if (ctx->GetDungeon(Rando::GANONS_CASTLE)->HasKeyRing()) {
|
||||||
AddItemToPool(PendingJunkPool, RG_GANONS_CASTLE_KEY_RING);
|
AddItemToPool(PendingJunkPool, RG_GANONS_CASTLE_KEY_RING);
|
||||||
|
@ -959,20 +948,20 @@ void GenerateItemPool() {
|
||||||
AddItemToPool(ItemPool, RG_MARKET_BAZAAR_KEY);
|
AddItemToPool(ItemPool, RG_MARKET_BAZAAR_KEY);
|
||||||
AddItemToPool(ItemPool, RG_MARKET_POTION_SHOP_KEY);
|
AddItemToPool(ItemPool, RG_MARKET_POTION_SHOP_KEY);
|
||||||
AddItemToPool(ItemPool, RG_MASK_SHOP_KEY);
|
AddItemToPool(ItemPool, RG_MASK_SHOP_KEY);
|
||||||
AddItemToPool(ItemPool, RG_MARKET_SHOOTING_GALLERY_KEY);
|
AddItemToPool(ItemPool, RG_MARKET_SHOOTING_KEY);
|
||||||
AddItemToPool(ItemPool, RG_BOMBCHU_BOWLING_KEY);
|
AddItemToPool(ItemPool, RG_BOMBCHU_BOWLING_KEY);
|
||||||
AddItemToPool(ItemPool, RG_TREASURE_CHEST_GAME_BUILDING_KEY);
|
AddItemToPool(ItemPool, RG_TCG_BUILDING_KEY);
|
||||||
AddItemToPool(ItemPool, RG_BOMBCHU_SHOP_KEY);
|
AddItemToPool(ItemPool, RG_BOMBCHU_SHOP_KEY);
|
||||||
AddItemToPool(ItemPool, RG_RICHARDS_HOUSE_KEY);
|
AddItemToPool(ItemPool, RG_RICHARDS_HOUSE_KEY);
|
||||||
AddItemToPool(ItemPool, RG_ALLEY_HOUSE_KEY);
|
AddItemToPool(ItemPool, RG_ALLEY_HOUSE_KEY);
|
||||||
AddItemToPool(ItemPool, RG_KAK_BAZAAR_KEY);
|
AddItemToPool(ItemPool, RG_KAK_BAZAAR_KEY);
|
||||||
AddItemToPool(ItemPool, RG_KAK_POTION_SHOP_KEY);
|
AddItemToPool(ItemPool, RG_KAK_POTION_SHOP_KEY);
|
||||||
AddItemToPool(ItemPool, RG_BOSS_HOUSE_KEY);
|
AddItemToPool(ItemPool, RG_BOSS_HOUSE_KEY);
|
||||||
AddItemToPool(ItemPool, RG_GRANNYS_POTION_SHOP_KEY);
|
AddItemToPool(ItemPool, RG_GRANNYS_SHOP_KEY);
|
||||||
AddItemToPool(ItemPool, RG_SKULLTULA_HOUSE_KEY);
|
AddItemToPool(ItemPool, RG_SKULLTULA_HOUSE_KEY);
|
||||||
AddItemToPool(ItemPool, RG_IMPAS_HOUSE_KEY);
|
AddItemToPool(ItemPool, RG_IMPAS_HOUSE_KEY);
|
||||||
AddItemToPool(ItemPool, RG_WINDMILL_KEY);
|
AddItemToPool(ItemPool, RG_WINDMILL_KEY);
|
||||||
AddItemToPool(ItemPool, RG_KAK_SHOOTING_GALLERY_KEY);
|
AddItemToPool(ItemPool, RG_KAK_SHOOTING_KEY);
|
||||||
AddItemToPool(ItemPool, RG_DAMPES_HUT_KEY);
|
AddItemToPool(ItemPool, RG_DAMPES_HUT_KEY);
|
||||||
AddItemToPool(ItemPool, RG_TALONS_HOUSE_KEY);
|
AddItemToPool(ItemPool, RG_TALONS_HOUSE_KEY);
|
||||||
AddItemToPool(ItemPool, RG_STABLES_KEY);
|
AddItemToPool(ItemPool, RG_STABLES_KEY);
|
||||||
|
|
|
@ -543,7 +543,7 @@ void InitTrickNames() {
|
||||||
Text{ "Progressive Pearl", "Perle (prog.)", "Perle (prog.)" }, // "Perla progresiva"
|
Text{ "Progressive Pearl", "Perle (prog.)", "Perle (prog.)" }, // "Perla progresiva"
|
||||||
Text{ "Progressive Scute", "Bulle (prog.)", "Schuppe (prog.)" }, // "Fragmento Zora progresivo"
|
Text{ "Progressive Scute", "Bulle (prog.)", "Schuppe (prog.)" }, // "Fragmento Zora progresivo"
|
||||||
};
|
};
|
||||||
trickNameTable[RG_PROGRESSIVE_NUT_UPGRADE] = {
|
trickNameTable[RG_PROGRESSIVE_NUT_BAG] = {
|
||||||
Text{ "Progressive Nut Pack", "Paquet de noix (prog.)",
|
Text{ "Progressive Nut Pack", "Paquet de noix (prog.)",
|
||||||
"Nußrucksack (prog.)" }, // "Mayor capacidad de semillas"
|
"Nußrucksack (prog.)" }, // "Mayor capacidad de semillas"
|
||||||
Text{ "Progressive Bait Bag", "Sac à Appâts (prog.)", "Futtertasche (prog.)" }, // "Bolsa de cebo progresiva"
|
Text{ "Progressive Bait Bag", "Sac à Appâts (prog.)", "Futtertasche (prog.)" }, // "Bolsa de cebo progresiva"
|
||||||
|
@ -553,7 +553,7 @@ void InitTrickNames() {
|
||||||
Text{ "Progressive Husk Capacity", "Capacité de noisettes (prog.)",
|
Text{ "Progressive Husk Capacity", "Capacité de noisettes (prog.)",
|
||||||
"Schalen-Kapazität (prog.)€" }, // "Mayor capacidad de castañas"
|
"Schalen-Kapazität (prog.)€" }, // "Mayor capacidad de castañas"
|
||||||
};
|
};
|
||||||
trickNameTable[RG_PROGRESSIVE_STICK_UPGRADE] = {
|
trickNameTable[RG_PROGRESSIVE_STICK_BAG] = {
|
||||||
Text{ "Progressive Stick Bag", "Sac de bâtons (prog.)",
|
Text{ "Progressive Stick Bag", "Sac de bâtons (prog.)",
|
||||||
"Stabbeutel (prog.)" }, // "Mayor capacidad de ramas deku"
|
"Stabbeutel (prog.)" }, // "Mayor capacidad de ramas deku"
|
||||||
Text{ "Progressive Stick Pack", "Paquet de bâtons Mojo (prog.)",
|
Text{ "Progressive Stick Pack", "Paquet de bâtons Mojo (prog.)",
|
||||||
|
@ -572,7 +572,7 @@ void InitTrickNames() {
|
||||||
Text{ "Progressive Bombchu Bag", "Sac à Bombchu (prog.)",
|
Text{ "Progressive Bombchu Bag", "Sac à Bombchu (prog.)",
|
||||||
"Krabbelminenbeutel (prog.)" }, // "Bombachus progresivos"
|
"Krabbelminenbeutel (prog.)" }, // "Bombachus progresivos"
|
||||||
};
|
};
|
||||||
trickNameTable[RG_PROGRESSIVE_MAGIC_METER] = {
|
trickNameTable[RG_PROGRESSIVE_MAGIC] = {
|
||||||
Text{ "Progressive Stamina Meter", "Jauge d'endurance (prog.)",
|
Text{ "Progressive Stamina Meter", "Jauge d'endurance (prog.)",
|
||||||
"Ausdauer (prog.)" }, // "Medidor de vigor progresivo"
|
"Ausdauer (prog.)" }, // "Medidor de vigor progresivo"
|
||||||
Text{ "Progressive Energy Gauge", "Jauge d'énergie (prog.)",
|
Text{ "Progressive Energy Gauge", "Jauge d'énergie (prog.)",
|
||||||
|
|
|
@ -74,18 +74,8 @@ static void WriteLocation(std::string sphere, const RandomizerCheck locationKey,
|
||||||
Rando::Location* location = Rando::StaticData::GetLocation(locationKey);
|
Rando::Location* location = Rando::StaticData::GetLocation(locationKey);
|
||||||
Rando::ItemLocation* itemLocation = Rando::Context::GetInstance()->GetItemLocation(locationKey);
|
Rando::ItemLocation* itemLocation = Rando::Context::GetInstance()->GetItemLocation(locationKey);
|
||||||
|
|
||||||
switch (gSaveContext.language) {
|
jsonData["playthrough"][sphere][location->GetName()] =
|
||||||
case LANGUAGE_ENG:
|
itemLocation->GetPlacedItemName().GetForCurrentLanguage(MF_RAW);
|
||||||
default:
|
|
||||||
jsonData["playthrough"][sphere][location->GetName()] = itemLocation->GetPlacedItemName().GetEnglish();
|
|
||||||
break;
|
|
||||||
case LANGUAGE_GER:
|
|
||||||
jsonData["playthrough"][sphere][location->GetName()] = itemLocation->GetPlacedItemName().GetGerman();
|
|
||||||
break;
|
|
||||||
case LANGUAGE_FRA:
|
|
||||||
jsonData["playthrough"][sphere][location->GetName()] = itemLocation->GetPlacedItemName().GetFrench();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Writes a shuffled entrance to the specified node
|
// Writes a shuffled entrance to the specified node
|
||||||
|
@ -266,71 +256,45 @@ static void WriteAllLocations() {
|
||||||
auto ctx = Rando::Context::GetInstance();
|
auto ctx = Rando::Context::GetInstance();
|
||||||
for (const RandomizerCheck key : ctx->allLocations) {
|
for (const RandomizerCheck key : ctx->allLocations) {
|
||||||
Rando::ItemLocation* location = ctx->GetItemLocation(key);
|
Rando::ItemLocation* location = ctx->GetItemLocation(key);
|
||||||
std::string placedItemName;
|
std::string placedItemName = location->GetPlacedItemName().GetForCurrentLanguage(MF_RAW);
|
||||||
|
std::string locName = Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName();
|
||||||
switch (gSaveContext.language) {
|
|
||||||
case 0:
|
|
||||||
default:
|
|
||||||
placedItemName = location->GetPlacedItemName().GetEnglish();
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
placedItemName = location->GetPlacedItemName().GetGerman();
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
placedItemName = location->GetPlacedItemName().GetFrench();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If it's a simple item (not an ice trap, doesn't have a price)
|
// If it's a simple item (not an ice trap, doesn't have a price)
|
||||||
// just add the name of the item and move on
|
// just add the name of the item and move on
|
||||||
if (!location->HasCustomPrice() && location->GetPlacedRandomizerGet() != RG_ICE_TRAP) {
|
if (!location->HasCustomPrice() && location->GetPlacedRandomizerGet() != RG_ICE_TRAP) {
|
||||||
|
|
||||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()] =
|
jsonData["locations"][locName] = placedItemName;
|
||||||
placedItemName;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We're dealing with a complex item, build out the json object for it
|
// We're dealing with a complex item, build out the json object for it
|
||||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]["item"] =
|
jsonData["locations"][locName]["item"] = placedItemName;
|
||||||
placedItemName;
|
|
||||||
|
|
||||||
if (location->HasCustomPrice()) {
|
if (location->HasCustomPrice()) {
|
||||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]["price"] =
|
jsonData["locations"][locName]["price"] = location->GetPrice();
|
||||||
location->GetPrice();
|
|
||||||
}
|
}
|
||||||
if (location->IsAHintAccessible()) {
|
if (location->IsAHintAccessible()) {
|
||||||
hintedLocations.emplace(Rando::StaticData::GetLocation(key)->GetHintKey(), location);
|
hintedLocations.emplace(Rando::StaticData::GetLocation(key)->GetHintKey(), location);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (location->GetPlacedRandomizerGet() == RG_ICE_TRAP) {
|
if (location->GetPlacedRandomizerGet() == RG_ICE_TRAP) {
|
||||||
|
jsonData["locations"][locName]["model"] =
|
||||||
|
Rando::StaticData::RetrieveItem(ctx->overrides[location->GetRandomizerCheck()].LooksLike())
|
||||||
|
.GetName()
|
||||||
|
.GetForCurrentLanguage(MF_RAW);
|
||||||
switch (gSaveContext.language) {
|
switch (gSaveContext.language) {
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]
|
jsonData["locations"][locName]["trickName"] =
|
||||||
["model"] = Rando::StaticData::RetrieveItem(
|
ctx->overrides[location->GetRandomizerCheck()].GetTrickName().GetEnglish();
|
||||||
ctx->overrides[location->GetRandomizerCheck()].LooksLike())
|
|
||||||
.GetName()
|
|
||||||
.GetEnglish();
|
|
||||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]
|
|
||||||
["trickName"] = ctx->overrides[location->GetRandomizerCheck()].GetTrickName().GetEnglish();
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]
|
jsonData["locations"][locName]["trickName"] =
|
||||||
["model"] = Rando::StaticData::RetrieveItem(
|
ctx->overrides[location->GetRandomizerCheck()].GetTrickName().GetGerman();
|
||||||
ctx->overrides[location->GetRandomizerCheck()].LooksLike())
|
|
||||||
.GetName()
|
|
||||||
.GetGerman();
|
|
||||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]
|
|
||||||
["trickName"] = ctx->overrides[location->GetRandomizerCheck()].GetTrickName().GetGerman();
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]
|
jsonData["locations"][locName]["trickName"] =
|
||||||
["model"] = Rando::StaticData::RetrieveItem(
|
ctx->overrides[location->GetRandomizerCheck()].GetTrickName().GetFrench();
|
||||||
ctx->overrides[location->GetRandomizerCheck()].LooksLike())
|
|
||||||
.GetName()
|
|
||||||
.GetFrench();
|
|
||||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]
|
|
||||||
["trickName"] = ctx->overrides[location->GetRandomizerCheck()].GetTrickName().GetFrench();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,8 +70,8 @@ void GenerateStartingInventory() {
|
||||||
// the option selected. If None is selected, the value will be zero and
|
// the option selected. If None is selected, the value will be zero and
|
||||||
// zero of the item will be added to the starting inventory.
|
// zero of the item will be added to the starting inventory.
|
||||||
// TODO: Uncomment when these options are implemented.
|
// TODO: Uncomment when these options are implemented.
|
||||||
// AddItemToInventory(RG_PROGRESSIVE_STICK_UPGRADE, StartingStickCapacity.Value<uint8_t>());
|
// AddItemToInventory(RG_PROGRESSIVE_STICK_BAG, StartingStickCapacity.Value<uint8_t>());
|
||||||
// AddItemToInventory(RG_PROGRESSIVE_NUT_UPGRADE, StartingNutCapacity.Value<uint8_t>());
|
// AddItemToInventory(RG_PROGRESSIVE_NUT_BAG, StartingNutCapacity.Value<uint8_t>());
|
||||||
// AddItemToInventory(RG_PROGRESSIVE_BOMB_BAG, StartingBombBag.Value<uint8_t>());
|
// AddItemToInventory(RG_PROGRESSIVE_BOMB_BAG, StartingBombBag.Value<uint8_t>());
|
||||||
// AddItemToInventory((BombchuBag ? RG_PROGRESSIVE_BOMBCHUS : RG_BOMBCHU_20), StartingBombchus.Value<uint8_t>());
|
// AddItemToInventory((BombchuBag ? RG_PROGRESSIVE_BOMBCHUS : RG_BOMBCHU_20), StartingBombchus.Value<uint8_t>());
|
||||||
// AddItemToInventory(RG_PROGRESSIVE_BOW, StartingBow.Value<uint8_t>());
|
// AddItemToInventory(RG_PROGRESSIVE_BOW, StartingBow.Value<uint8_t>());
|
||||||
|
@ -138,7 +138,7 @@ void GenerateStartingInventory() {
|
||||||
// AddItemToInventory(RG_MIRROR_SHIELD, StartingMirrorShield.Value<uint8_t>());
|
// AddItemToInventory(RG_MIRROR_SHIELD, StartingMirrorShield.Value<uint8_t>());
|
||||||
// AddItemToInventory(RG_GORON_TUNIC, StartingGoronTunic.Value<uint8_t>());
|
// AddItemToInventory(RG_GORON_TUNIC, StartingGoronTunic.Value<uint8_t>());
|
||||||
// AddItemToInventory(RG_ZORA_TUNIC, StartingZoraTunic.Value<uint8_t>());
|
// AddItemToInventory(RG_ZORA_TUNIC, StartingZoraTunic.Value<uint8_t>());
|
||||||
// AddItemToInventory(RG_PROGRESSIVE_MAGIC_METER, StartingMagicMeter.Value<uint8_t>());
|
// AddItemToInventory(RG_PROGRESSIVE_MAGIC, StartingMagicMeter.Value<uint8_t>());
|
||||||
// AddItemToInventory(RG_PROGRESSIVE_STRENGTH, StartingStrength.Value<uint8_t>());
|
// AddItemToInventory(RG_PROGRESSIVE_STRENGTH, StartingStrength.Value<uint8_t>());
|
||||||
// AddItemToInventory(RG_PROGRESSIVE_SCALE, StartingScale.Value<uint8_t>());
|
// AddItemToInventory(RG_PROGRESSIVE_SCALE, StartingScale.Value<uint8_t>());
|
||||||
// AddItemToInventory(RG_PROGRESSIVE_WALLET, StartingWallet.Value<uint8_t>());
|
// AddItemToInventory(RG_PROGRESSIVE_WALLET, StartingWallet.Value<uint8_t>());
|
||||||
|
@ -161,7 +161,7 @@ void GenerateStartingInventory() {
|
||||||
AddItemToInventory(RG_PIECE_OF_HEART, 4);
|
AddItemToInventory(RG_PIECE_OF_HEART, 4);
|
||||||
// Plentiful and minimal have less than 4 standard pieces of heart so also replace the winner heart
|
// Plentiful and minimal have less than 4 standard pieces of heart so also replace the winner heart
|
||||||
if (ctx->GetOption(RSK_ITEM_POOL).Get() == 0 || ctx->GetOption(RSK_ITEM_POOL).Get() == 3) {
|
if (ctx->GetOption(RSK_ITEM_POOL).Get() == 0 || ctx->GetOption(RSK_ITEM_POOL).Get() == 3) {
|
||||||
AddItemToInventory(RG_TREASURE_GAME_HEART);
|
AddItemToInventory(RG_TCG_PIECE_OF_HEART);
|
||||||
}
|
}
|
||||||
|
|
||||||
AdditionalHeartContainers = 1 - hearts;
|
AdditionalHeartContainers = 1 - hearts;
|
||||||
|
@ -177,7 +177,7 @@ void GenerateStartingInventory() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hearts == 17) {
|
if (hearts == 17) {
|
||||||
AddItemToInventory(RG_TREASURE_GAME_HEART);
|
AddItemToInventory(RG_TCG_PIECE_OF_HEART);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -189,7 +189,7 @@ bool StartingInventoryHasBottle() {
|
||||||
|
|
||||||
void ApplyStartingInventory() {
|
void ApplyStartingInventory() {
|
||||||
for (RandomizerGet item : StartingInventory) {
|
for (RandomizerGet item : StartingInventory) {
|
||||||
if (item == RG_PIECE_OF_HEART || item == RG_HEART_CONTAINER || item == RG_TREASURE_GAME_HEART)
|
if (item == RG_PIECE_OF_HEART || item == RG_HEART_CONTAINER || item == RG_TCG_PIECE_OF_HEART)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Rando::StaticData::RetrieveItem(item).ApplyEffect();
|
Rando::StaticData::RetrieveItem(item).ApplyEffect();
|
||||||
|
|
|
@ -87,172 +87,170 @@ std::vector<RandomizerGet> infiniteItemList = {
|
||||||
RG_BOMBS_20, RG_BOMBCHU_5, RG_BOMBCHU_10, RG_BOMBCHU_20, RG_RECOVERY_HEART, RG_ICE_TRAP, RG_SOLD_OUT
|
RG_BOMBS_20, RG_BOMBCHU_5, RG_BOMBCHU_10, RG_BOMBCHU_20, RG_RECOVERY_HEART, RG_ICE_TRAP, RG_SOLD_OUT
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unordered_map<RandomizerGet, std::string> itemImageMap = {
|
std::unordered_map<RandomizerGet, std::string> itemImageMap = { { RG_NONE, "ITEM_SOLD_OUT" },
|
||||||
{ RG_NONE, "ITEM_SOLD_OUT" },
|
{ RG_KOKIRI_SWORD, "ITEM_SWORD_KOKIRI" },
|
||||||
{ RG_KOKIRI_SWORD, "ITEM_SWORD_KOKIRI" },
|
{ RG_GIANTS_KNIFE, "ITEM_SWORD_KNIFE" },
|
||||||
{ RG_GIANTS_KNIFE, "ITEM_SWORD_KNIFE" },
|
{ RG_BIGGORON_SWORD, "ITEM_SWORD_BGS" },
|
||||||
{ RG_BIGGORON_SWORD, "ITEM_SWORD_BGS" },
|
{ RG_DEKU_SHIELD, "ITEM_SHIELD_DEKU" },
|
||||||
{ RG_DEKU_SHIELD, "ITEM_SHIELD_DEKU" },
|
{ RG_HYLIAN_SHIELD, "ITEM_SHIELD_HYLIAN" },
|
||||||
{ RG_HYLIAN_SHIELD, "ITEM_SHIELD_HYLIAN" },
|
{ RG_MIRROR_SHIELD, "ITEM_SHIELD_MIRROR" },
|
||||||
{ RG_MIRROR_SHIELD, "ITEM_SHIELD_MIRROR" },
|
{ RG_GORON_TUNIC, "ITEM_TUNIC_GORON" },
|
||||||
{ RG_GORON_TUNIC, "ITEM_TUNIC_GORON" },
|
{ RG_ZORA_TUNIC, "ITEM_TUNIC_ZORA" },
|
||||||
{ RG_ZORA_TUNIC, "ITEM_TUNIC_ZORA" },
|
{ RG_IRON_BOOTS, "ITEM_BOOTS_IRON" },
|
||||||
{ RG_IRON_BOOTS, "ITEM_BOOTS_IRON" },
|
{ RG_HOVER_BOOTS, "ITEM_BOOTS_HOVER" },
|
||||||
{ RG_HOVER_BOOTS, "ITEM_BOOTS_HOVER" },
|
{ RG_BOOMERANG, "ITEM_BOOMERANG" },
|
||||||
{ RG_BOOMERANG, "ITEM_BOOMERANG" },
|
{ RG_LENS_OF_TRUTH, "ITEM_LENS" },
|
||||||
{ RG_LENS_OF_TRUTH, "ITEM_LENS" },
|
{ RG_MEGATON_HAMMER, "ITEM_HAMMER" },
|
||||||
{ RG_MEGATON_HAMMER, "ITEM_HAMMER" },
|
{ RG_STONE_OF_AGONY, "ITEM_STONE_OF_AGONY" },
|
||||||
{ RG_STONE_OF_AGONY, "ITEM_STONE_OF_AGONY" },
|
{ RG_DINS_FIRE, "ITEM_DINS_FIRE" },
|
||||||
{ RG_DINS_FIRE, "ITEM_DINS_FIRE" },
|
{ RG_FARORES_WIND, "ITEM_FARORES_WIND" },
|
||||||
{ RG_FARORES_WIND, "ITEM_FARORES_WIND" },
|
{ RG_NAYRUS_LOVE, "ITEM_NAYRUS_LOVE" },
|
||||||
{ RG_NAYRUS_LOVE, "ITEM_NAYRUS_LOVE" },
|
{ RG_FIRE_ARROWS, "ITEM_ARROW_FIRE" },
|
||||||
{ RG_FIRE_ARROWS, "ITEM_ARROW_FIRE" },
|
{ RG_ICE_ARROWS, "ITEM_ARROW_ICE" },
|
||||||
{ RG_ICE_ARROWS, "ITEM_ARROW_ICE" },
|
{ RG_LIGHT_ARROWS, "ITEM_ARROW_LIGHT" },
|
||||||
{ RG_LIGHT_ARROWS, "ITEM_ARROW_LIGHT" },
|
{ RG_GERUDO_MEMBERSHIP_CARD, "ITEM_GERUDO_CARD" },
|
||||||
{ RG_GERUDO_MEMBERSHIP_CARD, "ITEM_GERUDO_CARD" },
|
{ RG_MAGIC_BEAN, "ITEM_BEAN" },
|
||||||
{ RG_MAGIC_BEAN, "ITEM_BEAN" },
|
{ RG_MAGIC_BEAN_PACK, "ITEM_BEAN" },
|
||||||
{ RG_MAGIC_BEAN_PACK, "ITEM_BEAN" },
|
{ RG_DOUBLE_DEFENSE, "ITEM_HEART_CONTAINER" },
|
||||||
{ RG_DOUBLE_DEFENSE, "ITEM_HEART_CONTAINER" },
|
{ RG_WEIRD_EGG, "ITEM_WEIRD_EGG" },
|
||||||
{ RG_WEIRD_EGG, "ITEM_WEIRD_EGG" },
|
{ RG_ZELDAS_LETTER, "ITEM_LETTER_ZELDA" },
|
||||||
{ RG_ZELDAS_LETTER, "ITEM_LETTER_ZELDA" },
|
{ RG_POCKET_EGG, "ITEM_POCKET_EGG" },
|
||||||
{ RG_POCKET_EGG, "ITEM_POCKET_EGG" },
|
{ RG_COJIRO, "ITEM_COJIRO" },
|
||||||
{ RG_COJIRO, "ITEM_COJIRO" },
|
{ RG_ODD_MUSHROOM, "ITEM_ODD_MUSHROOM" },
|
||||||
{ RG_ODD_MUSHROOM, "ITEM_ODD_MUSHROOM" },
|
{ RG_ODD_POTION, "ITEM_ODD_POTION" },
|
||||||
{ RG_ODD_POTION, "ITEM_ODD_POTION" },
|
{ RG_POACHERS_SAW, "ITEM_SAW" },
|
||||||
{ RG_POACHERS_SAW, "ITEM_SAW" },
|
{ RG_BROKEN_SWORD, "ITEM_SWORD_BROKEN" },
|
||||||
{ RG_BROKEN_SWORD, "ITEM_SWORD_BROKEN" },
|
{ RG_PRESCRIPTION, "ITEM_PRESCRIPTION" },
|
||||||
{ RG_PRESCRIPTION, "ITEM_PRESCRIPTION" },
|
{ RG_EYEBALL_FROG, "ITEM_FROG" },
|
||||||
{ RG_EYEBALL_FROG, "ITEM_FROG" },
|
{ RG_EYEDROPS, "ITEM_EYEDROPS" },
|
||||||
{ RG_EYEDROPS, "ITEM_EYEDROPS" },
|
{ RG_CLAIM_CHECK, "ITEM_CLAIM_CHECK" },
|
||||||
{ RG_CLAIM_CHECK, "ITEM_CLAIM_CHECK" },
|
{ RG_GOLD_SKULLTULA_TOKEN, "ITEM_SKULL_TOKEN" },
|
||||||
{ RG_GOLD_SKULLTULA_TOKEN, "ITEM_SKULL_TOKEN" },
|
{ RG_PROGRESSIVE_HOOKSHOT, "ITEM_HOOKSHOT" },
|
||||||
{ RG_PROGRESSIVE_HOOKSHOT, "ITEM_HOOKSHOT" },
|
{ RG_PROGRESSIVE_STRENGTH, "ITEM_BRACELET" },
|
||||||
{ RG_PROGRESSIVE_STRENGTH, "ITEM_BRACELET" },
|
{ RG_PROGRESSIVE_BOMB_BAG, "ITEM_BOMB_BAG_30" },
|
||||||
{ RG_PROGRESSIVE_BOMB_BAG, "ITEM_BOMB_BAG_30" },
|
{ RG_PROGRESSIVE_BOW, "ITEM_QUIVER_30" },
|
||||||
{ RG_PROGRESSIVE_BOW, "ITEM_QUIVER_30" },
|
{ RG_PROGRESSIVE_SLINGSHOT, "ITEM_SLINGSHOT" },
|
||||||
{ RG_PROGRESSIVE_SLINGSHOT, "ITEM_SLINGSHOT" },
|
{ RG_PROGRESSIVE_WALLET, "ITEM_WALLET_ADULT" },
|
||||||
{ RG_PROGRESSIVE_WALLET, "ITEM_WALLET_ADULT" },
|
{ RG_PROGRESSIVE_SCALE, "ITEM_SCALE_SILVER" },
|
||||||
{ RG_PROGRESSIVE_SCALE, "ITEM_SCALE_SILVER" },
|
{ RG_PROGRESSIVE_NUT_BAG, "ITEM_NUT" },
|
||||||
{ RG_PROGRESSIVE_NUT_UPGRADE, "ITEM_NUT" },
|
{ RG_PROGRESSIVE_STICK_BAG, "ITEM_STICK" },
|
||||||
{ RG_PROGRESSIVE_STICK_UPGRADE, "ITEM_STICK" },
|
{ RG_PROGRESSIVE_BOMBCHUS, "ITEM_BOMBCHU" },
|
||||||
{ RG_PROGRESSIVE_BOMBCHUS, "ITEM_BOMBCHU" },
|
{ RG_PROGRESSIVE_MAGIC, "ITEM_MAGIC_SMALL" },
|
||||||
{ RG_PROGRESSIVE_MAGIC_METER, "ITEM_MAGIC_SMALL" },
|
{ RG_MAGIC_SINGLE, "ITEM_MAGIC_SMALL" },
|
||||||
{ RG_MAGIC_SINGLE, "ITEM_MAGIC_SMALL" },
|
{ RG_MAGIC_DOUBLE, "ITEM_MAGIC_LARGE" },
|
||||||
{ RG_MAGIC_DOUBLE, "ITEM_MAGIC_LARGE" },
|
{ RG_PROGRESSIVE_OCARINA, "ITEM_OCARINA_FAIRY" },
|
||||||
{ RG_PROGRESSIVE_OCARINA, "ITEM_OCARINA_FAIRY" },
|
{ RG_PROGRESSIVE_GORONSWORD, "ITEM_SWORD_BGS" },
|
||||||
{ RG_PROGRESSIVE_GORONSWORD, "ITEM_SWORD_BGS" },
|
{ RG_EMPTY_BOTTLE, "ITEM_BOTTLE" },
|
||||||
{ RG_EMPTY_BOTTLE, "ITEM_BOTTLE" },
|
{ RG_BOTTLE_WITH_MILK, "ITEM_MILK_BOTTLE" },
|
||||||
{ RG_BOTTLE_WITH_MILK, "ITEM_MILK_BOTTLE" },
|
{ RG_BOTTLE_WITH_RED_POTION, "ITEM_POTION_RED" },
|
||||||
{ RG_BOTTLE_WITH_RED_POTION, "ITEM_POTION_RED" },
|
{ RG_BOTTLE_WITH_GREEN_POTION, "ITEM_POTION_GREEN" },
|
||||||
{ RG_BOTTLE_WITH_GREEN_POTION, "ITEM_POTION_GREEN" },
|
{ RG_BOTTLE_WITH_BLUE_POTION, "ITEM_POTION_BLUE" },
|
||||||
{ RG_BOTTLE_WITH_BLUE_POTION, "ITEM_POTION_BLUE" },
|
{ RG_BOTTLE_WITH_FAIRY, "ITEM_FAIRY" },
|
||||||
{ RG_BOTTLE_WITH_FAIRY, "ITEM_FAIRY" },
|
{ RG_BOTTLE_WITH_FISH, "ITEM_FISH" },
|
||||||
{ RG_BOTTLE_WITH_FISH, "ITEM_FISH" },
|
{ RG_BOTTLE_WITH_BLUE_FIRE, "ITEM_BLUE_FIRE" },
|
||||||
{ RG_BOTTLE_WITH_BLUE_FIRE, "ITEM_BLUE_FIRE" },
|
{ RG_BOTTLE_WITH_BUGS, "ITEM_BUG" },
|
||||||
{ RG_BOTTLE_WITH_BUGS, "ITEM_BUG" },
|
{ RG_BOTTLE_WITH_POE, "ITEM_POE" },
|
||||||
{ RG_BOTTLE_WITH_POE, "ITEM_POE" },
|
{ RG_RUTOS_LETTER, "ITEM_LETTER_RUTO" },
|
||||||
{ RG_RUTOS_LETTER, "ITEM_LETTER_RUTO" },
|
{ RG_BOTTLE_WITH_BIG_POE, "ITEM_BIG_POE" },
|
||||||
{ RG_BOTTLE_WITH_BIG_POE, "ITEM_BIG_POE" },
|
{ RG_ZELDAS_LULLABY, "ITEM_SONG_LULLABY" },
|
||||||
{ RG_ZELDAS_LULLABY, "ITEM_SONG_LULLABY" },
|
{ RG_EPONAS_SONG, "ITEM_SONG_EPONA" },
|
||||||
{ RG_EPONAS_SONG, "ITEM_SONG_EPONA" },
|
{ RG_SARIAS_SONG, "ITEM_SONG_SARIA" },
|
||||||
{ RG_SARIAS_SONG, "ITEM_SONG_SARIA" },
|
{ RG_SUNS_SONG, "ITEM_SONG_SUN" },
|
||||||
{ RG_SUNS_SONG, "ITEM_SONG_SUN" },
|
{ RG_SONG_OF_TIME, "ITEM_SONG_TIME" },
|
||||||
{ RG_SONG_OF_TIME, "ITEM_SONG_TIME" },
|
{ RG_SONG_OF_STORMS, "ITEM_SONG_STORMS" },
|
||||||
{ RG_SONG_OF_STORMS, "ITEM_SONG_STORMS" },
|
{ RG_MINUET_OF_FOREST, "ITEM_SONG_MINUET" },
|
||||||
{ RG_MINUET_OF_FOREST, "ITEM_SONG_MINUET" },
|
{ RG_BOLERO_OF_FIRE, "ITEM_SONG_BOLERO" },
|
||||||
{ RG_BOLERO_OF_FIRE, "ITEM_SONG_BOLERO" },
|
{ RG_SERENADE_OF_WATER, "ITEM_SONG_SERENADE" },
|
||||||
{ RG_SERENADE_OF_WATER, "ITEM_SONG_SERENADE" },
|
{ RG_REQUIEM_OF_SPIRIT, "ITEM_SONG_REQUIEM" },
|
||||||
{ RG_REQUIEM_OF_SPIRIT, "ITEM_SONG_REQUIEM" },
|
{ RG_NOCTURNE_OF_SHADOW, "ITEM_SONG_NOCTURNE" },
|
||||||
{ RG_NOCTURNE_OF_SHADOW, "ITEM_SONG_NOCTURNE" },
|
{ RG_PRELUDE_OF_LIGHT, "ITEM_SONG_PRELUDE" },
|
||||||
{ RG_PRELUDE_OF_LIGHT, "ITEM_SONG_PRELUDE" },
|
{ RG_DEKU_TREE_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_DEKU_TREE_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_DODONGOS_CAVERN_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_DODONGOS_CAVERN_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_JABU_JABUS_BELLY_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_JABU_JABUS_BELLY_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_FOREST_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_FOREST_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_FIRE_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_FIRE_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_WATER_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_WATER_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_SPIRIT_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_SPIRIT_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_SHADOW_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_SHADOW_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_BOTW_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_BOTTOM_OF_THE_WELL_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_ICE_CAVERN_MAP, "ITEM_DUNGEON_MAP" },
|
||||||
{ RG_ICE_CAVERN_MAP, "ITEM_DUNGEON_MAP" },
|
{ RG_DEKU_TREE_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_DEKU_TREE_COMPASS, "ITEM_COMPASS" },
|
{ RG_DODONGOS_CAVERN_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_DODONGOS_CAVERN_COMPASS, "ITEM_COMPASS" },
|
{ RG_JABU_JABUS_BELLY_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_JABU_JABUS_BELLY_COMPASS, "ITEM_COMPASS" },
|
{ RG_FOREST_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_FOREST_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
{ RG_FIRE_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_FIRE_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
{ RG_WATER_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_WATER_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
{ RG_SPIRIT_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_SPIRIT_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
{ RG_SHADOW_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_SHADOW_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
{ RG_BOTW_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_BOTTOM_OF_THE_WELL_COMPASS, "ITEM_COMPASS" },
|
{ RG_ICE_CAVERN_COMPASS, "ITEM_COMPASS" },
|
||||||
{ RG_ICE_CAVERN_COMPASS, "ITEM_COMPASS" },
|
{ RG_FOREST_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||||
{ RG_FOREST_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
{ RG_FIRE_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||||
{ RG_FIRE_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
{ RG_WATER_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||||
{ RG_WATER_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
{ RG_SPIRIT_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||||
{ RG_SPIRIT_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
{ RG_SHADOW_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||||
{ RG_SHADOW_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
{ RG_GANONS_CASTLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||||
{ RG_GANONS_CASTLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
{ RG_FOREST_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_FOREST_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_FIRE_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_FIRE_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_WATER_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_WATER_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_SPIRIT_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_SPIRIT_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_SHADOW_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_SHADOW_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_BOTW_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_BOTTOM_OF_THE_WELL_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_GTG_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_GERUDO_TRAINING_GROUND_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_HIDEOUT_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_GERUDO_FORTRESS_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_GANONS_CASTLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_GANONS_CASTLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_TCG_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||||
{ RG_TREASURE_GAME_SMALL_KEY, "ITEM_KEY_SMALL" },
|
{ RG_KOKIRI_EMERALD, "ITEM_KOKIRI_EMERALD" },
|
||||||
{ RG_KOKIRI_EMERALD, "ITEM_KOKIRI_EMERALD" },
|
{ RG_GORON_RUBY, "ITEM_GORON_RUBY" },
|
||||||
{ RG_GORON_RUBY, "ITEM_GORON_RUBY" },
|
{ RG_ZORA_SAPPHIRE, "ITEM_ZORA_SAPPHIRE" },
|
||||||
{ RG_ZORA_SAPPHIRE, "ITEM_ZORA_SAPPHIRE" },
|
{ RG_FOREST_MEDALLION, "ITEM_MEDALLION_FOREST" },
|
||||||
{ RG_FOREST_MEDALLION, "ITEM_MEDALLION_FOREST" },
|
{ RG_FIRE_MEDALLION, "ITEM_MEDALLION_FIRE" },
|
||||||
{ RG_FIRE_MEDALLION, "ITEM_MEDALLION_FIRE" },
|
{ RG_WATER_MEDALLION, "ITEM_MEDALLION_WATER" },
|
||||||
{ RG_WATER_MEDALLION, "ITEM_MEDALLION_WATER" },
|
{ RG_SPIRIT_MEDALLION, "ITEM_MEDALLION_SPIRIT" },
|
||||||
{ RG_SPIRIT_MEDALLION, "ITEM_MEDALLION_SPIRIT" },
|
{ RG_SHADOW_MEDALLION, "ITEM_MEDALLION_SHADOW" },
|
||||||
{ RG_SHADOW_MEDALLION, "ITEM_MEDALLION_SHADOW" },
|
{ RG_LIGHT_MEDALLION, "ITEM_MEDALLION_LIGHT" },
|
||||||
{ RG_LIGHT_MEDALLION, "ITEM_MEDALLION_LIGHT" },
|
{ RG_RECOVERY_HEART, "ITEM_HEART_GRAYSCALE" },
|
||||||
{ RG_RECOVERY_HEART, "ITEM_HEART_GRAYSCALE" },
|
{ RG_GREEN_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||||
{ RG_GREEN_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
{ RG_GREG_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||||
{ RG_GREG_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
{ RG_BLUE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||||
{ RG_BLUE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
{ RG_RED_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||||
{ RG_RED_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
{ RG_PURPLE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||||
{ RG_PURPLE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
{ RG_HUGE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||||
{ RG_HUGE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
{ RG_LOSER_GREEN_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||||
{ RG_TREASURE_GAME_GREEN_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
{ RG_PIECE_OF_HEART, "ITEM_HEART_PIECE" },
|
||||||
{ RG_PIECE_OF_HEART, "ITEM_HEART_PIECE" },
|
{ RG_HEART_CONTAINER, "ITEM_HEART_CONTAINER" },
|
||||||
{ RG_HEART_CONTAINER, "ITEM_HEART_CONTAINER" },
|
{ RG_ICE_TRAP, "ITEM_ICE_TRAP" },
|
||||||
{ RG_ICE_TRAP, "ITEM_ICE_TRAP" },
|
{ RG_MILK, "ITEM_MILK_BOTTLE" },
|
||||||
{ RG_MILK, "ITEM_MILK_BOTTLE" },
|
{ RG_BOMBS_5, "ITEM_BOMB" },
|
||||||
{ RG_BOMBS_5, "ITEM_BOMB" },
|
{ RG_BOMBS_10, "ITEM_BOMB" },
|
||||||
{ RG_BOMBS_10, "ITEM_BOMB" },
|
{ RG_BOMBS_20, "ITEM_BOMB" },
|
||||||
{ RG_BOMBS_20, "ITEM_BOMB" },
|
{ RG_BUY_BOMBS_525, "ITEM_BOMB" },
|
||||||
{ RG_BUY_BOMBS_525, "ITEM_BOMB" },
|
{ RG_BUY_BOMBS_535, "ITEM_BOMB" },
|
||||||
{ RG_BUY_BOMBS_535, "ITEM_BOMB" },
|
{ RG_BUY_BOMBS_10, "ITEM_BOMB" },
|
||||||
{ RG_BUY_BOMBS_10, "ITEM_BOMB" },
|
{ RG_BUY_BOMBS_20, "ITEM_BOMB" },
|
||||||
{ RG_BUY_BOMBS_20, "ITEM_BOMB" },
|
{ RG_BUY_BOMBS_30, "ITEM_BOMB" },
|
||||||
{ RG_BUY_BOMBS_30, "ITEM_BOMB" },
|
{ RG_DEKU_NUTS_5, "ITEM_NUT" },
|
||||||
{ RG_DEKU_NUTS_5, "ITEM_NUT" },
|
{ RG_DEKU_NUTS_10, "ITEM_NUT" },
|
||||||
{ RG_DEKU_NUTS_10, "ITEM_NUT" },
|
{ RG_BUY_DEKU_NUTS_5, "ITEM_NUT" },
|
||||||
{ RG_BUY_DEKU_NUTS_5, "ITEM_NUT" },
|
{ RG_BUY_DEKU_NUTS_10, "ITEM_NUT" },
|
||||||
{ RG_BUY_DEKU_NUTS_10, "ITEM_NUT" },
|
{ RG_BOMBCHU_5, "ITEM_BOMBCHU" },
|
||||||
{ RG_BOMBCHU_5, "ITEM_BOMBCHU" },
|
{ RG_BOMBCHU_10, "ITEM_BOMBCHU" },
|
||||||
{ RG_BOMBCHU_10, "ITEM_BOMBCHU" },
|
{ RG_BOMBCHU_20, "ITEM_BOMBCHU" },
|
||||||
{ RG_BOMBCHU_20, "ITEM_BOMBCHU" },
|
{ RG_BUY_BOMBCHUS_20, "ITEM_BOMBCHU" },
|
||||||
{ RG_BUY_BOMBCHUS_20, "ITEM_BOMBCHU" },
|
{ RG_ARROWS_5, "ITEM_ARROWS_SMALL" },
|
||||||
{ RG_ARROWS_5, "ITEM_ARROWS_SMALL" },
|
{ RG_BUY_ARROWS_10, "ITEM_ARROWS_SMALL" },
|
||||||
{ RG_BUY_ARROWS_10, "ITEM_ARROWS_SMALL" },
|
{ RG_ARROWS_10, "ITEM_ARROWS_MEDIUM" },
|
||||||
{ RG_ARROWS_10, "ITEM_ARROWS_MEDIUM" },
|
{ RG_BUY_ARROWS_30, "ITEM_ARROWS_MEDIUM" },
|
||||||
{ RG_BUY_ARROWS_30, "ITEM_ARROWS_MEDIUM" },
|
{ RG_ARROWS_30, "ITEM_ARROWS_LARGE" },
|
||||||
{ RG_ARROWS_30, "ITEM_ARROWS_LARGE" },
|
{ RG_BUY_ARROWS_50, "ITEM_ARROWS_LARGE" },
|
||||||
{ RG_BUY_ARROWS_50, "ITEM_ARROWS_LARGE" },
|
{ RG_TCG_PIECE_OF_HEART, "ITEM_HEART_PIECE" },
|
||||||
{ RG_TREASURE_GAME_HEART, "ITEM_HEART_PIECE" },
|
{ RG_DEKU_SEEDS_30, "ITEM_SEEDS" },
|
||||||
{ RG_DEKU_SEEDS_30, "ITEM_SEEDS" },
|
{ RG_BUY_DEKU_SEEDS_30, "ITEM_SEEDS" },
|
||||||
{ RG_BUY_DEKU_SEEDS_30, "ITEM_SEEDS" },
|
{ RG_BUY_HEART, "ITEM_HEART_GRAYSCALE" },
|
||||||
{ RG_BUY_HEART, "ITEM_HEART_GRAYSCALE" },
|
{ RG_FISHING_POLE, "ITEM_FISHING_POLE" },
|
||||||
{ RG_FISHING_POLE, "ITEM_FISHING_POLE" },
|
{ RG_SOLD_OUT, "ITEM_SOLD_OUT" },
|
||||||
{ RG_SOLD_OUT, "ITEM_SOLD_OUT" },
|
{ RG_TRIFORCE_PIECE, "TRIFORCE_PIECE" },
|
||||||
{ RG_TRIFORCE_PIECE, "TRIFORCE_PIECE" },
|
{ RG_SKELETON_KEY, "ITEM_KEY_SMALL" } };
|
||||||
{ RG_SKELETON_KEY, "ITEM_KEY_SMALL" }
|
|
||||||
};
|
|
||||||
|
|
||||||
Rando::Item plandomizerRandoRetrieveItem(RandomizerGet randoGetItem) {
|
Rando::Item plandomizerRandoRetrieveItem(RandomizerGet randoGetItem) {
|
||||||
auto randoGetItemEntry = Rando::StaticData::RetrieveItem(randoGetItem);
|
auto randoGetItemEntry = Rando::StaticData::RetrieveItem(randoGetItem);
|
||||||
|
@ -271,7 +269,7 @@ void PlandoPopImageButtonStyle() {
|
||||||
|
|
||||||
ImVec4 plandomizerGetItemColor(Rando::Item randoItem) {
|
ImVec4 plandomizerGetItemColor(Rando::Item randoItem) {
|
||||||
itemColor = ImVec4(1.0f, 1.0f, 1.0f, 1.0f);
|
itemColor = ImVec4(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
if (randoItem.GetItemType() == ITEMTYPE_SMALLKEY || randoItem.GetItemType() == ITEMTYPE_FORTRESS_SMALLKEY ||
|
if (randoItem.GetItemType() == ITEMTYPE_SMALLKEY || randoItem.GetItemType() == ITEMTYPE_HIDEOUT_KEY ||
|
||||||
randoItem.GetItemType() == ITEMTYPE_BOSSKEY) {
|
randoItem.GetItemType() == ITEMTYPE_BOSSKEY) {
|
||||||
if (randoItem.GetRandomizerGet() == RG_FOREST_TEMPLE_SMALL_KEY ||
|
if (randoItem.GetRandomizerGet() == RG_FOREST_TEMPLE_SMALL_KEY ||
|
||||||
randoItem.GetRandomizerGet() == RG_FOREST_TEMPLE_KEY_RING) {
|
randoItem.GetRandomizerGet() == RG_FOREST_TEMPLE_KEY_RING) {
|
||||||
|
@ -288,14 +286,14 @@ ImVec4 plandomizerGetItemColor(Rando::Item randoItem) {
|
||||||
} else if (randoItem.GetRandomizerGet() == RG_SHADOW_TEMPLE_SMALL_KEY ||
|
} else if (randoItem.GetRandomizerGet() == RG_SHADOW_TEMPLE_SMALL_KEY ||
|
||||||
randoItem.GetRandomizerGet() == RG_SHADOW_TEMPLE_KEY_RING) {
|
randoItem.GetRandomizerGet() == RG_SHADOW_TEMPLE_KEY_RING) {
|
||||||
itemColor = ImVec4(0.49f, 0.06f, 0.69f, 1.0f);
|
itemColor = ImVec4(0.49f, 0.06f, 0.69f, 1.0f);
|
||||||
} else if (randoItem.GetRandomizerGet() == RG_BOTTOM_OF_THE_WELL_SMALL_KEY ||
|
} else if (randoItem.GetRandomizerGet() == RG_BOTW_SMALL_KEY ||
|
||||||
randoItem.GetRandomizerGet() == RG_BOTTOM_OF_THE_WELL_KEY_RING) {
|
randoItem.GetRandomizerGet() == RG_BOTW_KEY_RING) {
|
||||||
itemColor = ImVec4(0.89f, 0.43f, 1.0f, 1.0f);
|
itemColor = ImVec4(0.89f, 0.43f, 1.0f, 1.0f);
|
||||||
} else if (randoItem.GetRandomizerGet() == RG_GERUDO_TRAINING_GROUND_SMALL_KEY ||
|
} else if (randoItem.GetRandomizerGet() == RG_GTG_SMALL_KEY ||
|
||||||
randoItem.GetRandomizerGet() == RG_GERUDO_TRAINING_GROUND_KEY_RING) {
|
randoItem.GetRandomizerGet() == RG_GTG_KEY_RING) {
|
||||||
itemColor = ImVec4(1.0f, 1.0f, 0, 1.0f);
|
itemColor = ImVec4(1.0f, 1.0f, 0, 1.0f);
|
||||||
} else if (randoItem.GetRandomizerGet() == RG_GERUDO_FORTRESS_SMALL_KEY ||
|
} else if (randoItem.GetRandomizerGet() == RG_HIDEOUT_SMALL_KEY ||
|
||||||
randoItem.GetRandomizerGet() == RG_GERUDO_FORTRESS_KEY_RING) {
|
randoItem.GetRandomizerGet() == RG_HIDEOUT_KEY_RING) {
|
||||||
itemColor = ImVec4(1.0f, 1.0f, 1.0f, 1.0f);
|
itemColor = ImVec4(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
} else if (randoItem.GetRandomizerGet() == RG_GANONS_CASTLE_SMALL_KEY ||
|
} else if (randoItem.GetRandomizerGet() == RG_GANONS_CASTLE_SMALL_KEY ||
|
||||||
randoItem.GetRandomizerGet() == RG_GANONS_CASTLE_KEY_RING) {
|
randoItem.GetRandomizerGet() == RG_GANONS_CASTLE_KEY_RING) {
|
||||||
|
@ -314,7 +312,7 @@ ImVec4 plandomizerGetItemColor(Rando::Item randoItem) {
|
||||||
}
|
}
|
||||||
if (randoItem.GetRandomizerGet() >= RG_GREEN_RUPEE && randoItem.GetRandomizerGet() <= RG_HUGE_RUPEE) {
|
if (randoItem.GetRandomizerGet() >= RG_GREEN_RUPEE && randoItem.GetRandomizerGet() <= RG_HUGE_RUPEE) {
|
||||||
if (randoItem.GetRandomizerGet() == RG_GREG_RUPEE || randoItem.GetRandomizerGet() == RG_GREEN_RUPEE ||
|
if (randoItem.GetRandomizerGet() == RG_GREG_RUPEE || randoItem.GetRandomizerGet() == RG_GREEN_RUPEE ||
|
||||||
randoItem.GetRandomizerGet() == RG_TREASURE_GAME_GREEN_RUPEE) {
|
randoItem.GetRandomizerGet() == RG_LOSER_GREEN_RUPEE) {
|
||||||
itemColor = ImVec4(0.02f, 0.76f, 0.18f, 1.0f);
|
itemColor = ImVec4(0.02f, 0.76f, 0.18f, 1.0f);
|
||||||
} else if (randoItem.GetRandomizerGet() == RG_BLUE_RUPEE) {
|
} else if (randoItem.GetRandomizerGet() == RG_BLUE_RUPEE) {
|
||||||
itemColor = ImVec4(0.33f, 0.71f, 0.87f, 1.0f);
|
itemColor = ImVec4(0.33f, 0.71f, 0.87f, 1.0f);
|
||||||
|
@ -378,7 +376,7 @@ void PlandomizerItemImageCorrection(Rando::Item randoItem) {
|
||||||
|
|
||||||
itemColor = plandomizerGetItemColor(randoItem);
|
itemColor = plandomizerGetItemColor(randoItem);
|
||||||
|
|
||||||
if (randoItem.GetItemType() == ITEMTYPE_SMALLKEY || randoItem.GetItemType() == ITEMTYPE_FORTRESS_SMALLKEY) {
|
if (randoItem.GetItemType() == ITEMTYPE_SMALLKEY || randoItem.GetItemType() == ITEMTYPE_HIDEOUT_KEY) {
|
||||||
textureID = Ship::Context::GetInstance()->GetWindow()->GetGui()->GetTextureByName("ITEM_KEY_SMALL");
|
textureID = Ship::Context::GetInstance()->GetWindow()->GetGui()->GetTextureByName("ITEM_KEY_SMALL");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -530,17 +528,21 @@ void PlandomizerSaveSpoilerLog() {
|
||||||
|
|
||||||
for (auto& import : plandoLogData) {
|
for (auto& import : plandoLogData) {
|
||||||
if (import.checkRewardItem.GetRandomizerGet() == RG_ICE_TRAP) {
|
if (import.checkRewardItem.GetRandomizerGet() == RG_ICE_TRAP) {
|
||||||
spoilerSave["locations"][import.checkName] = { { "item", import.checkRewardItem.GetName().english },
|
spoilerSave["locations"][import.checkName] = {
|
||||||
{ "model", import.iceTrapModel.GetName().english },
|
{ "item", import.checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW) },
|
||||||
{ "trickName", import.iceTrapName.c_str() } };
|
{ "model", import.iceTrapModel.GetName().GetForCurrentLanguage(MF_RAW) },
|
||||||
|
{ "trickName", import.iceTrapName.c_str() }
|
||||||
|
};
|
||||||
if (import.shopPrice > -1) {
|
if (import.shopPrice > -1) {
|
||||||
spoilerSave["locations"][import.checkName]["price"] = import.shopPrice;
|
spoilerSave["locations"][import.checkName]["price"] = import.shopPrice;
|
||||||
}
|
}
|
||||||
} else if (import.shopPrice > -1) {
|
} else if (import.shopPrice > -1) {
|
||||||
spoilerSave["locations"][import.checkName] = { { "item", import.checkRewardItem.GetName().english },
|
spoilerSave["locations"][import.checkName] = {
|
||||||
{ "price", import.shopPrice } };
|
{ "item", import.checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW) },
|
||||||
|
{ "price", import.shopPrice }
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
spoilerSave["locations"][import.checkName] = import.checkRewardItem.GetName().english;
|
spoilerSave["locations"][import.checkName] = import.checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -622,8 +624,7 @@ void PlandomizerLoadSpoilerLog(std::string logFile) {
|
||||||
checkObject.checkRewardItem =
|
checkObject.checkRewardItem =
|
||||||
plandomizerRandoRetrieveItem(Rando::StaticData::itemNameToEnum[value.get<std::string>()]);
|
plandomizerRandoRetrieveItem(Rando::StaticData::itemNameToEnum[value.get<std::string>()]);
|
||||||
checkObject.shopPrice = -1;
|
checkObject.shopPrice = -1;
|
||||||
if (checkObject.shopPrice == -1 &&
|
if (checkObject.shopPrice == -1 && checkObject.checkRewardItem.GetItemType() == ITEMTYPE_SHOP) {
|
||||||
checkObject.checkRewardItem.GetName().english.find("Buy") != std::string::npos) {
|
|
||||||
checkObject.shopPrice = checkObject.checkRewardItem.GetPrice();
|
checkObject.shopPrice = checkObject.checkRewardItem.GetPrice();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -657,14 +658,13 @@ void PlandomizerOverlayText(std::pair<Rando::Item, uint32_t> drawObject) {
|
||||||
ImGui::SetCursorScreenPos(textPos);
|
ImGui::SetCursorScreenPos(textPos);
|
||||||
ImGui::Text("+");
|
ImGui::Text("+");
|
||||||
}
|
}
|
||||||
if (extractNumberInParentheses(drawObject.first.GetName().english.c_str()) != "" &&
|
std::string parenthesesNum = extractNumberInParentheses(drawObject.first.GetName().GetEnglish(MF_RAW).c_str());
|
||||||
extractNumberInParentheses(drawObject.first.GetName().english.c_str()) != "WINNER" &&
|
if (parenthesesNum != "" && parenthesesNum != "WINNER" && parenthesesNum != "LOSER") {
|
||||||
extractNumberInParentheses(drawObject.first.GetName().english.c_str()) != "LOSER") {
|
|
||||||
textPos = ImVec2(imageMin.x + 2, imageMin.y + 2);
|
textPos = ImVec2(imageMin.x + 2, imageMin.y + 2);
|
||||||
|
|
||||||
ImGui::SetCursorScreenPos(textPos);
|
ImGui::SetCursorScreenPos(textPos);
|
||||||
std::string overlayText = "+";
|
std::string overlayText = "+";
|
||||||
overlayText += extractNumberInParentheses(drawObject.first.GetName().english.c_str());
|
overlayText += parenthesesNum;
|
||||||
ImGui::Text(overlayText.c_str());
|
ImGui::Text(overlayText.c_str());
|
||||||
}
|
}
|
||||||
if (drawObject.first.GetRandomizerGet() >= RG_FOREST_TEMPLE_BOSS_KEY &&
|
if (drawObject.first.GetRandomizerGet() >= RG_FOREST_TEMPLE_BOSS_KEY &&
|
||||||
|
@ -704,7 +704,7 @@ void PlandomizerDrawItemPopup(uint32_t index) {
|
||||||
ImGui::PushID(item);
|
ImGui::PushID(item);
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
PlandomizerItemImageCorrection(plandomizerRandoRetrieveItem(item));
|
PlandomizerItemImageCorrection(plandomizerRandoRetrieveItem(item));
|
||||||
auto name = plandomizerRandoRetrieveItem(item).GetName().english;
|
auto name = plandomizerRandoRetrieveItem(item).GetName().GetForCurrentLanguage(MF_RAW);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
||||||
auto ret = ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1,
|
auto ret = ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1,
|
||||||
ImVec4(0, 0, 0, 0), itemColor);
|
ImVec4(0, 0, 0, 0), itemColor);
|
||||||
|
@ -734,7 +734,7 @@ void PlandomizerDrawItemPopup(uint32_t index) {
|
||||||
ImGui::PushID(itemIndex);
|
ImGui::PushID(itemIndex);
|
||||||
auto itemToDraw = drawSlots.first;
|
auto itemToDraw = drawSlots.first;
|
||||||
PlandomizerItemImageCorrection(drawSlots.first);
|
PlandomizerItemImageCorrection(drawSlots.first);
|
||||||
auto name = drawSlots.first.GetName().english;
|
auto name = drawSlots.first.GetName().GetForCurrentLanguage(MF_RAW);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
||||||
auto ret = ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1,
|
auto ret = ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1,
|
||||||
ImVec4(0, 0, 0, 0), itemColor);
|
ImVec4(0, 0, 0, 0), itemColor);
|
||||||
|
@ -783,7 +783,7 @@ void PlandomizerDrawIceTrapPopUp(uint32_t index) {
|
||||||
}
|
}
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
ImGui::PushID(items.first);
|
ImGui::PushID(items.first);
|
||||||
auto name = Rando::StaticData::RetrieveItem(items.first).GetName().english;
|
auto name = Rando::StaticData::RetrieveItem(items.first).GetName().GetForCurrentLanguage(MF_RAW);
|
||||||
PlandomizerItemImageCorrection(Rando::StaticData::RetrieveItem(items.first));
|
PlandomizerItemImageCorrection(Rando::StaticData::RetrieveItem(items.first));
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
||||||
auto ret = ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1,
|
auto ret = ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1,
|
||||||
|
@ -810,7 +810,7 @@ void PlandomizerDrawItemSlots(uint32_t index) {
|
||||||
ImGui::PushID(index);
|
ImGui::PushID(index);
|
||||||
PlandoPushImageButtonStyle();
|
PlandoPushImageButtonStyle();
|
||||||
PlandomizerItemImageCorrection(plandoLogData[index].checkRewardItem);
|
PlandomizerItemImageCorrection(plandoLogData[index].checkRewardItem);
|
||||||
auto name = plandoLogData[index].checkRewardItem.GetName().english;
|
auto name = plandoLogData[index].checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
||||||
auto ret =
|
auto ret =
|
||||||
ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1, ImVec4(0, 0, 0, 0), itemColor);
|
ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1, ImVec4(0, 0, 0, 0), itemColor);
|
||||||
|
@ -853,7 +853,7 @@ void PlandomizerDrawIceTrapSetup(uint32_t index) {
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
PlandomizerItemImageCorrection(plandoLogData[index].iceTrapModel);
|
PlandomizerItemImageCorrection(plandoLogData[index].iceTrapModel);
|
||||||
PlandoPushImageButtonStyle();
|
PlandoPushImageButtonStyle();
|
||||||
auto name = plandoLogData[index].iceTrapModel.GetName().english;
|
auto name = plandoLogData[index].iceTrapModel.GetName().GetForCurrentLanguage(MF_RAW);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(imagePadding, imagePadding));
|
||||||
auto ret =
|
auto ret =
|
||||||
ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1, ImVec4(0, 0, 0, 0), itemColor);
|
ImGui::ImageButton(name.c_str(), textureID, imageSize, textureUV0, textureUV1, ImVec4(0, 0, 0, 0), itemColor);
|
||||||
|
@ -1117,7 +1117,7 @@ void PlandomizerDrawLocationsWindow(RandomizerCheckArea rcArea) {
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
ImGui::TextWrapped(spoilerData.checkName.c_str());
|
ImGui::TextWrapped(spoilerData.checkName.c_str());
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
ImGui::TextWrapped(spoilerData.checkRewardItem.GetName().english.c_str());
|
ImGui::TextWrapped(spoilerData.checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW).c_str());
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
PlandomizerDrawItemSlots(index);
|
PlandomizerDrawItemSlots(index);
|
||||||
if (plandoLogData[index].checkRewardItem.GetRandomizerGet() == RG_ICE_TRAP) {
|
if (plandoLogData[index].checkRewardItem.GetRandomizerGet() == RG_ICE_TRAP) {
|
||||||
|
|
|
@ -64,7 +64,7 @@ extern "C" void ObjKibako2_RandomizerDraw(Actor* thisx, PlayState* play) {
|
||||||
case ITEM_CATEGORY_MAJOR:
|
case ITEM_CATEGORY_MAJOR:
|
||||||
Gfx_DrawDListOpa(play, (Gfx*)gLargeMajorCrateDL);
|
Gfx_DrawDListOpa(play, (Gfx*)gLargeMajorCrateDL);
|
||||||
break;
|
break;
|
||||||
case ITEM_CATEGORY_SKULLTULA_TOKEN:
|
case ITEM_CATEGORY_SKULL_TOKEN:
|
||||||
Gfx_DrawDListOpa(play, (Gfx*)gLargeTokenCrateDL);
|
Gfx_DrawDListOpa(play, (Gfx*)gLargeTokenCrateDL);
|
||||||
break;
|
break;
|
||||||
case ITEM_CATEGORY_SMALL_KEY:
|
case ITEM_CATEGORY_SMALL_KEY:
|
||||||
|
@ -138,7 +138,7 @@ extern "C" void ObjKibako_RandomizerDraw(Actor* thisx, PlayState* play) {
|
||||||
case ITEM_CATEGORY_MAJOR:
|
case ITEM_CATEGORY_MAJOR:
|
||||||
Gfx_DrawDListOpa(play, (Gfx*)gSmallMajorCrateDL);
|
Gfx_DrawDListOpa(play, (Gfx*)gSmallMajorCrateDL);
|
||||||
break;
|
break;
|
||||||
case ITEM_CATEGORY_SKULLTULA_TOKEN:
|
case ITEM_CATEGORY_SKULL_TOKEN:
|
||||||
Gfx_DrawDListOpa(play, (Gfx*)gSmallTokenCrateDL);
|
Gfx_DrawDListOpa(play, (Gfx*)gSmallTokenCrateDL);
|
||||||
break;
|
break;
|
||||||
case ITEM_CATEGORY_SMALL_KEY:
|
case ITEM_CATEGORY_SMALL_KEY:
|
||||||
|
|
|
@ -68,7 +68,7 @@ extern "C" void EnKusa_RandomizerDraw(Actor* thisx, PlayState* play) {
|
||||||
case ITEM_CATEGORY_SMALL_KEY:
|
case ITEM_CATEGORY_SMALL_KEY:
|
||||||
DrawTypeOfGrass(grassActor, (Gfx*)gRandoBushSmallKeyDL, (Gfx*)gRandoCuttableGrassSmallKeyDL, play);
|
DrawTypeOfGrass(grassActor, (Gfx*)gRandoBushSmallKeyDL, (Gfx*)gRandoCuttableGrassSmallKeyDL, play);
|
||||||
break;
|
break;
|
||||||
case ITEM_CATEGORY_SKULLTULA_TOKEN:
|
case ITEM_CATEGORY_SKULL_TOKEN:
|
||||||
DrawTypeOfGrass(grassActor, (Gfx*)gRandoBushTokenDL, (Gfx*)gRandoCuttableGrassTokenDL, play);
|
DrawTypeOfGrass(grassActor, (Gfx*)gRandoBushTokenDL, (Gfx*)gRandoCuttableGrassTokenDL, play);
|
||||||
break;
|
break;
|
||||||
case ITEM_CATEGORY_MAJOR:
|
case ITEM_CATEGORY_MAJOR:
|
||||||
|
|
|
@ -63,6 +63,7 @@ RandomizerArea Context::GetAreaFromString(std::string str) {
|
||||||
|
|
||||||
void Context::InitStaticData() {
|
void Context::InitStaticData() {
|
||||||
StaticData::HintTable_Init();
|
StaticData::HintTable_Init();
|
||||||
|
StaticData::InitItemTable();
|
||||||
StaticData::trialNameToEnum = StaticData::PopulateTranslationMap(StaticData::trialData);
|
StaticData::trialNameToEnum = StaticData::PopulateTranslationMap(StaticData::trialData);
|
||||||
StaticData::hintNameToEnum = StaticData::PopulateTranslationMap(StaticData::hintNames);
|
StaticData::hintNameToEnum = StaticData::PopulateTranslationMap(StaticData::hintNames);
|
||||||
StaticData::hintTypeNameToEnum = StaticData::PopulateTranslationMap(StaticData::hintTypeNames);
|
StaticData::hintTypeNameToEnum = StaticData::PopulateTranslationMap(StaticData::hintTypeNames);
|
||||||
|
@ -121,7 +122,7 @@ ItemOverride& Context::GetItemOverride(size_t locKey) {
|
||||||
void Context::PlaceItemInLocation(const RandomizerCheck locKey, const RandomizerGet item,
|
void Context::PlaceItemInLocation(const RandomizerCheck locKey, const RandomizerGet item,
|
||||||
const bool applyEffectImmediately, const bool setHidden) {
|
const bool applyEffectImmediately, const bool setHidden) {
|
||||||
const auto loc = GetItemLocation(locKey);
|
const auto loc = GetItemLocation(locKey);
|
||||||
SPDLOG_DEBUG(StaticData::RetrieveItem(item).GetName().GetEnglish() + " placed at " +
|
SPDLOG_DEBUG(StaticData::RetrieveItem(item).GetName().GetForCurrentLanguage(MF_RAW) + " placed at " +
|
||||||
StaticData::GetLocation(locKey)->GetName() + "\n");
|
StaticData::GetLocation(locKey)->GetName() + "\n");
|
||||||
|
|
||||||
if (applyEffectImmediately || mOptions[RSK_LOGIC_RULES].Is(RO_LOGIC_GLITCHLESS) ||
|
if (applyEffectImmediately || mOptions[RSK_LOGIC_RULES].Is(RO_LOGIC_GLITCHLESS) ||
|
||||||
|
@ -322,7 +323,7 @@ void Context::CreateItemOverrides() {
|
||||||
}
|
}
|
||||||
SPDLOG_DEBUG(loc->GetName());
|
SPDLOG_DEBUG(loc->GetName());
|
||||||
SPDLOG_DEBUG(": ");
|
SPDLOG_DEBUG(": ");
|
||||||
SPDLOG_DEBUG(itemLoc->GetPlacedItemName().GetEnglish());
|
SPDLOG_DEBUG(itemLoc->GetPlacedItemName().GetForCurrentLanguage(MF_RAW));
|
||||||
SPDLOG_DEBUG("\n");
|
SPDLOG_DEBUG("\n");
|
||||||
}
|
}
|
||||||
SPDLOG_DEBUG("Overrides Created: ");
|
SPDLOG_DEBUG("Overrides Created: ");
|
||||||
|
|
|
@ -170,14 +170,13 @@ Dungeons::Dungeons() {
|
||||||
"Shadow Temple", RHT_SHADOW_TEMPLE, RG_SHADOW_TEMPLE_MAP, RG_SHADOW_TEMPLE_COMPASS, RG_SHADOW_TEMPLE_SMALL_KEY,
|
"Shadow Temple", RHT_SHADOW_TEMPLE, RG_SHADOW_TEMPLE_MAP, RG_SHADOW_TEMPLE_COMPASS, RG_SHADOW_TEMPLE_SMALL_KEY,
|
||||||
RG_SHADOW_TEMPLE_KEY_RING, RG_SHADOW_TEMPLE_BOSS_KEY, RA_SHADOW_TEMPLE, 5, 6, RSK_MQ_SHADOW_TEMPLE);
|
RG_SHADOW_TEMPLE_KEY_RING, RG_SHADOW_TEMPLE_BOSS_KEY, RA_SHADOW_TEMPLE, 5, 6, RSK_MQ_SHADOW_TEMPLE);
|
||||||
dungeonList[BOTTOM_OF_THE_WELL] =
|
dungeonList[BOTTOM_OF_THE_WELL] =
|
||||||
DungeonInfo("Bottom of the Well", RHT_BOTTOM_OF_THE_WELL, RG_BOTTOM_OF_THE_WELL_MAP,
|
DungeonInfo("Bottom of the Well", RHT_BOTTOM_OF_THE_WELL, RG_BOTW_MAP, RG_BOTW_COMPASS, RG_BOTW_SMALL_KEY,
|
||||||
RG_BOTTOM_OF_THE_WELL_COMPASS, RG_BOTTOM_OF_THE_WELL_SMALL_KEY, RG_BOTTOM_OF_THE_WELL_KEY_RING,
|
RG_BOTW_KEY_RING, RG_NONE, RA_BOTTOM_OF_THE_WELL, 3, 2, RSK_MQ_BOTTOM_OF_THE_WELL);
|
||||||
RG_NONE, RA_BOTTOM_OF_THE_WELL, 3, 2, RSK_MQ_BOTTOM_OF_THE_WELL);
|
|
||||||
dungeonList[ICE_CAVERN] = DungeonInfo("Ice Cavern", RHT_ICE_CAVERN, RG_ICE_CAVERN_MAP, RG_ICE_CAVERN_COMPASS,
|
dungeonList[ICE_CAVERN] = DungeonInfo("Ice Cavern", RHT_ICE_CAVERN, RG_ICE_CAVERN_MAP, RG_ICE_CAVERN_COMPASS,
|
||||||
RG_NONE, RG_NONE, RG_NONE, RA_ICE_CAVERN, 0, 0, RSK_MQ_ICE_CAVERN);
|
RG_NONE, RG_NONE, RG_NONE, RA_ICE_CAVERN, 0, 0, RSK_MQ_ICE_CAVERN);
|
||||||
dungeonList[GERUDO_TRAINING_GROUND] = DungeonInfo(
|
dungeonList[GERUDO_TRAINING_GROUND] =
|
||||||
"Gerudo Training Ground", RHT_GERUDO_TRAINING_GROUND, RG_NONE, RG_NONE, RG_GERUDO_TRAINING_GROUND_SMALL_KEY,
|
DungeonInfo("Gerudo Training Ground", RHT_GERUDO_TRAINING_GROUND, RG_NONE, RG_NONE, RG_GTG_SMALL_KEY,
|
||||||
RG_GERUDO_TRAINING_GROUND_KEY_RING, RG_NONE, RA_GERUDO_TRAINING_GROUND, 9, 3, RSK_MQ_GTG);
|
RG_GTG_KEY_RING, RG_NONE, RA_GERUDO_TRAINING_GROUND, 9, 3, RSK_MQ_GTG);
|
||||||
dungeonList[GANONS_CASTLE] =
|
dungeonList[GANONS_CASTLE] =
|
||||||
DungeonInfo("Ganon's Castle", RHT_GANONS_CASTLE, RG_NONE, RG_NONE, RG_GANONS_CASTLE_SMALL_KEY,
|
DungeonInfo("Ganon's Castle", RHT_GANONS_CASTLE, RG_NONE, RG_NONE, RG_GANONS_CASTLE_SMALL_KEY,
|
||||||
RG_GANONS_CASTLE_KEY_RING, RG_GANONS_CASTLE_BOSS_KEY, RA_GANONS_CASTLE, 2, 3, RSK_MQ_GANONS_CASTLE);
|
RG_GANONS_CASTLE_KEY_RING, RG_GANONS_CASTLE_BOSS_KEY, RA_GANONS_CASTLE, 2, 3, RSK_MQ_GANONS_CASTLE);
|
||||||
|
|
|
@ -266,7 +266,7 @@ const HintText Hint::GetHintText(size_t id) const {
|
||||||
if (locations.size() > 0) {
|
if (locations.size() > 0) {
|
||||||
return *StaticData::GetLocation(locations[0])->GetHint();
|
return *StaticData::GetLocation(locations[0])->GetHint();
|
||||||
} else {
|
} else {
|
||||||
return CustomMessage("ERROR: ITEM HINT WITH NO LOCATIONS OR HINT KEY");
|
return HintText(CustomMessage("ERROR: ITEM HINT WITH NO LOCATIONS OR HINT KEY"));
|
||||||
}
|
}
|
||||||
case HINT_TYPE_ITEM_AREA:
|
case HINT_TYPE_ITEM_AREA:
|
||||||
if (locations.size() > 0) {
|
if (locations.size() > 0) {
|
||||||
|
@ -276,10 +276,11 @@ const HintText Hint::GetHintText(size_t id) const {
|
||||||
return StaticData::hintTextTable[RHT_CAN_BE_FOUND_AT];
|
return StaticData::hintTextTable[RHT_CAN_BE_FOUND_AT];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return CustomMessage("ERROR: ITEM AREA HINT WITH NO LOCATION"); // RANDOTODO get isDungeon from area?
|
return HintText(
|
||||||
|
CustomMessage("ERROR: ITEM AREA HINT WITH NO LOCATION")); // RANDOTODO get isDungeon from area?
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return CustomMessage("ERROR: NO HINTKEY PROVIDED AND HINT TYPE HAS NO DEFAULT");
|
return HintText(CustomMessage("ERROR: NO HINTKEY PROVIDED AND HINT TYPE HAS NO DEFAULT"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -416,15 +417,13 @@ oJson Hint::toJSON() {
|
||||||
if (!(StaticData::staticHintInfoMap.contains(ownKey) &&
|
if (!(StaticData::staticHintInfoMap.contains(ownKey) &&
|
||||||
StaticData::staticHintInfoMap[ownKey].targetItems.size() > 0)) {
|
StaticData::staticHintInfoMap[ownKey].targetItems.size() > 0)) {
|
||||||
if (items.size() == 1) {
|
if (items.size() == 1) {
|
||||||
log["item"] = StaticData::GetItemTable()[items[0]]
|
log["item"] = StaticData::GetItemTable()[items[0]].GetName().GetForCurrentLanguage(
|
||||||
.GetName()
|
MF_RAW); // RANDOTODO change to CustomMessage;
|
||||||
.GetEnglish(); // RANDOTODO change to CustomMessage;
|
|
||||||
} else if (items.size() > 1) {
|
} else if (items.size() > 1) {
|
||||||
std::vector<std::string> itemStrings = {};
|
std::vector<std::string> itemStrings = {};
|
||||||
for (size_t c = 0; c < items.size(); c++) {
|
for (size_t c = 0; c < items.size(); c++) {
|
||||||
itemStrings.push_back(StaticData::GetItemTable()[items[c]]
|
itemStrings.push_back(StaticData::GetItemTable()[items[c]].GetName().GetForCurrentLanguage(
|
||||||
.GetName()
|
MF_RAW)); // RANDOTODO change to CustomMessage
|
||||||
.GetEnglish()); // RANDOTODO change to CustomMessage
|
|
||||||
}
|
}
|
||||||
log["items"] = itemStrings;
|
log["items"] = itemStrings;
|
||||||
}
|
}
|
||||||
|
|
|
@ -332,7 +332,7 @@ void RandomizerOnPlayerUpdateForRCQueueHandler() {
|
||||||
!(getItemEntry.getItemId >= RG_DEKU_TREE_MAP && getItemEntry.getItemId <= RG_ICE_CAVERN_MAP &&
|
!(getItemEntry.getItemId >= RG_DEKU_TREE_MAP && getItemEntry.getItemId <= RG_ICE_CAVERN_MAP &&
|
||||||
getItemEntry.modIndex == MOD_RANDOMIZER) &&
|
getItemEntry.modIndex == MOD_RANDOMIZER) &&
|
||||||
(getItemEntry.getItemCategory == ITEM_CATEGORY_JUNK ||
|
(getItemEntry.getItemCategory == ITEM_CATEGORY_JUNK ||
|
||||||
getItemEntry.getItemCategory == ITEM_CATEGORY_SKULLTULA_TOKEN ||
|
getItemEntry.getItemCategory == ITEM_CATEGORY_SKULL_TOKEN ||
|
||||||
getItemEntry.getItemCategory == ITEM_CATEGORY_LESSER))))) {
|
getItemEntry.getItemCategory == ITEM_CATEGORY_LESSER))))) {
|
||||||
Item_DropCollectible(gPlayState, &spawnPos, static_cast<int16_t>(ITEM00_SOH_GIVE_ITEM_ENTRY | 0x8000));
|
Item_DropCollectible(gPlayState, &spawnPos, static_cast<int16_t>(ITEM00_SOH_GIVE_ITEM_ENTRY | 0x8000));
|
||||||
}
|
}
|
||||||
|
@ -1029,10 +1029,10 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
||||||
});
|
});
|
||||||
} else if (item00->itemEntry.modIndex == MOD_RANDOMIZER) {
|
} else if (item00->itemEntry.modIndex == MOD_RANDOMIZER) {
|
||||||
Notification::Emit({
|
Notification::Emit({
|
||||||
.message = "You found ",
|
.message = "You found ", // RANDOTODO change based on language
|
||||||
.suffix = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId)
|
.suffix = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId)
|
||||||
.GetName()
|
.GetName()
|
||||||
.english,
|
.GetForCurrentLanguage(MF_RAW),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,35 +12,54 @@
|
||||||
|
|
||||||
namespace Rando {
|
namespace Rando {
|
||||||
Item::Item()
|
Item::Item()
|
||||||
: randomizerGet(RG_NONE), type(ITEMTYPE_ITEM), getItemId(GI_NONE), advancement(false), hintKey(RHT_NONE),
|
: randomizerGet(RG_NONE), type(ITEMTYPE_ITEM), getItemId(GI_NONE), advancement(false), hintKey(RHT_NONE), price(0) {
|
||||||
progressive(false), price(0) {
|
|
||||||
}
|
}
|
||||||
Item::Item(const RandomizerGet randomizerGet_, Text name_, const ItemType type_, const int16_t getItemId_,
|
Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_, LogicVal logicVal_,
|
||||||
const bool advancement_, LogicVal logicVal_, const RandomizerHintTextKey hintKey_, const uint16_t itemId_,
|
const RandomizerHintTextKey hintKey_, const uint16_t itemId_, const uint16_t objectId_, const uint16_t gid_,
|
||||||
const uint16_t objectId_, const uint16_t gid_, const uint16_t textId_, const uint16_t field_,
|
const uint16_t textId_, const uint16_t field_, const int16_t chestAnimation_,
|
||||||
const int16_t chestAnimation_, const GetItemCategory category_, const uint16_t modIndex_,
|
const GetItemCategory category_, const uint16_t modIndex_, const uint16_t price_,
|
||||||
const bool progressive_, const uint16_t price_)
|
const CustomDrawFunc drawfunc_)
|
||||||
: randomizerGet(randomizerGet_), name(std::move(name_)), type(type_), getItemId(getItemId_),
|
: randomizerGet(randomizerGet_), type(type_), getItemId(getItemId_), logicVal(logicVal_), hintKey(hintKey_),
|
||||||
advancement(advancement_), logicVal(logicVal_), hintKey(hintKey_), category(category_), progressive(progressive_),
|
category(category_),
|
||||||
|
|
||||||
price(price_) {
|
price(price_) {
|
||||||
if (modIndex_ == MOD_RANDOMIZER || getItemId > 0x7D) {
|
if (modIndex_ == MOD_RANDOMIZER || getItemId > 0x7D) {
|
||||||
giEntry = std::make_shared<GetItemEntry>(GetItemEntry{
|
giEntry = std::make_shared<GetItemEntry>(GetItemEntry{
|
||||||
itemId_, field_, static_cast<int16_t>((chestAnimation_ != CHEST_ANIM_SHORT ? 1 : -1) * (gid_ + 1)), textId_,
|
itemId_, field_, static_cast<int16_t>((chestAnimation_ != CHEST_ANIM_SHORT ? 1 : -1) * (gid_ + 1)), textId_,
|
||||||
objectId_, modIndex_, TABLE_RANDOMIZER, static_cast<int16_t>(randomizerGet_), gid_, true, ITEM_FROM_NPC,
|
objectId_, modIndex_, TABLE_RANDOMIZER, static_cast<int16_t>(randomizerGet_), gid_, true, ITEM_FROM_NPC,
|
||||||
category_, static_cast<uint16_t>(randomizerGet_), MOD_RANDOMIZER, NULL });
|
category_, static_cast<uint16_t>(randomizerGet_), MOD_RANDOMIZER, drawfunc_ });
|
||||||
} else {
|
} else {
|
||||||
giEntry = std::make_shared<GetItemEntry>(GetItemEntry{
|
giEntry = std::make_shared<GetItemEntry>(GetItemEntry{
|
||||||
itemId_, field_, static_cast<int16_t>((chestAnimation_ != CHEST_ANIM_SHORT ? 1 : -1) * (gid_ + 1)), textId_,
|
itemId_, field_, static_cast<int16_t>((chestAnimation_ != CHEST_ANIM_SHORT ? 1 : -1) * (gid_ + 1)), textId_,
|
||||||
objectId_, modIndex_, TABLE_VANILLA, getItemId_, gid_, true, ITEM_FROM_NPC, category_, itemId_, modIndex_,
|
objectId_, modIndex_, TABLE_VANILLA, getItemId_, gid_, true, ITEM_FROM_NPC, category_, itemId_, modIndex_,
|
||||||
NULL });
|
drawfunc_ });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Item::Item(const RandomizerGet randomizerGet_, Text name_, const ItemType type_, const int16_t getItemId_,
|
Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_, LogicVal logicVal_,
|
||||||
const bool advancement_, LogicVal logicVal_, const RandomizerHintTextKey hintKey_,
|
const RandomizerHintTextKey hintKey_, const uint16_t objectId_, const uint16_t gid_, const uint16_t textId_,
|
||||||
const GetItemCategory category_, const bool progressive_, const uint16_t price_)
|
const uint16_t field_, const int16_t chestAnimation_, const GetItemCategory category_,
|
||||||
: randomizerGet(randomizerGet_), name(std::move(name_)), type(type_), getItemId(getItemId_),
|
const uint16_t modIndex_, const uint16_t price_, const CustomDrawFunc drawfunc_)
|
||||||
advancement(advancement_), logicVal(logicVal_), hintKey(hintKey_), category(category_), progressive(progressive_),
|
: randomizerGet(randomizerGet_), type(type_), getItemId(getItemId_), logicVal(logicVal_), hintKey(hintKey_),
|
||||||
|
category(category_), price(price_) {
|
||||||
|
if (modIndex_ == MOD_RANDOMIZER || getItemId > 0x7D) {
|
||||||
|
giEntry = std::make_shared<GetItemEntry>(
|
||||||
|
GetItemEntry{ static_cast<uint16_t>(randomizerGet_), field_,
|
||||||
|
static_cast<int16_t>((chestAnimation_ != CHEST_ANIM_SHORT ? 1 : -1) * (gid_ + 1)), textId_,
|
||||||
|
objectId_, modIndex_, TABLE_RANDOMIZER, static_cast<int16_t>(randomizerGet_), gid_, true,
|
||||||
|
ITEM_FROM_NPC, category_, static_cast<uint16_t>(randomizerGet_), MOD_RANDOMIZER, drawfunc_ });
|
||||||
|
} else {
|
||||||
|
giEntry = std::make_shared<GetItemEntry>(
|
||||||
|
GetItemEntry{ static_cast<uint16_t>(randomizerGet_), field_,
|
||||||
|
static_cast<int16_t>((chestAnimation_ != CHEST_ANIM_SHORT ? 1 : -1) * (gid_ + 1)), textId_,
|
||||||
|
objectId_, modIndex_, TABLE_VANILLA, getItemId_, gid_, true, ITEM_FROM_NPC, category_,
|
||||||
|
static_cast<uint16_t>(randomizerGet_), modIndex_, drawfunc_ });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_, LogicVal logicVal_,
|
||||||
|
const RandomizerHintTextKey hintKey_, const GetItemCategory category_, const uint16_t price_)
|
||||||
|
: randomizerGet(randomizerGet_), type(type_), getItemId(getItemId_), logicVal(logicVal_), hintKey(hintKey_),
|
||||||
price(price_) {
|
price(price_) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,12 +83,12 @@ void Item::UndoEffect() const {
|
||||||
logic->SetInLogic(logicVal, false);
|
logic->SetInLogic(logicVal, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
const Text& Item::GetName() const {
|
const CustomMessage& Item::GetName() const {
|
||||||
return name;
|
return StaticData::hintTextTable[hintKey].GetName();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Item::IsAdvancement() const {
|
bool Item::IsAdvancement() const {
|
||||||
return advancement;
|
return logicVal != LOGIC_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Item::GetItemID() const {
|
int Item::GetItemID() const {
|
||||||
|
@ -102,7 +121,7 @@ std::shared_ptr<GetItemEntry> Item::GetGIEntry() const { // NOLINT(*-no-recursio
|
||||||
const bool tycoonWallet = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_INCLUDE_TYCOON_WALLET);
|
const bool tycoonWallet = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_INCLUDE_TYCOON_WALLET);
|
||||||
const u8 infiniteUpgrades = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_INFINITE_UPGRADES);
|
const u8 infiniteUpgrades = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_INFINITE_UPGRADES);
|
||||||
switch (randomizerGet) {
|
switch (randomizerGet) {
|
||||||
case RG_PROGRESSIVE_STICK_UPGRADE:
|
case RG_PROGRESSIVE_STICK_BAG:
|
||||||
switch (logic->CurrentUpgrade(UPG_STICKS)) {
|
switch (logic->CurrentUpgrade(UPG_STICKS)) {
|
||||||
case 0:
|
case 0:
|
||||||
if (ctx->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG)) {
|
if (ctx->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG)) {
|
||||||
|
@ -132,7 +151,7 @@ std::shared_ptr<GetItemEntry> Item::GetGIEntry() const { // NOLINT(*-no-recursio
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RG_PROGRESSIVE_NUT_UPGRADE:
|
case RG_PROGRESSIVE_NUT_BAG:
|
||||||
switch (logic->CurrentUpgrade(UPG_NUTS)) {
|
switch (logic->CurrentUpgrade(UPG_NUTS)) {
|
||||||
case 0:
|
case 0:
|
||||||
if (ctx->GetOption(RSK_SHUFFLE_DEKU_NUT_BAG)) {
|
if (ctx->GetOption(RSK_SHUFFLE_DEKU_NUT_BAG)) {
|
||||||
|
@ -332,7 +351,7 @@ std::shared_ptr<GetItemEntry> Item::GetGIEntry() const { // NOLINT(*-no-recursio
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RG_PROGRESSIVE_MAGIC_METER:
|
case RG_PROGRESSIVE_MAGIC:
|
||||||
switch (logic->GetSaveContext()->magicLevel) {
|
switch (logic->GetSaveContext()->magicLevel) {
|
||||||
case 0:
|
case 0:
|
||||||
actual = RG_MAGIC_SINGLE;
|
actual = RG_MAGIC_SINGLE;
|
||||||
|
@ -379,18 +398,10 @@ void Item::SetPrice(const uint16_t price_) {
|
||||||
price = price_;
|
price = price_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Item::SetAsPlaythrough() {
|
|
||||||
playthrough = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Item::SetCustomDrawFunc(const CustomDrawFunc drawFunc) const {
|
void Item::SetCustomDrawFunc(const CustomDrawFunc drawFunc) const {
|
||||||
giEntry->drawFunc = drawFunc;
|
giEntry->drawFunc = drawFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Item::IsPlaythrough() const {
|
|
||||||
return playthrough;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Item::IsBottleItem() const {
|
bool Item::IsBottleItem() const {
|
||||||
return getItemId == 0x0F || // Empty Bottle
|
return getItemId == 0x0F || // Empty Bottle
|
||||||
getItemId == 0X14 || // Bottle with Milk
|
getItemId == 0X14 || // Bottle with Milk
|
||||||
|
@ -419,7 +430,7 @@ bool Item::IsMajorItem() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (randomizerGet == RG_HEART_CONTAINER || randomizerGet == RG_PIECE_OF_HEART ||
|
if (randomizerGet == RG_HEART_CONTAINER || randomizerGet == RG_PIECE_OF_HEART ||
|
||||||
randomizerGet == RG_TREASURE_GAME_HEART) {
|
randomizerGet == RG_TCG_PIECE_OF_HEART) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,7 +439,7 @@ bool Item::IsMajorItem() const {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == ITEMTYPE_FORTRESS_SMALLKEY && ctx->GetOption(RSK_GERUDO_KEYS).Is(RO_GERUDO_KEYS_VANILLA)) {
|
if (type == ITEMTYPE_HIDEOUT_KEY && ctx->GetOption(RSK_GERUDO_KEYS).Is(RO_GERUDO_KEYS_VANILLA)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ enum ItemType {
|
||||||
ITEMTYPE_BOSSKEY,
|
ITEMTYPE_BOSSKEY,
|
||||||
ITEMTYPE_SMALLKEY,
|
ITEMTYPE_SMALLKEY,
|
||||||
ITEMTYPE_TOKEN,
|
ITEMTYPE_TOKEN,
|
||||||
ITEMTYPE_FORTRESS_SMALLKEY,
|
ITEMTYPE_HIDEOUT_KEY,
|
||||||
ITEMTYPE_EVENT,
|
ITEMTYPE_EVENT,
|
||||||
ITEMTYPE_DROP,
|
ITEMTYPE_DROP,
|
||||||
ITEMTYPE_REFILL,
|
ITEMTYPE_REFILL,
|
||||||
|
@ -30,19 +30,22 @@ namespace Rando {
|
||||||
class Item {
|
class Item {
|
||||||
public:
|
public:
|
||||||
Item();
|
Item();
|
||||||
Item(RandomizerGet randomizerGet_, Text name_, ItemType type_, int16_t getItemId_, bool advancement_,
|
Item(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, LogicVal logicVal_,
|
||||||
LogicVal logicVal_, RandomizerHintTextKey hintKey_, uint16_t itemId_, uint16_t objectId_, uint16_t gid_,
|
RandomizerHintTextKey hintKey_, uint16_t itemId_, uint16_t objectId_, uint16_t gid_, uint16_t textId_,
|
||||||
uint16_t textId_, uint16_t field_, int16_t chestAnimation_, GetItemCategory category_, uint16_t modIndex_,
|
uint16_t field_, int16_t chestAnimation_, GetItemCategory category_, uint16_t modIndex_, uint16_t price_ = 0,
|
||||||
bool progressive_ = false, uint16_t price_ = 0);
|
CustomDrawFunc drawfunc_ = NULL);
|
||||||
Item(RandomizerGet randomizerGet_, Text name_, ItemType type_, int16_t getItemId_, bool advancement_,
|
Item(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, LogicVal logicVal_,
|
||||||
LogicVal logicVal_, RandomizerHintTextKey hintKey_, GetItemCategory category_, bool progressive_ = false,
|
RandomizerHintTextKey hintKey_, uint16_t objectId_, uint16_t gid_, uint16_t textId_, uint16_t field_,
|
||||||
uint16_t price_ = 0);
|
int16_t chestAnimation_, GetItemCategory category_, uint16_t modIndex_, uint16_t price_ = 0,
|
||||||
|
CustomDrawFunc drawfunc_ = NULL);
|
||||||
|
Item(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, LogicVal logicVal_,
|
||||||
|
RandomizerHintTextKey hintKey_, GetItemCategory category_, uint16_t price_ = 0);
|
||||||
~Item();
|
~Item();
|
||||||
|
|
||||||
void ApplyEffect() const;
|
void ApplyEffect() const;
|
||||||
void UndoEffect() const;
|
void UndoEffect() const;
|
||||||
|
|
||||||
const Text& GetName() const;
|
const CustomMessage& GetName() const;
|
||||||
bool IsAdvancement() const;
|
bool IsAdvancement() const;
|
||||||
int GetItemID() const;
|
int GetItemID() const;
|
||||||
ItemType GetItemType() const;
|
ItemType GetItemType() const;
|
||||||
|
@ -52,9 +55,7 @@ class Item {
|
||||||
std::shared_ptr<GetItemEntry> GetGIEntry() const;
|
std::shared_ptr<GetItemEntry> GetGIEntry() const;
|
||||||
GetItemEntry GetGIEntry_Copy() const;
|
GetItemEntry GetGIEntry_Copy() const;
|
||||||
void SetPrice(uint16_t price_);
|
void SetPrice(uint16_t price_);
|
||||||
void SetAsPlaythrough();
|
|
||||||
void SetCustomDrawFunc(CustomDrawFunc) const;
|
void SetCustomDrawFunc(CustomDrawFunc) const;
|
||||||
bool IsPlaythrough() const;
|
|
||||||
bool IsBottleItem() const;
|
bool IsBottleItem() const;
|
||||||
bool IsMajorItem() const;
|
bool IsMajorItem() const;
|
||||||
RandomizerHintTextKey GetHintKey() const;
|
RandomizerHintTextKey GetHintKey() const;
|
||||||
|
@ -72,9 +73,7 @@ class Item {
|
||||||
LogicVal logicVal;
|
LogicVal logicVal;
|
||||||
RandomizerHintTextKey hintKey;
|
RandomizerHintTextKey hintKey;
|
||||||
GetItemCategory category;
|
GetItemCategory category;
|
||||||
bool progressive;
|
|
||||||
uint16_t price;
|
uint16_t price;
|
||||||
bool playthrough = false;
|
|
||||||
std::shared_ptr<GetItemEntry> giEntry;
|
std::shared_ptr<GetItemEntry> giEntry;
|
||||||
};
|
};
|
||||||
} // namespace Rando
|
} // namespace Rando
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#include "static_data.h"
|
#include "static_data.h"
|
||||||
#include "context.h"
|
#include "context.h"
|
||||||
#include "logic.h"
|
|
||||||
#include "z64object.h"
|
#include "z64object.h"
|
||||||
#include "soh/Enhancements/custom-message/CustomMessageTypes.h"
|
#include "soh/Enhancements/custom-message/CustomMessageTypes.h"
|
||||||
#include "draw.h"
|
#include "draw.h"
|
||||||
|
@ -10,413 +9,346 @@ using namespace Rando;
|
||||||
std::array<Item, RG_MAX> Rando::StaticData::itemTable;
|
std::array<Item, RG_MAX> Rando::StaticData::itemTable;
|
||||||
std::unordered_map<std::string, RandomizerGet> Rando::StaticData::itemNameToEnum;
|
std::unordered_map<std::string, RandomizerGet> Rando::StaticData::itemNameToEnum;
|
||||||
|
|
||||||
|
void Rando::StaticData::AddItem(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_,
|
||||||
|
LogicVal logicVal_, const RandomizerHintTextKey hintKey_, const uint16_t itemId_,
|
||||||
|
const uint16_t objectId_, const uint16_t gid_, const uint16_t textId_,
|
||||||
|
const uint16_t field_, const int16_t chestAnimation_, const GetItemCategory category_,
|
||||||
|
const uint16_t MODIndex_, const uint16_t price_, CustomDrawFunc drawfunc_) {
|
||||||
|
itemTable[randomizerGet_] = Item(randomizerGet_, type_, getItemId_, logicVal_, hintKey_, itemId_, objectId_, gid_,
|
||||||
|
textId_, field_, chestAnimation_, category_, MODIndex_, price_, drawfunc_);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Rando::StaticData::AddItem(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_,
|
||||||
|
LogicVal logicVal_, const RandomizerHintTextKey hintKey_, const uint16_t objectId_,
|
||||||
|
const uint16_t gid_, const uint16_t textId_, const uint16_t field_,
|
||||||
|
const int16_t chestAnimation_, const GetItemCategory category_,
|
||||||
|
const uint16_t MODIndex_, const uint16_t price_, CustomDrawFunc drawfunc_) {
|
||||||
|
itemTable[randomizerGet_] = Item(randomizerGet_, type_, getItemId_, logicVal_, hintKey_, objectId_, gid_, textId_,
|
||||||
|
field_, chestAnimation_, category_, MODIndex_, price_, drawfunc_);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Rando::StaticData::AddItem(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_,
|
||||||
|
const LogicVal logicVal_, const RandomizerHintTextKey hintKey_,
|
||||||
|
const GetItemCategory category_, const uint16_t price_) {
|
||||||
|
itemTable[randomizerGet_] = Item(randomizerGet_, type_, getItemId_, logicVal_, hintKey_, category_, price_);
|
||||||
|
}
|
||||||
|
|
||||||
void Rando::StaticData::InitItemTable() {
|
void Rando::StaticData::InitItemTable() {
|
||||||
auto logic = Context::GetInstance()->GetLogic();
|
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
itemTable[RG_NONE] = Item(RG_NONE, Text{ "No Item", "Rien", "Kein Artikel" }, ITEMTYPE_EVENT, GI_RUPEE_GREEN, false, LOGIC_NONE, RHT_NONE, ITEM_NONE, 0, 0, 0, 0, 0, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_NONE, ITEMTYPE_EVENT, GI_RUPEE_GREEN, LOGIC_NONE, RHT_NONE, ITEM_NONE, 0, 0, 0, 0, 0, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
// Randomizer Get Randomizer Get Name Text Type Get Item ID Adv. Logic Value Hint Text Key Item ID Object ID Draw ID Text ID field Chest Animation Item Category Mod Index
|
// Randomizer Get Type Get Item ID Logic Value Hint Text Key Item ID Object ID Draw ID Text ID field Chest Animation Item Category MOD Index Price CustomDrawFunction
|
||||||
itemTable[RG_KOKIRI_SWORD] = Item(RG_KOKIRI_SWORD, Text{ "Kokiri Sword", "Épée Kokiri", "Kokiri-Schwert" }, ITEMTYPE_EQUIP, GI_SWORD_KOKIRI, true, LOGIC_KOKIRI_SWORD, RHT_KOKIRI_SWORD, ITEM_SWORD_KOKIRI, OBJECT_GI_SWORD_1, GID_SWORD_KOKIRI, 0xA4, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_KOKIRI_SWORD, ITEMTYPE_EQUIP, GI_SWORD_KOKIRI, LOGIC_KOKIRI_SWORD, RHT_KOKIRI_SWORD, ITEM_SWORD_KOKIRI, OBJECT_GI_SWORD_1, GID_SWORD_KOKIRI, 0xA4, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_MASTER_SWORD] = Item(RG_MASTER_SWORD, Text{ "Master Sword", "Épée de Legende", "Master-Schwert" }, ITEMTYPE_EQUIP, 0xE0, true, LOGIC_MASTER_SWORD, RHT_MASTER_SWORD, ITEM_SWORD_MASTER, OBJECT_TOKI_OBJECTS, GID_SWORD_BGS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_MASTER_SWORD, ITEMTYPE_EQUIP, 0xE0, LOGIC_MASTER_SWORD, RHT_MASTER_SWORD, ITEM_SWORD_MASTER, OBJECT_TOKI_OBJECTS, GID_SWORD_BGS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawMasterSword);
|
||||||
itemTable[RG_MASTER_SWORD].SetCustomDrawFunc(Randomizer_DrawMasterSword);
|
AddItem(RG_GIANTS_KNIFE, ITEMTYPE_EQUIP, GI_SWORD_KNIFE, LOGIC_NONE, RHT_GIANTS_KNIFE, ITEM_SWORD_BGS, OBJECT_GI_LONGSWORD, GID_SWORD_BGS, 0x4B, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_GIANTS_KNIFE] = Item(RG_GIANTS_KNIFE, Text{ "Giant's Knife", "Lame des Géants", "Langschwert" }, ITEMTYPE_EQUIP, GI_SWORD_KNIFE, true, LOGIC_NONE, RHT_GIANTS_KNIFE, ITEM_SWORD_BGS, OBJECT_GI_LONGSWORD, GID_SWORD_BGS, 0x4B, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_BIGGORON_SWORD, ITEMTYPE_EQUIP, GI_SWORD_BGS, LOGIC_BIGGORON_SWORD, RHT_BIGGORON_SWORD, ITEM_SWORD_BGS, OBJECT_GI_LONGSWORD, GID_SWORD_BGS, 0x0C, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BIGGORON_SWORD] = Item(RG_BIGGORON_SWORD, Text{ "Biggoron's Sword", "Épée de Biggoron", "Biggoron-Schwert" }, ITEMTYPE_EQUIP, GI_SWORD_BGS, true, LOGIC_BIGGORON_SWORD, RHT_BIGGORON_SWORD, ITEM_SWORD_BGS, OBJECT_GI_LONGSWORD, GID_SWORD_BGS, 0x0C, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_DEKU_SHIELD, ITEMTYPE_EQUIP, GI_SHIELD_DEKU, LOGIC_NONE, RHT_DEKU_SHIELD, ITEM_SHIELD_DEKU, OBJECT_GI_SHIELD_1, GID_SHIELD_DEKU, 0x4C, 0xA0, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_DEKU_SHIELD] = Item(RG_DEKU_SHIELD, Text{ "Deku Shield", "Bouclier Mojo", "Deku-Schild" }, ITEMTYPE_EQUIP, GI_SHIELD_DEKU, false, LOGIC_DEKU_SHIELD, RHT_DEKU_SHIELD, ITEM_SHIELD_DEKU, OBJECT_GI_SHIELD_1, GID_SHIELD_DEKU, 0x4C, 0xA0, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_HYLIAN_SHIELD, ITEMTYPE_EQUIP, GI_SHIELD_HYLIAN, LOGIC_NONE, RHT_HYLIAN_SHIELD, ITEM_SHIELD_HYLIAN, OBJECT_GI_SHIELD_2, GID_SHIELD_HYLIAN, 0x4D, 0xA0, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_HYLIAN_SHIELD] = Item(RG_HYLIAN_SHIELD, Text{ "Hylian Shield", "Bouclier Hylien", "Hylia-Schild" }, ITEMTYPE_EQUIP, GI_SHIELD_HYLIAN, false, LOGIC_HYLIAN_SHIELD, RHT_HYLIAN_SHIELD, ITEM_SHIELD_HYLIAN, OBJECT_GI_SHIELD_2, GID_SHIELD_HYLIAN, 0x4D, 0xA0, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_MIRROR_SHIELD, ITEMTYPE_EQUIP, GI_SHIELD_MIRROR, LOGIC_MIRROR_SHIELD, RHT_MIRROR_SHIELD, ITEM_SHIELD_MIRROR, OBJECT_GI_SHIELD_3, GID_SHIELD_MIRROR, 0x4E, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_MIRROR_SHIELD] = Item(RG_MIRROR_SHIELD, Text{ "Mirror Shield", "Bouclier Miroir", "Spiegel-Schild" }, ITEMTYPE_EQUIP, GI_SHIELD_MIRROR, true, LOGIC_MIRROR_SHIELD, RHT_MIRROR_SHIELD, ITEM_SHIELD_MIRROR, OBJECT_GI_SHIELD_3, GID_SHIELD_MIRROR, 0x4E, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_GORON_TUNIC, ITEMTYPE_EQUIP, GI_TUNIC_GORON, LOGIC_GORON_TUNIC, RHT_GORON_TUNIC, ITEM_TUNIC_GORON, OBJECT_GI_CLOTHES, GID_TUNIC_GORON, 0x50, 0xA0, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_GORON_TUNIC] = Item(RG_GORON_TUNIC, Text{ "Goron Tunic", "Tunique Goron", "Goronen-Rüstung" }, ITEMTYPE_EQUIP, GI_TUNIC_GORON, true, LOGIC_GORON_TUNIC, RHT_GORON_TUNIC, ITEM_TUNIC_GORON, OBJECT_GI_CLOTHES, GID_TUNIC_GORON, 0x50, 0xA0, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_ZORA_TUNIC, ITEMTYPE_EQUIP, GI_TUNIC_ZORA, LOGIC_ZORA_TUNIC, RHT_ZORA_TUNIC, ITEM_TUNIC_ZORA, OBJECT_GI_CLOTHES, GID_TUNIC_ZORA, 0x51, 0xA0, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_ZORA_TUNIC] = Item(RG_ZORA_TUNIC, Text{ "Zora Tunic", "Tunique Zora", "Zora-Rüstung" }, ITEMTYPE_EQUIP, GI_TUNIC_ZORA, true, LOGIC_ZORA_TUNIC, RHT_ZORA_TUNIC, ITEM_TUNIC_ZORA, OBJECT_GI_CLOTHES, GID_TUNIC_ZORA, 0x51, 0xA0, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_IRON_BOOTS, ITEMTYPE_EQUIP, GI_BOOTS_IRON, LOGIC_IRON_BOOTS, RHT_IRON_BOOTS, ITEM_BOOTS_IRON, OBJECT_GI_BOOTS_2, GID_BOOTS_IRON, 0x53, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_IRON_BOOTS] = Item(RG_IRON_BOOTS, Text{ "Iron Boots", "Bottes de plomb", "Eisenstiefel" }, ITEMTYPE_EQUIP, GI_BOOTS_IRON, true, LOGIC_IRON_BOOTS, RHT_IRON_BOOTS, ITEM_BOOTS_IRON, OBJECT_GI_BOOTS_2, GID_BOOTS_IRON, 0x53, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_HOVER_BOOTS, ITEMTYPE_EQUIP, GI_BOOTS_HOVER, LOGIC_HOVER_BOOTS, RHT_HOVER_BOOTS, ITEM_BOOTS_HOVER, OBJECT_GI_HOVERBOOTS, GID_BOOTS_HOVER, 0x54, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_HOVER_BOOTS] = Item(RG_HOVER_BOOTS, Text{ "Hover Boots", "Bottes de airs", "Gleitstiefel" }, ITEMTYPE_EQUIP, GI_BOOTS_HOVER, true, LOGIC_HOVER_BOOTS, RHT_HOVER_BOOTS, ITEM_BOOTS_HOVER, OBJECT_GI_HOVERBOOTS, GID_BOOTS_HOVER, 0x54, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_BOOMERANG, ITEMTYPE_ITEM, GI_BOOMERANG, LOGIC_BOOMERANG, RHT_BOOMERANG, ITEM_BOOMERANG, OBJECT_GI_BOOMERANG, GID_BOOMERANG, 0x35, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BOOMERANG] = Item(RG_BOOMERANG, Text{ "Boomerang", "Boomerang", "Bumerang" }, ITEMTYPE_ITEM, GI_BOOMERANG, true, LOGIC_BOOMERANG, RHT_BOOMERANG, ITEM_BOOMERANG, OBJECT_GI_BOOMERANG, GID_BOOMERANG, 0x35, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_LENS_OF_TRUTH, ITEMTYPE_ITEM, GI_LENS, LOGIC_LENS_OF_TRUTH, RHT_LENS_OF_TRUTH, ITEM_LENS, OBJECT_GI_GLASSES, GID_LENS, 0x39, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_LENS_OF_TRUTH] = Item(RG_LENS_OF_TRUTH, Text{ "Lens of Truth", "Monocle de Vérité", "Auge der Wahrheit" }, ITEMTYPE_ITEM, GI_LENS, true, LOGIC_LENS_OF_TRUTH, RHT_LENS_OF_TRUTH, ITEM_LENS, OBJECT_GI_GLASSES, GID_LENS, 0x39, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_MEGATON_HAMMER, ITEMTYPE_ITEM, GI_HAMMER, LOGIC_HAMMER, RHT_MEGATON_HAMMER, ITEM_HAMMER, OBJECT_GI_HAMMER, GID_HAMMER, 0x38, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_MEGATON_HAMMER] = Item(RG_MEGATON_HAMMER, Text{ "Megaton Hammer", "Masse des Titans", "Stahlhammer" }, ITEMTYPE_ITEM, GI_HAMMER, true, LOGIC_HAMMER, RHT_MEGATON_HAMMER, ITEM_HAMMER, OBJECT_GI_HAMMER, GID_HAMMER, 0x38, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_STONE_OF_AGONY, ITEMTYPE_ITEM, GI_STONE_OF_AGONY, LOGIC_STONE_OF_AGONY, RHT_STONE_OF_AGONY, ITEM_STONE_OF_AGONY, OBJECT_GI_MAP, GID_STONE_OF_AGONY, 0x68, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_STONE_OF_AGONY] = Item(RG_STONE_OF_AGONY, Text{ "Stone of Agony", "Pierre de Souffrance", "Stein des Wissens" }, ITEMTYPE_ITEM, GI_STONE_OF_AGONY, true, LOGIC_STONE_OF_AGONY, RHT_STONE_OF_AGONY, ITEM_STONE_OF_AGONY, OBJECT_GI_MAP, GID_STONE_OF_AGONY, 0x68, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_DINS_FIRE, ITEMTYPE_ITEM, GI_DINS_FIRE, LOGIC_DINS_FIRE, RHT_DINS_FIRE, ITEM_DINS_FIRE, OBJECT_GI_GODDESS, GID_DINS_FIRE, 0xAD, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_DINS_FIRE] = Item(RG_DINS_FIRE, Text{ "Din's Fire", "Feu de Din", "Dins Feuerinferno" }, ITEMTYPE_ITEM, GI_DINS_FIRE, true, LOGIC_DINS_FIRE, RHT_DINS_FIRE, ITEM_DINS_FIRE, OBJECT_GI_GODDESS, GID_DINS_FIRE, 0xAD, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_FARORES_WIND, ITEMTYPE_ITEM, GI_FARORES_WIND, LOGIC_FARORES_WIND, RHT_FARORES_WIND, ITEM_FARORES_WIND, OBJECT_GI_GODDESS, GID_FARORES_WIND, 0xAE, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_FARORES_WIND] = Item(RG_FARORES_WIND, Text{ "Farore's Wind", "Vent de Farore", "Farores Donnersturm" }, ITEMTYPE_ITEM, GI_FARORES_WIND, true, LOGIC_FARORES_WIND, RHT_FARORES_WIND, ITEM_FARORES_WIND, OBJECT_GI_GODDESS, GID_FARORES_WIND, 0xAE, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_NAYRUS_LOVE, ITEMTYPE_ITEM, GI_NAYRUS_LOVE, LOGIC_NAYRUS_LOVE, RHT_NAYRUS_LOVE, ITEM_NAYRUS_LOVE, OBJECT_GI_GODDESS, GID_NAYRUS_LOVE, 0xAF, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_NAYRUS_LOVE] = Item(RG_NAYRUS_LOVE, Text{ "Nayru's Love", "Amour de Nayru", "Nayrus Umarmung" }, ITEMTYPE_ITEM, GI_NAYRUS_LOVE, true, LOGIC_NAYRUS_LOVE, RHT_NAYRUS_LOVE, ITEM_NAYRUS_LOVE, OBJECT_GI_GODDESS, GID_NAYRUS_LOVE, 0xAF, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_FIRE_ARROWS, ITEMTYPE_ITEM, GI_ARROW_FIRE, LOGIC_FIRE_ARROWS, RHT_FIRE_ARROWS, ITEM_ARROW_FIRE, OBJECT_GI_M_ARROW, GID_ARROW_FIRE, 0x70, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_FIRE_ARROWS] = Item(RG_FIRE_ARROWS, Text{ "Fire Arrow", "Flèche de Feu", "Feuer-Pfeile" }, ITEMTYPE_ITEM, GI_ARROW_FIRE, true, LOGIC_FIRE_ARROWS, RHT_FIRE_ARROWS, ITEM_ARROW_FIRE, OBJECT_GI_M_ARROW, GID_ARROW_FIRE, 0x70, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_ICE_ARROWS, ITEMTYPE_ITEM, GI_ARROW_ICE, LOGIC_ICE_ARROWS, RHT_ICE_ARROWS, ITEM_ARROW_ICE, OBJECT_GI_M_ARROW, GID_ARROW_ICE, 0x71, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_ICE_ARROWS] = Item(RG_ICE_ARROWS, Text{ "Ice Arrow", "Flèche de Glace", "Eis-Pfeile" }, ITEMTYPE_ITEM, GI_ARROW_ICE, true, LOGIC_ICE_ARROWS, RHT_ICE_ARROWS, ITEM_ARROW_ICE, OBJECT_GI_M_ARROW, GID_ARROW_ICE, 0x71, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_LIGHT_ARROWS, ITEMTYPE_ITEM, GI_ARROW_LIGHT, LOGIC_LIGHT_ARROWS, RHT_LIGHT_ARROWS, ITEM_ARROW_LIGHT, OBJECT_GI_M_ARROW, GID_ARROW_LIGHT, 0x72, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_LIGHT_ARROWS] = Item(RG_LIGHT_ARROWS, Text{ "Light Arrow", "Flèche de Lumière", "Licht-Pfeile" }, ITEMTYPE_ITEM, GI_ARROW_LIGHT, true, LOGIC_LIGHT_ARROWS, RHT_LIGHT_ARROWS, ITEM_ARROW_LIGHT, OBJECT_GI_M_ARROW, GID_ARROW_LIGHT, 0x72, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_GERUDO_MEMBERSHIP_CARD, ITEMTYPE_ITEM, GI_GERUDO_CARD, LOGIC_GERUDO_CARD, RHT_GERUDO_MEMBERSHIP_CARD, ITEM_GERUDO_CARD, OBJECT_GI_GERUDO, GID_GERUDO_CARD, 0x7B, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_GERUDO_MEMBERSHIP_CARD] = Item(RG_GERUDO_MEMBERSHIP_CARD, Text{ "Gerudo Membership Card", "Carte Gerudo", "Gerudo-Pass" }, ITEMTYPE_ITEM, GI_GERUDO_CARD, true, LOGIC_GERUDO_CARD, RHT_GERUDO_MEMBERSHIP_CARD, ITEM_GERUDO_CARD, OBJECT_GI_GERUDO, GID_GERUDO_CARD, 0x7B, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_MAGIC_BEAN, ITEMTYPE_ITEM, GI_BEAN, LOGIC_MAGIC_BEAN, RHT_MAGIC_BEAN, ITEM_BEAN, OBJECT_GI_BEAN, GID_BEAN, 0x48, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_MAGIC_BEAN] = Item(RG_MAGIC_BEAN, Text{ "Magic Bean", "Haricots Magiques", "Wundererbse" }, ITEMTYPE_ITEM, GI_BEAN, true, LOGIC_MAGIC_BEAN, RHT_MAGIC_BEAN, ITEM_BEAN, OBJECT_GI_BEAN, GID_BEAN, 0x48, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_MAGIC_BEAN_PACK, ITEMTYPE_ITEM, RG_MAGIC_BEAN_PACK, LOGIC_MAGIC_BEAN, RHT_MAGIC_BEAN_PACK, OBJECT_GI_BEAN, GID_BEAN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_MAGIC_BEAN_PACK] = Item(RG_MAGIC_BEAN_PACK, Text{ "Magic Bean Pack", "Paquet de Haricots Magiques", "Wundererbsen-Packung" }, ITEMTYPE_ITEM, RG_MAGIC_BEAN_PACK, true, LOGIC_MAGIC_BEAN, RHT_MAGIC_BEAN_PACK, RG_MAGIC_BEAN_PACK, OBJECT_GI_BEAN, GID_BEAN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_DOUBLE_DEFENSE, ITEMTYPE_ITEM, RG_DOUBLE_DEFENSE, LOGIC_DOUBLE_DEFENSE, RHT_DOUBLE_DEFENSE, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, 0xE9, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawDoubleDefense);
|
||||||
itemTable[RG_DOUBLE_DEFENSE] = Item(RG_DOUBLE_DEFENSE, Text{ "Double Defense", "Double Défence", "Doppelte Verteidigung" }, ITEMTYPE_ITEM, RG_DOUBLE_DEFENSE, true, LOGIC_DOUBLE_DEFENSE, RHT_DOUBLE_DEFENSE, RG_DOUBLE_DEFENSE, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, 0xE9, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_DOUBLE_DEFENSE].SetCustomDrawFunc(Randomizer_DrawDoubleDefense);
|
|
||||||
// Trade Quest Items
|
// Trade Quest Items
|
||||||
itemTable[RG_WEIRD_EGG] = Item(RG_WEIRD_EGG, Text{ "Weird Egg", "Oeuf Curieux", "Seltsames Ei" }, ITEMTYPE_ITEM, GI_WEIRD_EGG, true, LOGIC_WEIRD_EGG, RHT_WEIRD_EGG, ITEM_WEIRD_EGG, OBJECT_GI_EGG, GID_EGG, 0x9A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_WEIRD_EGG, ITEMTYPE_ITEM, GI_WEIRD_EGG, LOGIC_WEIRD_EGG, RHT_WEIRD_EGG, ITEM_WEIRD_EGG, OBJECT_GI_EGG, GID_EGG, 0x9A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_ZELDAS_LETTER] = Item(RG_ZELDAS_LETTER, Text{ "Zelda's Letter", "Lettre de Zelda", "Zeldas Brief" }, ITEMTYPE_ITEM, GI_LETTER_ZELDA, true, LOGIC_ZELDAS_LETTER, RHT_ZELDAS_LETTER, ITEM_LETTER_ZELDA, OBJECT_GI_LETTER, GID_LETTER_ZELDA, 0x69, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_ZELDAS_LETTER, ITEMTYPE_ITEM, GI_LETTER_ZELDA, LOGIC_ZELDAS_LETTER, RHT_ZELDAS_LETTER, ITEM_LETTER_ZELDA, OBJECT_GI_LETTER, GID_LETTER_ZELDA, 0x69, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_POCKET_EGG] = Item(RG_POCKET_EGG, Text{ "Pocket Egg", "Oeuf de poche", "Ei" }, ITEMTYPE_ITEM, GI_POCKET_EGG, true, LOGIC_POCKET_EGG, RHT_POCKET_EGG, ITEM_POCKET_EGG, OBJECT_GI_EGG, GID_EGG, 0x01, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_POCKET_EGG, ITEMTYPE_ITEM, GI_POCKET_EGG, LOGIC_POCKET_EGG, RHT_POCKET_EGG, ITEM_POCKET_EGG, OBJECT_GI_EGG, GID_EGG, 0x01, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_COJIRO] = Item(RG_COJIRO, Text{ "Cojiro", "P'tit Poulet", "Henni" }, ITEMTYPE_ITEM, GI_COJIRO, true, LOGIC_COJIRO, RHT_COJIRO, ITEM_COJIRO, OBJECT_GI_NIWATORI, GID_COJIRO, 0x02, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_COJIRO, ITEMTYPE_ITEM, GI_COJIRO, LOGIC_COJIRO, RHT_COJIRO, ITEM_COJIRO, OBJECT_GI_NIWATORI, GID_COJIRO, 0x02, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_ODD_MUSHROOM] = Item(RG_ODD_MUSHROOM, Text{ "Odd Mushroom", "Champigon Suspect", "Schimmelpilz" }, ITEMTYPE_ITEM, GI_ODD_MUSHROOM, true, LOGIC_ODD_MUSHROOM, RHT_ODD_MUSHROOM, ITEM_ODD_MUSHROOM, OBJECT_GI_MUSHROOM, GID_ODD_MUSHROOM, 0x03, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_ODD_MUSHROOM, ITEMTYPE_ITEM, GI_ODD_MUSHROOM, LOGIC_ODD_MUSHROOM, RHT_ODD_MUSHROOM, ITEM_ODD_MUSHROOM, OBJECT_GI_MUSHROOM, GID_ODD_MUSHROOM, 0x03, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_ODD_POTION] = Item(RG_ODD_POTION, Text{ "Odd Potion", "Mixture Suspecte", "Modertrank" }, ITEMTYPE_ITEM, GI_ODD_POTION, true, LOGIC_ODD_POULTICE, RHT_ODD_POTION, ITEM_ODD_POTION, OBJECT_GI_POWDER, GID_ODD_POTION, 0x04, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_ODD_POTION, ITEMTYPE_ITEM, GI_ODD_POTION, LOGIC_ODD_POULTICE, RHT_ODD_POTION, ITEM_ODD_POTION, OBJECT_GI_POWDER, GID_ODD_POTION, 0x04, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_POACHERS_SAW] = Item(RG_POACHERS_SAW, Text{ "Poacher's Saw", "Scie du Chasseur", "Säge" }, ITEMTYPE_ITEM, GI_SAW, true, LOGIC_POACHERS_SAW, RHT_POACHERS_SAW, ITEM_SAW, OBJECT_GI_SAW, GID_SAW, 0x05, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_POACHERS_SAW, ITEMTYPE_ITEM, GI_SAW, LOGIC_POACHERS_SAW, RHT_POACHERS_SAW, ITEM_SAW, OBJECT_GI_SAW, GID_SAW, 0x05, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BROKEN_SWORD] = Item(RG_BROKEN_SWORD, Text{ "Broken Goron's Sword", "Épée Brisée de Goron", "zerbr. Goronen-Schwert" }, ITEMTYPE_ITEM, GI_SWORD_BROKEN, true, LOGIC_BROKEN_SWORD, RHT_BROKEN_SWORD, ITEM_SWORD_BROKEN, OBJECT_GI_BROKENSWORD, GID_SWORD_BROKEN, 0x08, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_BROKEN_SWORD, ITEMTYPE_ITEM, GI_SWORD_BROKEN, LOGIC_BROKEN_SWORD, RHT_BROKEN_SWORD, ITEM_SWORD_BROKEN, OBJECT_GI_BROKENSWORD, GID_SWORD_BROKEN, 0x08, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_PRESCRIPTION] = Item(RG_PRESCRIPTION, Text{ "Prescription", "Ordonnance", "Rezept" }, ITEMTYPE_ITEM, GI_PRESCRIPTION, true, LOGIC_PRESCRIPTION, RHT_PRESCRIPTION, ITEM_PRESCRIPTION, OBJECT_GI_PRESCRIPTION, GID_PRESCRIPTION, 0x09, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_PRESCRIPTION, ITEMTYPE_ITEM, GI_PRESCRIPTION, LOGIC_PRESCRIPTION, RHT_PRESCRIPTION, ITEM_PRESCRIPTION, OBJECT_GI_PRESCRIPTION, GID_PRESCRIPTION, 0x09, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_EYEBALL_FROG] = Item(RG_EYEBALL_FROG, Text{ "Eyeball Frog", "Crapaud-qui-louche", "Glotzfrosch" }, ITEMTYPE_ITEM, GI_FROG, true, LOGIC_EYEBALL_FROG, RHT_EYEBALL_FROG, ITEM_FROG, OBJECT_GI_FROG, GID_FROG, 0x0D, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_EYEBALL_FROG, ITEMTYPE_ITEM, GI_FROG, LOGIC_EYEBALL_FROG, RHT_EYEBALL_FROG, ITEM_FROG, OBJECT_GI_FROG, GID_FROG, 0x0D, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_EYEDROPS] = Item(RG_EYEDROPS, Text{ "World's Finest Eyedrops", "Super Gouttes", "Augentropfen" }, ITEMTYPE_ITEM, GI_EYEDROPS, true, LOGIC_EYEDROPS, RHT_EYEDROPS, ITEM_EYEDROPS, OBJECT_GI_EYE_LOTION, GID_EYEDROPS, 0x0E, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_EYEDROPS, ITEMTYPE_ITEM, GI_EYEDROPS, LOGIC_EYEDROPS, RHT_EYEDROPS, ITEM_EYEDROPS, OBJECT_GI_EYE_LOTION, GID_EYEDROPS, 0x0E, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_CLAIM_CHECK] = Item(RG_CLAIM_CHECK, Text{ "Claim Check", "Certificat", "Zertifikat" }, ITEMTYPE_ITEM, GI_CLAIM_CHECK, true, LOGIC_CLAIM_CHECK, RHT_CLAIM_CHECK, ITEM_CLAIM_CHECK, OBJECT_GI_TICKETSTONE, GID_CLAIM_CHECK, 0x0A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_CLAIM_CHECK, ITEMTYPE_ITEM, GI_CLAIM_CHECK, LOGIC_CLAIM_CHECK, RHT_CLAIM_CHECK, ITEM_CLAIM_CHECK, OBJECT_GI_TICKETSTONE, GID_CLAIM_CHECK, 0x0A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
// Skulltula Token
|
// Skulltula Token
|
||||||
itemTable[RG_GOLD_SKULLTULA_TOKEN] = Item(RG_GOLD_SKULLTULA_TOKEN, Text{ "Gold Skulltula Token", "Symbole de Skulltula d'Or", "Skulltula-Symbol" }, ITEMTYPE_TOKEN, GI_SKULL_TOKEN, true, LOGIC_GOLD_SKULLTULA_TOKENS, RHT_GOLD_SKULLTULA_TOKEN, ITEM_SKULL_TOKEN, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, 0xB4, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SKULLTULA_TOKEN, MOD_NONE);
|
AddItem(RG_GOLD_SKULLTULA_TOKEN, ITEMTYPE_TOKEN, GI_SKULL_TOKEN, LOGIC_GOLD_SKULLTULA_TOKENS, RHT_GOLD_SKULLTULA_TOKEN, ITEM_SKULL_TOKEN, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, 0xB4, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SKULL_TOKEN, MOD_NONE);
|
||||||
// Progressive Items
|
// Progressive Items
|
||||||
itemTable[RG_PROGRESSIVE_HOOKSHOT] = Item(RG_PROGRESSIVE_HOOKSHOT, Text{ "Progressive Hookshot", "Grappin (prog.)", "Fanghaken (prog.)" }, ITEMTYPE_ITEM, 0x80, true, LOGIC_PROGRESSIVE_HOOKSHOT, RHT_PROGRESSIVE_HOOKSHOT, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_HOOKSHOT, ITEMTYPE_ITEM, 0x80, LOGIC_PROGRESSIVE_HOOKSHOT, RHT_PROGRESSIVE_HOOKSHOT, ITEM_CATEGORY_MAJOR); //
|
||||||
itemTable[RG_PROGRESSIVE_STRENGTH] = Item(RG_PROGRESSIVE_STRENGTH, Text{ "Strength Upgrade", "Amélioration de Force (prog.)", "Stärke (prog.)" }, ITEMTYPE_ITEM, 0x81, true, LOGIC_PROGRESSIVE_STRENGTH, RHT_PROGRESSIVE_STRENGTH, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_STRENGTH, ITEMTYPE_ITEM, 0x81, LOGIC_PROGRESSIVE_STRENGTH, RHT_PROGRESSIVE_STRENGTH, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_BOMB_BAG] = Item(RG_PROGRESSIVE_BOMB_BAG, Text{ "Progressive Bomb Bag", "Sac de Bombes (prog.)", "Bombentasche (prog.)" }, ITEMTYPE_ITEM, 0x82, true, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_PROGRESSIVE_BOMB_BAG, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_BOMB_BAG, ITEMTYPE_ITEM, 0x82, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_PROGRESSIVE_BOMB_BAG, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_BOW] = Item(RG_PROGRESSIVE_BOW, Text{ "Progressive Bow", "Arc (prog.)", "Bogen (prog.)" }, ITEMTYPE_ITEM, 0x83, true, LOGIC_PROGRESSIVE_BOW, RHT_PROGRESSIVE_BOW, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_BOW, ITEMTYPE_ITEM, 0x83, LOGIC_PROGRESSIVE_BOW, RHT_PROGRESSIVE_BOW, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_SLINGSHOT] = Item(RG_PROGRESSIVE_SLINGSHOT, Text{ "Progressive Slingshot", "Lance-Pierre (prog.)", "Schleuder (prog.)" }, ITEMTYPE_ITEM, 0x84, true, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_PROGRESSIVE_SLINGSHOT, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_SLINGSHOT, ITEMTYPE_ITEM, 0x84, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_PROGRESSIVE_SLINGSHOT, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_WALLET] = Item(RG_PROGRESSIVE_WALLET, Text{ "Progressive Wallet", "Bourse (prog.)", "Geldbörse (prog.)" }, ITEMTYPE_ITEM, 0x85, true, LOGIC_PROGRESSIVE_WALLET, RHT_PROGRESSIVE_WALLET, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_WALLET, ITEMTYPE_ITEM, 0x85, LOGIC_PROGRESSIVE_WALLET, RHT_PROGRESSIVE_WALLET, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_SCALE] = Item(RG_PROGRESSIVE_SCALE, Text{ "Progressive Scale", "Écaille (prog.)", "Zora-Schuppe (prog.)" }, ITEMTYPE_ITEM, 0x86, true, LOGIC_PROGRESSIVE_SCALE, RHT_PROGRESSIVE_SCALE, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_SCALE, ITEMTYPE_ITEM, 0x86, LOGIC_PROGRESSIVE_SCALE, RHT_PROGRESSIVE_SCALE, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_NUT_UPGRADE] = Item(RG_PROGRESSIVE_NUT_UPGRADE, Text{ "Progressive Nut Capacity", "Capacité de Noix (prog.)", "Nuß-Kapazität (prog.)" }, ITEMTYPE_ITEM, 0x87, true, LOGIC_PROGRESSIVE_NUT_BAG, RHT_PROGRESSIVE_NUT_UPGRADE, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_NUT_BAG, ITEMTYPE_ITEM, 0x87, LOGIC_PROGRESSIVE_NUT_BAG, RHT_PROGRESSIVE_NUT_UPGRADE, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_STICK_UPGRADE] = Item(RG_PROGRESSIVE_STICK_UPGRADE, Text{ "Progressive Stick Capacity", "Capacité de Bâtons (prog.)", "Stab-Kapazität (prog.)" }, ITEMTYPE_ITEM, 0x88, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_PROGRESSIVE_STICK_UPGRADE, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_STICK_BAG, ITEMTYPE_ITEM, 0x88, LOGIC_PROGRESSIVE_STICK_BAG, RHT_PROGRESSIVE_STICK_UPGRADE, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_BOMBCHUS] = Item(RG_PROGRESSIVE_BOMBCHUS, Text{ "Progressive Bombchu", "Missiles (prog.)", "Krabbelminen (prog.)" }, ITEMTYPE_ITEM, 0x89, true, LOGIC_BOMBCHUS, RHT_PROGRESSIVE_BOMBCHUS, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_BOMBCHUS, ITEMTYPE_ITEM, 0x89, LOGIC_BOMBCHUS, RHT_PROGRESSIVE_BOMBCHUS, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_MAGIC_METER] = Item(RG_PROGRESSIVE_MAGIC_METER, Text{ "Progressive Magic Meter", "Jauge de Magie (prog.)", "Magische Kraft (prog.)" }, ITEMTYPE_ITEM, 0x8A, true, LOGIC_PROGRESSIVE_MAGIC, RHT_PROGRESSIVE_MAGIC_METER, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_MAGIC, ITEMTYPE_ITEM, 0x8A, LOGIC_PROGRESSIVE_MAGIC, RHT_PROGRESSIVE_MAGIC_METER, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_OCARINA] = Item(RG_PROGRESSIVE_OCARINA, Text{ "Progressive Ocarina", "Ocarina (prog.)", "Okarina (prog.)" }, ITEMTYPE_ITEM, 0x8B, true, LOGIC_PROGRESSIVE_OCARINA, RHT_PROGRESSIVE_OCARINA, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_OCARINA, ITEMTYPE_ITEM, 0x8B, LOGIC_PROGRESSIVE_OCARINA, RHT_PROGRESSIVE_OCARINA, ITEM_CATEGORY_MAJOR);
|
||||||
itemTable[RG_PROGRESSIVE_GORONSWORD] = Item(RG_PROGRESSIVE_GORONSWORD, Text{ "Progressive Goron Sword", "Épée Goron (prog.)", "Goronen-Schwert (prog.)" }, ITEMTYPE_ITEM, 0xD4, true, LOGIC_PROGRESSIVE_GIANT_KNIFE, RHT_PROGRESSIVE_GORONSWORD, ITEM_CATEGORY_MAJOR, true);
|
AddItem(RG_PROGRESSIVE_GORONSWORD, ITEMTYPE_ITEM, 0xD4, LOGIC_PROGRESSIVE_GORONSWORD, RHT_PROGRESSIVE_GORONSWORD, ITEM_CATEGORY_MAJOR);
|
||||||
// Bottles
|
// Bottles
|
||||||
itemTable[RG_EMPTY_BOTTLE] = Item(RG_EMPTY_BOTTLE, Text{ "Empty Bottle", "Bouteille Vide", "Leere Flasche" }, ITEMTYPE_ITEM, GI_BOTTLE, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_MILK, ITEM_BOTTLE, OBJECT_GI_BOTTLE, GID_BOTTLE, 0x42, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_EMPTY_BOTTLE, ITEMTYPE_ITEM, GI_BOTTLE, LOGIC_BOTTLES, RHT_EMPTY_BOTTLE, ITEM_BOTTLE, OBJECT_GI_BOTTLE, GID_BOTTLE, 0x42, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BOTTLE_WITH_MILK] = Item(RG_BOTTLE_WITH_MILK, Text{ "Bottle with Milk", "Bouteille avec du Lait", "Flasche (Milch)" }, ITEMTYPE_ITEM, GI_MILK_BOTTLE, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_MILK, ITEM_MILK_BOTTLE, OBJECT_GI_MILK, GID_MILK, 0x98, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_BOTTLE_WITH_MILK, ITEMTYPE_ITEM, GI_MILK_BOTTLE, LOGIC_BOTTLES, RHT_BOTTLE_WITH_MILK, ITEM_MILK_BOTTLE, OBJECT_GI_MILK, GID_MILK, 0x98, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BOTTLE_WITH_RED_POTION] = Item(RG_BOTTLE_WITH_RED_POTION, Text{ "Bottle with Red Potion", "Bouteille avec une Potion Rouge", "Flasche (Rotes Elixier)" }, ITEMTYPE_ITEM, 0x8C, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_RED_POTION, RG_BOTTLE_WITH_RED_POTION, OBJECT_GI_LIQUID, GID_POTION_RED, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOTTLE_WITH_RED_POTION, ITEMTYPE_ITEM, 0x8C, LOGIC_BOTTLES, RHT_BOTTLE_WITH_RED_POTION, OBJECT_GI_LIQUID, GID_POTION_RED, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BOTTLE_WITH_GREEN_POTION] = Item(RG_BOTTLE_WITH_GREEN_POTION, Text{ "Bottle with Green Potion", "Bouteille avec une Potion Verte", "Flasche (Grünes Elixier)" }, ITEMTYPE_ITEM, 0x8D, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_GREEN_POTION, RG_BOTTLE_WITH_GREEN_POTION, OBJECT_GI_LIQUID, GID_POTION_GREEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOTTLE_WITH_GREEN_POTION, ITEMTYPE_ITEM, 0x8D, LOGIC_BOTTLES, RHT_BOTTLE_WITH_GREEN_POTION, OBJECT_GI_LIQUID, GID_POTION_GREEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BOTTLE_WITH_BLUE_POTION] = Item(RG_BOTTLE_WITH_BLUE_POTION, Text{ "Bottle with Blue Potion", "Bouteille avec une Potion Bleue", "Flasche (Blaues Elixier)" }, ITEMTYPE_ITEM, 0x8E, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_BLUE_POTION, RG_BOTTLE_WITH_BLUE_POTION, OBJECT_GI_LIQUID, GID_POTION_BLUE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOTTLE_WITH_BLUE_POTION, ITEMTYPE_ITEM, 0x8E, LOGIC_BOTTLES, RHT_BOTTLE_WITH_BLUE_POTION, OBJECT_GI_LIQUID, GID_POTION_BLUE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BOTTLE_WITH_FAIRY] = Item(RG_BOTTLE_WITH_FAIRY, Text{ "Bottle with Fairy", "Bouteille avec une Fée", "Flasche (Fee)" }, ITEMTYPE_ITEM, 0x8F, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_FAIRY, RG_BOTTLE_WITH_FAIRY, OBJECT_GI_BOTTLE, GID_BOTTLE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOTTLE_WITH_FAIRY, ITEMTYPE_ITEM, 0x8F, LOGIC_BOTTLES, RHT_BOTTLE_WITH_FAIRY, OBJECT_GI_BOTTLE, GID_BOTTLE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BOTTLE_WITH_FISH] = Item(RG_BOTTLE_WITH_FISH, Text{ "Bottle with Fish", "Bouteille avec un Poisson", "Flasche (Fisch)" }, ITEMTYPE_ITEM, 0x90, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_FISH, RG_BOTTLE_WITH_FISH, OBJECT_GI_FISH, GID_FISH, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOTTLE_WITH_FISH, ITEMTYPE_ITEM, 0x90, LOGIC_BOTTLES, RHT_BOTTLE_WITH_FISH, OBJECT_GI_FISH, GID_FISH, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BOTTLE_WITH_BLUE_FIRE] = Item(RG_BOTTLE_WITH_BLUE_FIRE, Text{ "Bottle with Blue Fire", "Bouteille avec une Flamme Bleue", "Flasche (Blaues Feuer)" }, ITEMTYPE_ITEM, 0x91, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_BLUE_FIRE, RG_BOTTLE_WITH_BLUE_FIRE, OBJECT_GI_FIRE, GID_BLUE_FIRE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOTTLE_WITH_BLUE_FIRE, ITEMTYPE_ITEM, 0x91, LOGIC_BOTTLES, RHT_BOTTLE_WITH_BLUE_FIRE, OBJECT_GI_FIRE, GID_BLUE_FIRE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BOTTLE_WITH_BUGS] = Item(RG_BOTTLE_WITH_BUGS, Text{ "Bottle with Bugs", "Bouteille avec des Insectes", "Flasche (Käfer)" }, ITEMTYPE_ITEM, 0x92, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_BUGS, RG_BOTTLE_WITH_BUGS, OBJECT_GI_INSECT, GID_BUG, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOTTLE_WITH_BUGS, ITEMTYPE_ITEM, 0x92, LOGIC_BOTTLES, RHT_BOTTLE_WITH_BUGS, OBJECT_GI_INSECT, GID_BUG, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BOTTLE_WITH_POE] = Item(RG_BOTTLE_WITH_POE, Text{ "Bottle with Poe", "Bouteille avec un Esprit", "Flasche (Irrlicht)" }, ITEMTYPE_ITEM, 0x94, true, LOGIC_BOTTLES, RHT_BOTTLE_WITH_POE, RG_BOTTLE_WITH_POE, OBJECT_GI_GHOST, GID_POE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOTTLE_WITH_POE, ITEMTYPE_ITEM, 0x94, LOGIC_BOTTLES, RHT_BOTTLE_WITH_POE, OBJECT_GI_GHOST, GID_POE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_RUTOS_LETTER] = Item(RG_RUTOS_LETTER, Text{ "Bottle with Ruto's Letter", "Bouteille avec la Lettre de Ruto", "Flasche (Rutos Brief)" }, ITEMTYPE_ITEM, GI_LETTER_RUTO, true, LOGIC_RUTOS_LETTER, RHT_RUTOS_LETTER, ITEM_LETTER_RUTO, OBJECT_GI_BOTTLE_LETTER, GID_LETTER_RUTO, 0x99, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_RUTOS_LETTER, ITEMTYPE_ITEM, GI_LETTER_RUTO, LOGIC_RUTOS_LETTER, RHT_RUTOS_LETTER, ITEM_LETTER_RUTO, OBJECT_GI_BOTTLE_LETTER, GID_LETTER_RUTO, 0x99, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BOTTLE_WITH_BIG_POE] = Item(RG_BOTTLE_WITH_BIG_POE, Text{ "Bottle with Big Poe", "Bouteille avec une Âme", "Flasche (Nachtschwärmer)" }, ITEMTYPE_ITEM, 0x93, true, LOGIC_BOTTLE_WITH_BIG_POE, RHT_BOTTLE_WITH_BIG_POE, RG_BOTTLE_WITH_BIG_POE, OBJECT_GI_GHOST, GID_BIG_POE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOTTLE_WITH_BIG_POE, ITEMTYPE_ITEM, 0x93, LOGIC_BOTTLE_WITH_BIG_POE, RHT_BOTTLE_WITH_BIG_POE, OBJECT_GI_GHOST, GID_BIG_POE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
// Songs
|
// Songs
|
||||||
itemTable[RG_ZELDAS_LULLABY] = Item(RG_ZELDAS_LULLABY, Text{ "Zelda's Lullaby", "Berceuse de Zelda", "Zeldas Wiegenlied" }, ITEMTYPE_SONG, 0xC1, true, LOGIC_ZELDAS_LULLABY, RHT_ZELDAS_LULLABY, ITEM_SONG_LULLABY, OBJECT_GI_MELODY, GID_SONG_ZELDA, 0xD4, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_ZELDAS_LULLABY, ITEMTYPE_SONG, 0xC1, LOGIC_ZELDAS_LULLABY, RHT_ZELDAS_LULLABY, ITEM_SONG_LULLABY, OBJECT_GI_MELODY, GID_SONG_ZELDA, 0xD4, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_EPONAS_SONG] = Item(RG_EPONAS_SONG, Text{ "Epona's Song", "Chant d'Epona", "Eponas Lied" }, ITEMTYPE_SONG, 0xC2, true, LOGIC_EPONAS_SONG, RHT_EPONAS_SONG, ITEM_SONG_EPONA, OBJECT_GI_MELODY, GID_SONG_EPONA, 0xD2, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_EPONAS_SONG, ITEMTYPE_SONG, 0xC2, LOGIC_EPONAS_SONG, RHT_EPONAS_SONG, ITEM_SONG_EPONA, OBJECT_GI_MELODY, GID_SONG_EPONA, 0xD2, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_SARIAS_SONG] = Item(RG_SARIAS_SONG, Text{ "Saria's Song", "Chant de Saria", "Salias Lied" }, ITEMTYPE_SONG, 0xC3, true, LOGIC_SARIAS_SONG, RHT_SARIAS_SONG, ITEM_SONG_SARIA, OBJECT_GI_MELODY, GID_SONG_SARIA, 0xD1, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_SARIAS_SONG, ITEMTYPE_SONG, 0xC3, LOGIC_SARIAS_SONG, RHT_SARIAS_SONG, ITEM_SONG_SARIA, OBJECT_GI_MELODY, GID_SONG_SARIA, 0xD1, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_SUNS_SONG] = Item(RG_SUNS_SONG, Text{ "Sun's Song", "Chant du Soleil", "Hymne der Sonne" }, ITEMTYPE_SONG, 0xC4, true, LOGIC_SUNS_SONG, RHT_SUNS_SONG, ITEM_SONG_SUN, OBJECT_GI_MELODY, GID_SONG_SUN, 0xD3, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_SUNS_SONG, ITEMTYPE_SONG, 0xC4, LOGIC_SUNS_SONG, RHT_SUNS_SONG, ITEM_SONG_SUN, OBJECT_GI_MELODY, GID_SONG_SUN, 0xD3, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_SONG_OF_TIME] = Item(RG_SONG_OF_TIME, Text{ "Song of Time", "Chant du Temps", "Hymne der Zeit" }, ITEMTYPE_SONG, 0xC5, true, LOGIC_SONG_OF_TIME, RHT_SONG_OF_TIME, ITEM_SONG_TIME, OBJECT_GI_MELODY, GID_SONG_TIME, 0xD5, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_SONG_OF_TIME, ITEMTYPE_SONG, 0xC5, LOGIC_SONG_OF_TIME, RHT_SONG_OF_TIME, ITEM_SONG_TIME, OBJECT_GI_MELODY, GID_SONG_TIME, 0xD5, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_SONG_OF_STORMS] = Item(RG_SONG_OF_STORMS, Text{ "Song of Storms", "Chant des Tempêtes", "Hymne des Sturms" }, ITEMTYPE_SONG, 0xC6, true, LOGIC_SONG_OF_STORMS, RHT_SONG_OF_STORMS, ITEM_SONG_STORMS, OBJECT_GI_MELODY, GID_SONG_STORM, 0xD6, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_SONG_OF_STORMS, ITEMTYPE_SONG, 0xC6, LOGIC_SONG_OF_STORMS, RHT_SONG_OF_STORMS, ITEM_SONG_STORMS, OBJECT_GI_MELODY, GID_SONG_STORM, 0xD6, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_MINUET_OF_FOREST] = Item(RG_MINUET_OF_FOREST, Text{ "Minuet of Forest", "Menuet des Bois", "Menuett des Waldes" }, ITEMTYPE_SONG, 0xBB, true, LOGIC_MINUET_OF_FOREST, RHT_MINUET_OF_FOREST, ITEM_SONG_MINUET, OBJECT_GI_MELODY, GID_SONG_MINUET, 0x73, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_MINUET_OF_FOREST, ITEMTYPE_SONG, 0xBB, LOGIC_MINUET_OF_FOREST, RHT_MINUET_OF_FOREST, ITEM_SONG_MINUET, OBJECT_GI_MELODY, GID_SONG_MINUET, 0x73, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BOLERO_OF_FIRE] = Item(RG_BOLERO_OF_FIRE, Text{ "Bolero of Fire", "Boléro du Feu", "Bolero des Feuers" }, ITEMTYPE_SONG, 0xBC, true, LOGIC_BOLERO_OF_FIRE, RHT_BOLERO_OF_FIRE, ITEM_SONG_BOLERO, OBJECT_GI_MELODY, GID_SONG_BOLERO, 0x74, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_BOLERO_OF_FIRE, ITEMTYPE_SONG, 0xBC, LOGIC_BOLERO_OF_FIRE, RHT_BOLERO_OF_FIRE, ITEM_SONG_BOLERO, OBJECT_GI_MELODY, GID_SONG_BOLERO, 0x74, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_SERENADE_OF_WATER] = Item(RG_SERENADE_OF_WATER, Text{ "Serenade of Water", "Sérénade de l'Eau", "Serenade des Wassers" }, ITEMTYPE_SONG, 0xBD, true, LOGIC_SERENADE_OF_WATER, RHT_SERENADE_OF_WATER, ITEM_SONG_SERENADE, OBJECT_GI_MELODY, GID_SONG_SERENADE, 0x75, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_SERENADE_OF_WATER, ITEMTYPE_SONG, 0xBD, LOGIC_SERENADE_OF_WATER, RHT_SERENADE_OF_WATER, ITEM_SONG_SERENADE, OBJECT_GI_MELODY, GID_SONG_SERENADE, 0x75, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_NOCTURNE_OF_SHADOW] = Item(RG_NOCTURNE_OF_SHADOW, Text{ "Nocturne of Shadow", "Nocturne de l'Ombre", "Nocturne des Schattens" }, ITEMTYPE_SONG, 0xBF, true, LOGIC_NOCTURNE_OF_SHADOW, RHT_NOCTURNE_OF_SHADOW, ITEM_SONG_NOCTURNE, OBJECT_GI_MELODY, GID_SONG_NOCTURNE, 0x77, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_NOCTURNE_OF_SHADOW, ITEMTYPE_SONG, 0xBF, LOGIC_NOCTURNE_OF_SHADOW, RHT_NOCTURNE_OF_SHADOW, ITEM_SONG_NOCTURNE, OBJECT_GI_MELODY, GID_SONG_NOCTURNE, 0x77, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_REQUIEM_OF_SPIRIT] = Item(RG_REQUIEM_OF_SPIRIT, Text{ "Requiem of Spirit", "Requiem des Esprits", "Requiem der Geister" }, ITEMTYPE_SONG, 0xBE, true, LOGIC_REQUIEM_OF_SPIRIT, RHT_REQUIEM_OF_SPIRIT, ITEM_SONG_REQUIEM, OBJECT_GI_MELODY, GID_SONG_REQUIEM, 0x76, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_REQUIEM_OF_SPIRIT, ITEMTYPE_SONG, 0xBE, LOGIC_REQUIEM_OF_SPIRIT, RHT_REQUIEM_OF_SPIRIT, ITEM_SONG_REQUIEM, OBJECT_GI_MELODY, GID_SONG_REQUIEM, 0x76, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_PRELUDE_OF_LIGHT] = Item(RG_PRELUDE_OF_LIGHT, Text{ "Prelude of Light", "Prélude de la Lumière", "Kantate des Lichts" }, ITEMTYPE_SONG, 0xC0, true, LOGIC_PRELUDE_OF_LIGHT, RHT_PRELUDE_OF_LIGHT, ITEM_SONG_PRELUDE, OBJECT_GI_MELODY, GID_SONG_PRELUDE, 0x78, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_PRELUDE_OF_LIGHT, ITEMTYPE_SONG, 0xC0, LOGIC_PRELUDE_OF_LIGHT, RHT_PRELUDE_OF_LIGHT, ITEM_SONG_PRELUDE, OBJECT_GI_MELODY, GID_SONG_PRELUDE, 0x78, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
// Maps and Compasses
|
// Maps
|
||||||
itemTable[RG_DEKU_TREE_MAP] = Item(RG_DEKU_TREE_MAP, Text{ "Great Deku Tree Map", "Carte de l'Arbre Mojo", "Karte (Deku-Baum)" }, ITEMTYPE_MAP, 0xA5, false, LOGIC_MAP_DEKU_TREE, RHT_DEKU_TREE_MAP, RG_DEKU_TREE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_DEKU_TREE_MAP, ITEMTYPE_MAP, 0xA5, LOGIC_NONE, RHT_DEKU_TREE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_DEKU_TREE_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_DODONGOS_CAVERN_MAP, ITEMTYPE_MAP, 0xA6, LOGIC_NONE, RHT_DODONGOS_CAVERN_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_DODONGOS_CAVERN_MAP] = Item(RG_DODONGOS_CAVERN_MAP, Text{ "Dodongo's Cavern Map", "Carte de la Caverne Dodongo", "Karte (Dodongos Höhle)" }, ITEMTYPE_MAP, 0xA6, false, LOGIC_MAP_DODONGOS_CAVERN, RHT_DODONGOS_CAVERN_MAP, RG_DODONGOS_CAVERN_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_JABU_JABUS_BELLY_MAP, ITEMTYPE_MAP, 0xA7, LOGIC_NONE, RHT_JABU_JABUS_BELLY_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_DODONGOS_CAVERN_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_FOREST_TEMPLE_MAP, ITEMTYPE_MAP, 0xA8, LOGIC_NONE, RHT_FOREST_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_JABU_JABUS_BELLY_MAP] = Item(RG_JABU_JABUS_BELLY_MAP, Text{ "Jabu-Jabu's Belly Map", "Carte du Ventre de Jabu-Jabu", "Karte (Jabu-Jabus Bauch)" }, ITEMTYPE_MAP, 0xA7, false, LOGIC_MAP_JABU_JABUS_BELLY, RHT_JABU_JABUS_BELLY_MAP, RG_JABU_JABUS_BELLY_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_FIRE_TEMPLE_MAP, ITEMTYPE_MAP, 0xA9, LOGIC_NONE, RHT_FIRE_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_JABU_JABUS_BELLY_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_WATER_TEMPLE_MAP, ITEMTYPE_MAP, 0xAA, LOGIC_NONE, RHT_WATER_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_FOREST_TEMPLE_MAP] = Item(RG_FOREST_TEMPLE_MAP, Text{ "Forest Temple Map", "Carte du Temple de la Forêt", "Karte (Waldtempel)" }, ITEMTYPE_MAP, 0xA8, false, LOGIC_MAP_FOREST_TEMPLE, RHT_FOREST_TEMPLE_MAP, RG_FOREST_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_SPIRIT_TEMPLE_MAP, ITEMTYPE_MAP, 0xAB, LOGIC_NONE, RHT_SPIRIT_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_FOREST_TEMPLE_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_SHADOW_TEMPLE_MAP, ITEMTYPE_MAP, 0xAC, LOGIC_NONE, RHT_SHADOW_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_FIRE_TEMPLE_MAP] = Item(RG_FIRE_TEMPLE_MAP, Text{ "Fire Temple Map", "Carte due Temple de Feu", "Karte (Feuertempel)" }, ITEMTYPE_MAP, 0xA9, false, LOGIC_MAP_FIRE_TEMPLE, RHT_FIRE_TEMPLE_MAP, RG_FIRE_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_BOTW_MAP, ITEMTYPE_MAP, 0xAD, LOGIC_NONE, RHT_BOTW_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_FIRE_TEMPLE_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_ICE_CAVERN_MAP, ITEMTYPE_MAP, 0xAE, LOGIC_NONE, RHT_ICE_CAVERN_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawMap);
|
||||||
itemTable[RG_WATER_TEMPLE_MAP] = Item(RG_WATER_TEMPLE_MAP, Text{ "Water Temple Map", "Carte du Temple de l'Eau", "Karte (Wassertempel)" }, ITEMTYPE_MAP, 0xAA, false, LOGIC_MAP_WATER_TEMPLE, RHT_WATER_TEMPLE_MAP, RG_WATER_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
// Compasses
|
||||||
itemTable[RG_WATER_TEMPLE_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_DEKU_TREE_COMPASS, ITEMTYPE_COMPASS, 0x9B, LOGIC_NONE, RHT_DEKU_TREE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_SPIRIT_TEMPLE_MAP] = Item(RG_SPIRIT_TEMPLE_MAP, Text{ "Spirit Temple Map", "Carte due Temple de l'Esprit", "Karte (Geistertempel)" }, ITEMTYPE_MAP, 0xAB, false, LOGIC_MAP_SPIRIT_TEMPLE, RHT_SPIRIT_TEMPLE_MAP, RG_SPIRIT_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_DODONGOS_CAVERN_COMPASS, ITEMTYPE_COMPASS, 0x9C, LOGIC_NONE, RHT_DODONGOS_CAVERN_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_SPIRIT_TEMPLE_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_JABU_JABUS_BELLY_COMPASS, ITEMTYPE_COMPASS, 0x9D, LOGIC_NONE, RHT_JABU_JABUS_BELLY_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_SHADOW_TEMPLE_MAP] = Item(RG_SHADOW_TEMPLE_MAP, Text{ "Shadow Temple Map", "Carte du Temple de l'Ombre", "Karte (Schattentempel)" }, ITEMTYPE_MAP, 0xAC, false, LOGIC_MAP_SHADOW_TEMPLE, RHT_SHADOW_TEMPLE_MAP, RG_SHADOW_TEMPLE_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_FOREST_TEMPLE_COMPASS, ITEMTYPE_COMPASS, 0x9E, LOGIC_NONE, RHT_FOREST_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_SHADOW_TEMPLE_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_FIRE_TEMPLE_COMPASS, ITEMTYPE_COMPASS, 0x9F, LOGIC_NONE, RHT_FIRE_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_BOTTOM_OF_THE_WELL_MAP] = Item(RG_BOTTOM_OF_THE_WELL_MAP, Text{ "Bottom of the Well Map", "Carte du Puits", "Karte (Grund des Brunnens)" }, ITEMTYPE_MAP, 0xAD, false, LOGIC_MAP_BOTTOM_OF_THE_WELL, RHT_BOTTOM_OF_THE_WELL_MAP, RG_BOTTOM_OF_THE_WELL_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_WATER_TEMPLE_COMPASS, ITEMTYPE_COMPASS, 0xA0, LOGIC_NONE, RHT_WATER_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_BOTTOM_OF_THE_WELL_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_SPIRIT_TEMPLE_COMPASS, ITEMTYPE_COMPASS, 0xA1, LOGIC_NONE, RHT_SPIRIT_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_ICE_CAVERN_MAP] = Item(RG_ICE_CAVERN_MAP, Text{ "Ice Cavern Map", "Carte de la Caverne Polaire", "Karte (Eishöhle)" }, ITEMTYPE_MAP, 0xAE, false, LOGIC_MAP_ICE_CAVERN, RHT_ICE_CAVERN_MAP, RG_ICE_CAVERN_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_SHADOW_TEMPLE_COMPASS, ITEMTYPE_COMPASS, 0xA2, LOGIC_NONE, RHT_SHADOW_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_ICE_CAVERN_MAP].SetCustomDrawFunc(Randomizer_DrawMap);
|
AddItem(RG_BOTW_COMPASS, ITEMTYPE_COMPASS, 0xA3, LOGIC_NONE, RHT_BOTW_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_DEKU_TREE_COMPASS] = Item(RG_DEKU_TREE_COMPASS, Text{ "Great Deku Tree Compass", "Boussole de l'Arbre Mojo", "Kompaß (Deku-Baum)" }, ITEMTYPE_COMPASS, 0x9B, false, LOGIC_COMPASS_DEKU_TREE, RHT_DEKU_TREE_COMPASS, RG_DEKU_TREE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_DUNGEON_MAP, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_ICE_CAVERN_COMPASS, ITEMTYPE_COMPASS, 0xA4, LOGIC_NONE, RHT_ICE_CAVERN_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawCompass);
|
||||||
itemTable[RG_DEKU_TREE_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
itemTable[RG_DODONGOS_CAVERN_COMPASS] = Item(RG_DODONGOS_CAVERN_COMPASS, Text{ "Dodongo's Cavern Compass", "Boussole de la Caverne Dodongo", "Kompaß (Dodongos Höhle)" }, ITEMTYPE_COMPASS, 0x9C, false, LOGIC_COMPASS_DODONGOS_CAVERN, RHT_DODONGOS_CAVERN_COMPASS, RG_DODONGOS_CAVERN_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_DODONGOS_CAVERN_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
itemTable[RG_JABU_JABUS_BELLY_COMPASS] = Item(RG_JABU_JABUS_BELLY_COMPASS, Text{ "Jabu-Jabu's Belly Compass", "Boussole du Ventre de Jabu-Jabu", "Kompaß (Jabu-Jabus Bauch)" }, ITEMTYPE_COMPASS, 0x9D, false, LOGIC_COMPASS_JABU_JABUS_BELLY, RHT_JABU_JABUS_BELLY_COMPASS, RG_JABU_JABUS_BELLY_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_JABU_JABUS_BELLY_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
itemTable[RG_FOREST_TEMPLE_COMPASS] = Item(RG_FOREST_TEMPLE_COMPASS, Text{ "Forest Temple Compass", "Boussole du Temple de la Forêt", "Kompaß (Waldtempel)" }, ITEMTYPE_COMPASS, 0x9E, false, LOGIC_COMPASS_FOREST_TEMPLE, RHT_FOREST_TEMPLE_COMPASS, RG_FOREST_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_FOREST_TEMPLE_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
itemTable[RG_FIRE_TEMPLE_COMPASS] = Item(RG_FIRE_TEMPLE_COMPASS, Text{ "Fire Temple Compass", "Boussole du Temple du Feu", "Kompaß (Feuertempel)" }, ITEMTYPE_COMPASS, 0x9F, false, LOGIC_COMPASS_FIRE_TEMPLE, RHT_FIRE_TEMPLE_COMPASS, RG_FIRE_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_FIRE_TEMPLE_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
itemTable[RG_WATER_TEMPLE_COMPASS] = Item(RG_WATER_TEMPLE_COMPASS, Text{ "Water Temple Compass", "Boussole du Temple de l'Eau", "Kompaß (Wassertempel)" }, ITEMTYPE_COMPASS, 0xA0, false, LOGIC_COMPASS_WATER_TEMPLE, RHT_WATER_TEMPLE_COMPASS, RG_WATER_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_WATER_TEMPLE_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
itemTable[RG_SPIRIT_TEMPLE_COMPASS] = Item(RG_SPIRIT_TEMPLE_COMPASS, Text{ "Spirit Temple Compass", "Boussole due Temple de l'Esprit", "Kompaß (Geistertempel)" }, ITEMTYPE_COMPASS, 0xA1, false, LOGIC_COMPASS_SPIRIT_TEMPLE, RHT_SPIRIT_TEMPLE_COMPASS, RG_SPIRIT_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_SPIRIT_TEMPLE_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
itemTable[RG_SHADOW_TEMPLE_COMPASS] = Item(RG_SHADOW_TEMPLE_COMPASS, Text{ "Shadow Temple Compass", "Boussole du Temple de l'Ombre", "Kompaß (Schattentempel)" }, ITEMTYPE_COMPASS, 0xA2, false, LOGIC_COMPASS_SHADOW_TEMPLE, RHT_SHADOW_TEMPLE_COMPASS, RG_SHADOW_TEMPLE_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_SHADOW_TEMPLE_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
itemTable[RG_BOTTOM_OF_THE_WELL_COMPASS] = Item(RG_BOTTOM_OF_THE_WELL_COMPASS, Text{ "Bottom of the Well Compass", "Boussole du Puits", "Kompaß (Grund des Brunnens)" }, ITEMTYPE_COMPASS, 0xA3, false, LOGIC_COMPASS_BOTTOM_OF_THE_WELL, RHT_BOTTOM_OF_THE_WELL_COMPASS, RG_BOTTOM_OF_THE_WELL_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_BOTTOM_OF_THE_WELL_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
itemTable[RG_ICE_CAVERN_COMPASS] = Item(RG_ICE_CAVERN_COMPASS, Text{ "Ice Cavern Compass", "Boussole de la Caverne Polaire", "Kompaß (Eishöhle)" }, ITEMTYPE_COMPASS, 0xA4, false, LOGIC_COMPASS_ICE_CAVERN, RHT_ICE_CAVERN_COMPASS, RG_ICE_CAVERN_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, TEXT_ITEM_COMPASS, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_ICE_CAVERN_COMPASS].SetCustomDrawFunc(Randomizer_DrawCompass);
|
|
||||||
// Boss Keys
|
// Boss Keys
|
||||||
itemTable[RG_FOREST_TEMPLE_BOSS_KEY] = Item(RG_FOREST_TEMPLE_BOSS_KEY, Text{ "Forest Temple Boss Key", "Clé d'Or du Temple de la Forêt", "Master-Schlüssel (Waldtempel)" }, ITEMTYPE_BOSSKEY, 0x95, true, LOGIC_BOSS_KEY_FOREST_TEMPLE, RHT_FOREST_TEMPLE_BOSS_KEY, RG_FOREST_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY,MOD_RANDOMIZER);
|
AddItem(RG_FOREST_TEMPLE_BOSS_KEY, ITEMTYPE_BOSSKEY, 0x95, LOGIC_BOSS_KEY_FOREST_TEMPLE, RHT_FOREST_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawBossKey);
|
||||||
itemTable[RG_FOREST_TEMPLE_BOSS_KEY].SetCustomDrawFunc(Randomizer_DrawBossKey);
|
AddItem(RG_FIRE_TEMPLE_BOSS_KEY, ITEMTYPE_BOSSKEY, 0x96, LOGIC_BOSS_KEY_FIRE_TEMPLE, RHT_FIRE_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawBossKey);
|
||||||
itemTable[RG_FIRE_TEMPLE_BOSS_KEY] = Item(RG_FIRE_TEMPLE_BOSS_KEY, Text{ "Fire Temple Boss Key", "Clé d'Or du Temple du Feu", "Master-Schlüssel (Feuertempel)" }, ITEMTYPE_BOSSKEY, 0x96, true, LOGIC_BOSS_KEY_FIRE_TEMPLE, RHT_FIRE_TEMPLE_BOSS_KEY, RG_FIRE_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY,MOD_RANDOMIZER);
|
AddItem(RG_WATER_TEMPLE_BOSS_KEY, ITEMTYPE_BOSSKEY, 0x97, LOGIC_BOSS_KEY_WATER_TEMPLE, RHT_WATER_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawBossKey);
|
||||||
itemTable[RG_FIRE_TEMPLE_BOSS_KEY].SetCustomDrawFunc(Randomizer_DrawBossKey);
|
AddItem(RG_SPIRIT_TEMPLE_BOSS_KEY, ITEMTYPE_BOSSKEY, 0x98, LOGIC_BOSS_KEY_SPIRIT_TEMPLE, RHT_SPIRIT_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawBossKey);
|
||||||
itemTable[RG_WATER_TEMPLE_BOSS_KEY] = Item(RG_WATER_TEMPLE_BOSS_KEY, Text{ "Water Temple Boss Key", "Clé d'Or du Temple de l'Eau", "Master-Schlüssel (Wassertempel)" }, ITEMTYPE_BOSSKEY, 0x97, true, LOGIC_BOSS_KEY_WATER_TEMPLE, RHT_WATER_TEMPLE_BOSS_KEY, RG_WATER_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY,MOD_RANDOMIZER);
|
AddItem(RG_SHADOW_TEMPLE_BOSS_KEY, ITEMTYPE_BOSSKEY, 0x99, LOGIC_BOSS_KEY_SHADOW_TEMPLE, RHT_SHADOW_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawBossKey);
|
||||||
itemTable[RG_WATER_TEMPLE_BOSS_KEY].SetCustomDrawFunc(Randomizer_DrawBossKey);
|
AddItem(RG_GANONS_CASTLE_BOSS_KEY, ITEMTYPE_BOSSKEY, 0x9A, LOGIC_BOSS_KEY_GANONS_CASTLE, RHT_GANONS_CASTLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawBossKey);
|
||||||
itemTable[RG_SPIRIT_TEMPLE_BOSS_KEY] = Item(RG_SPIRIT_TEMPLE_BOSS_KEY, Text{ "Spirit Temple Boss Key", "Clé d'Or du Temple de l'Esprit", "Master-Schlüssel (Geistertempel)" }, ITEMTYPE_BOSSKEY, 0x98, true, LOGIC_BOSS_KEY_SPIRIT_TEMPLE, RHT_SPIRIT_TEMPLE_BOSS_KEY, RG_SPIRIT_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY,MOD_RANDOMIZER);
|
// Small Keys
|
||||||
itemTable[RG_SPIRIT_TEMPLE_BOSS_KEY].SetCustomDrawFunc(Randomizer_DrawBossKey);
|
AddItem(RG_FOREST_TEMPLE_SMALL_KEY, ITEMTYPE_SMALLKEY, 0xAF, LOGIC_FOREST_TEMPLE_KEYS, RHT_FOREST_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_SHADOW_TEMPLE_BOSS_KEY] = Item( RG_SHADOW_TEMPLE_BOSS_KEY, Text{ "Shadow Temple Boss Key", "Clé d'Or du Temple de l'Ombre", "Master-Schlüssel (Schattentempel)" }, ITEMTYPE_BOSSKEY, 0x99, true, LOGIC_BOSS_KEY_SHADOW_TEMPLE, RHT_SHADOW_TEMPLE_BOSS_KEY, RG_SHADOW_TEMPLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY,MOD_RANDOMIZER);
|
AddItem(RG_FIRE_TEMPLE_SMALL_KEY, ITEMTYPE_SMALLKEY, 0xB0, LOGIC_FIRE_TEMPLE_KEYS, RHT_FIRE_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_SHADOW_TEMPLE_BOSS_KEY].SetCustomDrawFunc(Randomizer_DrawBossKey);
|
AddItem(RG_WATER_TEMPLE_SMALL_KEY, ITEMTYPE_SMALLKEY, 0xB1, LOGIC_WATER_TEMPLE_KEYS, RHT_WATER_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_GANONS_CASTLE_BOSS_KEY] = Item(RG_GANONS_CASTLE_BOSS_KEY, Text{ "Ganon's Castle Boss Key", "Clé d'Or du Château de Ganon", "Master-Schlüssel (Ganons Schloß)" }, ITEMTYPE_BOSSKEY, 0x9A, true, LOGIC_BOSS_KEY_GANONS_CASTLE, RHT_GANONS_CASTLE_BOSS_KEY, RG_GANONS_CASTLE_BOSS_KEY, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_BOSS_KEY,MOD_RANDOMIZER);
|
AddItem(RG_SPIRIT_TEMPLE_SMALL_KEY, ITEMTYPE_SMALLKEY, 0xB2, LOGIC_SPIRIT_TEMPLE_KEYS, RHT_SPIRIT_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_GANONS_CASTLE_BOSS_KEY].SetCustomDrawFunc(Randomizer_DrawBossKey);
|
AddItem(RG_SHADOW_TEMPLE_SMALL_KEY, ITEMTYPE_SMALLKEY, 0xB3, LOGIC_SHADOW_TEMPLE_KEYS, RHT_SHADOW_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_FOREST_TEMPLE_SMALL_KEY] = Item(RG_FOREST_TEMPLE_SMALL_KEY, Text{ "Forest Temple Small Key", "Petite Clé du Temple de la Forêt", "Kleiner Schlüssel (Waldtempel)" }, ITEMTYPE_SMALLKEY, 0xAF, true, LOGIC_FOREST_TEMPLE_KEYS, RHT_FOREST_TEMPLE_SMALL_KEY, RG_FOREST_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_BOTW_SMALL_KEY, ITEMTYPE_SMALLKEY, 0xB4, LOGIC_BOTW_KEYS, RHT_BOTW_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_FOREST_TEMPLE_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
AddItem(RG_GTG_SMALL_KEY, ITEMTYPE_SMALLKEY, 0xB5, LOGIC_GTG_KEYS, RHT_GTG_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_FIRE_TEMPLE_SMALL_KEY] = Item(RG_FIRE_TEMPLE_SMALL_KEY, Text{ "Fire Temple Small Key", "Petite Clé du Temple du Feu", "Kleiner Schlüssel (Feuertempel)" }, ITEMTYPE_SMALLKEY, 0xB0, true, LOGIC_FIRE_TEMPLE_KEYS, RHT_FIRE_TEMPLE_SMALL_KEY, RG_FIRE_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_HIDEOUT_SMALL_KEY, ITEMTYPE_HIDEOUT_KEY, 0xB6, LOGIC_HIDEOUT_KEYS, RHT_HIDEOUT_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_FIRE_TEMPLE_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
AddItem(RG_GANONS_CASTLE_SMALL_KEY, ITEMTYPE_SMALLKEY, 0xB7, LOGIC_GANONS_CASTLE_KEYS, RHT_GANONS_CASTLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_WATER_TEMPLE_SMALL_KEY] = Item(RG_WATER_TEMPLE_SMALL_KEY, Text{ "Water Temple Small Key", "Petite Clé du Temple de l'Eau", "Kleiner Schlüssel (Wassertempel)" }, ITEMTYPE_SMALLKEY, 0xB1, true, LOGIC_WATER_TEMPLE_KEYS, RHT_WATER_TEMPLE_SMALL_KEY, RG_WATER_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_TCG_SMALL_KEY, ITEMTYPE_SMALLKEY, GI_DOOR_KEY, LOGIC_TCG_KEYS, RHT_TCG_SMALL_KEY, ITEM_KEY_SMALL, OBJECT_GI_KEY, GID_KEY_SMALL, 0xF3, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_NONE, 0, Randomizer_DrawSmallKey);
|
||||||
itemTable[RG_WATER_TEMPLE_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
// Overworld Keys
|
||||||
itemTable[RG_SPIRIT_TEMPLE_SMALL_KEY] = Item(RG_SPIRIT_TEMPLE_SMALL_KEY, Text{ "Spirit Temple Small Key", "Petite Clé du Temple de l'Esprit", "Kleiner Schlüssel (Geistertempel)" }, ITEMTYPE_SMALLKEY, 0xB2, true, LOGIC_SPIRIT_TEMPLE_KEYS, RHT_SPIRIT_TEMPLE_SMALL_KEY, RG_SPIRIT_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_GUARD_HOUSE_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_GUARD_HOUSE_KEY, RHT_GUARD_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_SPIRIT_TEMPLE_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
AddItem(RG_MARKET_BAZAAR_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_MARKET_BAZAAR_KEY, RHT_MARKET_BAZAAR_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_SHADOW_TEMPLE_SMALL_KEY] = Item(RG_SHADOW_TEMPLE_SMALL_KEY, Text{ "Shadow Temple Small Key", "Petite Clé du Temple de l'Ombre", "Kleiner Schlüssel (Schattentempel)" }, ITEMTYPE_SMALLKEY, 0xB3, true, LOGIC_SHADOW_TEMPLE_KEYS, RHT_SHADOW_TEMPLE_SMALL_KEY, RG_SHADOW_TEMPLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_MARKET_POTION_SHOP_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_MARKET_POTION_SHOP_KEY, RHT_MARKET_POTION_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_SHADOW_TEMPLE_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
AddItem(RG_MASK_SHOP_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_MASK_SHOP_KEY, RHT_MASK_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_BOTTOM_OF_THE_WELL_SMALL_KEY] = Item(RG_BOTTOM_OF_THE_WELL_SMALL_KEY, Text{ "Bottom of the Well Small Key", "Petite Clé du Puits", "Kleiner Schlüssel (Grund des Brunnens)" }, ITEMTYPE_SMALLKEY, 0xB4, true, LOGIC_BOTTOM_OF_THE_WELL_KEYS, RHT_BOTTOM_OF_THE_WELL_SMALL_KEY, RG_BOTTOM_OF_THE_WELL_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_MARKET_SHOOTING_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_MARKET_SHOOTING_KEY, RHT_MARKET_SHOOTING_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_BOTTOM_OF_THE_WELL_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
AddItem(RG_BOMBCHU_BOWLING_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_BOMBCHU_BOWLING_KEY, RHT_BOMBCHU_BOWLING_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_GERUDO_TRAINING_GROUND_SMALL_KEY] = Item(RG_GERUDO_TRAINING_GROUND_SMALL_KEY, Text{ "Training Ground Small Key", "Petite Clé du Gymnase Gerudo", "Kleiner Schlüssel (Gerudo-Trainingsarena)" }, ITEMTYPE_SMALLKEY, 0xB5, true, LOGIC_GERUDO_TRAINING_GROUND_KEYS, RHT_GERUDO_TRAINING_GROUND_SMALL_KEY, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_TCG_BUILDING_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_TCG_BUILDING_KEY, RHT_TCG_BUILDING_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_GERUDO_TRAINING_GROUND_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
AddItem(RG_BOMBCHU_SHOP_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_BOMBCHU_SHOP_KEY, RHT_BOMBCHU_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_GERUDO_FORTRESS_SMALL_KEY] = Item(RG_GERUDO_FORTRESS_SMALL_KEY, Text{ "Gerudo Fortress Small Key", "Petite Clé du Repaire des Voleurs", "Kleiner Schlüssel (Diebesversteck)" }, ITEMTYPE_FORTRESS_SMALLKEY, 0xB6, true, LOGIC_GERUDO_FORTRESS_KEYS, RHT_GERUDO_FORTRESS_SMALL_KEY, RG_GERUDO_FORTRESS_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_RICHARDS_HOUSE_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_RICHARDS_HOUSE_KEY, RHT_RICHARDS_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_GERUDO_FORTRESS_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
AddItem(RG_ALLEY_HOUSE_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_ALLEY_HOUSE_KEY, RHT_ALLEY_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_GANONS_CASTLE_SMALL_KEY] = Item(RG_GANONS_CASTLE_SMALL_KEY, Text{ "Ganon's Castle Small Key", "Petite Clé du Château de Ganon", "Kleiner Schlüssel (Ganons Schloß)" }, ITEMTYPE_SMALLKEY, 0xB7, true, LOGIC_GANONS_CASTLE_KEYS, RHT_GANONS_CASTLE_SMALL_KEY, RG_GANONS_CASTLE_SMALL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_KAK_BAZAAR_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_KAK_BAZAAR_KEY, RHT_KAK_BAZAAR_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_GANONS_CASTLE_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
AddItem(RG_KAK_POTION_SHOP_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_KAK_POTION_SHOP_KEY, RHT_KAK_POTION_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_TREASURE_GAME_SMALL_KEY] = Item(RG_TREASURE_GAME_SMALL_KEY, Text{ "Chest Game Small Key", "Petite Clé du jeu la Chasse-aux-Trésors", "Kleiner Schlüssel (Truhenlotterie)" }, ITEMTYPE_SMALLKEY, GI_DOOR_KEY, true, LOGIC_TREASURE_GAME_KEYS, RHT_TREASURE_GAME_SMALL_KEY, ITEM_KEY_SMALL, OBJECT_GI_KEY, GID_KEY_SMALL, 0xF3, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_NONE);
|
AddItem(RG_BOSS_HOUSE_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_BOSS_HOUSE_KEY, RHT_BOSS_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_TREASURE_GAME_SMALL_KEY].SetCustomDrawFunc(Randomizer_DrawSmallKey);
|
AddItem(RG_GRANNYS_SHOP_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_GRANNYS_SHOP_KEY, RHT_GRANNYS_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_GUARD_HOUSE_KEY] = Item(RG_GUARD_HOUSE_KEY, Text{ "Guard House Key", "Clé de la Maison des Gardes", "Schlüssel (Wachhaus)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_GUARD_HOUSE_KEY, RHT_OVERWORLD_KEY, RG_GUARD_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_SKULLTULA_HOUSE_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_SKULLTULA_HOUSE_KEY, RHT_SKULLTULA_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_GUARD_HOUSE_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
AddItem(RG_IMPAS_HOUSE_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_IMPAS_HOUSE_KEY, RHT_IMPAS_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_MARKET_BAZAAR_KEY] = Item(RG_MARKET_BAZAAR_KEY, Text{ "Market Bazaar Key", "Clé du Bazar de la Place du Marché", "Schlüssel (Basar des Marktes)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_MARKET_BAZAAR_KEY, RHT_OVERWORLD_KEY, RG_MARKET_BAZAAR_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_WINDMILL_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_WINDMILL_KEY, RHT_WINDMILL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_MARKET_BAZAAR_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
AddItem(RG_KAK_SHOOTING_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_KAK_SHOOTING_KEY, RHT_KAK_SHOOTING_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_MARKET_POTION_SHOP_KEY] = Item(RG_MARKET_POTION_SHOP_KEY, Text{ "Market Potion Shop Key", "Clé du Magasin de Potions de la Place du Marché", "Schlüssel (Magie-Laden des Marktes)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_MARKET_POTION_SHOP_KEY, RHT_OVERWORLD_KEY, RG_MARKET_POTION_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_DAMPES_HUT_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_DAMPES_HUT_KEY, RHT_DAMPES_HUT_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_MARKET_POTION_SHOP_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
AddItem(RG_TALONS_HOUSE_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_TALONS_HOUSE_KEY, RHT_TALONS_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_MASK_SHOP_KEY] = Item(RG_MASK_SHOP_KEY, Text{ "Mask Shop Key", "Clé de la Foire aux Masques", "Schlüssel (Maskenladen)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_MASK_SHOP_KEY, RHT_OVERWORLD_KEY, RG_MASK_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_STABLES_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_STABLES_KEY, RHT_STABLES_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_MASK_SHOP_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
AddItem(RG_BACK_TOWER_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_BACK_TOWER_KEY, RHT_BACK_TOWER_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_MARKET_SHOOTING_GALLERY_KEY] = Item(RG_MARKET_SHOOTING_GALLERY_KEY, Text{ "Market Shooting Gallery Key", "Clé du Stand de Tir de la Place du Marché", "Schlüssel (Schießbude des Marktes)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_MARKET_SHOOTING_GALLERY_KEY, RHT_OVERWORLD_KEY, RG_MARKET_SHOOTING_GALLERY_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_HYLIA_LAB_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_HYLIA_LAB_KEY, RHT_HYLIA_LAB_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_MARKET_SHOOTING_GALLERY_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
AddItem(RG_FISHING_HOLE_KEY, ITEMTYPE_ITEM, GI_DOOR_KEY, LOGIC_FISHING_HOLE_KEY, RHT_FISHING_HOLE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawOverworldKey);
|
||||||
itemTable[RG_BOMBCHU_BOWLING_KEY] = Item(RG_BOMBCHU_BOWLING_KEY, Text{ "Bombchu Bowling Alley Key", "Clé du Bowling Teigneux", "Schlüssel (Minenbowlingbahn)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_BOMBCHU_BOWLING_KEY, RHT_OVERWORLD_KEY, RG_BOMBCHU_BOWLING_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_BOMBCHU_BOWLING_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_TREASURE_CHEST_GAME_BUILDING_KEY] = Item(RG_TREASURE_CHEST_GAME_BUILDING_KEY, Text{ "Treasure Chest Game Building Key", "Clé de la Chasse au Trésor", "Schlüssel (Haus der Truhenlotterie)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_TREASURE_CHEST_GAME_BUILDING_KEY,RHT_OVERWORLD_KEY, RG_TREASURE_CHEST_GAME_BUILDING_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_TREASURE_CHEST_GAME_BUILDING_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_BOMBCHU_SHOP_KEY] = Item(RG_BOMBCHU_SHOP_KEY, Text{ "Bombchu Shop Key", "Clé du Magasin de Missiles", "Schlüssel (Krabbelminenladen)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_BOMBCHU_SHOP_KEY, RHT_OVERWORLD_KEY, RG_BOMBCHU_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_BOMBCHU_SHOP_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_RICHARDS_HOUSE_KEY] = Item(RG_RICHARDS_HOUSE_KEY, Text{ "Richard's House Key", "Clé de la Maison de Kiki", "Schlüssel (Richards Haus)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_RICHARDS_HOUSE_KEY, RHT_OVERWORLD_KEY, RG_RICHARDS_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_RICHARDS_HOUSE_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_ALLEY_HOUSE_KEY] = Item(RG_ALLEY_HOUSE_KEY, Text{ "Alley House Key", "Clé de la Maison de la Ruelle", "Schlüssel (Haus in der Gasse)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_ALLEY_HOUSE_KEY, RHT_OVERWORLD_KEY, RG_ALLEY_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_ALLEY_HOUSE_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_KAK_BAZAAR_KEY] = Item(RG_KAK_BAZAAR_KEY, Text{ "Kakariko Bazaar Key", "Clé du Bazar de Cocorico", "Schlüssel (Basar von Kakariko)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_KAK_BAZAAR_KEY, RHT_OVERWORLD_KEY, RG_KAK_BAZAAR_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_KAK_BAZAAR_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_KAK_POTION_SHOP_KEY] = Item(RG_KAK_POTION_SHOP_KEY, Text{ "Kakariko Potion Shop Key", "Clé du Magasin de Potions de Cocorico", "Schlüssel (Magie-Laden von Kakariko)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_KAK_POTION_SHOP_KEY, RHT_OVERWORLD_KEY, RG_KAK_POTION_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_KAK_POTION_SHOP_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_BOSS_HOUSE_KEY] = Item(RG_BOSS_HOUSE_KEY, Text{ "Boss's House Key", "Clé de la Maison du Chef des Ouvriers", "Schlüssel (Haus des Chefs)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_BOSS_HOUSE_KEY, RHT_OVERWORLD_KEY, RG_BOSS_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_BOSS_HOUSE_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_GRANNYS_POTION_SHOP_KEY] = Item(RG_GRANNYS_POTION_SHOP_KEY, Text{ "Granny's Potion Shop Key", "Clé de l'Apothicaire", "Schlüssel (Asas Hexenladen)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_GRANNYS_POTION_SHOP_KEY, RHT_OVERWORLD_KEY, RG_GRANNYS_POTION_SHOP_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_GRANNYS_POTION_SHOP_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_SKULLTULA_HOUSE_KEY] = Item(RG_SKULLTULA_HOUSE_KEY, Text{ "Skulltula House Key", "Clé de la Maison des Araignées", "Schlüssel (Skulltula-Haus)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_SKULLTULA_HOUSE_KEY, RHT_OVERWORLD_KEY, RG_SKULLTULA_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_SKULLTULA_HOUSE_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_IMPAS_HOUSE_KEY] = Item(RG_IMPAS_HOUSE_KEY, Text{ "Impa's House Key", "Clé de la Maison d'Impa", "Schlüssel (Impas Haus)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_IMPAS_HOUSE_KEY, RHT_OVERWORLD_KEY, RG_IMPAS_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_IMPAS_HOUSE_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_WINDMILL_KEY] = Item(RG_WINDMILL_KEY, Text{ "Windmill Key", "Clé du Moulin", "Schlüssel (Windmühle)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_WINDMILL_KEY, RHT_OVERWORLD_KEY, RG_WINDMILL_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_WINDMILL_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_KAK_SHOOTING_GALLERY_KEY] = Item(RG_KAK_SHOOTING_GALLERY_KEY, Text{ "Kakariko Shooting Gallery Key", "Clé du Stand de Tir de Cocorico", "Schlüssel (Schießbude von Kakariko)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_KAK_SHOOTING_GALLERY_KEY, RHT_OVERWORLD_KEY, RG_KAK_SHOOTING_GALLERY_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_KAK_SHOOTING_GALLERY_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_DAMPES_HUT_KEY] = Item(RG_DAMPES_HUT_KEY, Text{ "Dampe's Hut Key", "Clé de la Cabane d'Igor", "Schlüssel (Hütte des Totengräbers)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_DAMPES_HUT_KEY, RHT_OVERWORLD_KEY, RG_DAMPES_HUT_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_DAMPES_HUT_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_TALONS_HOUSE_KEY] = Item(RG_TALONS_HOUSE_KEY, Text{ "Talon's House Key", "Clé de la Maison de Talon", "Schlüssel (Talons Haus)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_TALONS_HOUSE_KEY, RHT_OVERWORLD_KEY, RG_TALONS_HOUSE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_TALONS_HOUSE_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_STABLES_KEY] = Item(RG_STABLES_KEY, Text{ "Stables Key", "Clé des Écuries", "Schlüssel (Ställe)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_STABLES_KEY, RHT_OVERWORLD_KEY, RG_STABLES_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_STABLES_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_BACK_TOWER_KEY] = Item(RG_BACK_TOWER_KEY, Text{ "Back Tower Key", "Clé du Silo", "Schlüssel (Lon Lon-Turm)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_BACK_TOWER_KEY, RHT_OVERWORLD_KEY, RG_BACK_TOWER_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_BACK_TOWER_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_HYLIA_LAB_KEY] = Item(RG_HYLIA_LAB_KEY, Text{ "Hylia Laboratory Key", "Clé du Laboratoire du Lac Hylia", "Schlüssel (Hylia-Labor)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_HYLIA_LAB_KEY, RHT_OVERWORLD_KEY, RG_HYLIA_LAB_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_HYLIA_LAB_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
itemTable[RG_FISHING_HOLE_KEY] = Item(RG_FISHING_HOLE_KEY, Text{ "Fishing Hole Key", "Clé de l'Étang", "Schlüssel (Fischweiher)" }, ITEMTYPE_ITEM, GI_DOOR_KEY, true, LOGIC_FISHING_HOLE_KEY, RHT_OVERWORLD_KEY, RG_FISHING_HOLE_KEY, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_FISHING_HOLE_KEY].SetCustomDrawFunc(Randomizer_DrawOverworldKey);
|
|
||||||
// Key Rings
|
// Key Rings
|
||||||
itemTable[RG_FOREST_TEMPLE_KEY_RING] = Item(RG_FOREST_TEMPLE_KEY_RING, Text{ "Forest Temple Key Ring", "Trousseau du Temple de la Forêt", "Schlüsselbund (Waldtempel)" }, ITEMTYPE_SMALLKEY, 0xD5, true, LOGIC_FOREST_TEMPLE_KEYS, RHT_FOREST_TEMPLE_KEY_RING, RG_FOREST_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_FOREST_TEMPLE_KEY_RING, ITEMTYPE_SMALLKEY, 0xD5, LOGIC_FOREST_TEMPLE_KEYS, RHT_FOREST_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_FOREST_TEMPLE_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
AddItem(RG_FIRE_TEMPLE_KEY_RING, ITEMTYPE_SMALLKEY, 0xD6, LOGIC_FIRE_TEMPLE_KEYS, RHT_FIRE_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_FIRE_TEMPLE_KEY_RING] = Item(RG_FIRE_TEMPLE_KEY_RING, Text{ "Fire Temple Key Ring", "Trousseau du Temple du Feu", "Schlüsselbund (Feuertempel)" }, ITEMTYPE_SMALLKEY, 0xD6, true, LOGIC_FIRE_TEMPLE_KEYS, RHT_FIRE_TEMPLE_KEY_RING, RG_FIRE_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_WATER_TEMPLE_KEY_RING, ITEMTYPE_SMALLKEY, 0xD7, LOGIC_WATER_TEMPLE_KEYS, RHT_WATER_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_FIRE_TEMPLE_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
AddItem(RG_SPIRIT_TEMPLE_KEY_RING, ITEMTYPE_SMALLKEY, 0xD8, LOGIC_SPIRIT_TEMPLE_KEYS, RHT_SPIRIT_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_WATER_TEMPLE_KEY_RING] = Item(RG_WATER_TEMPLE_KEY_RING, Text{ "Water Temple Key Ring", "Trousseau du Temple de l'Eau", "Schlüsselbund (Wassertempel)" }, ITEMTYPE_SMALLKEY, 0xD7, true, LOGIC_WATER_TEMPLE_KEYS, RHT_WATER_TEMPLE_KEY_RING, RG_WATER_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_SHADOW_TEMPLE_KEY_RING, ITEMTYPE_SMALLKEY, 0xD9, LOGIC_SHADOW_TEMPLE_KEYS, RHT_SHADOW_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_WATER_TEMPLE_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
AddItem(RG_BOTW_KEY_RING, ITEMTYPE_SMALLKEY, 0xDA, LOGIC_BOTW_KEYS, RHT_BOTW_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_SPIRIT_TEMPLE_KEY_RING] = Item(RG_SPIRIT_TEMPLE_KEY_RING, Text{ "Spirit Temple Key Ring", "Trousseau du Temple de l'Esprit", "Schlüsselbund (Geistertempel)" }, ITEMTYPE_SMALLKEY, 0xD8, true, LOGIC_SPIRIT_TEMPLE_KEYS, RHT_SPIRIT_TEMPLE_KEY_RING, RG_SPIRIT_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_GTG_KEY_RING, ITEMTYPE_SMALLKEY, 0xDB, LOGIC_GTG_KEYS, RHT_GTG_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_SPIRIT_TEMPLE_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
AddItem(RG_HIDEOUT_KEY_RING, ITEMTYPE_HIDEOUT_KEY, 0xDC, LOGIC_HIDEOUT_KEYS, RHT_HIDEOUT_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_SHADOW_TEMPLE_KEY_RING] = Item(RG_SHADOW_TEMPLE_KEY_RING, Text{ "Shadow Temple Key Ring", "Trousseau du Temple de l'Ombre", "Schlüsselbund (Schattentempel)" }, ITEMTYPE_SMALLKEY, 0xD9, true, LOGIC_SHADOW_TEMPLE_KEYS, RHT_SHADOW_TEMPLE_KEY_RING, RG_SHADOW_TEMPLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
AddItem(RG_GANONS_CASTLE_KEY_RING, ITEMTYPE_SMALLKEY, 0xDD, LOGIC_GANONS_CASTLE_KEYS, RHT_GANONS_CASTLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_SHADOW_TEMPLE_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
AddItem(RG_TCG_KEY_RING, ITEMTYPE_SMALLKEY, 0xDE, LOGIC_TCG_KEYS, RHT_TCG_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY, MOD_RANDOMIZER, 0, Randomizer_DrawKeyRing);
|
||||||
itemTable[RG_BOTTOM_OF_THE_WELL_KEY_RING] = Item(RG_BOTTOM_OF_THE_WELL_KEY_RING, Text{ "Bottom of the Well Key Ring", "Trousseau du Puits", "Schlüsselbund (Grund des Brunnens)" }, ITEMTYPE_SMALLKEY, 0xDA, true, LOGIC_BOTTOM_OF_THE_WELL_KEYS, RHT_BOTTOM_OF_THE_WELL_KEY_RING, RG_BOTTOM_OF_THE_WELL_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_BOTTOM_OF_THE_WELL_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
|
||||||
itemTable[RG_GERUDO_TRAINING_GROUND_KEY_RING] = Item(RG_GERUDO_TRAINING_GROUND_KEY_RING, Text{ "Training Ground Key Ring", "Trousseau du Gymnase Gerudo", "Schlüsselbund (Gerudo-Trainingsarena)" }, ITEMTYPE_SMALLKEY, 0xDB, true, LOGIC_GERUDO_TRAINING_GROUND_KEYS, RHT_GERUDO_TRAINING_GROUND_KEY_RING, RG_GERUDO_TRAINING_GROUND_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_GERUDO_TRAINING_GROUND_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
|
||||||
itemTable[RG_GERUDO_FORTRESS_KEY_RING] = Item(RG_GERUDO_FORTRESS_KEY_RING, Text{ "Gerudo Fortress Key Ring", "Trousseau du Repaire des Voleurs", "Schlüsselbund (Diebesversteck)" }, ITEMTYPE_FORTRESS_SMALLKEY, 0xDC, true, LOGIC_GERUDO_FORTRESS_KEYS, RHT_GERUDO_FORTRESS_KEY_RING, RG_GERUDO_FORTRESS_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_GERUDO_FORTRESS_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
|
||||||
itemTable[RG_GANONS_CASTLE_KEY_RING] = Item(RG_GANONS_CASTLE_KEY_RING, Text{ "Ganon's Castle Key Ring", "Trousseau du Château de Ganon", "Schlüsselbund (Ganons Schloß)" }, ITEMTYPE_SMALLKEY, 0xDD, true, LOGIC_GANONS_CASTLE_KEYS, RHT_GANONS_CASTLE_KEY_RING, RG_GANONS_CASTLE_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_GANONS_CASTLE_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
|
||||||
itemTable[RG_TREASURE_GAME_KEY_RING] = Item(RG_TREASURE_GAME_KEY_RING, Text{ "Chest Game Key Ring", "Trousseau du jeu la Chasse-aux-Trésors", "Schlüsselbund (Truhenlotterie)" }, ITEMTYPE_SMALLKEY, 0xDE, true, LOGIC_TREASURE_GAME_KEYS, RHT_TREASURE_GAME_KEY_RING, RG_TREASURE_GAME_KEY_RING, OBJECT_GI_KEY, GID_KEY_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SMALL_KEY,MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_TREASURE_GAME_KEY_RING].SetCustomDrawFunc(Randomizer_DrawKeyRing);
|
|
||||||
// Dungeon Rewards
|
// Dungeon Rewards
|
||||||
itemTable[RG_KOKIRI_EMERALD] = Item(RG_KOKIRI_EMERALD, Text{ "Kokiri's Emerald", "Émeraude Kokiri", "Kokiri-Smaragd" }, ITEMTYPE_DUNGEONREWARD, 0xCB, true, LOGIC_KOKIRI_EMERALD, RHT_KOKIRI_EMERALD, ITEM_KOKIRI_EMERALD, OBJECT_GI_JEWEL, GID_KOKIRI_EMERALD, 0x80, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_KOKIRI_EMERALD, ITEMTYPE_DUNGEONREWARD, 0xCB, LOGIC_KOKIRI_EMERALD, RHT_KOKIRI_EMERALD, ITEM_KOKIRI_EMERALD, OBJECT_GI_JEWEL, GID_KOKIRI_EMERALD, 0x80, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_GORON_RUBY] = Item(RG_GORON_RUBY, Text{ "Goron's Ruby", "Rubis Goron", "Goronen-Rubin" }, ITEMTYPE_DUNGEONREWARD, 0xCC, true, LOGIC_GORON_RUBY, RHT_GORON_RUBY, ITEM_GORON_RUBY, OBJECT_GI_JEWEL, GID_GORON_RUBY, 0x81, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_GORON_RUBY, ITEMTYPE_DUNGEONREWARD, 0xCC, LOGIC_GORON_RUBY, RHT_GORON_RUBY, ITEM_GORON_RUBY, OBJECT_GI_JEWEL, GID_GORON_RUBY, 0x81, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_ZORA_SAPPHIRE] = Item(RG_ZORA_SAPPHIRE, Text{ "Zora's Sapphire", "Saphir Zora", "Zora-Saphir" }, ITEMTYPE_DUNGEONREWARD, 0xCD, true, LOGIC_ZORA_SAPPHIRE, RHT_ZORA_SAPPHIRE, ITEM_ZORA_SAPPHIRE, OBJECT_GI_JEWEL, GID_ZORA_SAPPHIRE, 0x82, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_ZORA_SAPPHIRE, ITEMTYPE_DUNGEONREWARD, 0xCD, LOGIC_ZORA_SAPPHIRE, RHT_ZORA_SAPPHIRE, ITEM_ZORA_SAPPHIRE, OBJECT_GI_JEWEL, GID_ZORA_SAPPHIRE, 0x82, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_FOREST_MEDALLION] = Item(RG_FOREST_MEDALLION, Text{ "Forest Medallion", "Médaillon de la Forêt", "Amulett des Waldes" }, ITEMTYPE_DUNGEONREWARD, 0xCE, true, LOGIC_FOREST_MEDALLION, RHT_FOREST_MEDALLION, ITEM_MEDALLION_FOREST, OBJECT_GI_MEDAL, GID_MEDALLION_FOREST, 0x3E, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_FOREST_MEDALLION, ITEMTYPE_DUNGEONREWARD, 0xCE, LOGIC_FOREST_MEDALLION, RHT_FOREST_MEDALLION, ITEM_MEDALLION_FOREST, OBJECT_GI_MEDAL, GID_MEDALLION_FOREST, 0x3E, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_FIRE_MEDALLION] = Item(RG_FIRE_MEDALLION, Text{ "Fire Medallion", "Médaillon du Feu", "Amulett des Feuers" }, ITEMTYPE_DUNGEONREWARD, 0xCF, true, LOGIC_FIRE_MEDALLION, RHT_FIRE_MEDALLION, ITEM_MEDALLION_FIRE, OBJECT_GI_MEDAL, GID_MEDALLION_FIRE, 0x3C, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_FIRE_MEDALLION, ITEMTYPE_DUNGEONREWARD, 0xCF, LOGIC_FIRE_MEDALLION, RHT_FIRE_MEDALLION, ITEM_MEDALLION_FIRE, OBJECT_GI_MEDAL, GID_MEDALLION_FIRE, 0x3C, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_WATER_MEDALLION] = Item(RG_WATER_MEDALLION, Text{ "Water Medallion", "Médaillon de l'Eau", "Amulett des Wassers" }, ITEMTYPE_DUNGEONREWARD, 0xD0, true, LOGIC_WATER_MEDALLION, RHT_WATER_MEDALLION, ITEM_MEDALLION_WATER, OBJECT_GI_MEDAL, GID_MEDALLION_WATER, 0x3D, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_WATER_MEDALLION, ITEMTYPE_DUNGEONREWARD, 0xD0, LOGIC_WATER_MEDALLION, RHT_WATER_MEDALLION, ITEM_MEDALLION_WATER, OBJECT_GI_MEDAL, GID_MEDALLION_WATER, 0x3D, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_SPIRIT_MEDALLION] = Item(RG_SPIRIT_MEDALLION, Text{ "Spirit Medallion", "Médaillon de l'Esprit", "Amulett der Geister" }, ITEMTYPE_DUNGEONREWARD, 0xD1, true, LOGIC_SPIRIT_MEDALLION, RHT_SPIRIT_MEDALLION, ITEM_MEDALLION_SPIRIT, OBJECT_GI_MEDAL, GID_MEDALLION_SPIRIT, 0x3F, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_SPIRIT_MEDALLION, ITEMTYPE_DUNGEONREWARD, 0xD1, LOGIC_SPIRIT_MEDALLION, RHT_SPIRIT_MEDALLION, ITEM_MEDALLION_SPIRIT, OBJECT_GI_MEDAL, GID_MEDALLION_SPIRIT, 0x3F, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_SHADOW_MEDALLION] = Item(RG_SHADOW_MEDALLION, Text{ "Shadow Medallion", "Médaillon de l'Ombre", "Amulett des Schattens" }, ITEMTYPE_DUNGEONREWARD, 0xD2, true, LOGIC_SHADOW_MEDALLION, RHT_SHADOW_MEDALLION, ITEM_MEDALLION_SHADOW, OBJECT_GI_MEDAL, GID_MEDALLION_SHADOW, 0x41, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_SHADOW_MEDALLION, ITEMTYPE_DUNGEONREWARD, 0xD2, LOGIC_SHADOW_MEDALLION, RHT_SHADOW_MEDALLION, ITEM_MEDALLION_SHADOW, OBJECT_GI_MEDAL, GID_MEDALLION_SHADOW, 0x41, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_LIGHT_MEDALLION] = Item(RG_LIGHT_MEDALLION, Text{ "Light Medallion", "Médaillon de la Lumière", "Amulett des Lichts" }, ITEMTYPE_DUNGEONREWARD, 0xD3, true, LOGIC_LIGHT_MEDALLION, RHT_LIGHT_MEDALLION, ITEM_MEDALLION_LIGHT, OBJECT_GI_MEDAL, GID_MEDALLION_LIGHT, 0x40, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_LIGHT_MEDALLION, ITEMTYPE_DUNGEONREWARD, 0xD3, LOGIC_LIGHT_MEDALLION, RHT_LIGHT_MEDALLION, ITEM_MEDALLION_LIGHT, OBJECT_GI_MEDAL, GID_MEDALLION_LIGHT, 0x40, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
// Generic Items
|
// Generic Items
|
||||||
itemTable[RG_RECOVERY_HEART] = Item(RG_RECOVERY_HEART, Text{ "Recovery Heart", "Coeur de Vie", "Herz" }, ITEMTYPE_ITEM, GI_HEART, false, LOGIC_NONE, RHT_RECOVERY_HEART, ITEM_HEART, OBJECT_GI_HEART, GID_HEART, 0x55, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_RECOVERY_HEART, ITEMTYPE_ITEM, GI_HEART, LOGIC_NONE, RHT_RECOVERY_HEART, ITEM_HEART, OBJECT_GI_HEART, GID_HEART, 0x55, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_GREEN_RUPEE] = Item(RG_GREEN_RUPEE, Text{ "Green Rupee", "Rubis Vert", "Grüner Rubin" }, ITEMTYPE_ITEM, GI_RUPEE_GREEN, false, LOGIC_NONE, RHT_GREEN_RUPEE, ITEM_RUPEE_GREEN, OBJECT_GI_RUPY, GID_RUPEE_GREEN, 0x6F, 0x00, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_GREEN_RUPEE, ITEMTYPE_ITEM, GI_RUPEE_GREEN, LOGIC_NONE, RHT_GREEN_RUPEE, ITEM_RUPEE_GREEN, OBJECT_GI_RUPY, GID_RUPEE_GREEN, 0x6F, 0x00, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_GREG_RUPEE] = Item(RG_GREG_RUPEE, Text{ "Greg the Green Rupee", "Rubis Greg", "Greg der grüne Rubin" }, ITEMTYPE_ITEM, GI_RUPEE_GREEN, true, LOGIC_GREG, RHT_GREG_RUPEE, RG_GREG_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GREEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_GREG_RUPEE, ITEMTYPE_ITEM, GI_RUPEE_GREEN, LOGIC_GREG, RHT_GREG_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GREEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BLUE_RUPEE] = Item(RG_BLUE_RUPEE, Text{ "Blue Rupee", "Rubis Bleu", "Blauer Rubin" }, ITEMTYPE_ITEM, GI_RUPEE_BLUE, false, LOGIC_NONE, RHT_BLUE_RUPEE, ITEM_RUPEE_BLUE, OBJECT_GI_RUPY, GID_RUPEE_BLUE, 0xCC, 0x01, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_BLUE_RUPEE, ITEMTYPE_ITEM, GI_RUPEE_BLUE, LOGIC_NONE, RHT_BLUE_RUPEE, ITEM_RUPEE_BLUE, OBJECT_GI_RUPY, GID_RUPEE_BLUE, 0xCC, 0x01, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_RED_RUPEE] = Item(RG_RED_RUPEE, Text{ "Red Rupee", "Rubis Rouge", "Roter Rubin" }, ITEMTYPE_ITEM, GI_RUPEE_RED, false, LOGIC_NONE, RHT_RED_RUPEE, ITEM_RUPEE_RED, OBJECT_GI_RUPY, GID_RUPEE_RED, 0xF0, 0x02, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_RED_RUPEE, ITEMTYPE_ITEM, GI_RUPEE_RED, LOGIC_NONE, RHT_RED_RUPEE, ITEM_RUPEE_RED, OBJECT_GI_RUPY, GID_RUPEE_RED, 0xF0, 0x02, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_PURPLE_RUPEE] = Item(RG_PURPLE_RUPEE, Text{ "Purple Rupee", "Rubis Pourpre", "Violetter Rubin" }, ITEMTYPE_ITEM, GI_RUPEE_PURPLE, false, LOGIC_NONE, RHT_PURPLE_RUPEE, ITEM_RUPEE_PURPLE, OBJECT_GI_RUPY, GID_RUPEE_PURPLE, 0xF1, 0x14, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_PURPLE_RUPEE, ITEMTYPE_ITEM, GI_RUPEE_PURPLE, LOGIC_NONE, RHT_PURPLE_RUPEE, ITEM_RUPEE_PURPLE, OBJECT_GI_RUPY, GID_RUPEE_PURPLE, 0xF1, 0x14, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_HUGE_RUPEE] = Item(RG_HUGE_RUPEE, Text{ "Huge Rupee", "Énorme Rubis", "Goldener Rubin" }, ITEMTYPE_ITEM, GI_RUPEE_GOLD, false, LOGIC_NONE, RHT_HUGE_RUPEE, ITEM_RUPEE_GOLD, OBJECT_GI_RUPY, GID_RUPEE_GOLD, 0xF2, 0x13, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_HUGE_RUPEE, ITEMTYPE_ITEM, GI_RUPEE_GOLD, LOGIC_NONE, RHT_HUGE_RUPEE, ITEM_RUPEE_GOLD, OBJECT_GI_RUPY, GID_RUPEE_GOLD, 0xF2, 0x13, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_PIECE_OF_HEART] = Item(RG_PIECE_OF_HEART, Text{ "Piece of Heart", "Quart de Coeur", "Herzteil" }, ITEMTYPE_ITEM, GI_HEART_PIECE, true, LOGIC_PIECE_OF_HEART, RHT_PIECE_OF_HEART, ITEM_HEART_PIECE_2, OBJECT_GI_HEARTS, GID_HEART_PIECE, 0xC2, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_PIECE_OF_HEART, ITEMTYPE_ITEM, GI_HEART_PIECE, LOGIC_PIECE_OF_HEART, RHT_PIECE_OF_HEART, ITEM_HEART_PIECE_2, OBJECT_GI_HEARTS, GID_HEART_PIECE, 0xC2, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_HEART_CONTAINER] = Item(RG_HEART_CONTAINER, Text{ "Heart Container", "Réceptacle de Coeur", "Herzcontainer" }, ITEMTYPE_ITEM, GI_HEART_CONTAINER_2, true, LOGIC_HEART_CONTAINER, RHT_HEART_CONTAINER, ITEM_HEART_CONTAINER, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, 0xC6, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_HEART_CONTAINER, ITEMTYPE_ITEM, GI_HEART_CONTAINER_2, LOGIC_HEART_CONTAINER, RHT_HEART_CONTAINER, ITEM_HEART_CONTAINER, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, 0xC6, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_ICE_TRAP] = Item(RG_ICE_TRAP, Text{ "Ice Trap", "Piège de Glace", "Eisfalle" }, ITEMTYPE_ITEM, RG_ICE_TRAP, false, LOGIC_NONE, RHT_ICE_TRAP, RG_ICE_TRAP, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_ICE_TRAP, ITEMTYPE_ITEM, RG_ICE_TRAP, LOGIC_NONE, RHT_ICE_TRAP, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_MILK] = Item(RG_MILK, Text{ "Milk", "Lait", "Lon Lon-Milch" }, ITEMTYPE_ITEM, GI_MILK, false, LOGIC_NONE, RHT_NONE, ITEM_MILK, OBJECT_GI_MILK, GID_MILK, 0x98, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_MILK, ITEMTYPE_ITEM, GI_MILK, LOGIC_NONE, RHT_MILK, ITEM_MILK, OBJECT_GI_MILK, GID_MILK, 0x98, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_FISH] = Item(RG_FISH, Text{ "Fish", "Poisson", "Fisch" }, ITEMTYPE_ITEM, GI_FISH, false, LOGIC_NONE, RHT_NONE, ITEM_FISH, OBJECT_GI_FISH, GID_FISH, 0x47, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_FISH, ITEMTYPE_ITEM, GI_FISH, LOGIC_NONE, RHT_FISH, ITEM_FISH, OBJECT_GI_FISH, GID_FISH, 0x47, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
// Refills
|
// Refills
|
||||||
itemTable[RG_BOMBS_5] = Item(RG_BOMBS_5, Text{ "Bombs (5)", "Bombes (5)", "Bomben (5)" }, ITEMTYPE_REFILL, GI_BOMBS_5, false, LOGIC_NONE, RHT_BOMBS_5, ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_BOMBS_5, ITEMTYPE_REFILL, GI_BOMBS_5, LOGIC_NONE, RHT_BOMBS_5, ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_BOMBS_10] = Item(RG_BOMBS_10, Text{ "Bombs (10)", "Bombes (10)", "Bomben (10)" }, ITEMTYPE_REFILL, GI_BOMBS_10, false, LOGIC_NONE, RHT_BOMBS_10, ITEM_BOMBS_10, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_BOMBS_10, ITEMTYPE_REFILL, GI_BOMBS_10, LOGIC_NONE, RHT_BOMBS_10, ITEM_BOMBS_10, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_BOMBS_20] = Item(RG_BOMBS_20, Text{ "Bombs (20)", "Bombes (20)", "Bomben (20)" }, ITEMTYPE_REFILL, GI_BOMBS_20, false, LOGIC_NONE, RHT_BOMBS_20, ITEM_BOMBS_20, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_BOMBS_20, ITEMTYPE_REFILL, GI_BOMBS_20, LOGIC_NONE, RHT_BOMBS_20, ITEM_BOMBS_20, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_BOMBCHU_5] = Item(RG_BOMBCHU_5, Text{ "Bombchus (5)", "Missiles (5)", "Krabbelminen (5)" }, ITEMTYPE_REFILL, GI_BOMBCHUS_5, true, LOGIC_BOMBCHUS, RHT_BOMBCHUS_5, ITEM_BOMBCHUS_5, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_BOMBCHU_5, ITEMTYPE_REFILL, GI_BOMBCHUS_5, LOGIC_BOMBCHUS, RHT_BOMBCHUS_5, ITEM_BOMBCHUS_5, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_BOMBCHU_10] = Item(RG_BOMBCHU_10, Text{ "Bombchus (10)", "Missiles (10)", "Krabbelminen (10)" }, ITEMTYPE_REFILL, GI_BOMBCHUS_10, true, LOGIC_BOMBCHUS, RHT_BOMBCHUS_10, ITEM_BOMBCHU, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_BOMBCHU_10, ITEMTYPE_REFILL, GI_BOMBCHUS_10, LOGIC_BOMBCHUS, RHT_BOMBCHUS_10, ITEM_BOMBCHU, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_BOMBCHU_20] = Item(RG_BOMBCHU_20, Text{ "Bombchus (20)", "Missiles (20)", "Krabbelminen (20)" }, ITEMTYPE_REFILL, GI_BOMBCHUS_20, true, LOGIC_BOMBCHUS, RHT_BOMBCHUS_20, ITEM_BOMBCHUS_20, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_BOMBCHU_20, ITEMTYPE_REFILL, GI_BOMBCHUS_20, LOGIC_BOMBCHUS, RHT_BOMBCHUS_20, ITEM_BOMBCHUS_20, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 0, Randomizer_DrawBombchuBagInLogic);
|
||||||
itemTable[RG_BOMBCHU_20].SetCustomDrawFunc(Randomizer_DrawBombchuBagInLogic);
|
AddItem(RG_ARROWS_5, ITEMTYPE_REFILL, GI_ARROWS_SMALL, LOGIC_NONE, RHT_ARROWS_5, ITEM_ARROWS_SMALL, OBJECT_GI_ARROW, GID_ARROWS_SMALL, 0xE6, 0x48, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_ARROWS_5] = Item(RG_ARROWS_5, Text{ "Arrows (5)", "Flèches (5)", "Pfeile (5)" }, ITEMTYPE_REFILL, GI_ARROWS_SMALL, false, LOGIC_NONE, RHT_ARROWS_5, ITEM_ARROWS_SMALL, OBJECT_GI_ARROW, GID_ARROWS_SMALL, 0xE6, 0x48, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_ARROWS_10, ITEMTYPE_REFILL, GI_ARROWS_MEDIUM, LOGIC_NONE, RHT_ARROWS_10, ITEM_ARROWS_MEDIUM, OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, 0xE6, 0x49, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_ARROWS_10] = Item(RG_ARROWS_10, Text{ "Arrows (10)", "Flèches (10)", "Pfeile (10)" }, ITEMTYPE_REFILL, GI_ARROWS_MEDIUM, false, LOGIC_NONE, RHT_ARROWS_10, ITEM_ARROWS_MEDIUM, OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, 0xE6, 0x49, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_ARROWS_30, ITEMTYPE_REFILL, GI_ARROWS_LARGE, LOGIC_NONE, RHT_ARROWS_30, ITEM_ARROWS_LARGE, OBJECT_GI_ARROW, GID_ARROWS_LARGE, 0xE6, 0x4A, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_ARROWS_30] = Item(RG_ARROWS_30, Text{ "Arrows (30)", "Flèches (30)", "Pfeile (30)" }, ITEMTYPE_REFILL, GI_ARROWS_LARGE, false, LOGIC_NONE, RHT_ARROWS_30, ITEM_ARROWS_LARGE, OBJECT_GI_ARROW, GID_ARROWS_LARGE, 0xE6, 0x4A, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_DEKU_NUTS_5, ITEMTYPE_REFILL, GI_NUTS_5, LOGIC_NONE, RHT_DEKU_NUTS_5, ITEM_NUTS_5, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_DEKU_NUTS_5] = Item(RG_DEKU_NUTS_5, Text{ "Deku Nuts (5)", "Noix Mojo (5)", "Deku-Nüsse (5)" }, ITEMTYPE_REFILL, GI_NUTS_5, false, LOGIC_NONE, RHT_DEKU_NUTS_5, ITEM_NUTS_5, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_DEKU_NUTS_10, ITEMTYPE_REFILL, GI_NUTS_10, LOGIC_NONE, RHT_DEKU_NUTS_10, ITEM_NUTS_10, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_DEKU_NUTS_10] = Item(RG_DEKU_NUTS_10, Text{ "Deku Nuts (10)", "Noix Mojo (10)", "Deku-Nüsse (10)" }, ITEMTYPE_REFILL, GI_NUTS_10, false, LOGIC_NONE, RHT_DEKU_NUTS_10, ITEM_NUTS_10, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_DEKU_SEEDS_30, ITEMTYPE_REFILL, GI_SEEDS_30, LOGIC_NONE, RHT_DEKU_SEEDS_30, ITEM_SEEDS_30, OBJECT_GI_SEED, GID_SEEDS, 0xDC, 0x50, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_DEKU_SEEDS_30] = Item(RG_DEKU_SEEDS_30, Text{ "Deku Seeds (30)", "Graines Mojo (30)", "Deku-Kerne (30)" }, ITEMTYPE_REFILL, GI_SEEDS_30, false, LOGIC_NONE, RHT_DEKU_SEEDS_30, ITEM_SEEDS_30, OBJECT_GI_SEED, GID_SEEDS, 0xDC, 0x50, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_DEKU_STICK_1, ITEMTYPE_REFILL, GI_STICKS_1, LOGIC_NONE, RHT_DEKU_STICK_1, ITEM_STICK, OBJECT_GI_STICK, GID_STICK, 0x37, 0x0D, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_DEKU_STICK_1] = Item(RG_DEKU_STICK_1, Text{ "Deku Stick (1)", "Bâton Mojo (1)", "Deku-Stab (1)" }, ITEMTYPE_REFILL, GI_STICKS_1, false, LOGIC_NONE, RHT_DEKU_STICK_1, ITEM_STICK, OBJECT_GI_STICK, GID_STICK, 0x37, 0x0D, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_RED_POTION_REFILL, ITEMTYPE_REFILL, GI_POTION_RED, LOGIC_NONE, RHT_RED_POTION_REFILL, ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_RED_POTION_REFILL] = Item(RG_RED_POTION_REFILL, Text{ "Red Potion Refill", "Recharge de Potion Rouge", "Rotes Elixier" }, ITEMTYPE_REFILL, GI_POTION_RED, false, LOGIC_NONE, RHT_NONE, ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_GREEN_POTION_REFILL, ITEMTYPE_REFILL, GI_POTION_GREEN, LOGIC_NONE, RHT_GREEN_POTION_REFILL, ITEM_POTION_GREEN, OBJECT_GI_LIQUID, GID_POTION_GREEN, 0x44, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_GREEN_POTION_REFILL] = Item(RG_GREEN_POTION_REFILL, Text{ "Green Potion Refill", "Recharge de Potion Verte", "Grünes Elixier" }, ITEMTYPE_REFILL, GI_POTION_GREEN, false, LOGIC_NONE, RHT_NONE, ITEM_POTION_GREEN, OBJECT_GI_LIQUID, GID_POTION_GREEN, 0x44, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
AddItem(RG_BLUE_POTION_REFILL, ITEMTYPE_REFILL, GI_POTION_BLUE, LOGIC_NONE, RHT_BLUE_POTION_REFILL, ITEM_POTION_BLUE, OBJECT_GI_LIQUID, GID_POTION_BLUE, 0x45, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_BLUE_POTION_REFILL] = Item(RG_BLUE_POTION_REFILL, Text{ "Blue Potion Refill", "Recharge de Potion Bleue", "Blaues Elixier" }, ITEMTYPE_REFILL, GI_POTION_BLUE, false, LOGIC_NONE, RHT_NONE, ITEM_POTION_BLUE, OBJECT_GI_LIQUID, GID_POTION_BLUE, 0x45, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
|
||||||
// Treasure Game
|
// Treasure Game
|
||||||
itemTable[RG_TREASURE_GAME_HEART] = Item(RG_TREASURE_GAME_HEART, Text{ "Piece of Heart (WINNER)", "Quart de Coeur (Chasse-aux-Trésors)", "Herzteil (Truhenlotterie)" }, ITEMTYPE_ITEM, GI_HEART_PIECE_WIN, true, LOGIC_PIECE_OF_HEART, RHT_TREASURE_GAME_HEART, ITEM_HEART_PIECE_2, OBJECT_GI_HEARTS, GID_HEART_PIECE, 0xFA, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_TCG_PIECE_OF_HEART, ITEMTYPE_ITEM, GI_HEART_PIECE_WIN, LOGIC_PIECE_OF_HEART, RHT_TCG_PIECE_OF_HEART, ITEM_HEART_PIECE_2, OBJECT_GI_HEARTS, GID_HEART_PIECE, 0xFA, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_TREASURE_GAME_GREEN_RUPEE] = Item(RG_TREASURE_GAME_GREEN_RUPEE, Text{ "Green Rupee (LOSER)", "Rubis Vert (Chasse-aux-Trésors)", "Grüner Rubin (Truhenlotterie)" }, ITEMTYPE_ITEM, GI_RUPEE_GREEN_LOSE, false, LOGIC_NONE, RHT_TREASURE_GAME_GREEN_RUPEE, ITEM_RUPEE_GREEN, OBJECT_GI_RUPY, GID_RUPEE_GREEN, 0xF4, 0x00, CHEST_ANIM_SHORT, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_LOSER_GREEN_RUPEE, ITEMTYPE_ITEM, GI_RUPEE_GREEN_LOSE, LOGIC_NONE, RHT_LOSER_GREEN_RUPEE, ITEM_RUPEE_GREEN, OBJECT_GI_RUPY, GID_RUPEE_GREEN, 0xF4, 0x00, CHEST_ANIM_SHORT, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
// Shop
|
// Shop
|
||||||
itemTable[RG_BUY_DEKU_NUTS_5] = Item(RG_BUY_DEKU_NUTS_5, Text{ "Buy Deku Nut (5)", "Acheter: Noix Mojo (5)", "Deku-Nüsse kaufen (5)" }, ITEMTYPE_SHOP, GI_NUTS_5_2, true, LOGIC_BUY_NUTS, RHT_DEKU_NUTS_5, ITEM_NUTS_5, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 15);
|
AddItem(RG_BUY_DEKU_NUTS_5, ITEMTYPE_SHOP, GI_NUTS_5_2, LOGIC_BUY_NUTS, RHT_BUY_DEKU_NUTS_5, ITEM_NUTS_5, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 15);
|
||||||
itemTable[RG_BUY_ARROWS_30] = Item(RG_BUY_ARROWS_30, Text{ "Buy Arrows (30)", "Acheter: Flèches (30)", "Pfeile kaufen (30)" }, ITEMTYPE_SHOP, GI_ARROWS_MEDIUM, true, LOGIC_BUY_ARROW, RHT_ARROWS_30, ITEM_ARROWS_MEDIUM, OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, 0xE6, 0x49, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 60);
|
AddItem(RG_BUY_ARROWS_30, ITEMTYPE_SHOP, GI_ARROWS_MEDIUM, LOGIC_BUY_ARROW, RHT_BUY_ARROWS_30, ITEM_ARROWS_MEDIUM, OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, 0xE6, 0x49, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 60);
|
||||||
itemTable[RG_BUY_ARROWS_50] = Item(RG_BUY_ARROWS_50, Text{ "Buy Arrows (50)", "Acheter: Flèches (50)", "Pfeile kaufen (50)" }, ITEMTYPE_SHOP, GI_ARROWS_LARGE, true, LOGIC_BUY_ARROW, RHT_ARROWS_30, ITEM_ARROWS_LARGE, OBJECT_GI_ARROW, GID_ARROWS_LARGE, 0xE6, 0x4A, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 90);
|
AddItem(RG_BUY_ARROWS_50, ITEMTYPE_SHOP, GI_ARROWS_LARGE, LOGIC_BUY_ARROW, RHT_BUY_ARROWS_50, ITEM_ARROWS_LARGE, OBJECT_GI_ARROW, GID_ARROWS_LARGE, 0xE6, 0x4A, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 90);
|
||||||
itemTable[RG_BUY_BOMBS_525] = Item(RG_BUY_BOMBS_525, Text{ "Buy Bombs (5) [25]", "Acheter: Bombes (5) [25]", "Bomben kaufen (5) [25]" }, ITEMTYPE_SHOP, GI_BOMBS_5, true, LOGIC_BUY_BOMB, RHT_BOMBS_5, ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 25);
|
AddItem(RG_BUY_BOMBS_525, ITEMTYPE_SHOP, GI_BOMBS_5, LOGIC_BUY_BOMB, RHT_BUY_BOMBS_525, ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 25);
|
||||||
itemTable[RG_BUY_DEKU_NUTS_10] = Item(RG_BUY_DEKU_NUTS_10, Text{ "Buy Deku Nut (10)", "Acheter: Noix Mojo (10)", "Deku-Nüsse kaufen (10)" }, ITEMTYPE_SHOP, GI_NUTS_10, true, LOGIC_BUY_NUTS, RHT_DEKU_NUTS_10, ITEM_NUTS_10, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 30);
|
AddItem(RG_BUY_DEKU_NUTS_10, ITEMTYPE_SHOP, GI_NUTS_10, LOGIC_BUY_NUTS, RHT_BUY_DEKU_NUTS_10, ITEM_NUTS_10, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 30);
|
||||||
itemTable[RG_BUY_DEKU_STICK_1] = Item(RG_BUY_DEKU_STICK_1, Text{ "Buy Deku Stick (1)", "Acheter: Bâton Mojo (1)", "Deku-Stab kaufen (1)" }, ITEMTYPE_SHOP, GI_STICKS_1, true, LOGIC_BUY_STICKS, RHT_DEKU_STICK_1, ITEM_STICK, OBJECT_GI_STICK, GID_STICK, 0x37, 0x0D, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 10);
|
AddItem(RG_BUY_DEKU_STICK_1, ITEMTYPE_SHOP, GI_STICKS_1, LOGIC_BUY_STICKS, RHT_BUY_DEKU_STICK_1, ITEM_STICK, OBJECT_GI_STICK, GID_STICK, 0x37, 0x0D, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 10);
|
||||||
itemTable[RG_BUY_BOMBS_10] = Item(RG_BUY_BOMBS_10, Text{ "Buy Bombs (10)", "Acheter: Bombes (10)", "Bomben kaufen (10)" }, ITEMTYPE_SHOP, GI_BOMBS_10, true, LOGIC_BUY_BOMB, RHT_BOMBS_10, ITEM_BOMBS_10, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 50);
|
AddItem(RG_BUY_BOMBS_10, ITEMTYPE_SHOP, GI_BOMBS_10, LOGIC_BUY_BOMB, RHT_BUY_BOMBS_10, ITEM_BOMBS_10, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 50);
|
||||||
itemTable[RG_BUY_FISH] = Item(RG_BUY_FISH, Text{ "Buy Fish", "Acheter: Poisson", "Fisch kaufen" }, ITEMTYPE_SHOP, GI_FISH, true, LOGIC_FISH_ACCESS, RHT_BOTTLE_WITH_FISH, ITEM_FISH, OBJECT_GI_FISH, GID_FISH, 0x47, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 200);
|
AddItem(RG_BUY_FISH, ITEMTYPE_SHOP, GI_FISH, LOGIC_FISH_ACCESS, RHT_BUY_FISH, ITEM_FISH, OBJECT_GI_FISH, GID_FISH, 0x47, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 200);
|
||||||
itemTable[RG_BUY_RED_POTION_30] = Item(RG_BUY_RED_POTION_30, Text{ "Buy Red Potion [30]", "Acheter: Potion Rouge [30]", "Rotes Elixier kaufen [30]" }, ITEMTYPE_SHOP, GI_POTION_RED, false, LOGIC_NONE, RHT_BOTTLE_WITH_RED_POTION, ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 30);
|
AddItem(RG_BUY_RED_POTION_30, ITEMTYPE_SHOP, GI_POTION_RED, LOGIC_NONE, RHT_BUY_RED_POTION_30, ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 30);
|
||||||
itemTable[RG_BUY_GREEN_POTION] = Item(RG_BUY_GREEN_POTION, Text{ "Buy Green Potion", "Acheter: Potion Verte", "Grünes Elixier kaufen" }, ITEMTYPE_SHOP, GI_POTION_GREEN, true, LOGIC_BUY_MAGIC_POTION, RHT_BOTTLE_WITH_GREEN_POTION, ITEM_POTION_GREEN, OBJECT_GI_LIQUID, GID_POTION_GREEN, 0x44, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 30);
|
AddItem(RG_BUY_GREEN_POTION, ITEMTYPE_SHOP, GI_POTION_GREEN, LOGIC_BUY_MAGIC_POTION, RHT_BUY_GREEN_POTION, ITEM_POTION_GREEN, OBJECT_GI_LIQUID, GID_POTION_GREEN, 0x44, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 30);
|
||||||
itemTable[RG_BUY_BLUE_POTION] = Item(RG_BUY_BLUE_POTION, Text{ "Buy Blue Potion", "Acheter: Potion Bleue", "Blaues Elixier kaufen" }, ITEMTYPE_SHOP, GI_POTION_BLUE, true, LOGIC_BUY_MAGIC_POTION, RHT_BOTTLE_WITH_BLUE_POTION, ITEM_POTION_BLUE, OBJECT_GI_LIQUID, GID_POTION_BLUE, 0x45, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 100);
|
AddItem(RG_BUY_BLUE_POTION, ITEMTYPE_SHOP, GI_POTION_BLUE, LOGIC_BUY_MAGIC_POTION, RHT_BUY_BLUE_POTION, ITEM_POTION_BLUE, OBJECT_GI_LIQUID, GID_POTION_BLUE, 0x45, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 100);
|
||||||
itemTable[RG_BUY_HYLIAN_SHIELD] = Item(RG_BUY_HYLIAN_SHIELD, Text{ "Buy Hylian Shield", "Acheter: Bouclier Hylien", "Hylia-Schild kaufen" }, ITEMTYPE_SHOP, GI_SHIELD_HYLIAN, true, LOGIC_HYLIAN_SHIELD, RHT_HYLIAN_SHIELD, ITEM_SHIELD_HYLIAN, OBJECT_GI_SHIELD_2, GID_SHIELD_HYLIAN, 0x4D, 0xA0, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE, false, 80);
|
AddItem(RG_BUY_HYLIAN_SHIELD, ITEMTYPE_SHOP, GI_SHIELD_HYLIAN, LOGIC_HYLIAN_SHIELD, RHT_BUY_HYLIAN_SHIELD, ITEM_SHIELD_HYLIAN, OBJECT_GI_SHIELD_2, GID_SHIELD_HYLIAN, 0x4D, 0xA0, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE, 80);
|
||||||
itemTable[RG_BUY_DEKU_SHIELD] = Item(RG_BUY_DEKU_SHIELD, Text{ "Buy Deku Shield", "Acheter: Bouclier Mojo", "Deku-Schild kaufen" }, ITEMTYPE_SHOP, GI_SHIELD_DEKU, true, LOGIC_DEKU_SHIELD, RHT_DEKU_SHIELD, ITEM_SHIELD_DEKU, OBJECT_GI_SHIELD_1, GID_SHIELD_DEKU, 0x4C, 0xA0, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE, false, 40);
|
AddItem(RG_BUY_DEKU_SHIELD, ITEMTYPE_SHOP, GI_SHIELD_DEKU, LOGIC_DEKU_SHIELD, RHT_BUY_DEKU_SHIELD, ITEM_SHIELD_DEKU, OBJECT_GI_SHIELD_1, GID_SHIELD_DEKU, 0x4C, 0xA0, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE, 40);
|
||||||
itemTable[RG_BUY_GORON_TUNIC] = Item(RG_BUY_GORON_TUNIC, Text{ "Buy Goron Tunic", "Acheter: Tunique Goron", "Goronen-Rüstung kaufen" }, ITEMTYPE_SHOP, GI_TUNIC_GORON, true, LOGIC_GORON_TUNIC, RHT_GORON_TUNIC, ITEM_TUNIC_GORON, OBJECT_GI_CLOTHES, GID_TUNIC_GORON, 0x50, 0xA0, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE, false, 200);
|
AddItem(RG_BUY_GORON_TUNIC, ITEMTYPE_SHOP, GI_TUNIC_GORON, LOGIC_GORON_TUNIC, RHT_BUY_GORON_TUNIC, ITEM_TUNIC_GORON, OBJECT_GI_CLOTHES, GID_TUNIC_GORON, 0x50, 0xA0, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE, 200);
|
||||||
itemTable[RG_BUY_ZORA_TUNIC] = Item(RG_BUY_ZORA_TUNIC, Text{ "Buy Zora Tunic", "Acheter: Tunique Zora", "Zora-Rüstung kaufen" }, ITEMTYPE_SHOP, GI_TUNIC_ZORA, true, LOGIC_ZORA_TUNIC, RHT_ZORA_TUNIC, ITEM_TUNIC_ZORA, OBJECT_GI_CLOTHES, GID_TUNIC_ZORA, 0x51, 0xA0, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE, false, 300);
|
AddItem(RG_BUY_ZORA_TUNIC, ITEMTYPE_SHOP, GI_TUNIC_ZORA, LOGIC_ZORA_TUNIC, RHT_BUY_ZORA_TUNIC, ITEM_TUNIC_ZORA, OBJECT_GI_CLOTHES, GID_TUNIC_ZORA, 0x51, 0xA0, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE, 300);
|
||||||
itemTable[RG_BUY_HEART] = Item(RG_BUY_HEART, Text{ "Buy Heart", "Acheter: Coeur de Vie", "Herz kaufen" }, ITEMTYPE_SHOP, GI_HEART, false, LOGIC_NONE, RHT_RECOVERY_HEART, ITEM_HEART, OBJECT_GI_HEART, GID_HEART, 0x55, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 10);
|
AddItem(RG_BUY_HEART, ITEMTYPE_SHOP, GI_HEART, LOGIC_NONE, RHT_BUY_HEART, ITEM_HEART, OBJECT_GI_HEART, GID_HEART, 0x55, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 10);
|
||||||
itemTable[RG_BUY_BOMBCHUS_10] = Item(RG_BUY_BOMBCHUS_10, Text{ "Buy Bombchu (10)", "Acheter: Missiles (10)", "Krabbelminen kaufen (10)" }, ITEMTYPE_SHOP, GI_BOMBCHUS_10, true, LOGIC_BUY_BOMBCHUS, RHT_BOMBCHUS_10, ITEM_BOMBCHU, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 99);
|
AddItem(RG_BUY_BOMBCHUS_10, ITEMTYPE_SHOP, GI_BOMBCHUS_10, LOGIC_BUY_BOMBCHUS, RHT_BUY_BOMBCHUS_10, ITEM_BOMBCHU, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 99);
|
||||||
itemTable[RG_BUY_BOMBCHUS_20] = Item(RG_BUY_BOMBCHUS_20, Text{ "Buy Bombchu (20)", "Acheter: Missiles (20)", "Krabbelminen kaufen (20)" }, ITEMTYPE_SHOP, GI_BOMBCHUS_20, true, LOGIC_BUY_BOMBCHUS, RHT_BOMBCHUS_20, ITEM_BOMBCHUS_20, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 180);
|
AddItem(RG_BUY_BOMBCHUS_20, ITEMTYPE_SHOP, GI_BOMBCHUS_20, LOGIC_BUY_BOMBCHUS, RHT_BUY_BOMBCHUS_20, ITEM_BOMBCHUS_20, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 180);
|
||||||
itemTable[RG_BUY_DEKU_SEEDS_30] = Item(RG_BUY_DEKU_SEEDS_30, Text{ "Buy Deku Seeds (30)", "Acheter: Graines Mojo (30)", "Deku-Kerne kaufen (30)" }, ITEMTYPE_SHOP, GI_SEEDS_30, true, LOGIC_BUY_SEED, RHT_DEKU_SEEDS_30, ITEM_SEEDS_30, OBJECT_GI_SEED, GID_SEEDS, 0xDC, 0x50, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 30);
|
AddItem(RG_BUY_DEKU_SEEDS_30, ITEMTYPE_SHOP, GI_SEEDS_30, LOGIC_BUY_SEED, RHT_BUY_DEKU_SEEDS_30, ITEM_SEEDS_30, OBJECT_GI_SEED, GID_SEEDS, 0xDC, 0x50, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 30);
|
||||||
itemTable[RG_SOLD_OUT] = Item(RG_SOLD_OUT, Text{ "Sold Out", "Rupture de stock", "Ausverkauft" }, ITEMTYPE_SHOP, RG_SOLD_OUT, false, LOGIC_NONE, RHT_NONE, ITEM_CATEGORY_JUNK, false, 0);
|
AddItem(RG_SOLD_OUT, ITEMTYPE_SHOP, RG_SOLD_OUT, LOGIC_NONE, RHT_SOLD_OUT, ITEM_CATEGORY_JUNK, 0);
|
||||||
itemTable[RG_BUY_BLUE_FIRE] = Item(RG_BUY_BLUE_FIRE, Text{ "Buy Blue Fire", "Acheter: Flamme Bleue", "Blaues Feuer kaufen" }, ITEMTYPE_SHOP, GI_BLUE_FIRE, true, LOGIC_BLUE_FIRE_ACCESS, RHT_BOTTLE_WITH_BLUE_FIRE, ITEM_BLUE_FIRE, OBJECT_GI_FIRE, GID_BLUE_FIRE, 0x5D, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 300);
|
AddItem(RG_BUY_BLUE_FIRE, ITEMTYPE_SHOP, GI_BLUE_FIRE, LOGIC_BLUE_FIRE_ACCESS, RHT_BUY_BLUE_FIRE, ITEM_BLUE_FIRE, OBJECT_GI_FIRE, GID_BLUE_FIRE, 0x5D, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 300);
|
||||||
itemTable[RG_BUY_BOTTLE_BUG] = Item(RG_BUY_BOTTLE_BUG, Text{ "Buy Bottle Bug", "Acheter: Insecte en bouteille", "Käfer kaufen" }, ITEMTYPE_SHOP, GI_BUGS, true, LOGIC_BUGS_ACCESS, RHT_BOTTLE_WITH_BUGS, ITEM_BUG, OBJECT_GI_INSECT, GID_BUG, 0x7A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 50);
|
AddItem(RG_BUY_BOTTLE_BUG, ITEMTYPE_SHOP, GI_BUGS, LOGIC_BUGS_ACCESS, RHT_BUY_BOTTLE_BUG, ITEM_BUG, OBJECT_GI_INSECT, GID_BUG, 0x7A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 50);
|
||||||
itemTable[RG_BUY_POE] = Item(RG_BUY_POE, Text{ "Buy Poe", "Acheter: Esprit", "Irrlicht kaufen" }, ITEMTYPE_SHOP, RG_BUY_POE, false, LOGIC_NONE, RHT_BOTTLE_WITH_BIG_POE, ITEM_POE, OBJECT_GI_GHOST, GID_POE, 0x97, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 30);
|
AddItem(RG_BUY_POE, ITEMTYPE_SHOP, RG_BUY_POE, LOGIC_NONE, RHT_BUY_POE, ITEM_POE, OBJECT_GI_GHOST, GID_POE, 0x97, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 30);
|
||||||
itemTable[RG_BUY_FAIRYS_SPIRIT] = Item(RG_BUY_FAIRYS_SPIRIT, Text{ "Buy Fairy's Spirit", "Acheter: Esprit de Fée", "Fee kaufen" }, ITEMTYPE_SHOP, GI_FAIRY, true, LOGIC_FAIRY_ACCESS, RHT_BOTTLE_WITH_FAIRY, ITEM_FAIRY, OBJECT_GI_BOTTLE, GID_BOTTLE, 0x46, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 50);
|
AddItem(RG_BUY_FAIRYS_SPIRIT, ITEMTYPE_SHOP, GI_FAIRY, LOGIC_FAIRY_ACCESS, RHT_BUY_FAIRYS_SPIRIT, ITEM_FAIRY, OBJECT_GI_BOTTLE, GID_BOTTLE, 0x46, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 50);
|
||||||
itemTable[RG_BUY_ARROWS_10] = Item(RG_BUY_ARROWS_10, Text{ "Buy Arrows (10)", "Acheter: Flèches (10)", "Pfeile kaufen (10)" }, ITEMTYPE_SHOP, GI_ARROWS_SMALL, true, LOGIC_BUY_ARROW, RHT_ARROWS_10, ITEM_ARROWS_SMALL, OBJECT_GI_ARROW, GID_ARROWS_SMALL, 0xE6, 0x48, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 20);
|
AddItem(RG_BUY_ARROWS_10, ITEMTYPE_SHOP, GI_ARROWS_SMALL, LOGIC_BUY_ARROW, RHT_BUY_ARROWS_10, ITEM_ARROWS_SMALL, OBJECT_GI_ARROW, GID_ARROWS_SMALL, 0xE6, 0x48, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 20);
|
||||||
itemTable[RG_BUY_BOMBS_20] = Item(RG_BUY_BOMBS_20, Text{ "Buy Bombs (20)", "Acheter: Bombes (20)", "Bomben kaufen (20)" }, ITEMTYPE_SHOP, GI_BOMBS_20, true, LOGIC_BUY_BOMB, RHT_BOMBS_20, ITEM_BOMBS_20, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 80);
|
AddItem(RG_BUY_BOMBS_20, ITEMTYPE_SHOP, GI_BOMBS_20, LOGIC_BUY_BOMB, RHT_BUY_BOMBS_20, ITEM_BOMBS_20, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 80);
|
||||||
itemTable[RG_BUY_BOMBS_30] = Item(RG_BUY_BOMBS_30, Text{ "Buy Bombs (30)", "Acheter: Bombes (30)", "Bomben kaufen (30)" }, ITEMTYPE_SHOP, GI_BOMBS_30, true, LOGIC_BUY_BOMB, RHT_BOMBS_20, ITEM_BOMBS_30, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 120);
|
AddItem(RG_BUY_BOMBS_30, ITEMTYPE_SHOP, GI_BOMBS_30, LOGIC_BUY_BOMB, RHT_BUY_BOMBS_30, ITEM_BOMBS_30, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 120);
|
||||||
itemTable[RG_BUY_BOMBS_535] = Item(RG_BUY_BOMBS_535, Text{ "Buy Bombs (5) [35]", "Acheter: Bombes (5) [35]", "Bomben kaufen (5) [35]" }, ITEMTYPE_SHOP, GI_BOMBS_5, true, LOGIC_BUY_BOMB, RHT_BOMBS_5, ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, false, 35);
|
AddItem(RG_BUY_BOMBS_535, ITEMTYPE_SHOP, GI_BOMBS_5, LOGIC_BUY_BOMB, RHT_BUY_BOMBS_535, ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE, 35);
|
||||||
itemTable[RG_BUY_RED_POTION_40] = Item(RG_BUY_RED_POTION_40, Text{ "Buy Red Potion [40]", "Acheter: Potion Rouge [40]", "Rotes Elixier kaufen [40]" }, ITEMTYPE_SHOP, GI_POTION_RED, false, LOGIC_NONE, RHT_BOTTLE_WITH_RED_POTION, ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 40);
|
AddItem(RG_BUY_RED_POTION_40, ITEMTYPE_SHOP, GI_POTION_RED, LOGIC_NONE, RHT_BUY_RED_POTION_40, ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 40);
|
||||||
itemTable[RG_BUY_RED_POTION_50] = Item(RG_BUY_RED_POTION_50, Text{ "Buy Red Potion [50]", "Acheter: Potion Rouge [50]", "Rotes Elixier kaufen [50]" }, ITEMTYPE_SHOP, GI_POTION_RED, false, LOGIC_NONE, RHT_BOTTLE_WITH_RED_POTION, ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 50);
|
AddItem(RG_BUY_RED_POTION_50, ITEMTYPE_SHOP, GI_POTION_RED, LOGIC_NONE, RHT_BUY_RED_POTION_50, ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, 50);
|
||||||
// Misc.
|
// Misc.
|
||||||
itemTable[RG_GOHMA_SOUL] = Item(RG_GOHMA_SOUL, Text{ "Gohma's Soul", "Âme de Gohma", "Gohmas Seele" }, ITEMTYPE_ITEM, 0xE0, true, LOGIC_CAN_SUMMON_GOHMA, RHT_GOHMA_SOUL, RG_GOHMA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_GOHMA_SOUL, ITEMTYPE_ITEM, 0xE0, LOGIC_GOHMA_SOUL, RHT_GOHMA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_GOHMA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
AddItem(RG_KING_DODONGO_SOUL, ITEMTYPE_ITEM, 0xE1, LOGIC_KING_DODONGO_SOUL, RHT_KING_DODONGO_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_KING_DODONGO_SOUL] = Item(RG_KING_DODONGO_SOUL, Text{ "King Dodongo's Soul", "Âme du Roi Dodongo", "König Dodongos Seele" }, ITEMTYPE_ITEM, 0xE1, true, LOGIC_CAN_SUMMON_KINGDODONGO, RHT_KING_DODONGO_SOUL, RG_KING_DODONGO_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BARINADE_SOUL, ITEMTYPE_ITEM, 0xE2, LOGIC_BARINADE_SOUL, RHT_BARINADE_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_KING_DODONGO_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
AddItem(RG_PHANTOM_GANON_SOUL, ITEMTYPE_ITEM, 0xE3, LOGIC_PHANTOM_GANON_SOUL, RHT_PHANTOM_GANON_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_BARINADE_SOUL] = Item(RG_BARINADE_SOUL, Text{ "Barinade's Soul", "Âme de Barinade", "Barinades Seele" }, ITEMTYPE_ITEM, 0xE2, true, LOGIC_CAN_SUMMON_BARINADE, RHT_BARINADE_SOUL, RG_BARINADE_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_VOLVAGIA_SOUL, ITEMTYPE_ITEM, 0xE4, LOGIC_VOLVAGIA_SOUL, RHT_VOLVAGIA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_BARINADE_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
AddItem(RG_MORPHA_SOUL, ITEMTYPE_ITEM, 0xE5, LOGIC_MORPHA_SOUL, RHT_MORPHA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_PHANTOM_GANON_SOUL] = Item(RG_PHANTOM_GANON_SOUL, Text{ "Phantom Ganon's Soul", "Âme de Ganon Spectral", "Phantom-Ganons Seele" }, ITEMTYPE_ITEM, 0xE3, true, LOGIC_CAN_SUMMON_PHANTOMGANON, RHT_PHANTOM_GANON_SOUL, RG_PHANTOM_GANON_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BONGO_BONGO_SOUL, ITEMTYPE_ITEM, 0xE6, LOGIC_BONGO_BONGO_SOUL, RHT_BONGO_BONGO_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_PHANTOM_GANON_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
AddItem(RG_TWINROVA_SOUL, ITEMTYPE_ITEM, 0xE7, LOGIC_TWINROVA_SOUL, RHT_TWINROVA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_VOLVAGIA_SOUL] = Item(RG_VOLVAGIA_SOUL, Text{ "Volvagia's Soul", "Âme de Volcania", "Volvagias Seele" }, ITEMTYPE_ITEM, 0xE4, true, LOGIC_CAN_SUMMON_VOLVAGIA, RHT_VOLVAGIA_SOUL, RG_VOLVAGIA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_GANON_SOUL, ITEMTYPE_ITEM, 0xE8, LOGIC_GANON_SOUL, RHT_GANON_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_VOLVAGIA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
|
||||||
itemTable[RG_MORPHA_SOUL] = Item(RG_MORPHA_SOUL, Text{ "Morpha's Soul", "Âme de Morpha", "Morphas Seele" }, ITEMTYPE_ITEM, 0xE5, true, LOGIC_CAN_SUMMON_MORPHA, RHT_MORPHA_SOUL, RG_MORPHA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_MORPHA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
|
||||||
itemTable[RG_BONGO_BONGO_SOUL] = Item(RG_BONGO_BONGO_SOUL, Text{ "Bongo Bongo's Soul", "Âme de Bongo Bongo", "Bongo Bongos Seele" }, ITEMTYPE_ITEM, 0xE6, true, LOGIC_CAN_SUMMON_BONGOBONGO, RHT_BONGO_BONGO_SOUL, RG_BONGO_BONGO_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_BONGO_BONGO_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
|
||||||
itemTable[RG_TWINROVA_SOUL] = Item(RG_TWINROVA_SOUL, Text{ "Twinrova's Soul", "Âme du Duo Maléfique", "Twinrovas Seele" }, ITEMTYPE_ITEM, 0xE7, true, LOGIC_CAN_SUMMON_TWINROVA, RHT_TWINROVA_SOUL, RG_TWINROVA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_TWINROVA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
|
||||||
itemTable[RG_GANON_SOUL] = Item(RG_GANON_SOUL, Text{ "Ganon's Soul", "Âme de Ganon", "Ganons Seele" }, ITEMTYPE_ITEM, 0xE8, true, LOGIC_CAN_SUMMON_GANON, RHT_GANON_SOUL, RG_GANON_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_GANON_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
|
||||||
itemTable[RG_FISHING_POLE] = Item(RG_FISHING_POLE, Text{ "Fishing Pole", "Canne à Pêche", "Angelrute" }, ITEMTYPE_ITEM, RG_FISHING_POLE, true, LOGIC_FISHING_POLE, RHT_FISHING_POLE, RG_FISHING_POLE, OBJECT_GI_FISH, GID_FISHING_POLE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_FISHING_POLE].SetCustomDrawFunc(Randomizer_DrawFishingPoleGI);
|
|
||||||
|
|
||||||
itemTable[RG_OCARINA_A_BUTTON] = Item(RG_OCARINA_A_BUTTON, Text{ "Ocarina A Button", "Touche A de l'Ocarina", "A-Taste der Okarina" }, ITEMTYPE_ITEM, GI_MAP, true, LOGIC_OCARINA_A_BUTTON, RHT_OCARINA_A_BUTTON, RG_OCARINA_A_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_FISHING_POLE, ITEMTYPE_ITEM, RG_FISHING_POLE, LOGIC_FISHING_POLE, RHT_FISHING_POLE, OBJECT_GI_FISH, GID_FISHING_POLE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawFishingPoleGI);
|
||||||
itemTable[RG_OCARINA_A_BUTTON].SetCustomDrawFunc(Randomizer_DrawOcarinaButton);
|
|
||||||
itemTable[RG_OCARINA_C_UP_BUTTON] = Item(RG_OCARINA_C_UP_BUTTON, Text{ "Ocarina C Up Button", "Touche C-Haut de l'Ocarina", "C-Oben-Taste der Okarina" }, ITEMTYPE_ITEM, GI_MAP, true, LOGIC_OCARINA_C_UP_BUTTON, RHT_OCARINA_C_UP_BUTTON, RG_OCARINA_C_UP_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_OCARINA_C_UP_BUTTON].SetCustomDrawFunc(Randomizer_DrawOcarinaButton);
|
|
||||||
itemTable[RG_OCARINA_C_DOWN_BUTTON] = Item(RG_OCARINA_C_DOWN_BUTTON, Text{ "Ocarina C Down Button", "Touche C-Bas de l'Ocarina", "C-Unten-Taste der Okarina" }, ITEMTYPE_ITEM, GI_MAP, true, LOGIC_OCARINA_C_DOWN_BUTTON, RHT_OCARINA_C_DOWN_BUTTON, RG_OCARINA_C_DOWN_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_OCARINA_C_DOWN_BUTTON].SetCustomDrawFunc(Randomizer_DrawOcarinaButton);
|
|
||||||
itemTable[RG_OCARINA_C_LEFT_BUTTON] = Item(RG_OCARINA_C_LEFT_BUTTON, Text{ "Ocarina C Left Button", "Touche C-Gauche de l'Ocarina", "C-Links-Taste der Okarina" }, ITEMTYPE_ITEM, GI_MAP, true, LOGIC_OCARINA_C_LEFT_BUTTON, RHT_OCARINA_C_LEFT_BUTTON, RG_OCARINA_C_LEFT_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_OCARINA_C_LEFT_BUTTON].SetCustomDrawFunc(Randomizer_DrawOcarinaButton);
|
|
||||||
itemTable[RG_OCARINA_C_RIGHT_BUTTON] = Item(RG_OCARINA_C_RIGHT_BUTTON, Text{ "Ocarina C Right Button", "Touche C-Droit de l'Ocarina", "C-Rechts-Taste der Okarina" }, ITEMTYPE_ITEM, GI_MAP, true, LOGIC_OCARINA_C_RIGHT_BUTTON, RHT_OCARINA_C_RIGHT_BUTTON, RG_OCARINA_C_RIGHT_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
itemTable[RG_OCARINA_C_RIGHT_BUTTON].SetCustomDrawFunc(Randomizer_DrawOcarinaButton);
|
|
||||||
|
|
||||||
itemTable[RG_BRONZE_SCALE] = Item(RG_BRONZE_SCALE, Text{ "Bronze Scale", "Écaille de Bronze", "Bronzene Schuppe" }, ITEMTYPE_ITEM, GI_SCALE_SILVER, true, LOGIC_PROGRESSIVE_WALLET, RHT_BRONZE_SCALE, RG_BRONZE_SCALE, OBJECT_GI_SCALE, GID_SCALE_SILVER, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_OCARINA_A_BUTTON, ITEMTYPE_ITEM, GI_MAP, LOGIC_OCARINA_A_BUTTON, RHT_OCARINA_A_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawOcarinaButton);
|
||||||
itemTable[RG_BRONZE_SCALE].SetCustomDrawFunc(Randomizer_DrawBronzeScale);
|
AddItem(RG_OCARINA_C_UP_BUTTON, ITEMTYPE_ITEM, GI_MAP, LOGIC_OCARINA_C_UP_BUTTON, RHT_OCARINA_C_UP_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawOcarinaButton);
|
||||||
|
AddItem(RG_OCARINA_C_DOWN_BUTTON, ITEMTYPE_ITEM, GI_MAP, LOGIC_OCARINA_C_DOWN_BUTTON, RHT_OCARINA_C_DOWN_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawOcarinaButton);
|
||||||
|
AddItem(RG_OCARINA_C_LEFT_BUTTON, ITEMTYPE_ITEM, GI_MAP, LOGIC_OCARINA_C_LEFT_BUTTON, RHT_OCARINA_C_LEFT_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawOcarinaButton);
|
||||||
|
AddItem(RG_OCARINA_C_RIGHT_BUTTON, ITEMTYPE_ITEM, GI_MAP, LOGIC_OCARINA_C_RIGHT_BUTTON, RHT_OCARINA_C_RIGHT_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawOcarinaButton);
|
||||||
|
|
||||||
itemTable[RG_BOMBCHU_BAG] = Item(RG_BOMBCHU_BAG, Text{ "Bombchu Bag", "Sac de Missiles Teigneux", "Krabbelminentasche" }, ITEMTYPE_ITEM, RG_BOMBCHU_BAG, true, LOGIC_BOMBCHUS, RHT_BOMBCHU_BAG, RG_BOMBCHU_BAG, OBJECT_GI_BOMB_2, GID_BOMBCHU, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_BOMBCHU_BAG, ITEMTYPE_ITEM, RG_BOMBCHU_BAG, LOGIC_BOMBCHUS, RHT_BOMBCHU_BAG, OBJECT_GI_BOMB_2, GID_BOMBCHU, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBombchuBag);
|
||||||
itemTable[RG_BOMBCHU_BAG].SetCustomDrawFunc(Randomizer_DrawBombchuBag);
|
|
||||||
|
|
||||||
itemTable[RG_QUIVER_INF] = Item(RG_QUIVER_INF, Text{ "Infinite Quiver", "Carquois Infini", "Unendlicher Köcher" }, ITEMTYPE_ITEM, RG_QUIVER_INF, true, LOGIC_PROGRESSIVE_BOW, RHT_QUIVER_INF, RG_QUIVER_INF, OBJECT_GI_ARROWCASE, GID_QUIVER_50, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_QUIVER_INF, ITEMTYPE_ITEM, RG_QUIVER_INF, LOGIC_PROGRESSIVE_BOW, RHT_QUIVER_INF, OBJECT_GI_ARROWCASE, GID_QUIVER_50, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BOMB_BAG_INF] = Item(RG_BOMB_BAG_INF, Text{ "Infinite Bomb Bag", "Sac de Bombes Infini", "Unendliche Bombentasche" }, ITEMTYPE_ITEM, RG_BOMB_BAG_INF, true, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BOMB_BAG_INF, RG_BOMB_BAG_INF, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_40, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_BOMB_BAG_INF, ITEMTYPE_ITEM, RG_BOMB_BAG_INF, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BOMB_BAG_INF, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_40, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BULLET_BAG_INF] = Item(RG_BULLET_BAG_INF, Text{ "Infinite Bullet Bag", "Sac de Graines Infinis", "Unendliche Munitionstasche" }, ITEMTYPE_ITEM, RG_BULLET_BAG_INF, true, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_BULLET_BAG_INF, RG_BULLET_BAG_INF, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_BULLET_BAG_INF, ITEMTYPE_ITEM, RG_BULLET_BAG_INF, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_BULLET_BAG_INF, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
||||||
itemTable[RG_STICK_UPGRADE_INF] = Item(RG_STICK_UPGRADE_INF, Text{ "Infinite Stick Capacity", "Bâtons Mojo Infinis", "Unendliche Deku-Stab-Kapazität" }, ITEMTYPE_ITEM, RG_STICK_UPGRADE_INF, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_STICK_UPGRADE_INF, RG_STICK_UPGRADE_INF, OBJECT_GI_STICK, GID_STICK, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_STICK_UPGRADE_INF, ITEMTYPE_ITEM, RG_STICK_UPGRADE_INF, LOGIC_PROGRESSIVE_STICK_BAG, RHT_STICK_UPGRADE_INF, OBJECT_GI_STICK, GID_STICK, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
||||||
itemTable[RG_NUT_UPGRADE_INF] = Item(RG_NUT_UPGRADE_INF, Text{ "Infinite Nut Capacity", "Noix Mojo Infinies", "Unendliche Deku-Nuß-Kapazität" }, ITEMTYPE_ITEM, RG_NUT_UPGRADE_INF, true, LOGIC_PROGRESSIVE_NUT_BAG, RHT_NUT_UPGRADE_INF, RG_NUT_UPGRADE_INF, OBJECT_GI_NUTS, GID_NUTS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_NUT_UPGRADE_INF, ITEMTYPE_ITEM, RG_NUT_UPGRADE_INF, LOGIC_PROGRESSIVE_NUT_BAG, RHT_NUT_UPGRADE_INF, OBJECT_GI_NUTS, GID_NUTS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
||||||
itemTable[RG_MAGIC_INF] = Item(RG_MAGIC_INF, Text{ "Infinite Magic Meter", "Magie Infinie", "Unendliche Magische Kraft" }, ITEMTYPE_ITEM, RG_MAGIC_INF, true, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_INF, RG_MAGIC_INF, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_MAGIC_INF, ITEMTYPE_ITEM, RG_MAGIC_INF, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_INF, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
||||||
itemTable[RG_BOMBCHU_INF] = Item(RG_BOMBCHU_INF, Text{ "Infinite Bombchus", "Missiles Teigneux Infinis", "Unendliche Krabbelminentasche" }, ITEMTYPE_ITEM, RG_BOMBCHU_INF, true, LOGIC_BOMBCHUS, RHT_BOMBCHU_INF, RG_BOMBCHU_INF, OBJECT_GI_BOMB_2, GID_BOMBCHU, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_BOMBCHU_INF, ITEMTYPE_ITEM, RG_BOMBCHU_INF, LOGIC_BOMBCHUS, RHT_BOMBCHU_INF, OBJECT_GI_BOMB_2, GID_BOMBCHU, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, 0, Randomizer_DrawBombchuBag);
|
||||||
itemTable[RG_BOMBCHU_INF].SetCustomDrawFunc(Randomizer_DrawBombchuBag);
|
AddItem(RG_WALLET_INF, ITEMTYPE_ITEM, RG_WALLET_INF, LOGIC_PROGRESSIVE_WALLET, RHT_WALLET_INF, OBJECT_GI_PURSE, GID_WALLET_GIANT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
||||||
itemTable[RG_WALLET_INF] = Item(RG_WALLET_INF, Text{ "Infinite Wallet", "Bourse Infinie", "Unendliche Geldbörse" }, ITEMTYPE_ITEM, RG_WALLET_INF, true, LOGIC_PROGRESSIVE_WALLET, RHT_WALLET_INF, RG_WALLET_INF, OBJECT_GI_PURSE, GID_WALLET_GIANT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
|
||||||
|
|
||||||
itemTable[RG_SKELETON_KEY] = Item(RG_SKELETON_KEY, Text{ "Skeleton Key", "Clé Squelette", "Skelettschlüssel" }, ITEMTYPE_ITEM, GI_STONE_OF_AGONY, true, LOGIC_SKELETON_KEY, RHT_SKELETON_KEY, RG_SKELETON_KEY, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_SKELETON_KEY, ITEMTYPE_ITEM, GI_STONE_OF_AGONY, LOGIC_SKELETON_KEY, RHT_SKELETON_KEY, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawSkeletonKey);
|
||||||
itemTable[RG_SKELETON_KEY].SetCustomDrawFunc(Randomizer_DrawSkeletonKey);
|
|
||||||
|
|
||||||
itemTable[RG_DEKU_STICK_BAG] = Item(RG_DEKU_STICK_BAG, Text{ "Deku Stick Bag", "Sac de Bâton Mojo", "Deku-Stab-Tasche" }, ITEMTYPE_ITEM, GI_STICK_UPGRADE_30, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_NONE, RG_DEKU_STICK_BAG, OBJECT_GI_STICK, GID_STICK, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_TRIFORCE, ITEMTYPE_EVENT, RG_TRIFORCE, LOGIC_NONE, RHT_TRIFORCE, ITEM_CATEGORY_MAJOR);
|
||||||
|
AddItem(RG_HINT, ITEMTYPE_EVENT, RG_HINT, LOGIC_NONE, RHT_HINT, ITEM_CATEGORY_LESSER);
|
||||||
itemTable[RG_DEKU_NUT_BAG] = Item(RG_DEKU_NUT_BAG, Text{ "Deku Nut Bag", "Sac de Noix Mojo", "Deku-Nuß-Tasche" }, ITEMTYPE_ITEM, GI_NUT_UPGRADE_30, true, LOGIC_PROGRESSIVE_NUT_BAG, RHT_NONE, RG_DEKU_NUT_BAG, OBJECT_GI_NUTS, GID_NUTS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
|
||||||
|
|
||||||
itemTable[RG_TRIFORCE] = Item(RG_TRIFORCE, Text{ "Triforce", "Triforce", "Triforce" }, ITEMTYPE_EVENT, RG_TRIFORCE, false, LOGIC_NONE, RHT_NONE, ITEM_CATEGORY_MAJOR);
|
|
||||||
itemTable[RG_HINT] = Item(RG_HINT, Text{ "Hint", "Indice", "Hinweis" }, ITEMTYPE_EVENT, RG_HINT, false, LOGIC_NONE, RHT_NONE, ITEM_CATEGORY_LESSER);
|
|
||||||
// Individual stages of progressive items (only here for GetItemEntry purposes, not for use in seed gen)
|
// Individual stages of progressive items (only here for GetItemEntry purposes, not for use in seed gen)
|
||||||
itemTable[RG_HOOKSHOT] = Item(RG_HOOKSHOT, Text{ "Hookshot", "Grappin", "Fanghaken" }, ITEMTYPE_ITEM, GI_HOOKSHOT, true, LOGIC_PROGRESSIVE_HOOKSHOT, RHT_HOOKSHOT, ITEM_HOOKSHOT, OBJECT_GI_HOOKSHOT, GID_HOOKSHOT, 0x36, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_HOOKSHOT, ITEMTYPE_ITEM, GI_HOOKSHOT, LOGIC_PROGRESSIVE_HOOKSHOT, RHT_HOOKSHOT, ITEM_HOOKSHOT, OBJECT_GI_HOOKSHOT, GID_HOOKSHOT, 0x36, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_LONGSHOT] = Item(RG_LONGSHOT, Text{ "Longshot", "Super-Grappin", "Enterhaken" }, ITEMTYPE_ITEM, GI_LONGSHOT, true, LOGIC_PROGRESSIVE_HOOKSHOT, RHT_LONGSHOT, ITEM_LONGSHOT, OBJECT_GI_HOOKSHOT, GID_LONGSHOT, 0x4F, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_LONGSHOT, ITEMTYPE_ITEM, GI_LONGSHOT, LOGIC_PROGRESSIVE_HOOKSHOT, RHT_LONGSHOT, ITEM_LONGSHOT, OBJECT_GI_HOOKSHOT, GID_LONGSHOT, 0x4F, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_FAIRY_OCARINA] = Item(RG_FAIRY_OCARINA, Text{ "Fairy Ocarina", "Ocarina des fées", "Feen-Okarina" }, ITEMTYPE_ITEM, GI_OCARINA_FAIRY, true, LOGIC_PROGRESSIVE_OCARINA, RHT_FAIRY_OCARINA, ITEM_OCARINA_FAIRY, OBJECT_GI_OCARINA_0, GID_OCARINA_FAIRY, 0x4A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_FAIRY_OCARINA, ITEMTYPE_ITEM, GI_OCARINA_FAIRY, LOGIC_PROGRESSIVE_OCARINA, RHT_FAIRY_OCARINA, ITEM_OCARINA_FAIRY, OBJECT_GI_OCARINA_0, GID_OCARINA_FAIRY, 0x4A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_OCARINA_OF_TIME] = Item(RG_OCARINA_OF_TIME, Text{ "Ocarina of Time", "Ocarina du Temps", "Okarina der Zeit" }, ITEMTYPE_ITEM, GI_OCARINA_OOT, true, LOGIC_PROGRESSIVE_OCARINA, RHT_OCARINA_OF_TIME, ITEM_OCARINA_TIME, OBJECT_GI_OCARINA, GID_OCARINA_TIME, 0x3A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_OCARINA_OF_TIME, ITEMTYPE_ITEM, GI_OCARINA_OOT, LOGIC_PROGRESSIVE_OCARINA, RHT_OCARINA_OF_TIME, ITEM_OCARINA_TIME, OBJECT_GI_OCARINA, GID_OCARINA_TIME, 0x3A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BOMB_BAG] = Item(RG_BOMB_BAG, Text{ "Bomb Bag", "Sac de Bombes", "Bombentasche" }, ITEMTYPE_ITEM, GI_BOMB_BAG_20, true, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BOMB_BAG, ITEM_BOMB_BAG_20, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_20, 0x58, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_BOMB_BAG, ITEMTYPE_ITEM, GI_BOMB_BAG_20, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BOMB_BAG, ITEM_BOMB_BAG_20, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_20, 0x58, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BIG_BOMB_BAG] = Item(RG_BIG_BOMB_BAG, Text{ "Big Bomb Bag", "Grand Sac de Bombes", "Große Bombentasche" }, ITEMTYPE_ITEM, GI_BOMB_BAG_30, true, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BIG_BOMB_BAG, ITEM_BOMB_BAG_30, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_30, 0x59, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_BIG_BOMB_BAG, ITEMTYPE_ITEM, GI_BOMB_BAG_30, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BIG_BOMB_BAG, ITEM_BOMB_BAG_30, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_30, 0x59, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_BIGGEST_BOMB_BAG] = Item(RG_BIGGEST_BOMB_BAG, Text{ "Biggest Bomb Bag", "Énorme Sac de Bombes", "Riesen-Bombentasche" }, ITEMTYPE_ITEM, GI_BOMB_BAG_40, true, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BIGGEST_BOMB_BAG, ITEM_BOMB_BAG_40, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_40, 0x5A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_BIGGEST_BOMB_BAG, ITEMTYPE_ITEM, GI_BOMB_BAG_40, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BIGGEST_BOMB_BAG, ITEM_BOMB_BAG_40, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_40, 0x5A, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_FAIRY_BOW] = Item(RG_FAIRY_BOW, Text{ "Fairy Bow", "Arc des Fées", "Feen-Bogen" }, ITEMTYPE_ITEM, GI_BOW, true, LOGIC_PROGRESSIVE_BOW, RHT_FAIRY_BOW, ITEM_BOW, OBJECT_GI_BOW, GID_BOW, 0x31, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_FAIRY_BOW, ITEMTYPE_ITEM, GI_BOW, LOGIC_PROGRESSIVE_BOW, RHT_FAIRY_BOW, ITEM_BOW, OBJECT_GI_BOW, GID_BOW, 0x31, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BIG_QUIVER] = Item(RG_BIG_QUIVER, Text{ "Big Quiver", "Grand carquois", "Großer Köcher" }, ITEMTYPE_ITEM, GI_QUIVER_40, true, LOGIC_PROGRESSIVE_BOW, RHT_BIG_QUIVER, ITEM_QUIVER_40, OBJECT_GI_ARROWCASE, GID_QUIVER_40, 0x56, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_BIG_QUIVER, ITEMTYPE_ITEM, GI_QUIVER_40, LOGIC_PROGRESSIVE_BOW, RHT_BIG_QUIVER, ITEM_QUIVER_40, OBJECT_GI_ARROWCASE, GID_QUIVER_40, 0x56, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_BIGGEST_QUIVER] = Item(RG_BIGGEST_QUIVER, Text{ "Biggest Quiver", "Énorme carquois", "Riesenköcher" }, ITEMTYPE_ITEM, GI_QUIVER_50, true, LOGIC_PROGRESSIVE_BOW, RHT_BIGGEST_QUIVER, ITEM_QUIVER_50, OBJECT_GI_ARROWCASE, GID_QUIVER_50, 0x57, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_BIGGEST_QUIVER, ITEMTYPE_ITEM, GI_QUIVER_50, LOGIC_PROGRESSIVE_BOW, RHT_BIGGEST_QUIVER, ITEM_QUIVER_50, OBJECT_GI_ARROWCASE, GID_QUIVER_50, 0x57, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_FAIRY_SLINGSHOT] = Item(RG_FAIRY_SLINGSHOT, Text{ "Fairy Slingshot", "Lance-Pierre des Fées", "Feen-Schleuder" }, ITEMTYPE_ITEM, GI_SLINGSHOT, true, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_FAIRY_SLINGSHOT, ITEM_SLINGSHOT, OBJECT_GI_PACHINKO, GID_SLINGSHOT, 0x30, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_FAIRY_SLINGSHOT, ITEMTYPE_ITEM, GI_SLINGSHOT, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_FAIRY_SLINGSHOT, ITEM_SLINGSHOT, OBJECT_GI_PACHINKO, GID_SLINGSHOT, 0x30, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_BIG_BULLET_BAG] = Item(RG_BIG_BULLET_BAG, Text{ "Big Deku Seed Bullet Bag", "Grand sac de graines mojo", "Große Munitionstasche" }, ITEMTYPE_ITEM, GI_BULLET_BAG_40, true, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_BIG_BULLET_BAG, ITEM_BULLET_BAG_40, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, 0x07, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_BIG_BULLET_BAG, ITEMTYPE_ITEM, GI_BULLET_BAG_40, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_BIG_BULLET_BAG, ITEM_BULLET_BAG_40, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, 0x07, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_BIGGEST_BULLET_BAG] = Item(RG_BIGGEST_BULLET_BAG, Text{ "Biggest Deku Seed Bullet Bag", "Énorme sac de graines mojo", "Riesen-Munitionstasche" }, ITEMTYPE_ITEM, GI_BULLET_BAG_50, true, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_BIGGEST_BULLET_BAG, ITEM_BULLET_BAG_50, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, 0x07, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_BIGGEST_BULLET_BAG, ITEMTYPE_ITEM, GI_BULLET_BAG_50, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_BIGGEST_BULLET_BAG, ITEM_BULLET_BAG_50, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, 0x07, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_GORONS_BRACELET] = Item(RG_GORONS_BRACELET, Text{ "Goron's Bracelet", "Bracelet Goron", "Goronen-Armband" }, ITEMTYPE_ITEM, GI_BRACELET, true, LOGIC_PROGRESSIVE_STRENGTH, RHT_GORONS_BRACELET, ITEM_BRACELET, OBJECT_GI_BRACELET, GID_BRACELET, 0x79, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_GORONS_BRACELET, ITEMTYPE_ITEM, GI_BRACELET, LOGIC_PROGRESSIVE_STRENGTH, RHT_GORONS_BRACELET, ITEM_BRACELET, OBJECT_GI_BRACELET, GID_BRACELET, 0x79, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_SILVER_GAUNTLETS] = Item(RG_SILVER_GAUNTLETS, Text{ "Silver Gauntlets", "Gantelets d'argent", "Krafthandschuhe" }, ITEMTYPE_ITEM, GI_GAUNTLETS_SILVER, true, LOGIC_PROGRESSIVE_STRENGTH, RHT_SILVER_GAUNTLETS, ITEM_GAUNTLETS_SILVER, OBJECT_GI_GLOVES, GID_GAUNTLETS_SILVER, 0x5B, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_SILVER_GAUNTLETS, ITEMTYPE_ITEM, GI_GAUNTLETS_SILVER, LOGIC_PROGRESSIVE_STRENGTH, RHT_SILVER_GAUNTLETS, ITEM_GAUNTLETS_SILVER, OBJECT_GI_GLOVES, GID_GAUNTLETS_SILVER, 0x5B, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_GOLDEN_GAUNTLETS] = Item(RG_GOLDEN_GAUNTLETS, Text{ "Golden Gauntlets", "Gantelets d'or", "Titanhandschuhe" }, ITEMTYPE_ITEM, GI_GAUNTLETS_GOLD, true, LOGIC_PROGRESSIVE_STRENGTH, RHT_GOLDEN_GAUNTLETS, ITEM_GAUNTLETS_GOLD, OBJECT_GI_GLOVES, GID_GAUNTLETS_GOLD, 0x5C, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_GOLDEN_GAUNTLETS, ITEMTYPE_ITEM, GI_GAUNTLETS_GOLD, LOGIC_PROGRESSIVE_STRENGTH, RHT_GOLDEN_GAUNTLETS, ITEM_GAUNTLETS_GOLD, OBJECT_GI_GLOVES, GID_GAUNTLETS_GOLD, 0x5C, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_SILVER_SCALE] = Item(RG_SILVER_SCALE, Text{ "Silver Scale", "Écaille d'argent", "Silberne Schuppe" }, ITEMTYPE_ITEM, GI_SCALE_SILVER, true, LOGIC_PROGRESSIVE_SCALE, RHT_SILVER_SCALE, ITEM_SCALE_SILVER, OBJECT_GI_SCALE, GID_SCALE_SILVER, 0xCD, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_BRONZE_SCALE, ITEMTYPE_ITEM, GI_SCALE_SILVER, LOGIC_PROGRESSIVE_SCALE, RHT_BRONZE_SCALE, OBJECT_GI_SCALE, GID_SCALE_SILVER, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, 0, Randomizer_DrawBronzeScale);
|
||||||
itemTable[RG_GOLDEN_SCALE] = Item(RG_GOLDEN_SCALE, Text{ "Golden Scale", "Écaille d'or", "Goldene Schuppe" }, ITEMTYPE_ITEM, GI_SCALE_GOLDEN, true, LOGIC_PROGRESSIVE_SCALE, RHT_GOLDEN_SCALE, ITEM_SCALE_GOLDEN, OBJECT_GI_SCALE, GID_SCALE_GOLDEN, 0xCE, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_SILVER_SCALE, ITEMTYPE_ITEM, GI_SCALE_SILVER, LOGIC_PROGRESSIVE_SCALE, RHT_SILVER_SCALE, ITEM_SCALE_SILVER, OBJECT_GI_SCALE, GID_SCALE_SILVER, 0xCD, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_ADULT_WALLET] = Item(RG_ADULT_WALLET, Text{ "Adult Wallet", "Grande Bourse", "Große Geldbörse" }, ITEMTYPE_ITEM, GI_WALLET_ADULT, true, LOGIC_PROGRESSIVE_WALLET, RHT_ADULT_WALLET, ITEM_WALLET_ADULT, OBJECT_GI_PURSE, GID_WALLET_ADULT, 0x5E, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_GOLDEN_SCALE, ITEMTYPE_ITEM, GI_SCALE_GOLDEN, LOGIC_PROGRESSIVE_SCALE, RHT_GOLDEN_SCALE, ITEM_SCALE_GOLDEN, OBJECT_GI_SCALE, GID_SCALE_GOLDEN, 0xCE, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_GIANT_WALLET] = Item(RG_GIANT_WALLET, Text{ "Giant Wallet", "Bourse de Géant", "Riesengeldbörse" }, ITEMTYPE_ITEM, GI_WALLET_GIANT, true, LOGIC_PROGRESSIVE_WALLET, RHT_GIANT_WALLET, ITEM_WALLET_GIANT, OBJECT_GI_PURSE, GID_WALLET_GIANT, 0x5F, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
AddItem(RG_CHILD_WALLET, ITEMTYPE_ITEM, RG_CHILD_WALLET, LOGIC_PROGRESSIVE_WALLET, RHT_CHILD_WALLET, OBJECT_GI_PURSE, GID_WALLET_ADULT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_TYCOON_WALLET] = Item(RG_TYCOON_WALLET, Text{ "Tycoon Wallet", "Bourse de Magnat", "Goldene Geldbörse" }, ITEMTYPE_ITEM, RG_TYCOON_WALLET, true, LOGIC_PROGRESSIVE_WALLET, RHT_TYCOON_WALLET, RG_TYCOON_WALLET, OBJECT_GI_PURSE, GID_WALLET_GIANT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_ADULT_WALLET, ITEMTYPE_ITEM, GI_WALLET_ADULT, LOGIC_PROGRESSIVE_WALLET, RHT_ADULT_WALLET, ITEM_WALLET_ADULT, OBJECT_GI_PURSE, GID_WALLET_ADULT, 0x5E, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_CHILD_WALLET] = Item(RG_CHILD_WALLET, Text{ "Child Wallet", "Petite Bourse", "Kindergeldbörse" }, ITEMTYPE_ITEM, RG_CHILD_WALLET, true, LOGIC_PROGRESSIVE_WALLET, RHT_CHILD_WALLET, RG_CHILD_WALLET, OBJECT_GI_PURSE, GID_WALLET_ADULT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_GIANT_WALLET, ITEMTYPE_ITEM, GI_WALLET_GIANT, LOGIC_PROGRESSIVE_WALLET, RHT_GIANT_WALLET, ITEM_WALLET_GIANT, OBJECT_GI_PURSE, GID_WALLET_GIANT, 0x5F, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||||
itemTable[RG_DEKU_NUT_CAPACITY_30] = Item(RG_DEKU_NUT_CAPACITY_30, Text{ "Deku Nut Capacity (30)", "Capacité de noix Mojo (30)", "Deku-Nuß-Kapazität (30)" }, ITEMTYPE_ITEM, GI_NUT_UPGRADE_30, true, LOGIC_PROGRESSIVE_NUT_BAG, RHT_DEKU_NUT_CAPACITY_30, ITEM_NUT_UPGRADE_30, OBJECT_GI_NUTS, GID_NUTS, 0xA7, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_TYCOON_WALLET, ITEMTYPE_ITEM, RG_TYCOON_WALLET, LOGIC_PROGRESSIVE_WALLET, RHT_TYCOON_WALLET, OBJECT_GI_PURSE, GID_WALLET_GIANT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
||||||
itemTable[RG_DEKU_NUT_CAPACITY_40] = Item(RG_DEKU_NUT_CAPACITY_40, Text{ "Deku Nut Capacity (40)", "Capacité de noix Mojo (40)", "Deku-Nuß-Kapazität (40)" }, ITEMTYPE_ITEM, GI_NUT_UPGRADE_40, true, LOGIC_PROGRESSIVE_NUT_BAG, RHT_DEKU_NUT_CAPACITY_40, ITEM_NUT_UPGRADE_40, OBJECT_GI_NUTS, GID_NUTS, 0xA8, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_DEKU_NUT_BAG, ITEMTYPE_ITEM, GI_NUT_UPGRADE_30, LOGIC_PROGRESSIVE_NUT_BAG, RHT_DEKU_NUT_BAG, OBJECT_GI_NUTS, GID_NUTS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_DEKU_STICK_CAPACITY_20] = Item(RG_DEKU_STICK_CAPACITY_20, Text{ "Deku Stick Capacity (20)", "Capacité de Bâtons Mojo (20)", "Deku-Stab-Kapazität (20)" }, ITEMTYPE_ITEM, GI_STICK_UPGRADE_20, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_DEKU_STICK_CAPACITY_20, ITEM_STICK_UPGRADE_20, OBJECT_GI_STICK, GID_STICK, 0x90, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_DEKU_NUT_CAPACITY_30, ITEMTYPE_ITEM, GI_NUT_UPGRADE_30, LOGIC_PROGRESSIVE_NUT_BAG, RHT_DEKU_NUT_CAPACITY_30, ITEM_NUT_UPGRADE_30, OBJECT_GI_NUTS, GID_NUTS, 0xA7, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_DEKU_STICK_CAPACITY_30] = Item(RG_DEKU_STICK_CAPACITY_30, Text{ "Deku Stick Capacity (30)", "Capacité de Bâtons Mojo (30)", "Deku-Stab-Kapazität (30)" }, ITEMTYPE_ITEM, GI_STICK_UPGRADE_30, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_DEKU_STICK_CAPACITY_30, ITEM_STICK_UPGRADE_30, OBJECT_GI_STICK, GID_STICK, 0x91, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
AddItem(RG_DEKU_NUT_CAPACITY_40, ITEMTYPE_ITEM, GI_NUT_UPGRADE_40, LOGIC_PROGRESSIVE_NUT_BAG, RHT_DEKU_NUT_CAPACITY_40, ITEM_NUT_UPGRADE_40, OBJECT_GI_NUTS, GID_NUTS, 0xA8, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_MAGIC_SINGLE] = Item(RG_MAGIC_SINGLE, Text{ "Magic Meter", "Jauge de Magie", "Magische Kraft" }, ITEMTYPE_ITEM, 0x8A, true, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_SINGLE, RG_MAGIC_SINGLE, OBJECT_GI_MAGICPOT, GID_MAGIC_SMALL, 0xE4, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_DEKU_STICK_BAG, ITEMTYPE_ITEM, GI_STICK_UPGRADE_30, LOGIC_PROGRESSIVE_STICK_BAG, RHT_DEKU_STICK_BAG, OBJECT_GI_STICK, GID_STICK, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_MAGIC_DOUBLE] = Item(RG_MAGIC_DOUBLE, Text{ "Enhanced Magic Meter", "Jauge de Magie améliorée", "Verb. Magische Kraft" }, ITEMTYPE_ITEM, 0x8A, true, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_DOUBLE, RG_MAGIC_DOUBLE, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, 0xE8, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
AddItem(RG_DEKU_STICK_CAPACITY_20, ITEMTYPE_ITEM, GI_STICK_UPGRADE_20, LOGIC_PROGRESSIVE_STICK_BAG, RHT_DEKU_STICK_CAPACITY_20, ITEM_STICK_UPGRADE_20, OBJECT_GI_STICK, GID_STICK, 0x90, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_TRIFORCE_PIECE] = Item(RG_TRIFORCE_PIECE, Text{ "Triforce Piece", "Triforce Piece", "Triforce-Splitter" }, ITEMTYPE_ITEM, 0xDF, true, LOGIC_TRIFORCE_PIECES, RHT_TRIFORCE_PIECE, RG_TRIFORCE_PIECE, OBJECT_GI_BOMB_2, GID_TRIFORCE_PIECE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
AddItem(RG_DEKU_STICK_CAPACITY_30, ITEMTYPE_ITEM, GI_STICK_UPGRADE_30, LOGIC_PROGRESSIVE_STICK_BAG, RHT_DEKU_STICK_CAPACITY_30, ITEM_STICK_UPGRADE_30, OBJECT_GI_STICK, GID_STICK, 0x91, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
|
AddItem(RG_MAGIC_SINGLE, ITEMTYPE_ITEM, 0x8A, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_SINGLE, OBJECT_GI_MAGICPOT, GID_MAGIC_SMALL, 0xE4, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
|
AddItem(RG_MAGIC_DOUBLE, ITEMTYPE_ITEM, 0x8A, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_DOUBLE, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, 0xE8, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER);
|
||||||
|
AddItem(RG_TRIFORCE_PIECE, ITEMTYPE_ITEM, 0xDF, LOGIC_TRIFORCE_PIECES, RHT_TRIFORCE_PIECE, OBJECT_GI_BOMB_2, GID_TRIFORCE_PIECE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
// Init itemNameToEnum
|
// Init itemNameToEnum
|
||||||
for (auto& item : itemTable) {
|
for (auto& item : itemTable) {
|
||||||
// Easiest way to filter out all the empty values from the array, since we still technically want the 0/RG_NONE
|
std::vector<std::string> strings = item.GetName().GetAllMessages(MF_RAW);
|
||||||
// entry
|
for (std::string string : strings) {
|
||||||
if (item.GetName().english.empty()) {
|
if (itemNameToEnum.contains(string) && string != "") {
|
||||||
continue;
|
if (itemNameToEnum[string] != item.GetRandomizerGet()) {
|
||||||
|
SPDLOG_DEBUG("\tREPEATED STRING WITH " + string + "\n\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
itemNameToEnum[string] = item.GetRandomizerGet();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
itemNameToEnum[item.GetName().english] = item.GetRandomizerGet();
|
|
||||||
itemNameToEnum[item.GetName().french] = item.GetRandomizerGet();
|
|
||||||
itemNameToEnum[item.GetName().german] = item.GetRandomizerGet();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ RandomizerGet& ItemLocation::RefPlacedItem() {
|
||||||
return placedItem;
|
return placedItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Text& ItemLocation::GetPlacedItemName() const {
|
const CustomMessage& ItemLocation::GetPlacedItemName() const {
|
||||||
return StaticData::RetrieveItem(placedItem).GetName();
|
return StaticData::RetrieveItem(placedItem).GetName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ class ItemLocation {
|
||||||
void AddToPool();
|
void AddToPool();
|
||||||
void RemoveFromPool();
|
void RemoveFromPool();
|
||||||
const Item& GetPlacedItem() const;
|
const Item& GetPlacedItem() const;
|
||||||
const Text& GetPlacedItemName() const;
|
const CustomMessage& GetPlacedItemName() const;
|
||||||
RandomizerGet GetPlacedRandomizerGet() const;
|
RandomizerGet GetPlacedRandomizerGet() const;
|
||||||
void SetPlacedItem(RandomizerGet item);
|
void SetPlacedItem(RandomizerGet item);
|
||||||
RandomizerGet& RefPlacedItem();
|
RandomizerGet& RefPlacedItem();
|
||||||
|
|
|
@ -67,7 +67,7 @@ void RegionTable_Init_Kakariko() {
|
||||||
Entrance(RR_KAK_IMPAS_HOUSE, []{return logic->CanOpenOverworldDoor(RG_IMPAS_HOUSE_KEY);}),
|
Entrance(RR_KAK_IMPAS_HOUSE, []{return logic->CanOpenOverworldDoor(RG_IMPAS_HOUSE_KEY);}),
|
||||||
Entrance(RR_KAK_WINDMILL, []{return logic->CanOpenOverworldDoor(RG_WINDMILL_KEY);}),
|
Entrance(RR_KAK_WINDMILL, []{return logic->CanOpenOverworldDoor(RG_WINDMILL_KEY);}),
|
||||||
Entrance(RR_KAK_BAZAAR, []{return logic->IsAdult && logic->AtDay && logic->CanOpenOverworldDoor(RG_KAK_BAZAAR_KEY);}),
|
Entrance(RR_KAK_BAZAAR, []{return logic->IsAdult && logic->AtDay && logic->CanOpenOverworldDoor(RG_KAK_BAZAAR_KEY);}),
|
||||||
Entrance(RR_KAK_SHOOTING_GALLERY, []{return logic->IsAdult && logic->AtDay && logic->CanOpenOverworldDoor(RG_KAK_SHOOTING_GALLERY_KEY);}),
|
Entrance(RR_KAK_SHOOTING_GALLERY, []{return logic->IsAdult && logic->AtDay && logic->CanOpenOverworldDoor(RG_KAK_SHOOTING_KEY);}),
|
||||||
Entrance(RR_KAK_WELL, []{return logic->IsAdult || logic->DrainWell || logic->CanUse(RG_IRON_BOOTS) || (ctx->GetTrickOption(RT_BOTTOM_OF_THE_WELL_NAVI_DIVE) && logic->IsChild && logic->HasItem(RG_BRONZE_SCALE) && logic->CanJumpslash());}),
|
Entrance(RR_KAK_WELL, []{return logic->IsAdult || logic->DrainWell || logic->CanUse(RG_IRON_BOOTS) || (ctx->GetTrickOption(RT_BOTTOM_OF_THE_WELL_NAVI_DIVE) && logic->IsChild && logic->HasItem(RG_BRONZE_SCALE) && logic->CanJumpslash());}),
|
||||||
Entrance(RR_KAK_POTION_SHOP_FRONT, []{return (logic->AtDay || logic->IsChild) && logic->CanOpenOverworldDoor(RG_KAK_POTION_SHOP_KEY);}),
|
Entrance(RR_KAK_POTION_SHOP_FRONT, []{return (logic->AtDay || logic->IsChild) && logic->CanOpenOverworldDoor(RG_KAK_POTION_SHOP_KEY);}),
|
||||||
Entrance(RR_KAK_REDEAD_GROTTO, []{return logic->CanOpenBombGrotto();}),
|
Entrance(RR_KAK_REDEAD_GROTTO, []{return logic->CanOpenBombGrotto();}),
|
||||||
|
@ -124,7 +124,7 @@ void RegionTable_Init_Kakariko() {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_KAKARIKO_VILLAGE, []{return true;}),
|
Entrance(RR_KAKARIKO_VILLAGE, []{return true;}),
|
||||||
Entrance(RR_KAK_OPEN_GROTTO, []{return true;}),
|
Entrance(RR_KAK_OPEN_GROTTO, []{return true;}),
|
||||||
Entrance(RR_KAK_ODD_POTION_BUILDING, []{return logic->IsAdult && logic->CanOpenOverworldDoor(RG_GRANNYS_POTION_SHOP_KEY);}),
|
Entrance(RR_KAK_ODD_POTION_BUILDING, []{return logic->IsAdult && logic->CanOpenOverworldDoor(RG_GRANNYS_SHOP_KEY);}),
|
||||||
Entrance(RR_KAK_POTION_SHOP_BACK, []{return logic->IsAdult && logic->AtDay && logic->CanOpenOverworldDoor(RG_KAK_POTION_SHOP_KEY);}),
|
Entrance(RR_KAK_POTION_SHOP_BACK, []{return logic->IsAdult && logic->AtDay && logic->CanOpenOverworldDoor(RG_KAK_POTION_SHOP_KEY);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -34,9 +34,9 @@ void RegionTable_Init_Market() {
|
||||||
Entrance(RR_CASTLE_GROUNDS, []{return true;}),
|
Entrance(RR_CASTLE_GROUNDS, []{return true;}),
|
||||||
Entrance(RR_MARKET_BAZAAR, []{return logic->IsChild && logic->AtDay && logic->CanOpenOverworldDoor(RG_MARKET_BAZAAR_KEY);}),
|
Entrance(RR_MARKET_BAZAAR, []{return logic->IsChild && logic->AtDay && logic->CanOpenOverworldDoor(RG_MARKET_BAZAAR_KEY);}),
|
||||||
Entrance(RR_MARKET_MASK_SHOP, []{return logic->IsChild && logic->AtDay && logic->CanOpenOverworldDoor(RG_MASK_SHOP_KEY);}),
|
Entrance(RR_MARKET_MASK_SHOP, []{return logic->IsChild && logic->AtDay && logic->CanOpenOverworldDoor(RG_MASK_SHOP_KEY);}),
|
||||||
Entrance(RR_MARKET_SHOOTING_GALLERY, []{return logic->IsChild && logic->AtDay && logic->CanOpenOverworldDoor(RG_MARKET_SHOOTING_GALLERY_KEY);}),
|
Entrance(RR_MARKET_SHOOTING_GALLERY, []{return logic->IsChild && logic->AtDay && logic->CanOpenOverworldDoor(RG_MARKET_SHOOTING_KEY);}),
|
||||||
Entrance(RR_MARKET_BOMBCHU_BOWLING, []{return logic->IsChild && logic->CanOpenOverworldDoor(RG_BOMBCHU_BOWLING_KEY);}),
|
Entrance(RR_MARKET_BOMBCHU_BOWLING, []{return logic->IsChild && logic->CanOpenOverworldDoor(RG_BOMBCHU_BOWLING_KEY);}),
|
||||||
Entrance(RR_MARKET_TREASURE_CHEST_GAME, []{return logic->IsChild && logic->AtNight && logic->CanOpenOverworldDoor(RG_TREASURE_CHEST_GAME_BUILDING_KEY);}),
|
Entrance(RR_MARKET_TREASURE_CHEST_GAME, []{return logic->IsChild && logic->AtNight && logic->CanOpenOverworldDoor(RG_TCG_BUILDING_KEY);}),
|
||||||
Entrance(RR_MARKET_POTION_SHOP, []{return logic->IsChild && logic->AtDay && logic->CanOpenOverworldDoor(RG_MARKET_POTION_SHOP_KEY);}),
|
Entrance(RR_MARKET_POTION_SHOP, []{return logic->IsChild && logic->AtDay && logic->CanOpenOverworldDoor(RG_MARKET_POTION_SHOP_KEY);}),
|
||||||
Entrance(RR_MARKET_BACK_ALLEY, []{return logic->IsChild;}),
|
Entrance(RR_MARKET_BACK_ALLEY, []{return logic->IsChild;}),
|
||||||
});
|
});
|
||||||
|
|
|
@ -134,11 +134,11 @@ void Rando::StaticData::InitLocationTable() {
|
||||||
locationTable[RC_LW_TARGET_IN_WOODS] = Location::Base(RC_LW_TARGET_IN_WOODS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_LOST_WOODS, 0x00, "Target in Woods", RHT_LW_TARGET_IN_WOODS, RG_PROGRESSIVE_SLINGSHOT, SpoilerCollectionCheck::ItemGetInf(29), true);
|
locationTable[RC_LW_TARGET_IN_WOODS] = Location::Base(RC_LW_TARGET_IN_WOODS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_LOST_WOODS, 0x00, "Target in Woods", RHT_LW_TARGET_IN_WOODS, RG_PROGRESSIVE_SLINGSHOT, SpoilerCollectionCheck::ItemGetInf(29), true);
|
||||||
locationTable[RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT] = Location::Base(RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT, RCQUEST_BOTH, RCTYPE_SCRUB, ACTOR_EN_DNS, SCENE_LOST_WOODS, 0x00, "Deku Scrub Near Deku Theater Right", RHT_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT, RG_BUY_DEKU_NUTS_5, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT), false, 20);
|
locationTable[RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT] = Location::Base(RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT, RCQUEST_BOTH, RCTYPE_SCRUB, ACTOR_EN_DNS, SCENE_LOST_WOODS, 0x00, "Deku Scrub Near Deku Theater Right", RHT_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT, RG_BUY_DEKU_NUTS_5, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT), false, 20);
|
||||||
locationTable[RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT] = Location::Base(RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT, RCQUEST_BOTH, RCTYPE_SCRUB, ACTOR_EN_DNS, SCENE_LOST_WOODS, 0x01, "Deku Scrub Near Deku Theater Left", RHT_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT, RG_BUY_DEKU_STICK_1, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT), false, 15);
|
locationTable[RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT] = Location::Base(RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT, RCQUEST_BOTH, RCTYPE_SCRUB, ACTOR_EN_DNS, SCENE_LOST_WOODS, 0x01, "Deku Scrub Near Deku Theater Left", RHT_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT, RG_BUY_DEKU_STICK_1, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT), false, 15);
|
||||||
locationTable[RC_LW_DEKU_SCRUB_NEAR_BRIDGE] = Location::Base(RC_LW_DEKU_SCRUB_NEAR_BRIDGE, RCQUEST_BOTH, RCTYPE_SCRUB, ACTOR_EN_DNS, SCENE_LOST_WOODS, 0x09, "Deku Scrub Near Bridge", RHT_LW_DEKU_SCRUB_NEAR_BRIDGE, RG_PROGRESSIVE_STICK_UPGRADE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_BRIDGE), true, 40);
|
locationTable[RC_LW_DEKU_SCRUB_NEAR_BRIDGE] = Location::Base(RC_LW_DEKU_SCRUB_NEAR_BRIDGE, RCQUEST_BOTH, RCTYPE_SCRUB, ACTOR_EN_DNS, SCENE_LOST_WOODS, 0x09, "Deku Scrub Near Bridge", RHT_LW_DEKU_SCRUB_NEAR_BRIDGE, RG_PROGRESSIVE_STICK_BAG, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_BRIDGE), true, 40);
|
||||||
locationTable[RC_LW_DEKU_SCRUB_GROTTO_REAR] = Location::Base(RC_LW_DEKU_SCRUB_GROTTO_REAR, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_LOST_WOODS, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x03, 0xF5), "Deku Scrub Grotto Rear", RHT_LW_DEKU_SCRUB_GROTTO_REAR, RG_BUY_DEKU_SEEDS_30, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_REAR), false, 40);
|
locationTable[RC_LW_DEKU_SCRUB_GROTTO_REAR] = Location::Base(RC_LW_DEKU_SCRUB_GROTTO_REAR, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_LOST_WOODS, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x03, 0xF5), "Deku Scrub Grotto Rear", RHT_LW_DEKU_SCRUB_GROTTO_REAR, RG_BUY_DEKU_SEEDS_30, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_REAR), false, 40);
|
||||||
locationTable[RC_LW_DEKU_SCRUB_GROTTO_FRONT] = Location::Base(RC_LW_DEKU_SCRUB_GROTTO_FRONT, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_LOST_WOODS, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x0A, 0xF5), "Deku Scrub Grotto Front", RHT_LW_DEKU_SCRUB_GROTTO_FRONT, RG_PROGRESSIVE_NUT_UPGRADE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_FRONT), false, 40);
|
locationTable[RC_LW_DEKU_SCRUB_GROTTO_FRONT] = Location::Base(RC_LW_DEKU_SCRUB_GROTTO_FRONT, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_LOST_WOODS, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x0A, 0xF5), "Deku Scrub Grotto Front", RHT_LW_DEKU_SCRUB_GROTTO_FRONT, RG_PROGRESSIVE_NUT_BAG, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_FRONT), false, 40);
|
||||||
locationTable[RC_DEKU_THEATER_SKULL_MASK] = Location::Base(RC_DEKU_THEATER_SKULL_MASK, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_LOST_WOODS, ACTOR_ID_MAX, SCENE_GROTTOS, 0x00, "Deku Theater Skull Mask", RHT_DEKU_THEATER_SKULL_MASK, RG_PROGRESSIVE_STICK_UPGRADE, SpoilerCollectionCheck::ItemGetInf(ITEMGETINF_OBTAINED_STICK_UPGRADE_FROM_STAGE), true);
|
locationTable[RC_DEKU_THEATER_SKULL_MASK] = Location::Base(RC_DEKU_THEATER_SKULL_MASK, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_LOST_WOODS, ACTOR_ID_MAX, SCENE_GROTTOS, 0x00, "Deku Theater Skull Mask", RHT_DEKU_THEATER_SKULL_MASK, RG_PROGRESSIVE_STICK_BAG, SpoilerCollectionCheck::ItemGetInf(ITEMGETINF_OBTAINED_STICK_UPGRADE_FROM_STAGE), true);
|
||||||
locationTable[RC_DEKU_THEATER_MASK_OF_TRUTH] = Location::Base(RC_DEKU_THEATER_MASK_OF_TRUTH, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_LOST_WOODS, ACTOR_ID_MAX, SCENE_GROTTOS, 0x00, "Deku Theater Mask of Truth", RHT_DEKU_THEATER_MASK_OF_TRUTH, RG_PROGRESSIVE_NUT_UPGRADE, SpoilerCollectionCheck::ItemGetInf(ITEMGETINF_OBTAINED_NUT_UPGRADE_FROM_STAGE), true);
|
locationTable[RC_DEKU_THEATER_MASK_OF_TRUTH] = Location::Base(RC_DEKU_THEATER_MASK_OF_TRUTH, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_LOST_WOODS, ACTOR_ID_MAX, SCENE_GROTTOS, 0x00, "Deku Theater Mask of Truth", RHT_DEKU_THEATER_MASK_OF_TRUTH, RG_PROGRESSIVE_NUT_BAG, SpoilerCollectionCheck::ItemGetInf(ITEMGETINF_OBTAINED_NUT_UPGRADE_FROM_STAGE), true);
|
||||||
// Sacred Forest Meadow
|
// Sacred Forest Meadow
|
||||||
locationTable[RC_SFM_WOLFOS_GROTTO_CHEST] = Location::Chest(RC_SFM_WOLFOS_GROTTO_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_SACRED_FOREST_MEADOW, ACTOR_EN_BOX, SCENE_GROTTOS, 31409, 0x11, "Wolfos Grotto Chest", RHT_SFM_WOLFOS_GROTTO_CHEST, RG_PURPLE_RUPEE);
|
locationTable[RC_SFM_WOLFOS_GROTTO_CHEST] = Location::Chest(RC_SFM_WOLFOS_GROTTO_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_SACRED_FOREST_MEADOW, ACTOR_EN_BOX, SCENE_GROTTOS, 31409, 0x11, "Wolfos Grotto Chest", RHT_SFM_WOLFOS_GROTTO_CHEST, RG_PURPLE_RUPEE);
|
||||||
locationTable[RC_SFM_DEKU_SCRUB_GROTTO_REAR] = Location::Base(RC_SFM_DEKU_SCRUB_GROTTO_REAR, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_SACRED_FOREST_MEADOW, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x07, 0xEE), "Deku Scrub Grotto Rear", RHT_SFM_DEKU_SCRUB_GROTTO_REAR, RG_BUY_RED_POTION_40, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_SFM_DEKU_SCRUB_GROTTO_REAR), false, 40);
|
locationTable[RC_SFM_DEKU_SCRUB_GROTTO_REAR] = Location::Base(RC_SFM_DEKU_SCRUB_GROTTO_REAR, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_SACRED_FOREST_MEADOW, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x07, 0xEE), "Deku Scrub Grotto Rear", RHT_SFM_DEKU_SCRUB_GROTTO_REAR, RG_BUY_RED_POTION_40, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_SFM_DEKU_SCRUB_GROTTO_REAR), false, 40);
|
||||||
|
@ -171,14 +171,14 @@ void Rando::StaticData::InitLocationTable() {
|
||||||
locationTable[RC_GV_DEKU_SCRUB_GROTTO_FRONT] = Location::Base(RC_GV_DEKU_SCRUB_GROTTO_FRONT, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_GERUDO_VALLEY, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x08, 0xF0), "Deku Scrub Grotto Front", RHT_GV_DEKU_SCRUB_GROTTO_FRONT, RG_BUY_GREEN_POTION, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GV_DEKU_SCRUB_GROTTO_FRONT), false, 40);
|
locationTable[RC_GV_DEKU_SCRUB_GROTTO_FRONT] = Location::Base(RC_GV_DEKU_SCRUB_GROTTO_FRONT, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_GERUDO_VALLEY, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x08, 0xF0), "Deku Scrub Grotto Front", RHT_GV_DEKU_SCRUB_GROTTO_FRONT, RG_BUY_GREEN_POTION, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_GV_DEKU_SCRUB_GROTTO_FRONT), false, 40);
|
||||||
// Gerudo Fortress
|
// Gerudo Fortress
|
||||||
locationTable[RC_GF_CHEST] = Location::Chest(RC_GF_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDOS_FORTRESS, 1984, 0x00, "Chest", RHT_GF_CHEST, RG_PIECE_OF_HEART, true);
|
locationTable[RC_GF_CHEST] = Location::Chest(RC_GF_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDOS_FORTRESS, 1984, 0x00, "Chest", RHT_GF_CHEST, RG_PIECE_OF_HEART, true);
|
||||||
locationTable[RC_GF_HBA_1000_POINTS] = Location::Base(RC_GF_HBA_1000_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1000 Points", RHT_GF_HBA_1000_POINTS, RG_PIECE_OF_HEART, SpoilerCollectionCheck::InfTable(INFTABLE_190), true);
|
locationTable[RC_GF_HBA_1000_POINTS] = Location::Base(RC_GF_HBA_1000_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1000 Points", RHT_GF_HBA_1000_POINTS, RG_PIECE_OF_HEART, SpoilerCollectionCheck::InfTable(INFTABLE_190), true);
|
||||||
locationTable[RC_GF_HBA_1500_POINTS] = Location::Base(RC_GF_HBA_1500_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1500 Points", RHT_GF_HBA_1500_POINTS, RG_PROGRESSIVE_BOW, SpoilerCollectionCheck::ItemGetInf(15), true);
|
locationTable[RC_GF_HBA_1500_POINTS] = Location::Base(RC_GF_HBA_1500_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1500 Points", RHT_GF_HBA_1500_POINTS, RG_PROGRESSIVE_BOW, SpoilerCollectionCheck::ItemGetInf(15), true);
|
||||||
// Thieves Hideout
|
// Thieves Hideout
|
||||||
locationTable[RC_TH_FREED_CARPENTERS] = Location::Base(RC_TH_FREED_CARPENTERS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_THIEVES_HIDEOUT, 0x00, "Freed All Carpenters", RHT_TH_FREED_CARPENTERS, RG_GERUDO_MEMBERSHIP_CARD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_ITEM_FROM_LEADER_OF_FORTRESS), true);
|
locationTable[RC_TH_FREED_CARPENTERS] = Location::Base(RC_TH_FREED_CARPENTERS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_THIEVES_HIDEOUT, 0x00, "Freed All Carpenters", RHT_TH_FREED_CARPENTERS, RG_GERUDO_MEMBERSHIP_CARD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_ITEM_FROM_LEADER_OF_FORTRESS), true);
|
||||||
locationTable[RC_TH_1_TORCH_CARPENTER] = Location::Collectable(RC_TH_1_TORCH_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3089, 0x0C, "1 Torch Carpenter", RHT_TH_1_TORCH_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
locationTable[RC_TH_1_TORCH_CARPENTER] = Location::Collectable(RC_TH_1_TORCH_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3089, 0x0C, "1 Torch Carpenter", RHT_TH_1_TORCH_CARPENTER, RG_HIDEOUT_SMALL_KEY, true);
|
||||||
locationTable[RC_TH_DEAD_END_CARPENTER] = Location::Collectable(RC_TH_DEAD_END_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 2577, 0x0A, "Dead End Carpenter", RHT_TH_DEAD_END_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
locationTable[RC_TH_DEAD_END_CARPENTER] = Location::Collectable(RC_TH_DEAD_END_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 2577, 0x0A, "Dead End Carpenter", RHT_TH_DEAD_END_CARPENTER, RG_HIDEOUT_SMALL_KEY, true);
|
||||||
locationTable[RC_TH_DOUBLE_CELL_CARPENTER] = Location::Collectable(RC_TH_DOUBLE_CELL_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3601, 0x0E, "Double Cell Carpenter", RHT_TH_DOUBLE_CELL_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
locationTable[RC_TH_DOUBLE_CELL_CARPENTER] = Location::Collectable(RC_TH_DOUBLE_CELL_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3601, 0x0E, "Double Cell Carpenter", RHT_TH_DOUBLE_CELL_CARPENTER, RG_HIDEOUT_SMALL_KEY, true);
|
||||||
locationTable[RC_TH_STEEP_SLOPE_CARPENTER] = Location::Collectable(RC_TH_STEEP_SLOPE_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3857, 0x0F, "Steep Slope Carpenter", RHT_TH_STEEP_SLOPE_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
locationTable[RC_TH_STEEP_SLOPE_CARPENTER] = Location::Collectable(RC_TH_STEEP_SLOPE_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3857, 0x0F, "Steep Slope Carpenter", RHT_TH_STEEP_SLOPE_CARPENTER, RG_HIDEOUT_SMALL_KEY, true);
|
||||||
// Haunted Wasteland
|
// Haunted Wasteland
|
||||||
locationTable[RC_WASTELAND_CHEST] = Location::Chest(RC_WASTELAND_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_WASTELAND, ACTOR_EN_BOX, SCENE_HAUNTED_WASTELAND, -30048, 0x00, "Chest", RHT_WASTELAND_CHEST, RG_PURPLE_RUPEE);
|
locationTable[RC_WASTELAND_CHEST] = Location::Chest(RC_WASTELAND_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_WASTELAND, ACTOR_EN_BOX, SCENE_HAUNTED_WASTELAND, -30048, 0x00, "Chest", RHT_WASTELAND_CHEST, RG_PURPLE_RUPEE);
|
||||||
locationTable[RC_WASTELAND_BOMBCHU_SALESMAN] = Location::Base(RC_WASTELAND_BOMBCHU_SALESMAN, RCQUEST_BOTH, RCTYPE_MERCHANT, RCAREA_WASTELAND, ACTOR_ID_MAX, SCENE_HAUNTED_WASTELAND, 0x00, "Carpet Salesman", RHT_WASTELAND_BOMBCHU_SALESMAN, RG_BUY_BOMBCHUS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MERCHANTS_CARPET_SALESMAN), false, 200);
|
locationTable[RC_WASTELAND_BOMBCHU_SALESMAN] = Location::Base(RC_WASTELAND_BOMBCHU_SALESMAN, RCQUEST_BOTH, RCTYPE_MERCHANT, RCAREA_WASTELAND, ACTOR_ID_MAX, SCENE_HAUNTED_WASTELAND, 0x00, "Carpet Salesman", RHT_WASTELAND_BOMBCHU_SALESMAN, RG_BUY_BOMBCHUS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MERCHANTS_CARPET_SALESMAN), false, 200);
|
||||||
|
@ -187,7 +187,7 @@ void Rando::StaticData::InitLocationTable() {
|
||||||
locationTable[RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR] = Location::Base(RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_DESERT_COLOSSUS, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x07, 0xFD), "Deku Scrub Grotto Rear", RHT_COLOSSUS_DEKU_SCRUB_GROTTO_REAR, RG_BUY_RED_POTION_40, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_REAR), false, 40);
|
locationTable[RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR] = Location::Base(RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_DESERT_COLOSSUS, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x07, 0xFD), "Deku Scrub Grotto Rear", RHT_COLOSSUS_DEKU_SCRUB_GROTTO_REAR, RG_BUY_RED_POTION_40, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_REAR), false, 40);
|
||||||
locationTable[RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT] = Location::Base(RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_DESERT_COLOSSUS, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x08, 0xFD), "Deku Scrub Grotto Front", RHT_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT, RG_BUY_GREEN_POTION, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT), false, 40);
|
locationTable[RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT] = Location::Base(RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT, RCQUEST_BOTH, RCTYPE_SCRUB, RCAREA_DESERT_COLOSSUS, ACTOR_EN_DNS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x08, 0xFD), "Deku Scrub Grotto Front", RHT_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT, RG_BUY_GREEN_POTION, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT), false, 40);
|
||||||
// Market
|
// Market
|
||||||
locationTable[RC_MARKET_TREASURE_CHEST_GAME_REWARD] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Treasure Chest Game Reward", RHT_MARKET_TREASURE_CHEST_GAME_REWARD, RG_TREASURE_GAME_HEART, SpoilerCollectionCheck::ItemGetInf(27), true);
|
locationTable[RC_MARKET_TREASURE_CHEST_GAME_REWARD] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Treasure Chest Game Reward", RHT_MARKET_TREASURE_CHEST_GAME_REWARD, RG_TCG_PIECE_OF_HEART, SpoilerCollectionCheck::ItemGetInf(27), true);
|
||||||
locationTable[RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE] = Location::Base(RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_BOMBCHU_BOWLING_ALLEY, 0x00, "Bombchu Bowling First Prize", RHT_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE, RG_PROGRESSIVE_BOMB_BAG, SpoilerCollectionCheck::ItemGetInf(17), true);
|
locationTable[RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE] = Location::Base(RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_BOMBCHU_BOWLING_ALLEY, 0x00, "Bombchu Bowling First Prize", RHT_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE, RG_PROGRESSIVE_BOMB_BAG, SpoilerCollectionCheck::ItemGetInf(17), true);
|
||||||
locationTable[RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE] = Location::Base(RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_BOMBCHU_BOWLING_ALLEY, 0x00, "Bombchu Bowling Second Prize", RHT_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE, RG_PIECE_OF_HEART, SpoilerCollectionCheck::ItemGetInf(18), true);
|
locationTable[RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE] = Location::Base(RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_BOMBCHU_BOWLING_ALLEY, 0x00, "Bombchu Bowling Second Prize", RHT_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE, RG_PIECE_OF_HEART, SpoilerCollectionCheck::ItemGetInf(18), true);
|
||||||
locationTable[RC_MARKET_LOST_DOG] = Location::Base(RC_MARKET_LOST_DOG, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_DOG_LADY_HOUSE, 0x00, "Lost Dog", RHT_MARKET_LOST_DOG, RG_PIECE_OF_HEART, SpoilerCollectionCheck::InfTable(INFTABLE_191), true);
|
locationTable[RC_MARKET_LOST_DOG] = Location::Base(RC_MARKET_LOST_DOG, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_DOG_LADY_HOUSE, 0x00, "Lost Dog", RHT_MARKET_LOST_DOG, RG_PIECE_OF_HEART, SpoilerCollectionCheck::InfTable(INFTABLE_191), true);
|
||||||
|
@ -198,11 +198,11 @@ void Rando::StaticData::InitLocationTable() {
|
||||||
locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_3] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_3, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Third Room Item", RHT_MARKET_TREASURE_CHEST_GAME_ITEM_3, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_3));
|
locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_3] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_3, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Third Room Item", RHT_MARKET_TREASURE_CHEST_GAME_ITEM_3, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_3));
|
||||||
locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_4] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_4, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Fourth Room Item", RHT_MARKET_TREASURE_CHEST_GAME_ITEM_4, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_4));
|
locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_4] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_4, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Fourth Room Item", RHT_MARKET_TREASURE_CHEST_GAME_ITEM_4, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_4));
|
||||||
locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_5] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_5, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Fifth Room Item", RHT_MARKET_TREASURE_CHEST_GAME_ITEM_5, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_5));
|
locationTable[RC_MARKET_TREASURE_CHEST_GAME_ITEM_5] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_ITEM_5, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Fifth Room Item", RHT_MARKET_TREASURE_CHEST_GAME_ITEM_5, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_ITEM_5));
|
||||||
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_1] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_1, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game First Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_1, RG_TREASURE_GAME_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_1));
|
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_1] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_1, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game First Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_1, RG_TCG_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_1));
|
||||||
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_2] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_2, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Second Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_2, RG_TREASURE_GAME_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_2));
|
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_2] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_2, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Second Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_2, RG_TCG_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_2));
|
||||||
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_3] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_3, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Third Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_3, RG_TREASURE_GAME_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_3));
|
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_3] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_3, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Third Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_3, RG_TCG_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_3));
|
||||||
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_4] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_4, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Fourth Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_4, RG_TREASURE_GAME_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_4));
|
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_4] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_4, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Fourth Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_4, RG_TCG_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_4));
|
||||||
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_5] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_5, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Fifth Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_5, RG_TREASURE_GAME_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_5));
|
locationTable[RC_MARKET_TREASURE_CHEST_GAME_KEY_5] = Location::Chest(RC_MARKET_TREASURE_CHEST_GAME_KEY_5, RCQUEST_BOTH, RCTYPE_CHEST_GAME, ACTOR_EN_BOX, SCENE_TREASURE_BOX_SHOP, 0x00, "Chest Game Fifth Room Key", RHT_MARKET_TREASURE_CHEST_GAME_KEY_5, RG_TCG_SMALL_KEY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_5));
|
||||||
// Hyrule Castle
|
// Hyrule Castle
|
||||||
locationTable[RC_HC_MALON_EGG] = Location::Base(RC_HC_MALON_EGG, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_HYRULE_CASTLE, 0x00, "Malon Egg", RHT_HC_MALON_EGG, RG_WEIRD_EGG, SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_OBTAINED_POCKET_EGG), true);
|
locationTable[RC_HC_MALON_EGG] = Location::Base(RC_HC_MALON_EGG, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_HYRULE_CASTLE, 0x00, "Malon Egg", RHT_HC_MALON_EGG, RG_WEIRD_EGG, SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_OBTAINED_POCKET_EGG), true);
|
||||||
locationTable[RC_HC_ZELDAS_LETTER] = Location::Base(RC_HC_ZELDAS_LETTER, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_CASTLE_COURTYARD_ZELDA, 0x00, "Zeldas Letter", RHT_HC_ZELDAS_LETTER, RG_ZELDAS_LETTER, SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER), true);
|
locationTable[RC_HC_ZELDAS_LETTER] = Location::Base(RC_HC_ZELDAS_LETTER, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_CASTLE_COURTYARD_ZELDA, 0x00, "Zeldas Letter", RHT_HC_ZELDAS_LETTER, RG_ZELDAS_LETTER, SpoilerCollectionCheck::EventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER), true);
|
||||||
|
@ -508,26 +508,26 @@ void Rando::StaticData::InitLocationTable() {
|
||||||
locationTable[RC_SHADOW_TEMPLE_MQ_FREESTANDING_KEY] = Location::Collectable(RC_SHADOW_TEMPLE_MQ_FREESTANDING_KEY, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_SHADOW_TEMPLE, 1553, 0x06, "MQ Freestanding Key", RHT_SHADOW_TEMPLE_MQ_FREESTANDING_KEY, RG_SHADOW_TEMPLE_SMALL_KEY, true);
|
locationTable[RC_SHADOW_TEMPLE_MQ_FREESTANDING_KEY] = Location::Collectable(RC_SHADOW_TEMPLE_MQ_FREESTANDING_KEY, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_SHADOW_TEMPLE, 1553, 0x06, "MQ Freestanding Key", RHT_SHADOW_TEMPLE_MQ_FREESTANDING_KEY, RG_SHADOW_TEMPLE_SMALL_KEY, true);
|
||||||
|
|
||||||
// Bottom of the Well Vanilla
|
// Bottom of the Well Vanilla
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 22600, 0x08, "Front Left Fake Wall Chest", RHT_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST, RG_BOTTOM_OF_THE_WELL_SMALL_KEY, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 22600, 0x08, "Front Left Fake Wall Chest", RHT_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST, RG_BOTW_SMALL_KEY, true);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 20578, 0x02, "Front Center Bombable Chest", RHT_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST, RG_BOMBCHU_10);
|
locationTable[RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 20578, 0x02, "Front Center Bombable Chest", RHT_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST, RG_BOMBCHU_10);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 22597, 0x05, "Right Bottom Fake Wall Chest", RHT_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST, RG_BOTTOM_OF_THE_WELL_SMALL_KEY, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 22597, 0x05, "Right Bottom Fake Wall Chest", RHT_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST, RG_BOTW_SMALL_KEY, true);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST, RCQUEST_VANILLA, RCTYPE_COMPASS, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 2049, 0x01, "Compass Chest", RHT_BOTTOM_OF_THE_WELL_COMPASS_CHEST, RG_BOTTOM_OF_THE_WELL_COMPASS, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST, RCQUEST_VANILLA, RCTYPE_COMPASS, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 2049, 0x01, "Compass Chest", RHT_BOTTOM_OF_THE_WELL_COMPASS_CHEST, RG_BOTW_COMPASS, true);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 20558, 0x0E, "Center Skulltula Chest", RHT_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST, RG_DEKU_NUTS_5);
|
locationTable[RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 20558, 0x0E, "Center Skulltula Chest", RHT_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST, RG_DEKU_NUTS_5);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 23684, 0x04, "Back Left Bombable Chest", RHT_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST, RG_DEKU_NUTS_10);
|
locationTable[RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 23684, 0x04, "Back Left Bombable Chest", RHT_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST, RG_DEKU_NUTS_10);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST, RCQUEST_VANILLA, RCTYPE_BOSS_HEART_OR_OTHER_REWARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 4419, 0x03, "Lens of Truth Chest", RHT_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST, RG_LENS_OF_TRUTH, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST, RCQUEST_VANILLA, RCTYPE_BOSS_HEART_OR_OTHER_REWARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 4419, 0x03, "Lens of Truth Chest", RHT_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST, RG_LENS_OF_TRUTH, true);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 27348, 0x14, "Invisible Chest", RHT_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST, RG_HUGE_RUPEE);
|
locationTable[RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 27348, 0x14, "Invisible Chest", RHT_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST, RG_HUGE_RUPEE);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 23760, 0x10, "Underwater Front Chest", RHT_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST, RG_BOMBS_10);
|
locationTable[RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 23760, 0x10, "Underwater Front Chest", RHT_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST, RG_BOMBS_10);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 22793, 0x09, "Underwater Left Chest", RHT_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST, RG_RECOVERY_HEART);
|
locationTable[RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 22793, 0x09, "Underwater Left Chest", RHT_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST, RG_RECOVERY_HEART);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_MAP_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_MAP_CHEST, RCQUEST_VANILLA, RCTYPE_MAP, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 2087, 0x07, "Map Chest", RHT_BOTTOM_OF_THE_WELL_MAP_CHEST, RG_BOTTOM_OF_THE_WELL_MAP, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_MAP_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_MAP_CHEST, RCQUEST_VANILLA, RCTYPE_MAP, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 2087, 0x07, "Map Chest", RHT_BOTTOM_OF_THE_WELL_MAP_CHEST, RG_BOTW_MAP, true);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 21802, 0x0A, "Fire Keese Chest", RHT_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST, RG_DEKU_SHIELD);
|
locationTable[RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 21802, 0x0A, "Fire Keese Chest", RHT_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST, RG_DEKU_SHIELD);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 21836, 0x0C, "Like Like Chest", RHT_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST, RG_HYLIAN_SHIELD);
|
locationTable[RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 21836, 0x0C, "Like Like Chest", RHT_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST, RG_HYLIAN_SHIELD);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_FREESTANDING_KEY] = Location::Collectable(RC_BOTTOM_OF_THE_WELL_FREESTANDING_KEY, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_BOTTOM_OF_THE_WELL, 273, 0x01, "Freestanding Key", RHT_BOTTOM_OF_THE_WELL_FREESTANDING_KEY, RG_BOTTOM_OF_THE_WELL_SMALL_KEY, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_FREESTANDING_KEY] = Location::Collectable(RC_BOTTOM_OF_THE_WELL_FREESTANDING_KEY, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_BOTTOM_OF_THE_WELL, 273, 0x01, "Freestanding Key", RHT_BOTTOM_OF_THE_WELL_FREESTANDING_KEY, RG_BOTW_SMALL_KEY, true);
|
||||||
// Bottom of the Well Master Quest
|
// Bottom of the Well Master Quest
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST, RCQUEST_MQ, RCTYPE_MAP, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 2083, 0x03, "MQ Map Chest", RHT_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST, RG_BOTTOM_OF_THE_WELL_MAP, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST, RCQUEST_MQ, RCTYPE_MAP, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 2083, 0x03, "MQ Map Chest", RHT_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST, RG_BOTW_MAP, true);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST, RCQUEST_MQ, RCTYPE_BOSS_HEART_OR_OTHER_REWARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, -20159, 0x01, "MQ Lens of Truth Chest", RHT_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST, RG_LENS_OF_TRUTH, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST, RCQUEST_MQ, RCTYPE_BOSS_HEART_OR_OTHER_REWARD, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, -20159, 0x01, "MQ Lens of Truth Chest", RHT_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST, RG_LENS_OF_TRUTH, true);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST, RCQUEST_MQ, RCTYPE_COMPASS, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 6146, 0x02, "MQ Compass Chest", RHT_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST, RG_BOTTOM_OF_THE_WELL_COMPASS, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST] = Location::Chest(RC_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST, RCQUEST_MQ, RCTYPE_COMPASS, ACTOR_EN_BOX, SCENE_BOTTOM_OF_THE_WELL, 6146, 0x02, "MQ Compass Chest", RHT_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST, RG_BOTW_COMPASS, true);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY] = Location::Collectable(RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_BOTTOM_OF_THE_WELL, 529, 0x02, "MQ Dead Hand Freestanding Key", RHT_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY, RG_BOTTOM_OF_THE_WELL_SMALL_KEY, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY] = Location::Collectable(RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_BOTTOM_OF_THE_WELL, 529, 0x02, "MQ Dead Hand Freestanding Key", RHT_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY, RG_BOTW_SMALL_KEY, true);
|
||||||
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY] = Location::Collectable(RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_BOTTOM_OF_THE_WELL, 273, 0x01, "MQ East Inner Room Freestanding Key", RHT_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY, RG_BOTTOM_OF_THE_WELL_SMALL_KEY, true);
|
locationTable[RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY] = Location::Collectable(RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_BOTTOM_OF_THE_WELL, 273, 0x01, "MQ East Inner Room Freestanding Key", RHT_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY, RG_BOTW_SMALL_KEY, true);
|
||||||
|
|
||||||
// Ice Cavern Vanilla
|
// Ice Cavern Vanilla
|
||||||
locationTable[RC_ICE_CAVERN_MAP_CHEST] = Location::Chest(RC_ICE_CAVERN_MAP_CHEST, RCQUEST_VANILLA, RCTYPE_MAP, ACTOR_EN_BOX, SCENE_ICE_CAVERN, 2080, 0x00, "Map Chest", RHT_ICE_CAVERN_MAP_CHEST, RG_ICE_CAVERN_MAP, true);
|
locationTable[RC_ICE_CAVERN_MAP_CHEST] = Location::Chest(RC_ICE_CAVERN_MAP_CHEST, RCQUEST_VANILLA, RCTYPE_MAP, ACTOR_EN_BOX, SCENE_ICE_CAVERN, 2080, 0x00, "Map Chest", RHT_ICE_CAVERN_MAP_CHEST, RG_ICE_CAVERN_MAP, true);
|
||||||
|
@ -543,43 +543,43 @@ void Rando::StaticData::InitLocationTable() {
|
||||||
// Gerudo Training Ground Vanilla
|
// Gerudo Training Ground Vanilla
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30573, 0x13, "Lobby Left Chest", RHT_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST, RG_BLUE_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30573, 0x13, "Lobby Left Chest", RHT_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST, RG_BLUE_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30393, 0x07, "Lobby Right Chest", RHT_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST, RG_ARROWS_10);
|
locationTable[RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30393, 0x07, "Lobby Right Chest", RHT_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST, RG_ARROWS_10);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30656, 0x00, "Stalfos Chest", RHT_GERUDO_TRAINING_GROUND_STALFOS_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30656, 0x00, "Stalfos Chest", RHT_GERUDO_TRAINING_GROUND_STALFOS_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30655, 0x01, "Beamos Chest", RHT_GERUDO_TRAINING_GROUND_BEAMOS_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30655, 0x01, "Beamos Chest", RHT_GERUDO_TRAINING_GROUND_BEAMOS_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22603, 0x0B, "Hidden Ceiling Chest", RHT_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22603, 0x0B, "Hidden Ceiling Chest", RHT_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 23206, 0x06, "Maze Path First Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST, RG_PURPLE_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 23206, 0x06, "Maze Path First Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST, RG_PURPLE_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22986, 0x0A, "Maze Path Second Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST, RG_RED_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22986, 0x0A, "Maze Path Second Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST, RG_RED_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22889, 0x09, "Maze Path Third Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST, RG_ARROWS_30);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22889, 0x09, "Maze Path Third Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST, RG_ARROWS_30);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST, RCQUEST_VANILLA, RCTYPE_BOSS_HEART_OR_OTHER_REWARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 2860, 0x0C, "Maze Path Final Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST, RG_ICE_ARROWS, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST, RCQUEST_VANILLA, RCTYPE_BOSS_HEART_OR_OTHER_REWARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 2860, 0x0C, "Maze Path Final Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST, RG_ICE_ARROWS, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 23877, 0x05, "Maze Right Central Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST, RG_BOMBCHU_5);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 23877, 0x05, "Maze Right Central Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST, RG_BOMBCHU_5);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22888, 0x08, "Maze Right Side Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST, RG_ARROWS_30);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22888, 0x08, "Maze Right Side Chest", RHT_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST, RG_ARROWS_30);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30643, 0x0D, "Underwater Silver Rupee Chest", RHT_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30643, 0x0D, "Underwater Silver Rupee Chest", RHT_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31058, 0x12, "Hammer Room Clear Chest", RHT_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST, RG_ARROWS_10);
|
locationTable[RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31058, 0x12, "Hammer Room Clear Chest", RHT_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST, RG_ARROWS_10);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22608, 0x10, "Hammer Room Switch Chest", RHT_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22608, 0x10, "Hammer Room Switch Chest", RHT_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30653, 0x03, "Eye Statue Chest", RHT_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30653, 0x03, "Eye Statue Chest", RHT_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22596, 0x04, "Near Scarecrow Chest", RHT_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22596, 0x04, "Near Scarecrow Chest", RHT_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31089, 0x11, "Before Heavy Block Chest", RHT_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST, RG_ARROWS_30);
|
locationTable[RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31089, 0x11, "Before Heavy Block Chest", RHT_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST, RG_ARROWS_30);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31439, 0x0F, "Heavy Block First Chest", RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST, RG_HUGE_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31439, 0x0F, "Heavy Block First Chest", RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST, RG_HUGE_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 30862, 0x0E, "Heavy Block Second Chest", RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST, RG_BLUE_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 30862, 0x0E, "Heavy Block Second Chest", RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST, RG_BLUE_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 26708, 0x14, "Heavy Block Third Chest", RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 26708, 0x14, "Heavy Block Third Chest", RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 24450, 0x02, "Heavy Block Fourth Chest", RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST, RG_ICE_TRAP);
|
locationTable[RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST, RCQUEST_VANILLA, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 24450, 0x02, "Heavy Block Fourth Chest", RHT_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST, RG_ICE_TRAP);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY] = Location::Collectable(RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_GERUDO_TRAINING_GROUND, 273, 0x01, "Freestanding Key", RHT_GERUDO_TRAINING_GROUND_FREESTANDING_KEY, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY] = Location::Collectable(RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY, RCQUEST_VANILLA, RCTYPE_SMALL_KEY, ACTOR_EN_ITEM00, SCENE_GERUDO_TRAINING_GROUND, 273, 0x01, "Freestanding Key", RHT_GERUDO_TRAINING_GROUND_FREESTANDING_KEY, RG_GTG_SMALL_KEY, true);
|
||||||
// Gerudo Training Ground Master Quest
|
// Gerudo Training Ground Master Quest
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 23879, 0x07, "MQ Lobby Right Chest", RHT_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST, RG_BOMBCHU_5);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 23879, 0x07, "MQ Lobby Right Chest", RHT_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST, RG_BOMBCHU_5);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22867, 0x13, "MQ Lobby Left Chest", RHT_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST, RG_ARROWS_10);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22867, 0x13, "MQ Lobby Left Chest", RHT_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST, RG_ARROWS_10);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30304, 0x00, "MQ First Iron Knuckle Chest", RHT_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST, RG_BLUE_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30304, 0x00, "MQ First Iron Knuckle Chest", RHT_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST, RG_BLUE_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31057, 0x11, "MQ Before Heavy Block Chest", RHT_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST, RG_ARROWS_10);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31057, 0x11, "MQ Before Heavy Block Chest", RHT_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST, RG_ARROWS_10);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -32669, 0x03, "MQ Eye Statue Chest", RHT_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST, RG_BOMBCHU_10);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -32669, 0x03, "MQ Eye Statue Chest", RHT_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST, RG_BOMBCHU_10);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30642, 0x0E, "MQ Flame Circle Chest", RHT_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30642, 0x0E, "MQ Flame Circle Chest", RHT_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31058, 0x12, "MQ Second Iron Knuckle Chest", RHT_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST, RG_ARROWS_10);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31058, 0x12, "MQ Second Iron Knuckle Chest", RHT_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST, RG_ARROWS_10);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30655, 0x01, "MQ Dinolfos Chest", RHT_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST, RG_GERUDO_TRAINING_GROUND_SMALL_KEY, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30655, 0x01, "MQ Dinolfos Chest", RHT_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST, RG_GTG_SMALL_KEY, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST, RCQUEST_MQ, RCTYPE_BOSS_HEART_OR_OTHER_REWARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -17628, 0x04, "MQ Ice Arrows Chest", RHT_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST, RG_ICE_ARROWS, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST, RCQUEST_MQ, RCTYPE_BOSS_HEART_OR_OTHER_REWARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -17628, 0x04, "MQ Ice Arrows Chest", RHT_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST, RG_ICE_ARROWS, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22661, 0x05, "MQ Maze Right Central Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST, RG_BLUE_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22661, 0x05, "MQ Maze Right Central Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST, RG_BLUE_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22918, 0x06, "MQ Maze Path First Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST, RG_GREEN_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22918, 0x06, "MQ Maze Path First Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST, RG_GREEN_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 24136, 0x08, "MQ Maze Right Side Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST, RG_TREASURE_GAME_GREEN_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 24136, 0x08, "MQ Maze Right Side Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST, RG_LOSER_GREEN_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 24137, 0x09, "MQ Maze Path Third Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST, RG_TREASURE_GAME_GREEN_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 24137, 0x09, "MQ Maze Path Third Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST, RG_LOSER_GREEN_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22986, 0x0A, "MQ Maze Path Second Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST, RG_RED_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 22986, 0x0A, "MQ Maze Path Second Chest", RHT_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST, RG_RED_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 23211, 0x0B, "MQ Hidden Ceiling Chest", RHT_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST, RG_PURPLE_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 23211, 0x0B, "MQ Hidden Ceiling Chest", RHT_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST, RG_PURPLE_RUPEE);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30643, 0x0D, "MQ Underwater Silver Rupee Chest", RHT_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST, RG_TREASURE_GAME_GREEN_RUPEE, true);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST, RCQUEST_MQ, RCTYPE_SMALL_KEY, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, -30643, 0x0D, "MQ Underwater Silver Rupee Chest", RHT_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST, RG_LOSER_GREEN_RUPEE, true);
|
||||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31394, 0x02, "MQ Heavy Block Chest", RHT_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST, RG_PURPLE_RUPEE);
|
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST] = Location::Chest(RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST, RCQUEST_MQ, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_GERUDO_TRAINING_GROUND, 31394, 0x02, "MQ Heavy Block Chest", RHT_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST, RG_PURPLE_RUPEE);
|
||||||
|
|
||||||
// Ganon's Castle Shared
|
// Ganon's Castle Shared
|
||||||
|
@ -824,8 +824,8 @@ void Rando::StaticData::InitLocationTable() {
|
||||||
locationTable[RC_ZF_GREAT_FAIRY_REWARD] = Location::Base(RC_ZF_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_ZORAS_FOUNTAIN, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 1, "Great Fairy Reward", RHT_ZF_GREAT_FAIRY_REWARD, RG_FARORES_WIND, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_GREAT_FAIRY_REWARD), true);
|
locationTable[RC_ZF_GREAT_FAIRY_REWARD] = Location::Base(RC_ZF_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_ZORAS_FOUNTAIN, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 1, "Great Fairy Reward", RHT_ZF_GREAT_FAIRY_REWARD, RG_FARORES_WIND, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_GREAT_FAIRY_REWARD), true);
|
||||||
locationTable[RC_HC_GREAT_FAIRY_REWARD] = Location::Base(RC_HC_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_HYRULE_CASTLE, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 2, "Great Fairy Reward", RHT_HC_GREAT_FAIRY_REWARD, RG_DINS_FIRE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_GREAT_FAIRY_REWARD), true);
|
locationTable[RC_HC_GREAT_FAIRY_REWARD] = Location::Base(RC_HC_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_HYRULE_CASTLE, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 2, "Great Fairy Reward", RHT_HC_GREAT_FAIRY_REWARD, RG_DINS_FIRE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_GREAT_FAIRY_REWARD), true);
|
||||||
locationTable[RC_COLOSSUS_GREAT_FAIRY_REWARD] = Location::Base(RC_COLOSSUS_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_DESERT_COLOSSUS, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 3, "Great Fairy Reward", RHT_COLOSSUS_GREAT_FAIRY_REWARD, RG_NAYRUS_LOVE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COLOSSUS_GREAT_FAIRY_REWARD), true);
|
locationTable[RC_COLOSSUS_GREAT_FAIRY_REWARD] = Location::Base(RC_COLOSSUS_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_DESERT_COLOSSUS, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 3, "Great Fairy Reward", RHT_COLOSSUS_GREAT_FAIRY_REWARD, RG_NAYRUS_LOVE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COLOSSUS_GREAT_FAIRY_REWARD), true);
|
||||||
locationTable[RC_DMT_GREAT_FAIRY_REWARD] = Location::Base(RC_DMT_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_DEATH_MOUNTAIN_TRAIL, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC, 1, "Great Fairy Reward", RHT_DMT_GREAT_FAIRY_REWARD, RG_PROGRESSIVE_MAGIC_METER, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMT_GREAT_FAIRY_REWARD), true);
|
locationTable[RC_DMT_GREAT_FAIRY_REWARD] = Location::Base(RC_DMT_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_DEATH_MOUNTAIN_TRAIL, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC, 1, "Great Fairy Reward", RHT_DMT_GREAT_FAIRY_REWARD, RG_PROGRESSIVE_MAGIC, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMT_GREAT_FAIRY_REWARD), true);
|
||||||
locationTable[RC_DMC_GREAT_FAIRY_REWARD] = Location::Base(RC_DMC_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_DEATH_MOUNTAIN_CRATER, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC, 2, "Great Fairy Reward", RHT_DMC_GREAT_FAIRY_REWARD, RG_PROGRESSIVE_MAGIC_METER, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMC_GREAT_FAIRY_REWARD), true);
|
locationTable[RC_DMC_GREAT_FAIRY_REWARD] = Location::Base(RC_DMC_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_DEATH_MOUNTAIN_CRATER, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC, 2, "Great Fairy Reward", RHT_DMC_GREAT_FAIRY_REWARD, RG_PROGRESSIVE_MAGIC, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMC_GREAT_FAIRY_REWARD), true);
|
||||||
locationTable[RC_OGC_GREAT_FAIRY_REWARD] = Location::Base(RC_OGC_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_HYRULE_CASTLE, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC, 3, "OGC Great Fairy Reward", "OGC Great Fairy Reward", RHT_OGC_GREAT_FAIRY_REWARD, RG_DOUBLE_DEFENSE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_OGC_GREAT_FAIRY_REWARD), true);
|
locationTable[RC_OGC_GREAT_FAIRY_REWARD] = Location::Base(RC_OGC_GREAT_FAIRY_REWARD, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_HYRULE_CASTLE, ACTOR_BG_DY_YOSEIZO, SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC, 3, "OGC Great Fairy Reward", "OGC Great Fairy Reward", RHT_OGC_GREAT_FAIRY_REWARD, RG_DOUBLE_DEFENSE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_OGC_GREAT_FAIRY_REWARD), true);
|
||||||
|
|
||||||
/*-------------------------------
|
/*-------------------------------
|
||||||
|
|
|
@ -43,7 +43,7 @@ bool Logic::HasItem(RandomizerGet itemName) {
|
||||||
return CheckInventory(ITEM_HOOKSHOT, false);
|
return CheckInventory(ITEM_HOOKSHOT, false);
|
||||||
case RG_LONGSHOT:
|
case RG_LONGSHOT:
|
||||||
return CheckInventory(ITEM_LONGSHOT, true);
|
return CheckInventory(ITEM_LONGSHOT, true);
|
||||||
case RG_PROGRESSIVE_STICK_UPGRADE:
|
case RG_PROGRESSIVE_STICK_BAG:
|
||||||
case RG_STICKS:
|
case RG_STICKS:
|
||||||
return CurrentUpgrade(UPG_STICKS);
|
return CurrentUpgrade(UPG_STICKS);
|
||||||
case RG_FIRE_ARROWS:
|
case RG_FIRE_ARROWS:
|
||||||
|
@ -62,7 +62,7 @@ bool Logic::HasItem(RandomizerGet itemName) {
|
||||||
return CheckInventory(ITEM_SLINGSHOT, true);
|
return CheckInventory(ITEM_SLINGSHOT, true);
|
||||||
case RG_BOOMERANG:
|
case RG_BOOMERANG:
|
||||||
return CheckInventory(ITEM_BOOMERANG, true);
|
return CheckInventory(ITEM_BOOMERANG, true);
|
||||||
case RG_PROGRESSIVE_NUT_UPGRADE:
|
case RG_PROGRESSIVE_NUT_BAG:
|
||||||
case RG_NUTS:
|
case RG_NUTS:
|
||||||
return CurrentUpgrade(UPG_NUTS);
|
return CurrentUpgrade(UPG_NUTS);
|
||||||
// RANDOTODO handle cases where the scarecrow is persistent between age better when OI is added
|
// RANDOTODO handle cases where the scarecrow is persistent between age better when OI is added
|
||||||
|
@ -149,20 +149,20 @@ bool Logic::HasItem(RandomizerGet itemName) {
|
||||||
case RG_MARKET_BAZAAR_KEY:
|
case RG_MARKET_BAZAAR_KEY:
|
||||||
case RG_MARKET_POTION_SHOP_KEY:
|
case RG_MARKET_POTION_SHOP_KEY:
|
||||||
case RG_MASK_SHOP_KEY:
|
case RG_MASK_SHOP_KEY:
|
||||||
case RG_MARKET_SHOOTING_GALLERY_KEY:
|
case RG_MARKET_SHOOTING_KEY:
|
||||||
case RG_BOMBCHU_BOWLING_KEY:
|
case RG_BOMBCHU_BOWLING_KEY:
|
||||||
case RG_TREASURE_CHEST_GAME_BUILDING_KEY:
|
case RG_TCG_BUILDING_KEY:
|
||||||
case RG_BOMBCHU_SHOP_KEY:
|
case RG_BOMBCHU_SHOP_KEY:
|
||||||
case RG_RICHARDS_HOUSE_KEY:
|
case RG_RICHARDS_HOUSE_KEY:
|
||||||
case RG_ALLEY_HOUSE_KEY:
|
case RG_ALLEY_HOUSE_KEY:
|
||||||
case RG_KAK_BAZAAR_KEY:
|
case RG_KAK_BAZAAR_KEY:
|
||||||
case RG_KAK_POTION_SHOP_KEY:
|
case RG_KAK_POTION_SHOP_KEY:
|
||||||
case RG_BOSS_HOUSE_KEY:
|
case RG_BOSS_HOUSE_KEY:
|
||||||
case RG_GRANNYS_POTION_SHOP_KEY:
|
case RG_GRANNYS_SHOP_KEY:
|
||||||
case RG_SKULLTULA_HOUSE_KEY:
|
case RG_SKULLTULA_HOUSE_KEY:
|
||||||
case RG_IMPAS_HOUSE_KEY:
|
case RG_IMPAS_HOUSE_KEY:
|
||||||
case RG_WINDMILL_KEY:
|
case RG_WINDMILL_KEY:
|
||||||
case RG_KAK_SHOOTING_GALLERY_KEY:
|
case RG_KAK_SHOOTING_KEY:
|
||||||
case RG_DAMPES_HUT_KEY:
|
case RG_DAMPES_HUT_KEY:
|
||||||
case RG_TALONS_HOUSE_KEY:
|
case RG_TALONS_HOUSE_KEY:
|
||||||
case RG_STABLES_KEY:
|
case RG_STABLES_KEY:
|
||||||
|
@ -190,7 +190,7 @@ bool Logic::HasItem(RandomizerGet itemName) {
|
||||||
case RG_WATER_TEMPLE_MAP:
|
case RG_WATER_TEMPLE_MAP:
|
||||||
case RG_SPIRIT_TEMPLE_MAP:
|
case RG_SPIRIT_TEMPLE_MAP:
|
||||||
case RG_SHADOW_TEMPLE_MAP:
|
case RG_SHADOW_TEMPLE_MAP:
|
||||||
case RG_BOTTOM_OF_THE_WELL_MAP:
|
case RG_BOTW_MAP:
|
||||||
case RG_ICE_CAVERN_MAP:
|
case RG_ICE_CAVERN_MAP:
|
||||||
return CheckDungeonItem(DUNGEON_MAP, RandoGetToDungeonScene.at(itemName));
|
return CheckDungeonItem(DUNGEON_MAP, RandoGetToDungeonScene.at(itemName));
|
||||||
// Compasses
|
// Compasses
|
||||||
|
@ -202,7 +202,7 @@ bool Logic::HasItem(RandomizerGet itemName) {
|
||||||
case RG_WATER_TEMPLE_COMPASS:
|
case RG_WATER_TEMPLE_COMPASS:
|
||||||
case RG_SPIRIT_TEMPLE_COMPASS:
|
case RG_SPIRIT_TEMPLE_COMPASS:
|
||||||
case RG_SHADOW_TEMPLE_COMPASS:
|
case RG_SHADOW_TEMPLE_COMPASS:
|
||||||
case RG_BOTTOM_OF_THE_WELL_COMPASS:
|
case RG_BOTW_COMPASS:
|
||||||
case RG_ICE_CAVERN_COMPASS:
|
case RG_ICE_CAVERN_COMPASS:
|
||||||
return CheckDungeonItem(DUNGEON_COMPASS, RandoGetToDungeonScene.at(itemName));
|
return CheckDungeonItem(DUNGEON_COMPASS, RandoGetToDungeonScene.at(itemName));
|
||||||
// Wallets
|
// Wallets
|
||||||
|
@ -1477,20 +1477,20 @@ std::map<RandomizerGet, uint32_t> Logic::RandoGetToRandInf = {
|
||||||
{ RG_MARKET_BAZAAR_KEY, RAND_INF_MARKET_BAZAAR_KEY_OBTAINED },
|
{ RG_MARKET_BAZAAR_KEY, RAND_INF_MARKET_BAZAAR_KEY_OBTAINED },
|
||||||
{ RG_MARKET_POTION_SHOP_KEY, RAND_INF_MARKET_POTION_SHOP_KEY_OBTAINED },
|
{ RG_MARKET_POTION_SHOP_KEY, RAND_INF_MARKET_POTION_SHOP_KEY_OBTAINED },
|
||||||
{ RG_MASK_SHOP_KEY, RAND_INF_MASK_SHOP_KEY_OBTAINED },
|
{ RG_MASK_SHOP_KEY, RAND_INF_MASK_SHOP_KEY_OBTAINED },
|
||||||
{ RG_MARKET_SHOOTING_GALLERY_KEY, RAND_INF_MARKET_SHOOTING_GALLERY_KEY_OBTAINED },
|
{ RG_MARKET_SHOOTING_KEY, RAND_INF_MARKET_SHOOTING_GALLERY_KEY_OBTAINED },
|
||||||
{ RG_BOMBCHU_BOWLING_KEY, RAND_INF_BOMBCHU_BOWLING_KEY_OBTAINED },
|
{ RG_BOMBCHU_BOWLING_KEY, RAND_INF_BOMBCHU_BOWLING_KEY_OBTAINED },
|
||||||
{ RG_TREASURE_CHEST_GAME_BUILDING_KEY, RAND_INF_TREASURE_CHEST_GAME_BUILDING_KEY_OBTAINED },
|
{ RG_TCG_BUILDING_KEY, RAND_INF_TREASURE_CHEST_GAME_BUILDING_KEY_OBTAINED },
|
||||||
{ RG_BOMBCHU_SHOP_KEY, RAND_INF_BOMBCHU_SHOP_KEY_OBTAINED },
|
{ RG_BOMBCHU_SHOP_KEY, RAND_INF_BOMBCHU_SHOP_KEY_OBTAINED },
|
||||||
{ RG_RICHARDS_HOUSE_KEY, RAND_INF_RICHARDS_HOUSE_KEY_OBTAINED },
|
{ RG_RICHARDS_HOUSE_KEY, RAND_INF_RICHARDS_HOUSE_KEY_OBTAINED },
|
||||||
{ RG_ALLEY_HOUSE_KEY, RAND_INF_ALLEY_HOUSE_KEY_OBTAINED },
|
{ RG_ALLEY_HOUSE_KEY, RAND_INF_ALLEY_HOUSE_KEY_OBTAINED },
|
||||||
{ RG_KAK_BAZAAR_KEY, RAND_INF_KAK_BAZAAR_KEY_OBTAINED },
|
{ RG_KAK_BAZAAR_KEY, RAND_INF_KAK_BAZAAR_KEY_OBTAINED },
|
||||||
{ RG_KAK_POTION_SHOP_KEY, RAND_INF_KAK_POTION_SHOP_KEY_OBTAINED },
|
{ RG_KAK_POTION_SHOP_KEY, RAND_INF_KAK_POTION_SHOP_KEY_OBTAINED },
|
||||||
{ RG_BOSS_HOUSE_KEY, RAND_INF_BOSS_HOUSE_KEY_OBTAINED },
|
{ RG_BOSS_HOUSE_KEY, RAND_INF_BOSS_HOUSE_KEY_OBTAINED },
|
||||||
{ RG_GRANNYS_POTION_SHOP_KEY, RAND_INF_GRANNYS_POTION_SHOP_KEY_OBTAINED },
|
{ RG_GRANNYS_SHOP_KEY, RAND_INF_GRANNYS_POTION_SHOP_KEY_OBTAINED },
|
||||||
{ RG_SKULLTULA_HOUSE_KEY, RAND_INF_SKULLTULA_HOUSE_KEY_OBTAINED },
|
{ RG_SKULLTULA_HOUSE_KEY, RAND_INF_SKULLTULA_HOUSE_KEY_OBTAINED },
|
||||||
{ RG_IMPAS_HOUSE_KEY, RAND_INF_IMPAS_HOUSE_KEY_OBTAINED },
|
{ RG_IMPAS_HOUSE_KEY, RAND_INF_IMPAS_HOUSE_KEY_OBTAINED },
|
||||||
{ RG_WINDMILL_KEY, RAND_INF_WINDMILL_KEY_OBTAINED },
|
{ RG_WINDMILL_KEY, RAND_INF_WINDMILL_KEY_OBTAINED },
|
||||||
{ RG_KAK_SHOOTING_GALLERY_KEY, RAND_INF_KAK_SHOOTING_GALLERY_KEY_OBTAINED },
|
{ RG_KAK_SHOOTING_KEY, RAND_INF_KAK_SHOOTING_GALLERY_KEY_OBTAINED },
|
||||||
{ RG_DAMPES_HUT_KEY, RAND_INF_DAMPES_HUT_KEY_OBTAINED },
|
{ RG_DAMPES_HUT_KEY, RAND_INF_DAMPES_HUT_KEY_OBTAINED },
|
||||||
{ RG_TALONS_HOUSE_KEY, RAND_INF_TALONS_HOUSE_KEY_OBTAINED },
|
{ RG_TALONS_HOUSE_KEY, RAND_INF_TALONS_HOUSE_KEY_OBTAINED },
|
||||||
{ RG_STABLES_KEY, RAND_INF_STABLES_KEY_OBTAINED },
|
{ RG_STABLES_KEY, RAND_INF_STABLES_KEY_OBTAINED },
|
||||||
|
@ -1505,18 +1505,18 @@ std::map<uint32_t, uint32_t> Logic::RandoGetToDungeonScene = {
|
||||||
{ RG_WATER_TEMPLE_SMALL_KEY, SCENE_WATER_TEMPLE },
|
{ RG_WATER_TEMPLE_SMALL_KEY, SCENE_WATER_TEMPLE },
|
||||||
{ RG_SPIRIT_TEMPLE_SMALL_KEY, SCENE_SPIRIT_TEMPLE },
|
{ RG_SPIRIT_TEMPLE_SMALL_KEY, SCENE_SPIRIT_TEMPLE },
|
||||||
{ RG_SHADOW_TEMPLE_SMALL_KEY, SCENE_SHADOW_TEMPLE },
|
{ RG_SHADOW_TEMPLE_SMALL_KEY, SCENE_SHADOW_TEMPLE },
|
||||||
{ RG_BOTTOM_OF_THE_WELL_SMALL_KEY, SCENE_BOTTOM_OF_THE_WELL },
|
{ RG_BOTW_SMALL_KEY, SCENE_BOTTOM_OF_THE_WELL },
|
||||||
{ RG_GERUDO_TRAINING_GROUND_SMALL_KEY, SCENE_GERUDO_TRAINING_GROUND },
|
{ RG_GTG_SMALL_KEY, SCENE_GERUDO_TRAINING_GROUND },
|
||||||
{ RG_GERUDO_FORTRESS_SMALL_KEY, SCENE_THIEVES_HIDEOUT },
|
{ RG_HIDEOUT_SMALL_KEY, SCENE_THIEVES_HIDEOUT },
|
||||||
{ RG_GANONS_CASTLE_SMALL_KEY, SCENE_INSIDE_GANONS_CASTLE },
|
{ RG_GANONS_CASTLE_SMALL_KEY, SCENE_INSIDE_GANONS_CASTLE },
|
||||||
{ RG_FOREST_TEMPLE_KEY_RING, SCENE_FOREST_TEMPLE },
|
{ RG_FOREST_TEMPLE_KEY_RING, SCENE_FOREST_TEMPLE },
|
||||||
{ RG_FIRE_TEMPLE_KEY_RING, SCENE_FIRE_TEMPLE },
|
{ RG_FIRE_TEMPLE_KEY_RING, SCENE_FIRE_TEMPLE },
|
||||||
{ RG_WATER_TEMPLE_KEY_RING, SCENE_WATER_TEMPLE },
|
{ RG_WATER_TEMPLE_KEY_RING, SCENE_WATER_TEMPLE },
|
||||||
{ RG_SPIRIT_TEMPLE_KEY_RING, SCENE_SPIRIT_TEMPLE },
|
{ RG_SPIRIT_TEMPLE_KEY_RING, SCENE_SPIRIT_TEMPLE },
|
||||||
{ RG_SHADOW_TEMPLE_KEY_RING, SCENE_SHADOW_TEMPLE },
|
{ RG_SHADOW_TEMPLE_KEY_RING, SCENE_SHADOW_TEMPLE },
|
||||||
{ RG_BOTTOM_OF_THE_WELL_KEY_RING, SCENE_BOTTOM_OF_THE_WELL },
|
{ RG_BOTW_KEY_RING, SCENE_BOTTOM_OF_THE_WELL },
|
||||||
{ RG_GERUDO_TRAINING_GROUND_KEY_RING, SCENE_GERUDO_TRAINING_GROUND },
|
{ RG_GTG_KEY_RING, SCENE_GERUDO_TRAINING_GROUND },
|
||||||
{ RG_GERUDO_FORTRESS_KEY_RING, SCENE_THIEVES_HIDEOUT },
|
{ RG_HIDEOUT_KEY_RING, SCENE_THIEVES_HIDEOUT },
|
||||||
{ RG_GANONS_CASTLE_KEY_RING, SCENE_INSIDE_GANONS_CASTLE },
|
{ RG_GANONS_CASTLE_KEY_RING, SCENE_INSIDE_GANONS_CASTLE },
|
||||||
{ RG_FOREST_TEMPLE_BOSS_KEY, SCENE_FOREST_TEMPLE },
|
{ RG_FOREST_TEMPLE_BOSS_KEY, SCENE_FOREST_TEMPLE },
|
||||||
{ RG_FIRE_TEMPLE_BOSS_KEY, SCENE_FIRE_TEMPLE },
|
{ RG_FIRE_TEMPLE_BOSS_KEY, SCENE_FIRE_TEMPLE },
|
||||||
|
@ -1532,7 +1532,7 @@ std::map<uint32_t, uint32_t> Logic::RandoGetToDungeonScene = {
|
||||||
{ RG_WATER_TEMPLE_MAP, SCENE_WATER_TEMPLE },
|
{ RG_WATER_TEMPLE_MAP, SCENE_WATER_TEMPLE },
|
||||||
{ RG_SPIRIT_TEMPLE_MAP, SCENE_SPIRIT_TEMPLE },
|
{ RG_SPIRIT_TEMPLE_MAP, SCENE_SPIRIT_TEMPLE },
|
||||||
{ RG_SHADOW_TEMPLE_MAP, SCENE_SHADOW_TEMPLE },
|
{ RG_SHADOW_TEMPLE_MAP, SCENE_SHADOW_TEMPLE },
|
||||||
{ RG_BOTTOM_OF_THE_WELL_MAP, SCENE_BOTTOM_OF_THE_WELL },
|
{ RG_BOTW_MAP, SCENE_BOTTOM_OF_THE_WELL },
|
||||||
{ RG_ICE_CAVERN_MAP, SCENE_ICE_CAVERN },
|
{ RG_ICE_CAVERN_MAP, SCENE_ICE_CAVERN },
|
||||||
{ RG_DEKU_TREE_COMPASS, SCENE_DEKU_TREE },
|
{ RG_DEKU_TREE_COMPASS, SCENE_DEKU_TREE },
|
||||||
{ RG_DODONGOS_CAVERN_COMPASS, SCENE_DODONGOS_CAVERN },
|
{ RG_DODONGOS_CAVERN_COMPASS, SCENE_DODONGOS_CAVERN },
|
||||||
|
@ -1542,9 +1542,9 @@ std::map<uint32_t, uint32_t> Logic::RandoGetToDungeonScene = {
|
||||||
{ RG_WATER_TEMPLE_COMPASS, SCENE_WATER_TEMPLE },
|
{ RG_WATER_TEMPLE_COMPASS, SCENE_WATER_TEMPLE },
|
||||||
{ RG_SPIRIT_TEMPLE_COMPASS, SCENE_SPIRIT_TEMPLE },
|
{ RG_SPIRIT_TEMPLE_COMPASS, SCENE_SPIRIT_TEMPLE },
|
||||||
{ RG_SHADOW_TEMPLE_COMPASS, SCENE_SHADOW_TEMPLE },
|
{ RG_SHADOW_TEMPLE_COMPASS, SCENE_SHADOW_TEMPLE },
|
||||||
{ RG_BOTTOM_OF_THE_WELL_COMPASS, SCENE_BOTTOM_OF_THE_WELL },
|
{ RG_BOTW_COMPASS, SCENE_BOTTOM_OF_THE_WELL },
|
||||||
{ RG_ICE_CAVERN_COMPASS, SCENE_ICE_CAVERN },
|
{ RG_ICE_CAVERN_COMPASS, SCENE_ICE_CAVERN },
|
||||||
{ RG_TREASURE_GAME_SMALL_KEY, SCENE_TREASURE_BOX_SHOP }
|
{ RG_TCG_SMALL_KEY, SCENE_TREASURE_BOX_SHOP }
|
||||||
};
|
};
|
||||||
|
|
||||||
std::map<uint32_t, uint32_t> Logic::RandoGetToQuestItem = {
|
std::map<uint32_t, uint32_t> Logic::RandoGetToQuestItem = {
|
||||||
|
@ -1712,7 +1712,7 @@ void Logic::ApplyItemEffect(Item& item, bool state) {
|
||||||
SetUpgrade(UPG_SCALE, newLevel);
|
SetUpgrade(UPG_SCALE, newLevel);
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case RG_PROGRESSIVE_NUT_UPGRADE: {
|
case RG_PROGRESSIVE_NUT_BAG: {
|
||||||
auto realGI = item.GetGIEntry();
|
auto realGI = item.GetGIEntry();
|
||||||
if (realGI->itemId == RG_NUT_UPGRADE_INF && realGI->modIndex == MOD_RANDOMIZER) {
|
if (realGI->itemId == RG_NUT_UPGRADE_INF && realGI->modIndex == MOD_RANDOMIZER) {
|
||||||
SetRandoInf(RAND_INF_HAS_INFINITE_NUT_UPGRADE, true);
|
SetRandoInf(RAND_INF_HAS_INFINITE_NUT_UPGRADE, true);
|
||||||
|
@ -1725,7 +1725,7 @@ void Logic::ApplyItemEffect(Item& item, bool state) {
|
||||||
}
|
}
|
||||||
SetUpgrade(UPG_NUTS, newLevel);
|
SetUpgrade(UPG_NUTS, newLevel);
|
||||||
} break;
|
} break;
|
||||||
case RG_PROGRESSIVE_STICK_UPGRADE: {
|
case RG_PROGRESSIVE_STICK_BAG: {
|
||||||
auto realGI = item.GetGIEntry();
|
auto realGI = item.GetGIEntry();
|
||||||
if (realGI->itemId == RG_STICK_UPGRADE_INF && realGI->modIndex == MOD_RANDOMIZER) {
|
if (realGI->itemId == RG_STICK_UPGRADE_INF && realGI->modIndex == MOD_RANDOMIZER) {
|
||||||
SetRandoInf(RAND_INF_HAS_INFINITE_STICK_UPGRADE, true);
|
SetRandoInf(RAND_INF_HAS_INFINITE_STICK_UPGRADE, true);
|
||||||
|
@ -1746,7 +1746,7 @@ void Logic::ApplyItemEffect(Item& item, bool state) {
|
||||||
}
|
}
|
||||||
SetInventory(ITEM_BOMBCHU, (!state ? ITEM_NONE : ITEM_BOMBCHU));
|
SetInventory(ITEM_BOMBCHU, (!state ? ITEM_NONE : ITEM_BOMBCHU));
|
||||||
} break;
|
} break;
|
||||||
case RG_PROGRESSIVE_MAGIC_METER: {
|
case RG_PROGRESSIVE_MAGIC: {
|
||||||
auto realGI = item.GetGIEntry();
|
auto realGI = item.GetGIEntry();
|
||||||
if (realGI->itemId == RG_MAGIC_INF && realGI->modIndex == MOD_RANDOMIZER) {
|
if (realGI->itemId == RG_MAGIC_INF && realGI->modIndex == MOD_RANDOMIZER) {
|
||||||
SetRandoInf(RAND_INF_HAS_INFINITE_MAGIC_METER, true);
|
SetRandoInf(RAND_INF_HAS_INFINITE_MAGIC_METER, true);
|
||||||
|
@ -1842,20 +1842,20 @@ void Logic::ApplyItemEffect(Item& item, bool state) {
|
||||||
case RG_MARKET_BAZAAR_KEY:
|
case RG_MARKET_BAZAAR_KEY:
|
||||||
case RG_MARKET_POTION_SHOP_KEY:
|
case RG_MARKET_POTION_SHOP_KEY:
|
||||||
case RG_MASK_SHOP_KEY:
|
case RG_MASK_SHOP_KEY:
|
||||||
case RG_MARKET_SHOOTING_GALLERY_KEY:
|
case RG_MARKET_SHOOTING_KEY:
|
||||||
case RG_BOMBCHU_BOWLING_KEY:
|
case RG_BOMBCHU_BOWLING_KEY:
|
||||||
case RG_TREASURE_CHEST_GAME_BUILDING_KEY:
|
case RG_TCG_BUILDING_KEY:
|
||||||
case RG_BOMBCHU_SHOP_KEY:
|
case RG_BOMBCHU_SHOP_KEY:
|
||||||
case RG_RICHARDS_HOUSE_KEY:
|
case RG_RICHARDS_HOUSE_KEY:
|
||||||
case RG_ALLEY_HOUSE_KEY:
|
case RG_ALLEY_HOUSE_KEY:
|
||||||
case RG_KAK_BAZAAR_KEY:
|
case RG_KAK_BAZAAR_KEY:
|
||||||
case RG_KAK_POTION_SHOP_KEY:
|
case RG_KAK_POTION_SHOP_KEY:
|
||||||
case RG_BOSS_HOUSE_KEY:
|
case RG_BOSS_HOUSE_KEY:
|
||||||
case RG_GRANNYS_POTION_SHOP_KEY:
|
case RG_GRANNYS_SHOP_KEY:
|
||||||
case RG_SKULLTULA_HOUSE_KEY:
|
case RG_SKULLTULA_HOUSE_KEY:
|
||||||
case RG_IMPAS_HOUSE_KEY:
|
case RG_IMPAS_HOUSE_KEY:
|
||||||
case RG_WINDMILL_KEY:
|
case RG_WINDMILL_KEY:
|
||||||
case RG_KAK_SHOOTING_GALLERY_KEY:
|
case RG_KAK_SHOOTING_KEY:
|
||||||
case RG_DAMPES_HUT_KEY:
|
case RG_DAMPES_HUT_KEY:
|
||||||
case RG_TALONS_HOUSE_KEY:
|
case RG_TALONS_HOUSE_KEY:
|
||||||
case RG_STABLES_KEY:
|
case RG_STABLES_KEY:
|
||||||
|
@ -1907,7 +1907,7 @@ void Logic::ApplyItemEffect(Item& item, bool state) {
|
||||||
case ITEMTYPE_BOSSKEY:
|
case ITEMTYPE_BOSSKEY:
|
||||||
SetDungeonItem(DUNGEON_KEY_BOSS, RandoGetToDungeonScene.find(item.GetRandomizerGet())->second, state);
|
SetDungeonItem(DUNGEON_KEY_BOSS, RandoGetToDungeonScene.find(item.GetRandomizerGet())->second, state);
|
||||||
break;
|
break;
|
||||||
case ITEMTYPE_FORTRESS_SMALLKEY:
|
case ITEMTYPE_HIDEOUT_KEY:
|
||||||
case ITEMTYPE_SMALLKEY: {
|
case ITEMTYPE_SMALLKEY: {
|
||||||
auto randoGet = item.GetRandomizerGet();
|
auto randoGet = item.GetRandomizerGet();
|
||||||
auto keyring = randoGet >= RG_FOREST_TEMPLE_KEY_RING && randoGet <= RG_GANONS_CASTLE_KEY_RING;
|
auto keyring = randoGet >= RG_FOREST_TEMPLE_KEY_RING && randoGet <= RG_GANONS_CASTLE_KEY_RING;
|
||||||
|
|
|
@ -822,7 +822,7 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
||||||
return !CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_HOVER) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return !CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_HOVER) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
|
|
||||||
// Inventory Items
|
// Inventory Items
|
||||||
case RG_PROGRESSIVE_STICK_UPGRADE:
|
case RG_PROGRESSIVE_STICK_BAG:
|
||||||
return infiniteUpgrades != RO_INF_UPGRADES_OFF
|
return infiniteUpgrades != RO_INF_UPGRADES_OFF
|
||||||
? (Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_STICK_UPGRADE) ? CANT_OBTAIN_ALREADY_HAVE
|
? (Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_STICK_UPGRADE) ? CANT_OBTAIN_ALREADY_HAVE
|
||||||
: CAN_OBTAIN)
|
: CAN_OBTAIN)
|
||||||
|
@ -833,7 +833,7 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
||||||
!OTRGlobals::Instance->gRandoContext->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG).Get()
|
!OTRGlobals::Instance->gRandoContext->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG).Get()
|
||||||
? CAN_OBTAIN
|
? CAN_OBTAIN
|
||||||
: CANT_OBTAIN_NEED_UPGRADE;
|
: CANT_OBTAIN_NEED_UPGRADE;
|
||||||
case RG_PROGRESSIVE_NUT_UPGRADE:
|
case RG_PROGRESSIVE_NUT_BAG:
|
||||||
return infiniteUpgrades != RO_INF_UPGRADES_OFF
|
return infiniteUpgrades != RO_INF_UPGRADES_OFF
|
||||||
? (Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_NUT_UPGRADE) ? CANT_OBTAIN_ALREADY_HAVE
|
? (Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_NUT_UPGRADE) ? CANT_OBTAIN_ALREADY_HAVE
|
||||||
: CAN_OBTAIN)
|
: CAN_OBTAIN)
|
||||||
|
@ -992,7 +992,7 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
||||||
return CUR_UPG_VALUE(UPG_WALLET) < numWallets ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return CUR_UPG_VALUE(UPG_WALLET) < numWallets ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_PROGRESSIVE_SCALE:
|
case RG_PROGRESSIVE_SCALE:
|
||||||
return CUR_UPG_VALUE(UPG_SCALE) < 2 ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return CUR_UPG_VALUE(UPG_SCALE) < 2 ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_PROGRESSIVE_MAGIC_METER:
|
case RG_PROGRESSIVE_MAGIC:
|
||||||
case RG_MAGIC_SINGLE:
|
case RG_MAGIC_SINGLE:
|
||||||
case RG_MAGIC_DOUBLE:
|
case RG_MAGIC_DOUBLE:
|
||||||
return infiniteUpgrades != RO_INF_UPGRADES_OFF
|
return infiniteUpgrades != RO_INF_UPGRADES_OFF
|
||||||
|
@ -1045,7 +1045,7 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
||||||
return !CHECK_DUNGEON_ITEM(DUNGEON_MAP, SCENE_SPIRIT_TEMPLE) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return !CHECK_DUNGEON_ITEM(DUNGEON_MAP, SCENE_SPIRIT_TEMPLE) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_SHADOW_TEMPLE_MAP:
|
case RG_SHADOW_TEMPLE_MAP:
|
||||||
return !CHECK_DUNGEON_ITEM(DUNGEON_MAP, SCENE_SHADOW_TEMPLE) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return !CHECK_DUNGEON_ITEM(DUNGEON_MAP, SCENE_SHADOW_TEMPLE) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_BOTTOM_OF_THE_WELL_MAP:
|
case RG_BOTW_MAP:
|
||||||
return !CHECK_DUNGEON_ITEM(DUNGEON_MAP, SCENE_BOTTOM_OF_THE_WELL) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return !CHECK_DUNGEON_ITEM(DUNGEON_MAP, SCENE_BOTTOM_OF_THE_WELL) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_ICE_CAVERN_MAP:
|
case RG_ICE_CAVERN_MAP:
|
||||||
return !CHECK_DUNGEON_ITEM(DUNGEON_MAP, SCENE_ICE_CAVERN) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return !CHECK_DUNGEON_ITEM(DUNGEON_MAP, SCENE_ICE_CAVERN) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
|
@ -1065,7 +1065,7 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
||||||
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_SPIRIT_TEMPLE) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_SPIRIT_TEMPLE) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_SHADOW_TEMPLE_COMPASS:
|
case RG_SHADOW_TEMPLE_COMPASS:
|
||||||
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_SHADOW_TEMPLE) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_SHADOW_TEMPLE) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_BOTTOM_OF_THE_WELL_COMPASS:
|
case RG_BOTW_COMPASS:
|
||||||
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_BOTTOM_OF_THE_WELL) ? CAN_OBTAIN
|
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_BOTTOM_OF_THE_WELL) ? CAN_OBTAIN
|
||||||
: CANT_OBTAIN_ALREADY_HAVE;
|
: CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_ICE_CAVERN_COMPASS:
|
case RG_ICE_CAVERN_COMPASS:
|
||||||
|
@ -1102,16 +1102,16 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
||||||
return gSaveContext.inventory.dungeonKeys[SCENE_SHADOW_TEMPLE] < SHADOW_TEMPLE_SMALL_KEY_MAX
|
return gSaveContext.inventory.dungeonKeys[SCENE_SHADOW_TEMPLE] < SHADOW_TEMPLE_SMALL_KEY_MAX
|
||||||
? CAN_OBTAIN
|
? CAN_OBTAIN
|
||||||
: CANT_OBTAIN_ALREADY_HAVE;
|
: CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_BOTTOM_OF_THE_WELL_SMALL_KEY:
|
case RG_BOTW_SMALL_KEY:
|
||||||
return gSaveContext.inventory.dungeonKeys[SCENE_BOTTOM_OF_THE_WELL] < BOTTOM_OF_THE_WELL_SMALL_KEY_MAX
|
return gSaveContext.inventory.dungeonKeys[SCENE_BOTTOM_OF_THE_WELL] < BOTTOM_OF_THE_WELL_SMALL_KEY_MAX
|
||||||
? CAN_OBTAIN
|
? CAN_OBTAIN
|
||||||
: CANT_OBTAIN_ALREADY_HAVE;
|
: CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_GERUDO_TRAINING_GROUND_SMALL_KEY:
|
case RG_GTG_SMALL_KEY:
|
||||||
return gSaveContext.inventory.dungeonKeys[SCENE_GERUDO_TRAINING_GROUND] <
|
return gSaveContext.inventory.dungeonKeys[SCENE_GERUDO_TRAINING_GROUND] <
|
||||||
GERUDO_TRAINING_GROUND_SMALL_KEY_MAX
|
GERUDO_TRAINING_GROUND_SMALL_KEY_MAX
|
||||||
? CAN_OBTAIN
|
? CAN_OBTAIN
|
||||||
: CANT_OBTAIN_ALREADY_HAVE;
|
: CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_GERUDO_FORTRESS_SMALL_KEY:
|
case RG_HIDEOUT_SMALL_KEY:
|
||||||
return gSaveContext.inventory.dungeonKeys[SCENE_THIEVES_HIDEOUT] < GERUDO_FORTRESS_SMALL_KEY_MAX
|
return gSaveContext.inventory.dungeonKeys[SCENE_THIEVES_HIDEOUT] < GERUDO_FORTRESS_SMALL_KEY_MAX
|
||||||
? CAN_OBTAIN
|
? CAN_OBTAIN
|
||||||
: CANT_OBTAIN_ALREADY_HAVE;
|
: CANT_OBTAIN_ALREADY_HAVE;
|
||||||
|
@ -1119,7 +1119,7 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
||||||
return gSaveContext.inventory.dungeonKeys[SCENE_INSIDE_GANONS_CASTLE] < GANONS_CASTLE_SMALL_KEY_MAX
|
return gSaveContext.inventory.dungeonKeys[SCENE_INSIDE_GANONS_CASTLE] < GANONS_CASTLE_SMALL_KEY_MAX
|
||||||
? CAN_OBTAIN
|
? CAN_OBTAIN
|
||||||
: CANT_OBTAIN_ALREADY_HAVE;
|
: CANT_OBTAIN_ALREADY_HAVE;
|
||||||
case RG_TREASURE_GAME_SMALL_KEY:
|
case RG_TCG_SMALL_KEY:
|
||||||
return gSaveContext.inventory.dungeonKeys[SCENE_TREASURE_BOX_SHOP] < TREASURE_GAME_SMALL_KEY_MAX
|
return gSaveContext.inventory.dungeonKeys[SCENE_TREASURE_BOX_SHOP] < TREASURE_GAME_SMALL_KEY_MAX
|
||||||
? CAN_OBTAIN
|
? CAN_OBTAIN
|
||||||
: CANT_OBTAIN_ALREADY_HAVE;
|
: CANT_OBTAIN_ALREADY_HAVE;
|
||||||
|
@ -1166,8 +1166,8 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
||||||
case RG_PIECE_OF_HEART:
|
case RG_PIECE_OF_HEART:
|
||||||
case RG_HEART_CONTAINER:
|
case RG_HEART_CONTAINER:
|
||||||
case RG_ICE_TRAP:
|
case RG_ICE_TRAP:
|
||||||
case RG_TREASURE_GAME_HEART:
|
case RG_TCG_PIECE_OF_HEART:
|
||||||
case RG_TREASURE_GAME_GREEN_RUPEE:
|
case RG_LOSER_GREEN_RUPEE:
|
||||||
case RG_BUY_HEART:
|
case RG_BUY_HEART:
|
||||||
case RG_TRIFORCE_PIECE:
|
case RG_TRIFORCE_PIECE:
|
||||||
default:
|
default:
|
||||||
|
@ -4593,7 +4593,7 @@ CustomMessage Randomizer::GetMerchantMessage(RandomizerCheck rc, TextIDs textId,
|
||||||
shopItemName = CustomMessage(ctx->overrides[rc].GetTrickName());
|
shopItemName = CustomMessage(ctx->overrides[rc].GetTrickName());
|
||||||
} else {
|
} else {
|
||||||
auto shopItem = Rando::StaticData::RetrieveItem(shopItemGet);
|
auto shopItem = Rando::StaticData::RetrieveItem(shopItemGet);
|
||||||
shopItemName = { shopItem.GetName() };
|
shopItemName = shopItem.GetName();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (freeTextId != TEXT_NONE && shopItemPrice == 0) {
|
if (freeTextId != TEXT_NONE && shopItemPrice == 0) {
|
||||||
|
@ -4638,7 +4638,7 @@ CustomMessage Randomizer::GetMapGetItemMessageWithHint(GetItemEntry itemEntry) {
|
||||||
case RG_SHADOW_TEMPLE_MAP:
|
case RG_SHADOW_TEMPLE_MAP:
|
||||||
sceneNum = SCENE_SHADOW_TEMPLE;
|
sceneNum = SCENE_SHADOW_TEMPLE;
|
||||||
break;
|
break;
|
||||||
case RG_BOTTOM_OF_THE_WELL_MAP:
|
case RG_BOTW_MAP:
|
||||||
sceneNum = SCENE_BOTTOM_OF_THE_WELL;
|
sceneNum = SCENE_BOTTOM_OF_THE_WELL;
|
||||||
break;
|
break;
|
||||||
case RG_ICE_CAVERN_MAP:
|
case RG_ICE_CAVERN_MAP:
|
||||||
|
@ -5436,7 +5436,7 @@ void Randomizer::CreateCustomMessages() {
|
||||||
"vielleicht&dafür...",
|
"vielleicht&dafür...",
|
||||||
"Vous obtenez une %rBouteille avec&un Esprit%w! Ça intéresserait&peut-être le vendeur d'Âme "),
|
"Vous obtenez une %rBouteille avec&un Esprit%w! Ça intéresserait&peut-être le vendeur d'Âme "),
|
||||||
|
|
||||||
GIMESSAGE(RG_GERUDO_FORTRESS_SMALL_KEY, ITEM_KEY_SMALL, "You found a %yThieves Hideout &%wSmall Key!",
|
GIMESSAGE(RG_HIDEOUT_SMALL_KEY, ITEM_KEY_SMALL, "You found a %yThieves Hideout &%wSmall Key!",
|
||||||
"Du erhältst einen %rkleinen&Schlüssel%w des %yDiebesverstecks%w!",
|
"Du erhältst einen %rkleinen&Schlüssel%w des %yDiebesverstecks%w!",
|
||||||
"Vous obtenez une %rPetite Clé %w&du %yRepaire des Voleurs%w!"),
|
"Vous obtenez une %rPetite Clé %w&du %yRepaire des Voleurs%w!"),
|
||||||
GIMESSAGE(RG_FOREST_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %gForest Temple &%wSmall Key!",
|
GIMESSAGE(RG_FOREST_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %gForest Temple &%wSmall Key!",
|
||||||
|
@ -5454,11 +5454,10 @@ void Randomizer::CreateCustomMessages() {
|
||||||
GIMESSAGE(RG_SHADOW_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %pShadow Temple &%wSmall Key!",
|
GIMESSAGE(RG_SHADOW_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %pShadow Temple &%wSmall Key!",
|
||||||
"Du erhältst einen %rkleinen&Schlüssel%w des %pSchattentempels%w!",
|
"Du erhältst einen %rkleinen&Schlüssel%w des %pSchattentempels%w!",
|
||||||
"Vous obtenez une %rPetite Clé %w&du %pTemple de l'Ombre%w!"),
|
"Vous obtenez une %rPetite Clé %w&du %pTemple de l'Ombre%w!"),
|
||||||
GIMESSAGE(RG_BOTTOM_OF_THE_WELL_SMALL_KEY, ITEM_KEY_SMALL, "You found a %pBottom of the &Well %wSmall Key!",
|
GIMESSAGE(RG_BOTW_SMALL_KEY, ITEM_KEY_SMALL, "You found a %pBottom of the &Well %wSmall Key!",
|
||||||
"Du erhältst einen %rkleinen&Schlüssel%w vom %pGrund des Brunnens%w!",
|
"Du erhältst einen %rkleinen&Schlüssel%w vom %pGrund des Brunnens%w!",
|
||||||
"Vous obtenez une %rPetite Clé %w&du %pPuits%w!"),
|
"Vous obtenez une %rPetite Clé %w&du %pPuits%w!"),
|
||||||
GIMESSAGE(RG_GERUDO_TRAINING_GROUND_SMALL_KEY, ITEM_KEY_SMALL,
|
GIMESSAGE(RG_GTG_SMALL_KEY, ITEM_KEY_SMALL, "You found a %yGerudo Training &Ground %wSmall Key!",
|
||||||
"You found a %yGerudo Training &Ground %wSmall Key!",
|
|
||||||
"Du erhältst einen %rkleinen&Schlüssel%w der %yGerudo-Trainingsarena%w!",
|
"Du erhältst einen %rkleinen&Schlüssel%w der %yGerudo-Trainingsarena%w!",
|
||||||
"Vous obtenez une %rPetite Clé %w&du %yGymnase Gerudo%w!"),
|
"Vous obtenez une %rPetite Clé %w&du %yGymnase Gerudo%w!"),
|
||||||
GIMESSAGE(RG_GANONS_CASTLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %rGanon's Castle &%wSmall Key!",
|
GIMESSAGE(RG_GANONS_CASTLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %rGanon's Castle &%wSmall Key!",
|
||||||
|
@ -5476,15 +5475,13 @@ void Randomizer::CreateCustomMessages() {
|
||||||
GIMESSAGE(RG_MASK_SHOP_KEY, ITEM_KEY_SMALL, "You found the key to the&%gMask Shop%w!",
|
GIMESSAGE(RG_MASK_SHOP_KEY, ITEM_KEY_SMALL, "You found the key to the&%gMask Shop%w!",
|
||||||
"Du erhältst den %rSchlüssel%w&zum %gMaskenhändler%w!",
|
"Du erhältst den %rSchlüssel%w&zum %gMaskenhändler%w!",
|
||||||
"Vous obtenez la %rClé %wde la&%gFoire aux Masques%w!"),
|
"Vous obtenez la %rClé %wde la&%gFoire aux Masques%w!"),
|
||||||
GIMESSAGE(RG_MARKET_SHOOTING_GALLERY_KEY, ITEM_KEY_SMALL,
|
GIMESSAGE(RG_MARKET_SHOOTING_KEY, ITEM_KEY_SMALL, "You found the key to the&%gMarket Shooting Gallery%w!",
|
||||||
"You found the key to the&%gMarket Shooting Gallery%w!",
|
|
||||||
"Du erhältst den %rSchlüssel%w&zur %gSchießbude des Marktes%w!",
|
"Du erhältst den %rSchlüssel%w&zur %gSchießbude des Marktes%w!",
|
||||||
"Vous obtenez la %rClé %wdu %gStand de&Tir de la Place du Marché%w!"),
|
"Vous obtenez la %rClé %wdu %gStand de&Tir de la Place du Marché%w!"),
|
||||||
GIMESSAGE(RG_BOMBCHU_BOWLING_KEY, ITEM_KEY_SMALL, "You found the key to the&%gBombchu Bowling Alley%w!",
|
GIMESSAGE(RG_BOMBCHU_BOWLING_KEY, ITEM_KEY_SMALL, "You found the key to the&%gBombchu Bowling Alley%w!",
|
||||||
"Du erhältst den %rSchlüssel%w&zur %gMinenbowlingbahn%w!",
|
"Du erhältst den %rSchlüssel%w&zur %gMinenbowlingbahn%w!",
|
||||||
"Vous obtenez la %rClé %wdu %gBowling&Teigneux%w!"),
|
"Vous obtenez la %rClé %wdu %gBowling&Teigneux%w!"),
|
||||||
GIMESSAGE(RG_TREASURE_CHEST_GAME_BUILDING_KEY, ITEM_KEY_SMALL,
|
GIMESSAGE(RG_TCG_BUILDING_KEY, ITEM_KEY_SMALL, "You found the key to the&%gTreasure Chest Game Building%w!",
|
||||||
"You found the key to the&%gTreasure Chest Game Building%w!",
|
|
||||||
"Du erhältst den %rSchlüssel%w&zum %gHaus der Truhenlotterie%w!",
|
"Du erhältst den %rSchlüssel%w&zum %gHaus der Truhenlotterie%w!",
|
||||||
"Vous obtenez la %rClé %wdu %gJeu de la&Chasse au Trésor%w!"),
|
"Vous obtenez la %rClé %wdu %gJeu de la&Chasse au Trésor%w!"),
|
||||||
GIMESSAGE(RG_BOMBCHU_SHOP_KEY, ITEM_KEY_SMALL, "You found the key to the&%gBombchu Shop%w!",
|
GIMESSAGE(RG_BOMBCHU_SHOP_KEY, ITEM_KEY_SMALL, "You found the key to the&%gBombchu Shop%w!",
|
||||||
|
@ -5505,7 +5502,7 @@ void Randomizer::CreateCustomMessages() {
|
||||||
GIMESSAGE(RG_BOSS_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to the&%gBoss's House%w!",
|
GIMESSAGE(RG_BOSS_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to the&%gBoss's House%w!",
|
||||||
"Du erhältst den %rSchlüssel%w&zum %gHaus des Chefs%w!",
|
"Du erhältst den %rSchlüssel%w&zum %gHaus des Chefs%w!",
|
||||||
"Vous obtenez la %rClé %wde la %gMaison&du Chef des Ouvriers%w!"),
|
"Vous obtenez la %rClé %wde la %gMaison&du Chef des Ouvriers%w!"),
|
||||||
GIMESSAGE(RG_GRANNYS_POTION_SHOP_KEY, ITEM_KEY_SMALL, "You found the key to&%gGranny's Potion Shop%w!",
|
GIMESSAGE(RG_GRANNYS_SHOP_KEY, ITEM_KEY_SMALL, "You found the key to&%gGranny's Potion Shop%w!",
|
||||||
"Du erhältst den %rSchlüssel%w&zu %gAsas Hexenladen%w!",
|
"Du erhältst den %rSchlüssel%w&zu %gAsas Hexenladen%w!",
|
||||||
"Vous obtenez la %rClé %wde&l'%gApothicaire%w!"),
|
"Vous obtenez la %rClé %wde&l'%gApothicaire%w!"),
|
||||||
GIMESSAGE(RG_SKULLTULA_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to the&%gSkulltula House%w!",
|
GIMESSAGE(RG_SKULLTULA_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to the&%gSkulltula House%w!",
|
||||||
|
@ -5516,8 +5513,7 @@ void Randomizer::CreateCustomMessages() {
|
||||||
"Vous obtenez la %rClé %wde la %gMaison&d'Impa%w!"),
|
"Vous obtenez la %rClé %wde la %gMaison&d'Impa%w!"),
|
||||||
GIMESSAGE(RG_WINDMILL_KEY, ITEM_KEY_SMALL, "You found the key to the&%gWindmill%w!",
|
GIMESSAGE(RG_WINDMILL_KEY, ITEM_KEY_SMALL, "You found the key to the&%gWindmill%w!",
|
||||||
"Du erhältst den %rSchlüssel%w&zur %gWindmühle%w!", "Vous obtenez la %rClé %w du %gMoulin%w!"),
|
"Du erhältst den %rSchlüssel%w&zur %gWindmühle%w!", "Vous obtenez la %rClé %w du %gMoulin%w!"),
|
||||||
GIMESSAGE(RG_KAK_SHOOTING_GALLERY_KEY, ITEM_KEY_SMALL,
|
GIMESSAGE(RG_KAK_SHOOTING_KEY, ITEM_KEY_SMALL, "You found the key to the&%gKakariko Shooting Gallery%w!",
|
||||||
"You found the key to the&%gKakariko Shooting Gallery%w!",
|
|
||||||
"Du erhältst den %rSchlüssel%w&zur %gSchießbude von Kakariko%w!",
|
"Du erhältst den %rSchlüssel%w&zur %gSchießbude von Kakariko%w!",
|
||||||
"Vous obtenez la %rClé %w du %gStand de&Tir de Cocorico%w!"),
|
"Vous obtenez la %rClé %w du %gStand de&Tir de Cocorico%w!"),
|
||||||
GIMESSAGE(RG_DAMPES_HUT_KEY, ITEM_KEY_SMALL, "You found the key to&%gDampe's Hut%w!",
|
GIMESSAGE(RG_DAMPES_HUT_KEY, ITEM_KEY_SMALL, "You found the key to&%gDampe's Hut%w!",
|
||||||
|
@ -5536,7 +5532,7 @@ void Randomizer::CreateCustomMessages() {
|
||||||
GIMESSAGE(RG_FISHING_HOLE_KEY, ITEM_KEY_SMALL, "You found the key to the&%gPond%w!",
|
GIMESSAGE(RG_FISHING_HOLE_KEY, ITEM_KEY_SMALL, "You found the key to the&%gPond%w!",
|
||||||
"Du erhältst den %rSchlüssel%w&zum %gFischweiher%w!", "Vous obtenez la %rClé %wde l'%gÉtang%w!"),
|
"Du erhältst den %rSchlüssel%w&zum %gFischweiher%w!", "Vous obtenez la %rClé %wde l'%gÉtang%w!"),
|
||||||
|
|
||||||
GIMESSAGE(RG_GERUDO_FORTRESS_KEY_RING, ITEM_KEY_SMALL, "You found a %yThieves Hideout&%wKeyring!",
|
GIMESSAGE(RG_HIDEOUT_KEY_RING, ITEM_KEY_SMALL, "You found a %yThieves Hideout&%wKeyring!",
|
||||||
"Du erhältst das %rSchlüsselbund%w&des %yDiebesverstecks%w!",
|
"Du erhältst das %rSchlüsselbund%w&des %yDiebesverstecks%w!",
|
||||||
"Vous obtenez le trousseau de&clés du %yRepaire des Voleurs%w!"),
|
"Vous obtenez le trousseau de&clés du %yRepaire des Voleurs%w!"),
|
||||||
GIMESSAGE(RG_FOREST_TEMPLE_KEY_RING, ITEM_KEY_SMALL, "You found a %gForest Temple&%wKeyring!",
|
GIMESSAGE(RG_FOREST_TEMPLE_KEY_RING, ITEM_KEY_SMALL, "You found a %gForest Temple&%wKeyring!",
|
||||||
|
@ -5554,16 +5550,16 @@ void Randomizer::CreateCustomMessages() {
|
||||||
GIMESSAGE(RG_SHADOW_TEMPLE_KEY_RING, ITEM_KEY_SMALL, "You found a %pShadow Temple&%wKeyring!",
|
GIMESSAGE(RG_SHADOW_TEMPLE_KEY_RING, ITEM_KEY_SMALL, "You found a %pShadow Temple&%wKeyring!",
|
||||||
"Du erhältst das %rSchlüsselbund%w&des %pSchattentempels%w!",
|
"Du erhältst das %rSchlüsselbund%w&des %pSchattentempels%w!",
|
||||||
"Vous obtenez le trousseau de&clés du %pTemple de l'Ombre%w!"),
|
"Vous obtenez le trousseau de&clés du %pTemple de l'Ombre%w!"),
|
||||||
GIMESSAGE(RG_BOTTOM_OF_THE_WELL_KEY_RING, ITEM_KEY_SMALL, "You found a %pBottom of the&Well %wKeyring!",
|
GIMESSAGE(RG_BOTW_KEY_RING, ITEM_KEY_SMALL, "You found a %pBottom of the&Well %wKeyring!",
|
||||||
"Du erhältst das %rSchlüsselbund%w&vom %pGrund des Brunnens%w!",
|
"Du erhältst das %rSchlüsselbund%w&vom %pGrund des Brunnens%w!",
|
||||||
"Vous obtenez le trousseau de&clés du %pPuits%w!"),
|
"Vous obtenez le trousseau de&clés du %pPuits%w!"),
|
||||||
GIMESSAGE(RG_GERUDO_TRAINING_GROUND_KEY_RING, ITEM_KEY_SMALL, "You found a %yGerudo Training&Ground %wKeyring!",
|
GIMESSAGE(RG_GTG_KEY_RING, ITEM_KEY_SMALL, "You found a %yGerudo Training&Ground %wKeyring!",
|
||||||
"Du erhältst das %rSchlüsselbund%w&der %yGerudo-Trainingsarena%w!",
|
"Du erhältst das %rSchlüsselbund%w&der %yGerudo-Trainingsarena%w!",
|
||||||
"Vous obtenez le trousseau de&clés du %yGymnase Gerudo%w!"),
|
"Vous obtenez le trousseau de&clés du %yGymnase Gerudo%w!"),
|
||||||
GIMESSAGE(RG_GANONS_CASTLE_KEY_RING, ITEM_KEY_SMALL, "You found a %rGanon's Castle&%wKeyring!",
|
GIMESSAGE(RG_GANONS_CASTLE_KEY_RING, ITEM_KEY_SMALL, "You found a %rGanon's Castle&%wKeyring!",
|
||||||
"Du erhältst das %rSchlüsselbund%w&von %rGanons Schloß%w!",
|
"Du erhältst das %rSchlüsselbund%w&von %rGanons Schloß%w!",
|
||||||
"Vous obtenez le trousseau de&clés du %rChâteau de Ganon%w!"),
|
"Vous obtenez le trousseau de&clés du %rChâteau de Ganon%w!"),
|
||||||
GIMESSAGE(RG_TREASURE_GAME_KEY_RING, ITEM_KEY_SMALL, "You found a %rTreasure Chest Game&%wKeyring!",
|
GIMESSAGE(RG_TCG_KEY_RING, ITEM_KEY_SMALL, "You found a %rTreasure Chest Game&%wKeyring!",
|
||||||
"Du erhältst das %rSchlüsselbund%w&der %rTruhenlotterie&%w!",
|
"Du erhältst das %rSchlüsselbund%w&der %rTruhenlotterie&%w!",
|
||||||
"Vous obtenez le trousseau de&clés du %rJeu de la Chasse au Trésor%w!"),
|
"Vous obtenez le trousseau de&clés du %rJeu de la Chasse au Trésor%w!"),
|
||||||
|
|
||||||
|
@ -5610,7 +5606,7 @@ void Randomizer::CreateCustomMessages() {
|
||||||
GIMESSAGE(RG_SHADOW_TEMPLE_MAP, ITEM_DUNGEON_MAP, "You found the %pShadow Temple&%wMap![[typeHint]]",
|
GIMESSAGE(RG_SHADOW_TEMPLE_MAP, ITEM_DUNGEON_MAP, "You found the %pShadow Temple&%wMap![[typeHint]]",
|
||||||
"Du erhältst die %rLabyrinth-&Karte%w des %pSchattentempels%w![[typeHint]]",
|
"Du erhältst die %rLabyrinth-&Karte%w des %pSchattentempels%w![[typeHint]]",
|
||||||
"Vous obtenez la %rCarte %wdu&%pTemple de l'Ombre%w![[typeHint]]"),
|
"Vous obtenez la %rCarte %wdu&%pTemple de l'Ombre%w![[typeHint]]"),
|
||||||
GIMESSAGE(RG_BOTTOM_OF_THE_WELL_MAP, ITEM_DUNGEON_MAP, "You found the %pBottom of the&Well %wMap![[typeHint]]",
|
GIMESSAGE(RG_BOTW_MAP, ITEM_DUNGEON_MAP, "You found the %pBottom of the&Well %wMap![[typeHint]]",
|
||||||
"Du erhältst die %rLabyrinth-&Karte%w vom %pGrund des Brunnens%w![[typeHint]]",
|
"Du erhältst die %rLabyrinth-&Karte%w vom %pGrund des Brunnens%w![[typeHint]]",
|
||||||
"Vous obtenez la %rCarte %wdu&%pPuits%w![[typeHint]]"),
|
"Vous obtenez la %rCarte %wdu&%pPuits%w![[typeHint]]"),
|
||||||
GIMESSAGE(RG_ICE_CAVERN_MAP, ITEM_DUNGEON_MAP, "You found the %cIce Cavern&%wMap![[typeHint]]",
|
GIMESSAGE(RG_ICE_CAVERN_MAP, ITEM_DUNGEON_MAP, "You found the %cIce Cavern&%wMap![[typeHint]]",
|
||||||
|
@ -5641,7 +5637,7 @@ void Randomizer::CreateCustomMessages() {
|
||||||
GIMESSAGE(RG_SHADOW_TEMPLE_COMPASS, ITEM_COMPASS, "You found the %pShadow Temple&%wCompass!",
|
GIMESSAGE(RG_SHADOW_TEMPLE_COMPASS, ITEM_COMPASS, "You found the %pShadow Temple&%wCompass!",
|
||||||
"Du erhältst den %rKompaß%w des&%pSchattentempels%w!",
|
"Du erhältst den %rKompaß%w des&%pSchattentempels%w!",
|
||||||
"Vous obtenez la %rBoussole %wdu&%pTemple de l'Ombre%w!"),
|
"Vous obtenez la %rBoussole %wdu&%pTemple de l'Ombre%w!"),
|
||||||
GIMESSAGE(RG_BOTTOM_OF_THE_WELL_COMPASS, ITEM_COMPASS, "You found the %pBottom of the&Well %wCompass!",
|
GIMESSAGE(RG_BOTW_COMPASS, ITEM_COMPASS, "You found the %pBottom of the&Well %wCompass!",
|
||||||
"Du erhältst den %rKompaß%w vom&%pGrund des Brunnens%w!",
|
"Du erhältst den %rKompaß%w vom&%pGrund des Brunnens%w!",
|
||||||
"Vous obtenez la %rBoussole %wdu&%pPuits%w!"),
|
"Vous obtenez la %rBoussole %wdu&%pPuits%w!"),
|
||||||
GIMESSAGE(RG_ICE_CAVERN_COMPASS, ITEM_COMPASS, "You found the %cIce Cavern&%wCompass!",
|
GIMESSAGE(RG_ICE_CAVERN_COMPASS, ITEM_COMPASS, "You found the %cIce Cavern&%wCompass!",
|
||||||
|
@ -5974,10 +5970,10 @@ extern "C" u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
|
||||||
mapIndex = SCENE_SHADOW_TEMPLE;
|
mapIndex = SCENE_SHADOW_TEMPLE;
|
||||||
numOfKeysOnKeyring = SHADOW_TEMPLE_SMALL_KEY_MAX;
|
numOfKeysOnKeyring = SHADOW_TEMPLE_SMALL_KEY_MAX;
|
||||||
break;
|
break;
|
||||||
case RG_BOTTOM_OF_THE_WELL_MAP:
|
case RG_BOTW_MAP:
|
||||||
case RG_BOTTOM_OF_THE_WELL_COMPASS:
|
case RG_BOTW_COMPASS:
|
||||||
case RG_BOTTOM_OF_THE_WELL_SMALL_KEY:
|
case RG_BOTW_SMALL_KEY:
|
||||||
case RG_BOTTOM_OF_THE_WELL_KEY_RING:
|
case RG_BOTW_KEY_RING:
|
||||||
mapIndex = SCENE_BOTTOM_OF_THE_WELL;
|
mapIndex = SCENE_BOTTOM_OF_THE_WELL;
|
||||||
numOfKeysOnKeyring = BOTTOM_OF_THE_WELL_SMALL_KEY_MAX;
|
numOfKeysOnKeyring = BOTTOM_OF_THE_WELL_SMALL_KEY_MAX;
|
||||||
break;
|
break;
|
||||||
|
@ -5988,13 +5984,13 @@ extern "C" u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
|
||||||
case RG_GANONS_CASTLE_BOSS_KEY:
|
case RG_GANONS_CASTLE_BOSS_KEY:
|
||||||
mapIndex = SCENE_GANONS_TOWER;
|
mapIndex = SCENE_GANONS_TOWER;
|
||||||
break;
|
break;
|
||||||
case RG_GERUDO_TRAINING_GROUND_SMALL_KEY:
|
case RG_GTG_SMALL_KEY:
|
||||||
case RG_GERUDO_TRAINING_GROUND_KEY_RING:
|
case RG_GTG_KEY_RING:
|
||||||
mapIndex = SCENE_GERUDO_TRAINING_GROUND;
|
mapIndex = SCENE_GERUDO_TRAINING_GROUND;
|
||||||
numOfKeysOnKeyring = GERUDO_TRAINING_GROUND_SMALL_KEY_MAX;
|
numOfKeysOnKeyring = GERUDO_TRAINING_GROUND_SMALL_KEY_MAX;
|
||||||
break;
|
break;
|
||||||
case RG_GERUDO_FORTRESS_SMALL_KEY:
|
case RG_HIDEOUT_SMALL_KEY:
|
||||||
case RG_GERUDO_FORTRESS_KEY_RING:
|
case RG_HIDEOUT_KEY_RING:
|
||||||
mapIndex = SCENE_THIEVES_HIDEOUT;
|
mapIndex = SCENE_THIEVES_HIDEOUT;
|
||||||
numOfKeysOnKeyring = GERUDO_FORTRESS_SMALL_KEY_MAX;
|
numOfKeysOnKeyring = GERUDO_FORTRESS_SMALL_KEY_MAX;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -94,7 +94,7 @@ typedef enum {
|
||||||
LOGIC_BOMBCHUS,
|
LOGIC_BOMBCHUS,
|
||||||
LOGIC_PROGRESSIVE_MAGIC,
|
LOGIC_PROGRESSIVE_MAGIC,
|
||||||
LOGIC_PROGRESSIVE_OCARINA,
|
LOGIC_PROGRESSIVE_OCARINA,
|
||||||
LOGIC_PROGRESSIVE_GIANT_KNIFE,
|
LOGIC_PROGRESSIVE_GORONSWORD,
|
||||||
LOGIC_BOTTLES,
|
LOGIC_BOTTLES,
|
||||||
LOGIC_RUTOS_LETTER,
|
LOGIC_RUTOS_LETTER,
|
||||||
LOGIC_BOTTLE_WITH_BIG_POE,
|
LOGIC_BOTTLE_WITH_BIG_POE,
|
||||||
|
@ -110,26 +110,6 @@ typedef enum {
|
||||||
LOGIC_NOCTURNE_OF_SHADOW,
|
LOGIC_NOCTURNE_OF_SHADOW,
|
||||||
LOGIC_REQUIEM_OF_SPIRIT,
|
LOGIC_REQUIEM_OF_SPIRIT,
|
||||||
LOGIC_PRELUDE_OF_LIGHT,
|
LOGIC_PRELUDE_OF_LIGHT,
|
||||||
LOGIC_MAP_DEKU_TREE,
|
|
||||||
LOGIC_MAP_DODONGOS_CAVERN,
|
|
||||||
LOGIC_MAP_JABU_JABUS_BELLY,
|
|
||||||
LOGIC_MAP_FOREST_TEMPLE,
|
|
||||||
LOGIC_MAP_FIRE_TEMPLE,
|
|
||||||
LOGIC_MAP_WATER_TEMPLE,
|
|
||||||
LOGIC_MAP_SPIRIT_TEMPLE,
|
|
||||||
LOGIC_MAP_SHADOW_TEMPLE,
|
|
||||||
LOGIC_MAP_BOTTOM_OF_THE_WELL,
|
|
||||||
LOGIC_MAP_ICE_CAVERN,
|
|
||||||
LOGIC_COMPASS_DEKU_TREE,
|
|
||||||
LOGIC_COMPASS_DODONGOS_CAVERN,
|
|
||||||
LOGIC_COMPASS_JABU_JABUS_BELLY,
|
|
||||||
LOGIC_COMPASS_FOREST_TEMPLE,
|
|
||||||
LOGIC_COMPASS_FIRE_TEMPLE,
|
|
||||||
LOGIC_COMPASS_WATER_TEMPLE,
|
|
||||||
LOGIC_COMPASS_SPIRIT_TEMPLE,
|
|
||||||
LOGIC_COMPASS_SHADOW_TEMPLE,
|
|
||||||
LOGIC_COMPASS_BOTTOM_OF_THE_WELL,
|
|
||||||
LOGIC_COMPASS_ICE_CAVERN,
|
|
||||||
LOGIC_BOSS_KEY_FOREST_TEMPLE,
|
LOGIC_BOSS_KEY_FOREST_TEMPLE,
|
||||||
LOGIC_BOSS_KEY_FIRE_TEMPLE,
|
LOGIC_BOSS_KEY_FIRE_TEMPLE,
|
||||||
LOGIC_BOSS_KEY_WATER_TEMPLE,
|
LOGIC_BOSS_KEY_WATER_TEMPLE,
|
||||||
|
@ -141,30 +121,30 @@ typedef enum {
|
||||||
LOGIC_WATER_TEMPLE_KEYS,
|
LOGIC_WATER_TEMPLE_KEYS,
|
||||||
LOGIC_SPIRIT_TEMPLE_KEYS,
|
LOGIC_SPIRIT_TEMPLE_KEYS,
|
||||||
LOGIC_SHADOW_TEMPLE_KEYS,
|
LOGIC_SHADOW_TEMPLE_KEYS,
|
||||||
LOGIC_BOTTOM_OF_THE_WELL_KEYS,
|
LOGIC_BOTW_KEYS,
|
||||||
LOGIC_GERUDO_TRAINING_GROUND_KEYS,
|
LOGIC_GTG_KEYS,
|
||||||
LOGIC_GERUDO_FORTRESS_KEYS,
|
LOGIC_HIDEOUT_KEYS,
|
||||||
LOGIC_GANONS_CASTLE_KEYS,
|
LOGIC_GANONS_CASTLE_KEYS,
|
||||||
LOGIC_TREASURE_GAME_KEYS,
|
LOGIC_TCG_KEYS,
|
||||||
LOGIC_SKELETON_KEY,
|
LOGIC_SKELETON_KEY,
|
||||||
LOGIC_GUARD_HOUSE_KEY,
|
LOGIC_GUARD_HOUSE_KEY,
|
||||||
LOGIC_MARKET_BAZAAR_KEY,
|
LOGIC_MARKET_BAZAAR_KEY,
|
||||||
LOGIC_MARKET_POTION_SHOP_KEY,
|
LOGIC_MARKET_POTION_SHOP_KEY,
|
||||||
LOGIC_MASK_SHOP_KEY,
|
LOGIC_MASK_SHOP_KEY,
|
||||||
LOGIC_MARKET_SHOOTING_GALLERY_KEY,
|
LOGIC_MARKET_SHOOTING_KEY,
|
||||||
LOGIC_BOMBCHU_BOWLING_KEY,
|
LOGIC_BOMBCHU_BOWLING_KEY,
|
||||||
LOGIC_TREASURE_CHEST_GAME_BUILDING_KEY,
|
LOGIC_TCG_BUILDING_KEY,
|
||||||
LOGIC_BOMBCHU_SHOP_KEY,
|
LOGIC_BOMBCHU_SHOP_KEY,
|
||||||
LOGIC_RICHARDS_HOUSE_KEY,
|
LOGIC_RICHARDS_HOUSE_KEY,
|
||||||
LOGIC_ALLEY_HOUSE_KEY,
|
LOGIC_ALLEY_HOUSE_KEY,
|
||||||
LOGIC_KAK_BAZAAR_KEY,
|
LOGIC_KAK_BAZAAR_KEY,
|
||||||
LOGIC_KAK_POTION_SHOP_KEY,
|
LOGIC_KAK_POTION_SHOP_KEY,
|
||||||
LOGIC_BOSS_HOUSE_KEY,
|
LOGIC_BOSS_HOUSE_KEY,
|
||||||
LOGIC_GRANNYS_POTION_SHOP_KEY,
|
LOGIC_GRANNYS_SHOP_KEY,
|
||||||
LOGIC_SKULLTULA_HOUSE_KEY,
|
LOGIC_SKULLTULA_HOUSE_KEY,
|
||||||
LOGIC_IMPAS_HOUSE_KEY,
|
LOGIC_IMPAS_HOUSE_KEY,
|
||||||
LOGIC_WINDMILL_KEY,
|
LOGIC_WINDMILL_KEY,
|
||||||
LOGIC_KAK_SHOOTING_GALLERY_KEY,
|
LOGIC_KAK_SHOOTING_KEY,
|
||||||
LOGIC_DAMPES_HUT_KEY,
|
LOGIC_DAMPES_HUT_KEY,
|
||||||
LOGIC_TALONS_HOUSE_KEY,
|
LOGIC_TALONS_HOUSE_KEY,
|
||||||
LOGIC_STABLES_KEY,
|
LOGIC_STABLES_KEY,
|
||||||
|
@ -194,15 +174,15 @@ typedef enum {
|
||||||
LOGIC_BLUE_FIRE_ACCESS,
|
LOGIC_BLUE_FIRE_ACCESS,
|
||||||
LOGIC_BUGS_ACCESS,
|
LOGIC_BUGS_ACCESS,
|
||||||
LOGIC_FAIRY_ACCESS,
|
LOGIC_FAIRY_ACCESS,
|
||||||
LOGIC_CAN_SUMMON_GOHMA,
|
LOGIC_GOHMA_SOUL,
|
||||||
LOGIC_CAN_SUMMON_KINGDODONGO,
|
LOGIC_KING_DODONGO_SOUL,
|
||||||
LOGIC_CAN_SUMMON_BARINADE,
|
LOGIC_BARINADE_SOUL,
|
||||||
LOGIC_CAN_SUMMON_PHANTOMGANON,
|
LOGIC_PHANTOM_GANON_SOUL,
|
||||||
LOGIC_CAN_SUMMON_VOLVAGIA,
|
LOGIC_VOLVAGIA_SOUL,
|
||||||
LOGIC_CAN_SUMMON_MORPHA,
|
LOGIC_MORPHA_SOUL,
|
||||||
LOGIC_CAN_SUMMON_BONGOBONGO,
|
LOGIC_BONGO_BONGO_SOUL,
|
||||||
LOGIC_CAN_SUMMON_TWINROVA,
|
LOGIC_TWINROVA_SOUL,
|
||||||
LOGIC_CAN_SUMMON_GANON,
|
LOGIC_GANON_SOUL,
|
||||||
LOGIC_FISHING_POLE,
|
LOGIC_FISHING_POLE,
|
||||||
LOGIC_OCARINA_A_BUTTON,
|
LOGIC_OCARINA_A_BUTTON,
|
||||||
LOGIC_OCARINA_C_UP_BUTTON,
|
LOGIC_OCARINA_C_UP_BUTTON,
|
||||||
|
@ -3838,10 +3818,10 @@ typedef enum {
|
||||||
RG_PROGRESSIVE_SLINGSHOT,
|
RG_PROGRESSIVE_SLINGSHOT,
|
||||||
RG_PROGRESSIVE_WALLET,
|
RG_PROGRESSIVE_WALLET,
|
||||||
RG_PROGRESSIVE_SCALE,
|
RG_PROGRESSIVE_SCALE,
|
||||||
RG_PROGRESSIVE_NUT_UPGRADE,
|
RG_PROGRESSIVE_NUT_BAG,
|
||||||
RG_PROGRESSIVE_STICK_UPGRADE,
|
RG_PROGRESSIVE_STICK_BAG,
|
||||||
RG_PROGRESSIVE_BOMBCHUS,
|
RG_PROGRESSIVE_BOMBCHUS,
|
||||||
RG_PROGRESSIVE_MAGIC_METER,
|
RG_PROGRESSIVE_MAGIC,
|
||||||
RG_MAGIC_SINGLE, // Added for refactor of GetItemEntries
|
RG_MAGIC_SINGLE, // Added for refactor of GetItemEntries
|
||||||
RG_MAGIC_DOUBLE, // Added for refactor of GetItemEntries
|
RG_MAGIC_DOUBLE, // Added for refactor of GetItemEntries
|
||||||
RG_PROGRESSIVE_OCARINA,
|
RG_PROGRESSIVE_OCARINA,
|
||||||
|
@ -3878,7 +3858,7 @@ typedef enum {
|
||||||
RG_WATER_TEMPLE_MAP,
|
RG_WATER_TEMPLE_MAP,
|
||||||
RG_SPIRIT_TEMPLE_MAP,
|
RG_SPIRIT_TEMPLE_MAP,
|
||||||
RG_SHADOW_TEMPLE_MAP,
|
RG_SHADOW_TEMPLE_MAP,
|
||||||
RG_BOTTOM_OF_THE_WELL_MAP,
|
RG_BOTW_MAP,
|
||||||
RG_ICE_CAVERN_MAP,
|
RG_ICE_CAVERN_MAP,
|
||||||
RG_DEKU_TREE_COMPASS,
|
RG_DEKU_TREE_COMPASS,
|
||||||
RG_DODONGOS_CAVERN_COMPASS,
|
RG_DODONGOS_CAVERN_COMPASS,
|
||||||
|
@ -3888,7 +3868,7 @@ typedef enum {
|
||||||
RG_WATER_TEMPLE_COMPASS,
|
RG_WATER_TEMPLE_COMPASS,
|
||||||
RG_SPIRIT_TEMPLE_COMPASS,
|
RG_SPIRIT_TEMPLE_COMPASS,
|
||||||
RG_SHADOW_TEMPLE_COMPASS,
|
RG_SHADOW_TEMPLE_COMPASS,
|
||||||
RG_BOTTOM_OF_THE_WELL_COMPASS,
|
RG_BOTW_COMPASS,
|
||||||
RG_ICE_CAVERN_COMPASS,
|
RG_ICE_CAVERN_COMPASS,
|
||||||
RG_FOREST_TEMPLE_BOSS_KEY,
|
RG_FOREST_TEMPLE_BOSS_KEY,
|
||||||
RG_FIRE_TEMPLE_BOSS_KEY,
|
RG_FIRE_TEMPLE_BOSS_KEY,
|
||||||
|
@ -3901,21 +3881,21 @@ typedef enum {
|
||||||
RG_WATER_TEMPLE_SMALL_KEY,
|
RG_WATER_TEMPLE_SMALL_KEY,
|
||||||
RG_SPIRIT_TEMPLE_SMALL_KEY,
|
RG_SPIRIT_TEMPLE_SMALL_KEY,
|
||||||
RG_SHADOW_TEMPLE_SMALL_KEY,
|
RG_SHADOW_TEMPLE_SMALL_KEY,
|
||||||
RG_BOTTOM_OF_THE_WELL_SMALL_KEY,
|
RG_BOTW_SMALL_KEY,
|
||||||
RG_GERUDO_TRAINING_GROUND_SMALL_KEY,
|
RG_GTG_SMALL_KEY,
|
||||||
RG_GERUDO_FORTRESS_SMALL_KEY,
|
RG_HIDEOUT_SMALL_KEY,
|
||||||
RG_GANONS_CASTLE_SMALL_KEY,
|
RG_GANONS_CASTLE_SMALL_KEY,
|
||||||
RG_TREASURE_GAME_SMALL_KEY,
|
RG_TCG_SMALL_KEY,
|
||||||
RG_FOREST_TEMPLE_KEY_RING,
|
RG_FOREST_TEMPLE_KEY_RING,
|
||||||
RG_FIRE_TEMPLE_KEY_RING,
|
RG_FIRE_TEMPLE_KEY_RING,
|
||||||
RG_WATER_TEMPLE_KEY_RING,
|
RG_WATER_TEMPLE_KEY_RING,
|
||||||
RG_SPIRIT_TEMPLE_KEY_RING,
|
RG_SPIRIT_TEMPLE_KEY_RING,
|
||||||
RG_SHADOW_TEMPLE_KEY_RING,
|
RG_SHADOW_TEMPLE_KEY_RING,
|
||||||
RG_BOTTOM_OF_THE_WELL_KEY_RING,
|
RG_BOTW_KEY_RING,
|
||||||
RG_GERUDO_TRAINING_GROUND_KEY_RING,
|
RG_GTG_KEY_RING,
|
||||||
RG_GERUDO_FORTRESS_KEY_RING,
|
RG_HIDEOUT_KEY_RING,
|
||||||
RG_GANONS_CASTLE_KEY_RING,
|
RG_GANONS_CASTLE_KEY_RING,
|
||||||
RG_TREASURE_GAME_KEY_RING,
|
RG_TCG_KEY_RING,
|
||||||
RG_KOKIRI_EMERALD,
|
RG_KOKIRI_EMERALD,
|
||||||
RG_GORON_RUBY,
|
RG_GORON_RUBY,
|
||||||
RG_ZORA_SAPPHIRE,
|
RG_ZORA_SAPPHIRE,
|
||||||
|
@ -3953,8 +3933,8 @@ typedef enum {
|
||||||
RG_RED_POTION_REFILL,
|
RG_RED_POTION_REFILL,
|
||||||
RG_GREEN_POTION_REFILL,
|
RG_GREEN_POTION_REFILL,
|
||||||
RG_BLUE_POTION_REFILL,
|
RG_BLUE_POTION_REFILL,
|
||||||
RG_TREASURE_GAME_HEART,
|
RG_TCG_PIECE_OF_HEART,
|
||||||
RG_TREASURE_GAME_GREEN_RUPEE,
|
RG_LOSER_GREEN_RUPEE,
|
||||||
RG_BUY_DEKU_NUTS_5,
|
RG_BUY_DEKU_NUTS_5,
|
||||||
RG_BUY_ARROWS_30,
|
RG_BUY_ARROWS_30,
|
||||||
RG_BUY_ARROWS_50,
|
RG_BUY_ARROWS_50,
|
||||||
|
@ -4049,20 +4029,20 @@ typedef enum {
|
||||||
RG_MARKET_BAZAAR_KEY,
|
RG_MARKET_BAZAAR_KEY,
|
||||||
RG_MARKET_POTION_SHOP_KEY,
|
RG_MARKET_POTION_SHOP_KEY,
|
||||||
RG_MASK_SHOP_KEY,
|
RG_MASK_SHOP_KEY,
|
||||||
RG_MARKET_SHOOTING_GALLERY_KEY,
|
RG_MARKET_SHOOTING_KEY,
|
||||||
RG_BOMBCHU_BOWLING_KEY,
|
RG_BOMBCHU_BOWLING_KEY,
|
||||||
RG_TREASURE_CHEST_GAME_BUILDING_KEY,
|
RG_TCG_BUILDING_KEY,
|
||||||
RG_BOMBCHU_SHOP_KEY,
|
RG_BOMBCHU_SHOP_KEY,
|
||||||
RG_RICHARDS_HOUSE_KEY,
|
RG_RICHARDS_HOUSE_KEY,
|
||||||
RG_ALLEY_HOUSE_KEY,
|
RG_ALLEY_HOUSE_KEY,
|
||||||
RG_KAK_BAZAAR_KEY,
|
RG_KAK_BAZAAR_KEY,
|
||||||
RG_KAK_POTION_SHOP_KEY,
|
RG_KAK_POTION_SHOP_KEY,
|
||||||
RG_BOSS_HOUSE_KEY,
|
RG_BOSS_HOUSE_KEY,
|
||||||
RG_GRANNYS_POTION_SHOP_KEY,
|
RG_GRANNYS_SHOP_KEY,
|
||||||
RG_SKULLTULA_HOUSE_KEY,
|
RG_SKULLTULA_HOUSE_KEY,
|
||||||
RG_IMPAS_HOUSE_KEY,
|
RG_IMPAS_HOUSE_KEY,
|
||||||
RG_WINDMILL_KEY,
|
RG_WINDMILL_KEY,
|
||||||
RG_KAK_SHOOTING_GALLERY_KEY,
|
RG_KAK_SHOOTING_KEY,
|
||||||
RG_DAMPES_HUT_KEY,
|
RG_DAMPES_HUT_KEY,
|
||||||
RG_TALONS_HOUSE_KEY,
|
RG_TALONS_HOUSE_KEY,
|
||||||
RG_STABLES_KEY,
|
RG_STABLES_KEY,
|
||||||
|
@ -5046,7 +5026,7 @@ typedef enum {
|
||||||
RHT_WATER_TEMPLE_MAP,
|
RHT_WATER_TEMPLE_MAP,
|
||||||
RHT_SPIRIT_TEMPLE_MAP,
|
RHT_SPIRIT_TEMPLE_MAP,
|
||||||
RHT_SHADOW_TEMPLE_MAP,
|
RHT_SHADOW_TEMPLE_MAP,
|
||||||
RHT_BOTTOM_OF_THE_WELL_MAP,
|
RHT_BOTW_MAP,
|
||||||
RHT_ICE_CAVERN_MAP,
|
RHT_ICE_CAVERN_MAP,
|
||||||
RHT_DEKU_TREE_COMPASS,
|
RHT_DEKU_TREE_COMPASS,
|
||||||
RHT_DODONGOS_CAVERN_COMPASS,
|
RHT_DODONGOS_CAVERN_COMPASS,
|
||||||
|
@ -5056,7 +5036,7 @@ typedef enum {
|
||||||
RHT_WATER_TEMPLE_COMPASS,
|
RHT_WATER_TEMPLE_COMPASS,
|
||||||
RHT_SPIRIT_TEMPLE_COMPASS,
|
RHT_SPIRIT_TEMPLE_COMPASS,
|
||||||
RHT_SHADOW_TEMPLE_COMPASS,
|
RHT_SHADOW_TEMPLE_COMPASS,
|
||||||
RHT_BOTTOM_OF_THE_WELL_COMPASS,
|
RHT_BOTW_COMPASS,
|
||||||
RHT_ICE_CAVERN_COMPASS,
|
RHT_ICE_CAVERN_COMPASS,
|
||||||
RHT_FOREST_TEMPLE_BOSS_KEY,
|
RHT_FOREST_TEMPLE_BOSS_KEY,
|
||||||
RHT_FIRE_TEMPLE_BOSS_KEY,
|
RHT_FIRE_TEMPLE_BOSS_KEY,
|
||||||
|
@ -5069,21 +5049,21 @@ typedef enum {
|
||||||
RHT_WATER_TEMPLE_SMALL_KEY,
|
RHT_WATER_TEMPLE_SMALL_KEY,
|
||||||
RHT_SPIRIT_TEMPLE_SMALL_KEY,
|
RHT_SPIRIT_TEMPLE_SMALL_KEY,
|
||||||
RHT_SHADOW_TEMPLE_SMALL_KEY,
|
RHT_SHADOW_TEMPLE_SMALL_KEY,
|
||||||
RHT_BOTTOM_OF_THE_WELL_SMALL_KEY,
|
RHT_BOTW_SMALL_KEY,
|
||||||
RHT_GERUDO_TRAINING_GROUND_SMALL_KEY,
|
RHT_GTG_SMALL_KEY,
|
||||||
RHT_GERUDO_FORTRESS_SMALL_KEY,
|
RHT_HIDEOUT_SMALL_KEY,
|
||||||
RHT_GANONS_CASTLE_SMALL_KEY,
|
RHT_GANONS_CASTLE_SMALL_KEY,
|
||||||
RHT_TREASURE_GAME_SMALL_KEY,
|
RHT_TCG_SMALL_KEY,
|
||||||
RHT_FOREST_TEMPLE_KEY_RING,
|
RHT_FOREST_TEMPLE_KEY_RING,
|
||||||
RHT_FIRE_TEMPLE_KEY_RING,
|
RHT_FIRE_TEMPLE_KEY_RING,
|
||||||
RHT_WATER_TEMPLE_KEY_RING,
|
RHT_WATER_TEMPLE_KEY_RING,
|
||||||
RHT_SPIRIT_TEMPLE_KEY_RING,
|
RHT_SPIRIT_TEMPLE_KEY_RING,
|
||||||
RHT_SHADOW_TEMPLE_KEY_RING,
|
RHT_SHADOW_TEMPLE_KEY_RING,
|
||||||
RHT_BOTTOM_OF_THE_WELL_KEY_RING,
|
RHT_BOTW_KEY_RING,
|
||||||
RHT_GERUDO_TRAINING_GROUND_KEY_RING,
|
RHT_GTG_KEY_RING,
|
||||||
RHT_GERUDO_FORTRESS_KEY_RING,
|
RHT_HIDEOUT_KEY_RING,
|
||||||
RHT_GANONS_CASTLE_KEY_RING,
|
RHT_GANONS_CASTLE_KEY_RING,
|
||||||
RHT_TREASURE_GAME_KEY_RING,
|
RHT_TCG_KEY_RING,
|
||||||
RHT_KOKIRI_EMERALD,
|
RHT_KOKIRI_EMERALD,
|
||||||
RHT_GORON_RUBY,
|
RHT_GORON_RUBY,
|
||||||
RHT_ZORA_SAPPHIRE,
|
RHT_ZORA_SAPPHIRE,
|
||||||
|
@ -5104,6 +5084,7 @@ typedef enum {
|
||||||
RHT_HEART_CONTAINER,
|
RHT_HEART_CONTAINER,
|
||||||
RHT_ICE_TRAP,
|
RHT_ICE_TRAP,
|
||||||
RHT_MILK,
|
RHT_MILK,
|
||||||
|
RHT_FISH,
|
||||||
RHT_BOMBS_5,
|
RHT_BOMBS_5,
|
||||||
RHT_BOMBS_10,
|
RHT_BOMBS_10,
|
||||||
RHT_BOMBS_20,
|
RHT_BOMBS_20,
|
||||||
|
@ -5120,8 +5101,8 @@ typedef enum {
|
||||||
RHT_RED_POTION_REFILL,
|
RHT_RED_POTION_REFILL,
|
||||||
RHT_GREEN_POTION_REFILL,
|
RHT_GREEN_POTION_REFILL,
|
||||||
RHT_BLUE_POTION_REFILL,
|
RHT_BLUE_POTION_REFILL,
|
||||||
RHT_TREASURE_GAME_HEART,
|
RHT_TCG_PIECE_OF_HEART,
|
||||||
RHT_TREASURE_GAME_GREEN_RUPEE,
|
RHT_LOSER_GREEN_RUPEE,
|
||||||
RHT_BUY_DEKU_NUTS_5,
|
RHT_BUY_DEKU_NUTS_5,
|
||||||
RHT_BUY_ARROWS_30,
|
RHT_BUY_ARROWS_30,
|
||||||
RHT_BUY_ARROWS_50,
|
RHT_BUY_ARROWS_50,
|
||||||
|
@ -5152,7 +5133,6 @@ typedef enum {
|
||||||
RHT_BUY_BOMBS_535,
|
RHT_BUY_BOMBS_535,
|
||||||
RHT_BUY_RED_POTION_40,
|
RHT_BUY_RED_POTION_40,
|
||||||
RHT_BUY_RED_POTION_50,
|
RHT_BUY_RED_POTION_50,
|
||||||
RHT_TRIFORCE,
|
|
||||||
RHT_BOMBCHU_BAG,
|
RHT_BOMBCHU_BAG,
|
||||||
RHT_QUIVER_INF,
|
RHT_QUIVER_INF,
|
||||||
RHT_BOMB_BAG_INF,
|
RHT_BOMB_BAG_INF,
|
||||||
|
@ -5162,9 +5142,8 @@ typedef enum {
|
||||||
RHT_MAGIC_INF,
|
RHT_MAGIC_INF,
|
||||||
RHT_BOMBCHU_INF,
|
RHT_BOMBCHU_INF,
|
||||||
RHT_WALLET_INF,
|
RHT_WALLET_INF,
|
||||||
|
RHT_TRIFORCE,
|
||||||
RHT_HINT,
|
RHT_HINT,
|
||||||
RHT_TYCOON_WALLET,
|
|
||||||
RHT_CHILD_WALLET,
|
|
||||||
RHT_HOOKSHOT,
|
RHT_HOOKSHOT,
|
||||||
RHT_LONGSHOT,
|
RHT_LONGSHOT,
|
||||||
RHT_FAIRY_OCARINA,
|
RHT_FAIRY_OCARINA,
|
||||||
|
@ -5181,12 +5160,17 @@ typedef enum {
|
||||||
RHT_GORONS_BRACELET,
|
RHT_GORONS_BRACELET,
|
||||||
RHT_SILVER_GAUNTLETS,
|
RHT_SILVER_GAUNTLETS,
|
||||||
RHT_GOLDEN_GAUNTLETS,
|
RHT_GOLDEN_GAUNTLETS,
|
||||||
|
RHT_BRONZE_SCALE,
|
||||||
RHT_SILVER_SCALE,
|
RHT_SILVER_SCALE,
|
||||||
RHT_GOLDEN_SCALE,
|
RHT_GOLDEN_SCALE,
|
||||||
|
RHT_CHILD_WALLET,
|
||||||
RHT_ADULT_WALLET,
|
RHT_ADULT_WALLET,
|
||||||
RHT_GIANT_WALLET,
|
RHT_GIANT_WALLET,
|
||||||
|
RHT_TYCOON_WALLET,
|
||||||
|
RHT_DEKU_NUT_BAG,
|
||||||
RHT_DEKU_NUT_CAPACITY_30,
|
RHT_DEKU_NUT_CAPACITY_30,
|
||||||
RHT_DEKU_NUT_CAPACITY_40,
|
RHT_DEKU_NUT_CAPACITY_40,
|
||||||
|
RHT_DEKU_STICK_BAG,
|
||||||
RHT_DEKU_STICK_CAPACITY_20,
|
RHT_DEKU_STICK_CAPACITY_20,
|
||||||
RHT_DEKU_STICK_CAPACITY_30,
|
RHT_DEKU_STICK_CAPACITY_30,
|
||||||
RHT_TRIFORCE_PIECE,
|
RHT_TRIFORCE_PIECE,
|
||||||
|
@ -5204,11 +5188,33 @@ typedef enum {
|
||||||
RHT_OCARINA_C_DOWN_BUTTON,
|
RHT_OCARINA_C_DOWN_BUTTON,
|
||||||
RHT_OCARINA_C_LEFT_BUTTON,
|
RHT_OCARINA_C_LEFT_BUTTON,
|
||||||
RHT_OCARINA_C_RIGHT_BUTTON,
|
RHT_OCARINA_C_RIGHT_BUTTON,
|
||||||
RHT_BRONZE_SCALE,
|
|
||||||
RHT_FISHING_POLE,
|
RHT_FISHING_POLE,
|
||||||
RHT_SKELETON_KEY,
|
RHT_SKELETON_KEY,
|
||||||
RHT_EPONA,
|
RHT_EPONA,
|
||||||
RHT_OVERWORLD_KEY,
|
RHT_GUARD_HOUSE_KEY,
|
||||||
|
RHT_MARKET_BAZAAR_KEY,
|
||||||
|
RHT_MARKET_POTION_SHOP_KEY,
|
||||||
|
RHT_MASK_SHOP_KEY,
|
||||||
|
RHT_MARKET_SHOOTING_KEY,
|
||||||
|
RHT_BOMBCHU_BOWLING_KEY,
|
||||||
|
RHT_TCG_BUILDING_KEY,
|
||||||
|
RHT_BOMBCHU_SHOP_KEY,
|
||||||
|
RHT_RICHARDS_HOUSE_KEY,
|
||||||
|
RHT_ALLEY_HOUSE_KEY,
|
||||||
|
RHT_KAK_BAZAAR_KEY,
|
||||||
|
RHT_KAK_POTION_SHOP_KEY,
|
||||||
|
RHT_BOSS_HOUSE_KEY,
|
||||||
|
RHT_GRANNYS_SHOP_KEY,
|
||||||
|
RHT_SKULLTULA_HOUSE_KEY,
|
||||||
|
RHT_IMPAS_HOUSE_KEY,
|
||||||
|
RHT_WINDMILL_KEY,
|
||||||
|
RHT_KAK_SHOOTING_KEY,
|
||||||
|
RHT_DAMPES_HUT_KEY,
|
||||||
|
RHT_TALONS_HOUSE_KEY,
|
||||||
|
RHT_STABLES_KEY,
|
||||||
|
RHT_BACK_TOWER_KEY,
|
||||||
|
RHT_HYLIA_LAB_KEY,
|
||||||
|
RHT_FISHING_HOLE_KEY,
|
||||||
RHT_HINT_MYSTERIOUS,
|
RHT_HINT_MYSTERIOUS,
|
||||||
RHT_MYSTERIOUS_ITEM,
|
RHT_MYSTERIOUS_ITEM,
|
||||||
RHT_MYSTERIOUS_ITEM_CAPITAL,
|
RHT_MYSTERIOUS_ITEM_CAPITAL,
|
||||||
|
|
|
@ -328,7 +328,7 @@ std::map<RandomizerGet, RandomizerCheckArea> MapRGtoRandomizerCheckArea = {
|
||||||
{ RG_WATER_TEMPLE_MAP, RCAREA_WATER_TEMPLE },
|
{ RG_WATER_TEMPLE_MAP, RCAREA_WATER_TEMPLE },
|
||||||
{ RG_SPIRIT_TEMPLE_MAP, RCAREA_SPIRIT_TEMPLE },
|
{ RG_SPIRIT_TEMPLE_MAP, RCAREA_SPIRIT_TEMPLE },
|
||||||
{ RG_SHADOW_TEMPLE_MAP, RCAREA_SHADOW_TEMPLE },
|
{ RG_SHADOW_TEMPLE_MAP, RCAREA_SHADOW_TEMPLE },
|
||||||
{ RG_BOTTOM_OF_THE_WELL_MAP, RCAREA_BOTTOM_OF_THE_WELL },
|
{ RG_BOTW_MAP, RCAREA_BOTTOM_OF_THE_WELL },
|
||||||
{ RG_ICE_CAVERN_MAP, RCAREA_ICE_CAVERN }
|
{ RG_ICE_CAVERN_MAP, RCAREA_ICE_CAVERN }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1253,14 +1253,14 @@ bool ShouldShowCheck(RandomizerCheck check) {
|
||||||
if (itemLoc->HasObtained() || itemLoc->GetCheckStatus() == RCSHOW_SCUMMED ||
|
if (itemLoc->HasObtained() || itemLoc->GetCheckStatus() == RCSHOW_SCUMMED ||
|
||||||
(!mystery && (itemLoc->GetCheckStatus() == RCSHOW_IDENTIFIED || itemLoc->GetCheckStatus() == RCSHOW_SEEN) &&
|
(!mystery && (itemLoc->GetCheckStatus() == RCSHOW_IDENTIFIED || itemLoc->GetCheckStatus() == RCSHOW_SEEN) &&
|
||||||
itemLoc->GetPlacedRandomizerGet() != RG_ICE_TRAP)) {
|
itemLoc->GetPlacedRandomizerGet() != RG_ICE_TRAP)) {
|
||||||
search += " " + itemLoc->GetPlacedItemName().GetForLanguage(gSaveContext.language);
|
search += " " + itemLoc->GetPlacedItemName().GetForCurrentLanguage(MF_RAW);
|
||||||
} else if (itemLoc->GetCheckStatus() == RCSHOW_IDENTIFIED && !mystery) {
|
} else if (itemLoc->GetCheckStatus() == RCSHOW_IDENTIFIED && !mystery) {
|
||||||
search +=
|
search +=
|
||||||
OTRGlobals::Instance->gRandoContext->overrides[check].GetTrickName().GetForLanguage(gSaveContext.language);
|
OTRGlobals::Instance->gRandoContext->overrides[check].GetTrickName().GetForLanguage(gSaveContext.language);
|
||||||
} else if (itemLoc->GetCheckStatus() == RCSHOW_SEEN && !mystery) {
|
} else if (itemLoc->GetCheckStatus() == RCSHOW_SEEN && !mystery) {
|
||||||
search += Rando::StaticData::RetrieveItem(OTRGlobals::Instance->gRandoContext->overrides[check].LooksLike())
|
search += Rando::StaticData::RetrieveItem(OTRGlobals::Instance->gRandoContext->overrides[check].LooksLike())
|
||||||
.GetName()
|
.GetName()
|
||||||
.GetForLanguage(gSaveContext.language);
|
.GetForCurrentLanguage(MF_RAW);
|
||||||
}
|
}
|
||||||
return (IsVisibleInCheckTracker(check) &&
|
return (IsVisibleInCheckTracker(check) &&
|
||||||
(checkSearch.Filters.Size == 0 || checkSearch.PassFilter(search.c_str())));
|
(checkSearch.Filters.Size == 0 || checkSearch.PassFilter(search.c_str())));
|
||||||
|
@ -1856,15 +1856,12 @@ void DrawLocation(RandomizerCheck rc) {
|
||||||
case RCSHOW_COLLECTED:
|
case RCSHOW_COLLECTED:
|
||||||
case RCSHOW_SCUMMED:
|
case RCSHOW_SCUMMED:
|
||||||
if (IS_RANDO) {
|
if (IS_RANDO) {
|
||||||
txt = itemLoc->GetPlacedItem().GetName().GetForLanguage(gSaveContext.language);
|
txt = itemLoc->GetPlacedItem().GetName().GetForCurrentLanguage(MF_RAW);
|
||||||
} else {
|
} else {
|
||||||
if (IsHeartPiece((GetItemID)Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetItemID())) {
|
if (IsHeartPiece((GetItemID)Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetItemID())) {
|
||||||
if (gSaveContext.language == LANGUAGE_ENG || gSaveContext.language == LANGUAGE_GER ||
|
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem())
|
||||||
gSaveContext.language == LANGUAGE_JPN) {
|
.GetName()
|
||||||
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetName().english;
|
.GetForCurrentLanguage(MF_RAW);
|
||||||
} else if (gSaveContext.language == LANGUAGE_FRA) {
|
|
||||||
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetName().french;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1879,10 +1876,10 @@ void DrawLocation(RandomizerCheck rc) {
|
||||||
txt = Rando::StaticData::RetrieveItem(
|
txt = Rando::StaticData::RetrieveItem(
|
||||||
OTRGlobals::Instance->gRandoContext->overrides[rc].LooksLike())
|
OTRGlobals::Instance->gRandoContext->overrides[rc].LooksLike())
|
||||||
.GetName()
|
.GetName()
|
||||||
.GetForLanguage(gSaveContext.language);
|
.GetForCurrentLanguage(MF_RAW);
|
||||||
}
|
}
|
||||||
} else if (!mystery) {
|
} else if (!mystery) {
|
||||||
txt = itemLoc->GetPlacedItem().GetName().GetForLanguage(gSaveContext.language);
|
txt = itemLoc->GetPlacedItem().GetName().GetForCurrentLanguage(MF_RAW);
|
||||||
}
|
}
|
||||||
if (IsVisibleInCheckTracker(rc) && status == RCSHOW_IDENTIFIED && !mystery) {
|
if (IsVisibleInCheckTracker(rc) && status == RCSHOW_IDENTIFIED && !mystery) {
|
||||||
auto price = OTRGlobals::Instance->gRandoContext->GetItemLocation(rc)->GetPrice();
|
auto price = OTRGlobals::Instance->gRandoContext->GetItemLocation(rc)->GetPrice();
|
||||||
|
@ -1892,12 +1889,9 @@ void DrawLocation(RandomizerCheck rc) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (IsHeartPiece((GetItemID)Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetItemID())) {
|
if (IsHeartPiece((GetItemID)Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetItemID())) {
|
||||||
if (gSaveContext.language == LANGUAGE_ENG || gSaveContext.language == LANGUAGE_GER ||
|
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem())
|
||||||
gSaveContext.language == LANGUAGE_JPN) {
|
.GetName()
|
||||||
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetName().english;
|
.GetForCurrentLanguage(MF_RAW);
|
||||||
} else if (gSaveContext.language == LANGUAGE_FRA) {
|
|
||||||
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetName().french;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -137,20 +137,20 @@ std::vector<ItemTrackerItem> overworldKeyItems = {
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_MARKET_BAZAAR_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_MARKET_BAZAAR_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_MARKET_POTION_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_MARKET_POTION_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_MASK_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_MASK_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_MARKET_SHOOTING_GALLERY_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_MARKET_SHOOTING_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_BOMBCHU_BOWLING_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_BOMBCHU_BOWLING_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_TREASURE_CHEST_GAME_BUILDING_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_TCG_BUILDING_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_BOMBCHU_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_BOMBCHU_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_RICHARDS_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_RICHARDS_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_ALLEY_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_ALLEY_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_KAK_BAZAAR_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_KAK_BAZAAR_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_KAK_POTION_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_KAK_POTION_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_BOSS_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_BOSS_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_GRANNYS_POTION_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_GRANNYS_SHOP_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_SKULLTULA_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_SKULLTULA_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_IMPAS_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_IMPAS_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_WINDMILL_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_WINDMILL_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_KAK_SHOOTING_GALLERY_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_KAK_SHOOTING_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_DAMPES_HUT_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_DAMPES_HUT_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_TALONS_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_TALONS_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_STABLES_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_STABLES_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||||
|
@ -234,30 +234,14 @@ std::map<uint16_t, std::string> itemTrackerOcarinaButtonShortNames = {
|
||||||
};
|
};
|
||||||
|
|
||||||
std::map<uint16_t, std::string> itemTrackerOverworldKeyShortNames = {
|
std::map<uint16_t, std::string> itemTrackerOverworldKeyShortNames = {
|
||||||
{ RG_GUARD_HOUSE_KEY, "GUARD" },
|
{ RG_GUARD_HOUSE_KEY, "GUARD" }, { RG_MARKET_BAZAAR_KEY, "MKBAZ" }, { RG_MARKET_POTION_SHOP_KEY, "MKPOT" },
|
||||||
{ RG_MARKET_BAZAAR_KEY, "MKBAZ" },
|
{ RG_MASK_SHOP_KEY, "MASK" }, { RG_MARKET_SHOOTING_KEY, "MKSHO" }, { RG_BOMBCHU_BOWLING_KEY, "BOWL" },
|
||||||
{ RG_MARKET_POTION_SHOP_KEY, "MKPOT" },
|
{ RG_TCG_BUILDING_KEY, "TREASU" }, { RG_BOMBCHU_SHOP_KEY, "CHUSHO" }, { RG_RICHARDS_HOUSE_KEY, "RICH" },
|
||||||
{ RG_MASK_SHOP_KEY, "MASK" },
|
{ RG_ALLEY_HOUSE_KEY, "ALLEY" }, { RG_KAK_BAZAAR_KEY, "KAKBAZ" }, { RG_KAK_POTION_SHOP_KEY, "KAKPO" },
|
||||||
{ RG_MARKET_SHOOTING_GALLERY_KEY, "MKSHO" },
|
{ RG_BOSS_HOUSE_KEY, "BOSS" }, { RG_GRANNYS_SHOP_KEY, "GRANNY" }, { RG_SKULLTULA_HOUSE_KEY, "SKULL" },
|
||||||
{ RG_BOMBCHU_BOWLING_KEY, "BOWL" },
|
{ RG_IMPAS_HOUSE_KEY, "IMPAS" }, { RG_WINDMILL_KEY, "WIND" }, { RG_KAK_SHOOTING_KEY, "KAKSHO" },
|
||||||
{ RG_TREASURE_CHEST_GAME_BUILDING_KEY, "TREASU" },
|
{ RG_DAMPES_HUT_KEY, "DAMPES" }, { RG_TALONS_HOUSE_KEY, "TALONS" }, { RG_STABLES_KEY, "STABLE" },
|
||||||
{ RG_BOMBCHU_SHOP_KEY, "CHUSHO" },
|
{ RG_BACK_TOWER_KEY, "TOWER" }, { RG_HYLIA_LAB_KEY, "LAB" }, { RG_FISHING_HOLE_KEY, "FISH" },
|
||||||
{ RG_RICHARDS_HOUSE_KEY, "RICH" },
|
|
||||||
{ RG_ALLEY_HOUSE_KEY, "ALLEY" },
|
|
||||||
{ RG_KAK_BAZAAR_KEY, "KAKBAZ" },
|
|
||||||
{ RG_KAK_POTION_SHOP_KEY, "KAKPO" },
|
|
||||||
{ RG_BOSS_HOUSE_KEY, "BOSS" },
|
|
||||||
{ RG_GRANNYS_POTION_SHOP_KEY, "GRANNY" },
|
|
||||||
{ RG_SKULLTULA_HOUSE_KEY, "SKULL" },
|
|
||||||
{ RG_IMPAS_HOUSE_KEY, "IMPAS" },
|
|
||||||
{ RG_WINDMILL_KEY, "WIND" },
|
|
||||||
{ RG_KAK_SHOOTING_GALLERY_KEY, "KAKSHO" },
|
|
||||||
{ RG_DAMPES_HUT_KEY, "DAMPES" },
|
|
||||||
{ RG_TALONS_HOUSE_KEY, "TALONS" },
|
|
||||||
{ RG_STABLES_KEY, "STABLE" },
|
|
||||||
{ RG_BACK_TOWER_KEY, "TOWER" },
|
|
||||||
{ RG_HYLIA_LAB_KEY, "LAB" },
|
|
||||||
{ RG_FISHING_HOLE_KEY, "FISH" },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<ItemTrackerItem> dungeonItems = {};
|
std::vector<ItemTrackerItem> dungeonItems = {};
|
||||||
|
@ -716,7 +700,7 @@ void DrawItem(ItemTrackerItem item) {
|
||||||
bool hasItem = actualItemId != ITEM_NONE;
|
bool hasItem = actualItemId != ITEM_NONE;
|
||||||
std::string itemName = "";
|
std::string itemName = "";
|
||||||
|
|
||||||
// Hack fix as RG_MARKET_SHOOTING_GALLERY_KEY is RandomizerGet #255 which collides
|
// Hack fix as RG_MARKET_SHOOTING_KEY is RandomizerGet #255 which collides
|
||||||
// with ITEM_NONE (ItemId #255) due to the lack of a modid to separate them
|
// with ITEM_NONE (ItemId #255) due to the lack of a modid to separate them
|
||||||
if (item.name != "ITEM_KEY_SMALL" && item.id == ITEM_NONE) {
|
if (item.name != "ITEM_KEY_SMALL" && item.id == ITEM_NONE) {
|
||||||
return;
|
return;
|
||||||
|
@ -863,7 +847,7 @@ void DrawItem(ItemTrackerItem item) {
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_MASK_SHOP_KEY_OBTAINED);
|
hasItem = Flags_GetRandomizerInf(RAND_INF_MASK_SHOP_KEY_OBTAINED);
|
||||||
itemName = "Mask Shop Key";
|
itemName = "Mask Shop Key";
|
||||||
break;
|
break;
|
||||||
case RG_MARKET_SHOOTING_GALLERY_KEY:
|
case RG_MARKET_SHOOTING_KEY:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_MARKET_SHOOTING_GALLERY_KEY_OBTAINED);
|
hasItem = Flags_GetRandomizerInf(RAND_INF_MARKET_SHOOTING_GALLERY_KEY_OBTAINED);
|
||||||
itemName = "Market Shooting Gallery Key";
|
itemName = "Market Shooting Gallery Key";
|
||||||
|
@ -873,7 +857,7 @@ void DrawItem(ItemTrackerItem item) {
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_BOMBCHU_BOWLING_KEY_OBTAINED);
|
hasItem = Flags_GetRandomizerInf(RAND_INF_BOMBCHU_BOWLING_KEY_OBTAINED);
|
||||||
itemName = "Bombchu Bowling Key";
|
itemName = "Bombchu Bowling Key";
|
||||||
break;
|
break;
|
||||||
case RG_TREASURE_CHEST_GAME_BUILDING_KEY:
|
case RG_TCG_BUILDING_KEY:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_TREASURE_CHEST_GAME_BUILDING_KEY_OBTAINED);
|
hasItem = Flags_GetRandomizerInf(RAND_INF_TREASURE_CHEST_GAME_BUILDING_KEY_OBTAINED);
|
||||||
itemName = "Treasure Chest Game Building Key";
|
itemName = "Treasure Chest Game Building Key";
|
||||||
|
@ -908,7 +892,7 @@ void DrawItem(ItemTrackerItem item) {
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_BOSS_HOUSE_KEY_OBTAINED);
|
hasItem = Flags_GetRandomizerInf(RAND_INF_BOSS_HOUSE_KEY_OBTAINED);
|
||||||
itemName = "Boss House Key";
|
itemName = "Boss House Key";
|
||||||
break;
|
break;
|
||||||
case RG_GRANNYS_POTION_SHOP_KEY:
|
case RG_GRANNYS_SHOP_KEY:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_GRANNYS_POTION_SHOP_KEY_OBTAINED);
|
hasItem = Flags_GetRandomizerInf(RAND_INF_GRANNYS_POTION_SHOP_KEY_OBTAINED);
|
||||||
itemName = "Granny's Potion Shop Key";
|
itemName = "Granny's Potion Shop Key";
|
||||||
|
@ -928,7 +912,7 @@ void DrawItem(ItemTrackerItem item) {
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_WINDMILL_KEY_OBTAINED);
|
hasItem = Flags_GetRandomizerInf(RAND_INF_WINDMILL_KEY_OBTAINED);
|
||||||
itemName = "Windmill Key";
|
itemName = "Windmill Key";
|
||||||
break;
|
break;
|
||||||
case RG_KAK_SHOOTING_GALLERY_KEY:
|
case RG_KAK_SHOOTING_KEY:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_KAK_SHOOTING_GALLERY_KEY_OBTAINED);
|
hasItem = Flags_GetRandomizerInf(RAND_INF_KAK_SHOOTING_GALLERY_KEY_OBTAINED);
|
||||||
itemName = "Kak Shooting Gallery Key";
|
itemName = "Kak Shooting Gallery Key";
|
||||||
|
|
|
@ -193,7 +193,7 @@ std::unordered_map<RandomizerHint, StaticHintInfo> StaticData::staticHintInfoMap
|
||||||
{RH_SHEIK_HINT, StaticHintInfo(HINT_TYPE_AREA, {RHT_SHEIK_HINT_LA_ONLY}, RSK_SHEIK_LA_HINT, true, {}, {RG_LIGHT_ARROWS}, {RC_SHEIK_HINT_GC, RC_SHEIK_HINT_MQ_GC}, true)},
|
{RH_SHEIK_HINT, StaticHintInfo(HINT_TYPE_AREA, {RHT_SHEIK_HINT_LA_ONLY}, RSK_SHEIK_LA_HINT, true, {}, {RG_LIGHT_ARROWS}, {RC_SHEIK_HINT_GC, RC_SHEIK_HINT_MQ_GC}, true)},
|
||||||
{RH_DAMPES_DIARY, StaticHintInfo(HINT_TYPE_AREA, {RHT_DAMPE_DIARY}, RSK_DAMPES_DIARY_HINT, true, {}, {RG_PROGRESSIVE_HOOKSHOT}, {RC_DAMPE_HINT})},
|
{RH_DAMPES_DIARY, StaticHintInfo(HINT_TYPE_AREA, {RHT_DAMPE_DIARY}, RSK_DAMPES_DIARY_HINT, true, {}, {RG_PROGRESSIVE_HOOKSHOT}, {RC_DAMPE_HINT})},
|
||||||
{RH_GREG_RUPEE, StaticHintInfo(HINT_TYPE_AREA, {RHT_GREG_HINT}, RSK_GREG_HINT, true, {}, {RG_GREG_RUPEE}, {RC_GREG_HINT})},
|
{RH_GREG_RUPEE, StaticHintInfo(HINT_TYPE_AREA, {RHT_GREG_HINT}, RSK_GREG_HINT, true, {}, {RG_GREG_RUPEE}, {RC_GREG_HINT})},
|
||||||
{RH_SARIA_HINT, StaticHintInfo(HINT_TYPE_AREA, {RHT_SARIA_TALK_HINT, RHT_SARIA_SONG_HINT}, RSK_SARIA_HINT, true, {}, {RG_PROGRESSIVE_MAGIC_METER}, {RC_SARIA_SONG_HINT, RC_SONG_FROM_SARIA}, true)},
|
{RH_SARIA_HINT, StaticHintInfo(HINT_TYPE_AREA, {RHT_SARIA_TALK_HINT, RHT_SARIA_SONG_HINT}, RSK_SARIA_HINT, true, {}, {RG_PROGRESSIVE_MAGIC}, {RC_SARIA_SONG_HINT, RC_SONG_FROM_SARIA}, true)},
|
||||||
{RH_LOACH_HINT, StaticHintInfo(HINT_TYPE_ITEM, {RHT_LOACH_HINT}, RSK_LOACH_HINT, true, {RC_LH_HYRULE_LOACH})},
|
{RH_LOACH_HINT, StaticHintInfo(HINT_TYPE_ITEM, {RHT_LOACH_HINT}, RSK_LOACH_HINT, true, {RC_LH_HYRULE_LOACH})},
|
||||||
{RH_FISHING_POLE, StaticHintInfo(HINT_TYPE_AREA, {RHT_FISHING_POLE_HINT}, RSK_FISHING_POLE_HINT, true, {}, {RG_FISHING_POLE}, {RC_FISHING_POLE_HINT}, true)},
|
{RH_FISHING_POLE, StaticHintInfo(HINT_TYPE_AREA, {RHT_FISHING_POLE_HINT}, RSK_FISHING_POLE_HINT, true, {}, {RG_FISHING_POLE}, {RC_FISHING_POLE_HINT}, true)},
|
||||||
{RH_HBA_HINT, StaticHintInfo(HINT_TYPE_ITEM, {RHT_HBA_HINT_SIGN, RHT_HBA_HINT_NOT_ON_HORSE, RHT_HBA_HINT_INITIAL, RHT_HBA_HINT_HAVE_1000}, RSK_HBA_HINT, true, {RC_GF_HBA_1000_POINTS, RC_GF_HBA_1500_POINTS})},
|
{RH_HBA_HINT, StaticHintInfo(HINT_TYPE_ITEM, {RHT_HBA_HINT_SIGN, RHT_HBA_HINT_NOT_ON_HORSE, RHT_HBA_HINT_INITIAL, RHT_HBA_HINT_HAVE_1000}, RSK_HBA_HINT, true, {RC_GF_HBA_1000_POINTS, RC_GF_HBA_1500_POINTS})},
|
||||||
|
@ -221,7 +221,7 @@ StaticData::PopulateTranslationMap(std::unordered_map<uint32_t, CustomMessage> i
|
||||||
std::vector<std::string> strings = message.GetAllMessages();
|
std::vector<std::string> strings = message.GetAllMessages();
|
||||||
for (std::string string : strings) {
|
for (std::string string : strings) {
|
||||||
if (output.contains(string)) {
|
if (output.contains(string)) {
|
||||||
if (output[string] != key) {
|
if (output[string] != key && string != "") {
|
||||||
// RANDOTODO should this cause an error of some kind?
|
// RANDOTODO should this cause an error of some kind?
|
||||||
SPDLOG_DEBUG("\tREPEATED STRING IN " + message.GetEnglish(MF_CLEAN) + "\n\n");
|
SPDLOG_DEBUG("\tREPEATED STRING IN " + message.GetEnglish(MF_CLEAN) + "\n\n");
|
||||||
}
|
}
|
||||||
|
@ -240,8 +240,7 @@ StaticData::PopulateTranslationMap(std::unordered_map<uint32_t, RandomizerHintTe
|
||||||
std::vector<std::string> strings = hintTextTable[text].GetClear().GetAllMessages();
|
std::vector<std::string> strings = hintTextTable[text].GetClear().GetAllMessages();
|
||||||
for (std::string string : strings) {
|
for (std::string string : strings) {
|
||||||
if (output.contains(string)) {
|
if (output.contains(string)) {
|
||||||
if (output[string] != key) {
|
if (output[string] != key && string != "") {
|
||||||
// RANDOTODO should this cause an error of some kind?
|
|
||||||
SPDLOG_DEBUG("\tREPEATED STRING WITH " + string + "\n\n");
|
SPDLOG_DEBUG("\tREPEATED STRING WITH " + string + "\n\n");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -22,6 +22,16 @@ class StaticData {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void InitItemTable();
|
static void InitItemTable();
|
||||||
|
static void AddItem(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, LogicVal logicVal_,
|
||||||
|
RandomizerHintTextKey hintKey_, uint16_t itemId_, uint16_t objectId_, uint16_t gid_,
|
||||||
|
uint16_t textId_, uint16_t field_, int16_t chestAnimation_, GetItemCategory category_,
|
||||||
|
uint16_t modIndex_, uint16_t price_ = 0, CustomDrawFunc drawfunc_ = NULL);
|
||||||
|
static void AddItem(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, LogicVal logicVal_,
|
||||||
|
RandomizerHintTextKey hintKey_, uint16_t objectId_, uint16_t gid_, uint16_t textId_,
|
||||||
|
uint16_t field_, int16_t chestAnimation_, GetItemCategory category_, uint16_t modIndex_,
|
||||||
|
uint16_t price_ = 0, CustomDrawFunc drawfunc_ = NULL);
|
||||||
|
static void AddItem(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, LogicVal logicVal_,
|
||||||
|
RandomizerHintTextKey hintKey_, GetItemCategory category_, uint16_t price_ = 0);
|
||||||
static void HintTable_Init();
|
static void HintTable_Init();
|
||||||
static void HintTable_Init_Item();
|
static void HintTable_Init_Item();
|
||||||
static void HintTable_Init_Exclude_Overworld();
|
static void HintTable_Init_Exclude_Overworld();
|
||||||
|
|
|
@ -431,8 +431,6 @@ void OTRGlobals::Initialize() {
|
||||||
gRandoContext->InitStaticData();
|
gRandoContext->InitStaticData();
|
||||||
gRandoContext = Rando::Context::CreateInstance();
|
gRandoContext = Rando::Context::CreateInstance();
|
||||||
Rando::Settings::GetInstance()->AssignContext(gRandoContext);
|
Rando::Settings::GetInstance()->AssignContext(gRandoContext);
|
||||||
Rando::StaticData::InitItemTable(); // RANDOTODO make this not rely on context's logic so it can be initialised in
|
|
||||||
// InitStaticData
|
|
||||||
Rando::Settings::GetInstance()->CreateOptions();
|
Rando::Settings::GetInstance()->CreateOptions();
|
||||||
gRandomizer = std::make_shared<Randomizer>();
|
gRandomizer = std::make_shared<Randomizer>();
|
||||||
|
|
||||||
|
@ -733,7 +731,7 @@ extern "C" void VanillaItemTable_Init() {
|
||||||
GET_ITEM(ITEM_ARROW_FIRE, OBJECT_GI_M_ARROW, GID_ARROW_FIRE, 0x70, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_ARROW_FIRE),
|
GET_ITEM(ITEM_ARROW_FIRE, OBJECT_GI_M_ARROW, GID_ARROW_FIRE, 0x70, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_ARROW_FIRE),
|
||||||
GET_ITEM(ITEM_ARROW_ICE, OBJECT_GI_M_ARROW, GID_ARROW_ICE, 0x71, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_ARROW_ICE),
|
GET_ITEM(ITEM_ARROW_ICE, OBJECT_GI_M_ARROW, GID_ARROW_ICE, 0x71, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_ARROW_ICE),
|
||||||
GET_ITEM(ITEM_ARROW_LIGHT, OBJECT_GI_M_ARROW, GID_ARROW_LIGHT, 0x72, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_ARROW_LIGHT),
|
GET_ITEM(ITEM_ARROW_LIGHT, OBJECT_GI_M_ARROW, GID_ARROW_LIGHT, 0x72, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_ARROW_LIGHT),
|
||||||
GET_ITEM(ITEM_SKULL_TOKEN, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, 0xB4, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SKULLTULA_TOKEN, MOD_NONE, GI_SKULL_TOKEN),
|
GET_ITEM(ITEM_SKULL_TOKEN, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, 0xB4, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_SKULL_TOKEN, MOD_NONE, GI_SKULL_TOKEN),
|
||||||
GET_ITEM(ITEM_DINS_FIRE, OBJECT_GI_GODDESS, GID_DINS_FIRE, 0xAD, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_DINS_FIRE),
|
GET_ITEM(ITEM_DINS_FIRE, OBJECT_GI_GODDESS, GID_DINS_FIRE, 0xAD, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_DINS_FIRE),
|
||||||
GET_ITEM(ITEM_FARORES_WIND, OBJECT_GI_GODDESS, GID_FARORES_WIND, 0xAE, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_FARORES_WIND),
|
GET_ITEM(ITEM_FARORES_WIND, OBJECT_GI_GODDESS, GID_FARORES_WIND, 0xAE, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_FARORES_WIND),
|
||||||
GET_ITEM(ITEM_NAYRUS_LOVE, OBJECT_GI_GODDESS, GID_NAYRUS_LOVE, 0xAF, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_NAYRUS_LOVE),
|
GET_ITEM(ITEM_NAYRUS_LOVE, OBJECT_GI_GODDESS, GID_NAYRUS_LOVE, 0xAF, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, GI_NAYRUS_LOVE),
|
||||||
|
@ -2285,7 +2283,7 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (textId == TEXT_ITEM_KEY_SMALL) {
|
} else if (textId == TEXT_ITEM_KEY_SMALL) {
|
||||||
if (player->getItemEntry.getItemId == RG_GERUDO_FORTRESS_SMALL_KEY) {
|
if (player->getItemEntry.getItemId == RG_HIDEOUT_SMALL_KEY) {
|
||||||
if (Randomizer_GetSettingValue(RSK_GERUDO_KEYS) != RO_GERUDO_KEYS_VANILLA) {
|
if (Randomizer_GetSettingValue(RSK_GERUDO_KEYS) != RO_GERUDO_KEYS_VANILLA) {
|
||||||
messageEntry = Randomizer_GetCustomGetItemMessage(player);
|
messageEntry = Randomizer_GetCustomGetItemMessage(player);
|
||||||
}
|
}
|
||||||
|
|
|
@ -337,8 +337,8 @@ void SaveManager::SaveRandomizer(SaveContext* saveContext, int sectionID, bool f
|
||||||
|
|
||||||
std::vector<RandomizerGet> items = hint->GetHintedItems();
|
std::vector<RandomizerGet> items = hint->GetHintedItems();
|
||||||
SaveManager::Instance->SaveArray("items", items.size(), [&](size_t i) {
|
SaveManager::Instance->SaveArray("items", items.size(), [&](size_t i) {
|
||||||
SaveManager::Instance->SaveData("",
|
SaveManager::Instance->SaveData(
|
||||||
Rando::StaticData::GetItemTable()[items[i]].GetName().GetEnglish());
|
"", Rando::StaticData::GetItemTable()[items[i]].GetName().GetEnglish(MF_RAW));
|
||||||
});
|
});
|
||||||
|
|
||||||
std::vector<uint8_t> itemNamesChosen = hint->GetItemNamesChosen();
|
std::vector<uint8_t> itemNamesChosen = hint->GetItemNamesChosen();
|
||||||
|
|
|
@ -611,7 +611,7 @@ void EnBox_UpdateSizeAndTexture(EnBox* this, PlayState* play) {
|
||||||
switch (getItemCategory) {
|
switch (getItemCategory) {
|
||||||
case ITEM_CATEGORY_JUNK:
|
case ITEM_CATEGORY_JUNK:
|
||||||
case ITEM_CATEGORY_SMALL_KEY:
|
case ITEM_CATEGORY_SMALL_KEY:
|
||||||
case ITEM_CATEGORY_SKULLTULA_TOKEN:
|
case ITEM_CATEGORY_SKULL_TOKEN:
|
||||||
Actor_SetScale(&this->dyna.actor, 0.005f);
|
Actor_SetScale(&this->dyna.actor, 0.005f);
|
||||||
Actor_SetFocus(&this->dyna.actor, 20.0f);
|
Actor_SetFocus(&this->dyna.actor, 20.0f);
|
||||||
break;
|
break;
|
||||||
|
@ -643,7 +643,7 @@ void EnBox_UpdateSizeAndTexture(EnBox* this, PlayState* play) {
|
||||||
this->boxBodyDL = gGoldTreasureChestChestFrontDL;
|
this->boxBodyDL = gGoldTreasureChestChestFrontDL;
|
||||||
this->boxLidDL = gGoldTreasureChestChestSideAndLidDL;
|
this->boxLidDL = gGoldTreasureChestChestSideAndLidDL;
|
||||||
break;
|
break;
|
||||||
case ITEM_CATEGORY_SKULLTULA_TOKEN:
|
case ITEM_CATEGORY_SKULL_TOKEN:
|
||||||
this->boxBodyDL = gSkullTreasureChestChestFrontDL;
|
this->boxBodyDL = gSkullTreasureChestChestFrontDL;
|
||||||
this->boxLidDL = gSkullTreasureChestChestSideAndLidDL;
|
this->boxLidDL = gSkullTreasureChestChestSideAndLidDL;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue