mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-07-16 10:02:59 -07:00
apply clang-format
This commit is contained in:
parent
0a394b0356
commit
4bf78d6b9e
17 changed files with 633 additions and 682 deletions
|
@ -1129,14 +1129,12 @@ static void RandomizeDungeonItems() {
|
|||
}
|
||||
|
||||
if (ctx->GetOption(RSK_GERUDO_KEYS).Is(RO_GERUDO_KEYS_ANY_DUNGEON)) {
|
||||
auto gerudoKeys = FilterAndEraseFromPool(ItemPool, [](const auto i) {
|
||||
return i == RG_HIDEOUT_SMALL_KEY || i == RG_HIDEOUT_KEY_RING;
|
||||
});
|
||||
auto gerudoKeys = FilterAndEraseFromPool(
|
||||
ItemPool, [](const auto i) { return i == RG_HIDEOUT_SMALL_KEY || i == RG_HIDEOUT_KEY_RING; });
|
||||
AddElementsToPool(anyDungeonItems, gerudoKeys);
|
||||
} else if (ctx->GetOption(RSK_GERUDO_KEYS).Is(RO_GERUDO_KEYS_OVERWORLD)) {
|
||||
auto gerudoKeys = FilterAndEraseFromPool(ItemPool, [](const auto i) {
|
||||
return i == RG_HIDEOUT_SMALL_KEY || i == RG_HIDEOUT_KEY_RING;
|
||||
});
|
||||
auto gerudoKeys = FilterAndEraseFromPool(
|
||||
ItemPool, [](const auto i) { return i == RG_HIDEOUT_SMALL_KEY || i == RG_HIDEOUT_KEY_RING; });
|
||||
AddElementsToPool(overworldItems, gerudoKeys);
|
||||
}
|
||||
|
||||
|
|
|
@ -27,10 +27,11 @@ HintDistributionSetting::HintDistributionSetting(std::string _name, HintType _ty
|
|||
dungeonLimit = _dungeonLimit;
|
||||
}
|
||||
|
||||
//RANDOTODO rearrange once all HintText's have names
|
||||
// RANDOTODO rearrange once all HintText's have names
|
||||
HintText::HintText(CustomMessage clearText_, std::vector<CustomMessage> ambiguousText_,
|
||||
std::vector<CustomMessage> obscureText_, CustomMessage name_)
|
||||
: clearText(std::move(clearText_)), ambiguousText(std::move(ambiguousText_)), obscureText(std::move(obscureText_)), name(std::move(name_)) {
|
||||
: clearText(std::move(clearText_)), ambiguousText(std::move(ambiguousText_)), obscureText(std::move(obscureText_)),
|
||||
name(std::move(name_)) {
|
||||
}
|
||||
|
||||
const CustomMessage& HintText::GetClear() const {
|
||||
|
|
|
@ -462,28 +462,17 @@ void GenerateItemPool() {
|
|||
|
||||
// Initialize ice trap models to always major items
|
||||
ctx->possibleIceTrapModels = {
|
||||
RG_MIRROR_SHIELD,
|
||||
RG_BOOMERANG,
|
||||
RG_LENS_OF_TRUTH,
|
||||
RG_MEGATON_HAMMER,
|
||||
RG_IRON_BOOTS,
|
||||
RG_HOVER_BOOTS,
|
||||
RG_STONE_OF_AGONY,
|
||||
RG_DINS_FIRE,
|
||||
RG_FARORES_WIND,
|
||||
RG_NAYRUS_LOVE,
|
||||
RG_FIRE_ARROWS,
|
||||
RG_ICE_ARROWS,
|
||||
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_MIRROR_SHIELD, RG_BOOMERANG,
|
||||
RG_LENS_OF_TRUTH, RG_MEGATON_HAMMER,
|
||||
RG_IRON_BOOTS, RG_HOVER_BOOTS,
|
||||
RG_STONE_OF_AGONY, RG_DINS_FIRE,
|
||||
RG_FARORES_WIND, RG_NAYRUS_LOVE,
|
||||
RG_FIRE_ARROWS, RG_ICE_ARROWS,
|
||||
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,
|
||||
};
|
||||
// Check song shuffle and dungeon reward shuffle just for ice traps
|
||||
|
|
|
@ -74,7 +74,8 @@ static void WriteLocation(std::string sphere, const RandomizerCheck locationKey,
|
|||
Rando::Location* location = Rando::StaticData::GetLocation(locationKey);
|
||||
Rando::ItemLocation* itemLocation = Rando::Context::GetInstance()->GetItemLocation(locationKey);
|
||||
|
||||
jsonData["playthrough"][sphere][location->GetName()] = itemLocation->GetPlacedItemName().GetForCurrentLanguage(MF_RAW);
|
||||
jsonData["playthrough"][sphere][location->GetName()] =
|
||||
itemLocation->GetPlacedItemName().GetForCurrentLanguage(MF_RAW);
|
||||
}
|
||||
|
||||
// Writes a shuffled entrance to the specified node
|
||||
|
@ -255,43 +256,43 @@ static void WriteAllLocations() {
|
|||
for (const RandomizerCheck key : ctx->allLocations) {
|
||||
Rando::ItemLocation* location = ctx->GetItemLocation(key);
|
||||
std::string placedItemName = location->GetPlacedItemName().GetForCurrentLanguage(MF_RAW);
|
||||
std::string locName = Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName();
|
||||
|
||||
// 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
|
||||
if (!location->HasCustomPrice() && location->GetPlacedRandomizerGet() != RG_ICE_TRAP) {
|
||||
|
||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()] =
|
||||
placedItemName;
|
||||
jsonData["locations"][locName] = placedItemName;
|
||||
continue;
|
||||
}
|
||||
|
||||
// We're dealing with a complex item, build out the json object for it
|
||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]["item"] =
|
||||
placedItemName;
|
||||
jsonData["locations"][locName]["item"] = placedItemName;
|
||||
|
||||
if (location->HasCustomPrice()) {
|
||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]["price"] =
|
||||
location->GetPrice();
|
||||
jsonData["locations"][locName]["price"] = location->GetPrice();
|
||||
}
|
||||
if (location->IsAHintAccessible()) {
|
||||
hintedLocations.emplace(Rando::StaticData::GetLocation(key)->GetHintKey(), location);
|
||||
}
|
||||
|
||||
if (location->GetPlacedRandomizerGet() == RG_ICE_TRAP) {
|
||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]["model"] =
|
||||
Rando::StaticData::RetrieveItem(ctx->overrides[location->GetRandomizerCheck()].LooksLike()).GetName().GetForCurrentLanguage(MF_RAW);
|
||||
switch (gSaveContext.language) {
|
||||
case 0:
|
||||
default:
|
||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]["trickName"] =
|
||||
ctx->overrides[location->GetRandomizerCheck()].GetTrickName().english;
|
||||
break;
|
||||
case 2:
|
||||
jsonData["locations"][Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName()]["trickName"] =
|
||||
ctx->overrides[location->GetRandomizerCheck()].GetTrickName().french;
|
||||
break;
|
||||
}
|
||||
}
|
||||
jsonData["locations"][locName]["model"] =
|
||||
Rando::StaticData::RetrieveItem(ctx->overrides[location->GetRandomizerCheck()].LooksLike())
|
||||
.GetName()
|
||||
.GetForCurrentLanguage(MF_RAW);
|
||||
switch (gSaveContext.language) {
|
||||
case 0:
|
||||
default:
|
||||
jsonData["locations"][locName]["trickName"] =
|
||||
ctx->overrides[location->GetRandomizerCheck()].GetTrickName().english;
|
||||
break;
|
||||
case 2:
|
||||
jsonData["locations"][locName]["trickName"] =
|
||||
ctx->overrides[location->GetRandomizerCheck()].GetTrickName().french;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
std::unordered_map<RandomizerGet, std::string> itemImageMap = {
|
||||
{ RG_NONE, "ITEM_SOLD_OUT" },
|
||||
{ RG_KOKIRI_SWORD, "ITEM_SWORD_KOKIRI" },
|
||||
{ RG_GIANTS_KNIFE, "ITEM_SWORD_KNIFE" },
|
||||
{ RG_BIGGORON_SWORD, "ITEM_SWORD_BGS" },
|
||||
{ RG_DEKU_SHIELD, "ITEM_SHIELD_DEKU" },
|
||||
{ RG_HYLIAN_SHIELD, "ITEM_SHIELD_HYLIAN" },
|
||||
{ RG_MIRROR_SHIELD, "ITEM_SHIELD_MIRROR" },
|
||||
{ RG_GORON_TUNIC, "ITEM_TUNIC_GORON" },
|
||||
{ RG_ZORA_TUNIC, "ITEM_TUNIC_ZORA" },
|
||||
{ RG_IRON_BOOTS, "ITEM_BOOTS_IRON" },
|
||||
{ RG_HOVER_BOOTS, "ITEM_BOOTS_HOVER" },
|
||||
{ RG_BOOMERANG, "ITEM_BOOMERANG" },
|
||||
{ RG_LENS_OF_TRUTH, "ITEM_LENS" },
|
||||
{ RG_MEGATON_HAMMER, "ITEM_HAMMER" },
|
||||
{ RG_STONE_OF_AGONY, "ITEM_STONE_OF_AGONY" },
|
||||
{ RG_DINS_FIRE, "ITEM_DINS_FIRE" },
|
||||
{ RG_FARORES_WIND, "ITEM_FARORES_WIND" },
|
||||
{ RG_NAYRUS_LOVE, "ITEM_NAYRUS_LOVE" },
|
||||
{ RG_FIRE_ARROWS, "ITEM_ARROW_FIRE" },
|
||||
{ RG_ICE_ARROWS, "ITEM_ARROW_ICE" },
|
||||
{ RG_LIGHT_ARROWS, "ITEM_ARROW_LIGHT" },
|
||||
{ RG_GERUDO_MEMBERSHIP_CARD, "ITEM_GERUDO_CARD" },
|
||||
{ RG_MAGIC_BEAN, "ITEM_BEAN" },
|
||||
{ RG_MAGIC_BEAN_PACK, "ITEM_BEAN" },
|
||||
{ RG_DOUBLE_DEFENSE, "ITEM_HEART_CONTAINER" },
|
||||
{ RG_WEIRD_EGG, "ITEM_WEIRD_EGG" },
|
||||
{ RG_ZELDAS_LETTER, "ITEM_LETTER_ZELDA" },
|
||||
{ RG_POCKET_EGG, "ITEM_POCKET_EGG" },
|
||||
{ RG_COJIRO, "ITEM_COJIRO" },
|
||||
{ RG_ODD_MUSHROOM, "ITEM_ODD_MUSHROOM" },
|
||||
{ RG_ODD_POTION, "ITEM_ODD_POTION" },
|
||||
{ RG_POACHERS_SAW, "ITEM_SAW" },
|
||||
{ RG_BROKEN_SWORD, "ITEM_SWORD_BROKEN" },
|
||||
{ RG_PRESCRIPTION, "ITEM_PRESCRIPTION" },
|
||||
{ RG_EYEBALL_FROG, "ITEM_FROG" },
|
||||
{ RG_EYEDROPS, "ITEM_EYEDROPS" },
|
||||
{ RG_CLAIM_CHECK, "ITEM_CLAIM_CHECK" },
|
||||
{ RG_GOLD_SKULLTULA_TOKEN, "ITEM_SKULL_TOKEN" },
|
||||
{ RG_PROGRESSIVE_HOOKSHOT, "ITEM_HOOKSHOT" },
|
||||
{ RG_PROGRESSIVE_STRENGTH, "ITEM_BRACELET" },
|
||||
{ RG_PROGRESSIVE_BOMB_BAG, "ITEM_BOMB_BAG_30" },
|
||||
{ RG_PROGRESSIVE_BOW, "ITEM_QUIVER_30" },
|
||||
{ RG_PROGRESSIVE_SLINGSHOT, "ITEM_SLINGSHOT" },
|
||||
{ RG_PROGRESSIVE_WALLET, "ITEM_WALLET_ADULT" },
|
||||
{ RG_PROGRESSIVE_SCALE, "ITEM_SCALE_SILVER" },
|
||||
{ RG_PROGRESSIVE_NUT_BAG, "ITEM_NUT" },
|
||||
{ RG_PROGRESSIVE_STICK_BAG, "ITEM_STICK" },
|
||||
{ RG_PROGRESSIVE_BOMBCHUS, "ITEM_BOMBCHU" },
|
||||
{ RG_PROGRESSIVE_MAGIC, "ITEM_MAGIC_SMALL" },
|
||||
{ RG_MAGIC_SINGLE, "ITEM_MAGIC_SMALL" },
|
||||
{ RG_MAGIC_DOUBLE, "ITEM_MAGIC_LARGE" },
|
||||
{ RG_PROGRESSIVE_OCARINA, "ITEM_OCARINA_FAIRY" },
|
||||
{ RG_PROGRESSIVE_GORONSWORD, "ITEM_SWORD_BGS" },
|
||||
{ RG_EMPTY_BOTTLE, "ITEM_BOTTLE" },
|
||||
{ RG_BOTTLE_WITH_MILK, "ITEM_MILK_BOTTLE" },
|
||||
{ RG_BOTTLE_WITH_RED_POTION, "ITEM_POTION_RED" },
|
||||
{ RG_BOTTLE_WITH_GREEN_POTION, "ITEM_POTION_GREEN" },
|
||||
{ RG_BOTTLE_WITH_BLUE_POTION, "ITEM_POTION_BLUE" },
|
||||
{ RG_BOTTLE_WITH_FAIRY, "ITEM_FAIRY" },
|
||||
{ RG_BOTTLE_WITH_FISH, "ITEM_FISH" },
|
||||
{ RG_BOTTLE_WITH_BLUE_FIRE, "ITEM_BLUE_FIRE" },
|
||||
{ RG_BOTTLE_WITH_BUGS, "ITEM_BUG" },
|
||||
{ RG_BOTTLE_WITH_POE, "ITEM_POE" },
|
||||
{ RG_RUTOS_LETTER, "ITEM_LETTER_RUTO" },
|
||||
{ RG_BOTTLE_WITH_BIG_POE, "ITEM_BIG_POE" },
|
||||
{ RG_ZELDAS_LULLABY, "ITEM_SONG_LULLABY" },
|
||||
{ RG_EPONAS_SONG, "ITEM_SONG_EPONA" },
|
||||
{ RG_SARIAS_SONG, "ITEM_SONG_SARIA" },
|
||||
{ RG_SUNS_SONG, "ITEM_SONG_SUN" },
|
||||
{ RG_SONG_OF_TIME, "ITEM_SONG_TIME" },
|
||||
{ RG_SONG_OF_STORMS, "ITEM_SONG_STORMS" },
|
||||
{ RG_MINUET_OF_FOREST, "ITEM_SONG_MINUET" },
|
||||
{ RG_BOLERO_OF_FIRE, "ITEM_SONG_BOLERO" },
|
||||
{ RG_SERENADE_OF_WATER, "ITEM_SONG_SERENADE" },
|
||||
{ RG_REQUIEM_OF_SPIRIT, "ITEM_SONG_REQUIEM" },
|
||||
{ RG_NOCTURNE_OF_SHADOW, "ITEM_SONG_NOCTURNE" },
|
||||
{ RG_PRELUDE_OF_LIGHT, "ITEM_SONG_PRELUDE" },
|
||||
{ RG_DEKU_TREE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_DODONGOS_CAVERN_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_JABU_JABUS_BELLY_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_FOREST_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_FIRE_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_WATER_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_SPIRIT_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_SHADOW_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_BOTW_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_ICE_CAVERN_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_DEKU_TREE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_DODONGOS_CAVERN_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_JABU_JABUS_BELLY_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_FOREST_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_FIRE_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_WATER_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_SPIRIT_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_SHADOW_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_BOTW_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_ICE_CAVERN_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_FOREST_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_FIRE_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_WATER_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_SPIRIT_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_SHADOW_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_GANONS_CASTLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_FOREST_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_FIRE_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_WATER_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_SPIRIT_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_SHADOW_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_BOTW_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_GTG_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_HIDEOUT_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_GANONS_CASTLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_TCG_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_KOKIRI_EMERALD, "ITEM_KOKIRI_EMERALD" },
|
||||
{ RG_GORON_RUBY, "ITEM_GORON_RUBY" },
|
||||
{ RG_ZORA_SAPPHIRE, "ITEM_ZORA_SAPPHIRE" },
|
||||
{ RG_FOREST_MEDALLION, "ITEM_MEDALLION_FOREST" },
|
||||
{ RG_FIRE_MEDALLION, "ITEM_MEDALLION_FIRE" },
|
||||
{ RG_WATER_MEDALLION, "ITEM_MEDALLION_WATER" },
|
||||
{ RG_SPIRIT_MEDALLION, "ITEM_MEDALLION_SPIRIT" },
|
||||
{ RG_SHADOW_MEDALLION, "ITEM_MEDALLION_SHADOW" },
|
||||
{ RG_LIGHT_MEDALLION, "ITEM_MEDALLION_LIGHT" },
|
||||
{ RG_RECOVERY_HEART, "ITEM_HEART_GRAYSCALE" },
|
||||
{ RG_GREEN_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_GREG_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_BLUE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_RED_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_PURPLE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_HUGE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_LOSER_GREEN_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_PIECE_OF_HEART, "ITEM_HEART_PIECE" },
|
||||
{ RG_HEART_CONTAINER, "ITEM_HEART_CONTAINER" },
|
||||
{ RG_ICE_TRAP, "ITEM_ICE_TRAP" },
|
||||
{ RG_MILK, "ITEM_MILK_BOTTLE"},
|
||||
{ RG_BOMBS_5, "ITEM_BOMB" },
|
||||
{ RG_BOMBS_10, "ITEM_BOMB" },
|
||||
{ RG_BOMBS_20, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_525, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_535, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_10, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_20, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_30, "ITEM_BOMB" },
|
||||
{ RG_DEKU_NUTS_5, "ITEM_NUT" },
|
||||
{ RG_DEKU_NUTS_10, "ITEM_NUT" },
|
||||
{ RG_BUY_DEKU_NUTS_5, "ITEM_NUT" },
|
||||
{ RG_BUY_DEKU_NUTS_10, "ITEM_NUT" },
|
||||
{ RG_BOMBCHU_5, "ITEM_BOMBCHU" },
|
||||
{ RG_BOMBCHU_10, "ITEM_BOMBCHU" },
|
||||
{ RG_BOMBCHU_20, "ITEM_BOMBCHU" },
|
||||
{ RG_BUY_BOMBCHUS_20, "ITEM_BOMBCHU" },
|
||||
{ RG_ARROWS_5, "ITEM_ARROWS_SMALL" },
|
||||
{ RG_BUY_ARROWS_10, "ITEM_ARROWS_SMALL" },
|
||||
{ RG_ARROWS_10, "ITEM_ARROWS_MEDIUM" },
|
||||
{ RG_BUY_ARROWS_30, "ITEM_ARROWS_MEDIUM" },
|
||||
{ RG_ARROWS_30, "ITEM_ARROWS_LARGE" },
|
||||
{ RG_BUY_ARROWS_50, "ITEM_ARROWS_LARGE" },
|
||||
{ RG_TCG_PIECE_OF_HEART, "ITEM_HEART_PIECE" },
|
||||
{ RG_DEKU_SEEDS_30, "ITEM_SEEDS" },
|
||||
{ RG_BUY_DEKU_SEEDS_30, "ITEM_SEEDS" },
|
||||
{ RG_BUY_HEART, "ITEM_HEART_GRAYSCALE" },
|
||||
{ RG_FISHING_POLE, "ITEM_FISHING_POLE" },
|
||||
{ RG_SOLD_OUT, "ITEM_SOLD_OUT" },
|
||||
{ RG_TRIFORCE_PIECE, "TRIFORCE_PIECE" },
|
||||
{ RG_SKELETON_KEY, "ITEM_KEY_SMALL" }
|
||||
};
|
||||
std::unordered_map<RandomizerGet, std::string> itemImageMap = { { RG_NONE, "ITEM_SOLD_OUT" },
|
||||
{ RG_KOKIRI_SWORD, "ITEM_SWORD_KOKIRI" },
|
||||
{ RG_GIANTS_KNIFE, "ITEM_SWORD_KNIFE" },
|
||||
{ RG_BIGGORON_SWORD, "ITEM_SWORD_BGS" },
|
||||
{ RG_DEKU_SHIELD, "ITEM_SHIELD_DEKU" },
|
||||
{ RG_HYLIAN_SHIELD, "ITEM_SHIELD_HYLIAN" },
|
||||
{ RG_MIRROR_SHIELD, "ITEM_SHIELD_MIRROR" },
|
||||
{ RG_GORON_TUNIC, "ITEM_TUNIC_GORON" },
|
||||
{ RG_ZORA_TUNIC, "ITEM_TUNIC_ZORA" },
|
||||
{ RG_IRON_BOOTS, "ITEM_BOOTS_IRON" },
|
||||
{ RG_HOVER_BOOTS, "ITEM_BOOTS_HOVER" },
|
||||
{ RG_BOOMERANG, "ITEM_BOOMERANG" },
|
||||
{ RG_LENS_OF_TRUTH, "ITEM_LENS" },
|
||||
{ RG_MEGATON_HAMMER, "ITEM_HAMMER" },
|
||||
{ RG_STONE_OF_AGONY, "ITEM_STONE_OF_AGONY" },
|
||||
{ RG_DINS_FIRE, "ITEM_DINS_FIRE" },
|
||||
{ RG_FARORES_WIND, "ITEM_FARORES_WIND" },
|
||||
{ RG_NAYRUS_LOVE, "ITEM_NAYRUS_LOVE" },
|
||||
{ RG_FIRE_ARROWS, "ITEM_ARROW_FIRE" },
|
||||
{ RG_ICE_ARROWS, "ITEM_ARROW_ICE" },
|
||||
{ RG_LIGHT_ARROWS, "ITEM_ARROW_LIGHT" },
|
||||
{ RG_GERUDO_MEMBERSHIP_CARD, "ITEM_GERUDO_CARD" },
|
||||
{ RG_MAGIC_BEAN, "ITEM_BEAN" },
|
||||
{ RG_MAGIC_BEAN_PACK, "ITEM_BEAN" },
|
||||
{ RG_DOUBLE_DEFENSE, "ITEM_HEART_CONTAINER" },
|
||||
{ RG_WEIRD_EGG, "ITEM_WEIRD_EGG" },
|
||||
{ RG_ZELDAS_LETTER, "ITEM_LETTER_ZELDA" },
|
||||
{ RG_POCKET_EGG, "ITEM_POCKET_EGG" },
|
||||
{ RG_COJIRO, "ITEM_COJIRO" },
|
||||
{ RG_ODD_MUSHROOM, "ITEM_ODD_MUSHROOM" },
|
||||
{ RG_ODD_POTION, "ITEM_ODD_POTION" },
|
||||
{ RG_POACHERS_SAW, "ITEM_SAW" },
|
||||
{ RG_BROKEN_SWORD, "ITEM_SWORD_BROKEN" },
|
||||
{ RG_PRESCRIPTION, "ITEM_PRESCRIPTION" },
|
||||
{ RG_EYEBALL_FROG, "ITEM_FROG" },
|
||||
{ RG_EYEDROPS, "ITEM_EYEDROPS" },
|
||||
{ RG_CLAIM_CHECK, "ITEM_CLAIM_CHECK" },
|
||||
{ RG_GOLD_SKULLTULA_TOKEN, "ITEM_SKULL_TOKEN" },
|
||||
{ RG_PROGRESSIVE_HOOKSHOT, "ITEM_HOOKSHOT" },
|
||||
{ RG_PROGRESSIVE_STRENGTH, "ITEM_BRACELET" },
|
||||
{ RG_PROGRESSIVE_BOMB_BAG, "ITEM_BOMB_BAG_30" },
|
||||
{ RG_PROGRESSIVE_BOW, "ITEM_QUIVER_30" },
|
||||
{ RG_PROGRESSIVE_SLINGSHOT, "ITEM_SLINGSHOT" },
|
||||
{ RG_PROGRESSIVE_WALLET, "ITEM_WALLET_ADULT" },
|
||||
{ RG_PROGRESSIVE_SCALE, "ITEM_SCALE_SILVER" },
|
||||
{ RG_PROGRESSIVE_NUT_BAG, "ITEM_NUT" },
|
||||
{ RG_PROGRESSIVE_STICK_BAG, "ITEM_STICK" },
|
||||
{ RG_PROGRESSIVE_BOMBCHUS, "ITEM_BOMBCHU" },
|
||||
{ RG_PROGRESSIVE_MAGIC, "ITEM_MAGIC_SMALL" },
|
||||
{ RG_MAGIC_SINGLE, "ITEM_MAGIC_SMALL" },
|
||||
{ RG_MAGIC_DOUBLE, "ITEM_MAGIC_LARGE" },
|
||||
{ RG_PROGRESSIVE_OCARINA, "ITEM_OCARINA_FAIRY" },
|
||||
{ RG_PROGRESSIVE_GORONSWORD, "ITEM_SWORD_BGS" },
|
||||
{ RG_EMPTY_BOTTLE, "ITEM_BOTTLE" },
|
||||
{ RG_BOTTLE_WITH_MILK, "ITEM_MILK_BOTTLE" },
|
||||
{ RG_BOTTLE_WITH_RED_POTION, "ITEM_POTION_RED" },
|
||||
{ RG_BOTTLE_WITH_GREEN_POTION, "ITEM_POTION_GREEN" },
|
||||
{ RG_BOTTLE_WITH_BLUE_POTION, "ITEM_POTION_BLUE" },
|
||||
{ RG_BOTTLE_WITH_FAIRY, "ITEM_FAIRY" },
|
||||
{ RG_BOTTLE_WITH_FISH, "ITEM_FISH" },
|
||||
{ RG_BOTTLE_WITH_BLUE_FIRE, "ITEM_BLUE_FIRE" },
|
||||
{ RG_BOTTLE_WITH_BUGS, "ITEM_BUG" },
|
||||
{ RG_BOTTLE_WITH_POE, "ITEM_POE" },
|
||||
{ RG_RUTOS_LETTER, "ITEM_LETTER_RUTO" },
|
||||
{ RG_BOTTLE_WITH_BIG_POE, "ITEM_BIG_POE" },
|
||||
{ RG_ZELDAS_LULLABY, "ITEM_SONG_LULLABY" },
|
||||
{ RG_EPONAS_SONG, "ITEM_SONG_EPONA" },
|
||||
{ RG_SARIAS_SONG, "ITEM_SONG_SARIA" },
|
||||
{ RG_SUNS_SONG, "ITEM_SONG_SUN" },
|
||||
{ RG_SONG_OF_TIME, "ITEM_SONG_TIME" },
|
||||
{ RG_SONG_OF_STORMS, "ITEM_SONG_STORMS" },
|
||||
{ RG_MINUET_OF_FOREST, "ITEM_SONG_MINUET" },
|
||||
{ RG_BOLERO_OF_FIRE, "ITEM_SONG_BOLERO" },
|
||||
{ RG_SERENADE_OF_WATER, "ITEM_SONG_SERENADE" },
|
||||
{ RG_REQUIEM_OF_SPIRIT, "ITEM_SONG_REQUIEM" },
|
||||
{ RG_NOCTURNE_OF_SHADOW, "ITEM_SONG_NOCTURNE" },
|
||||
{ RG_PRELUDE_OF_LIGHT, "ITEM_SONG_PRELUDE" },
|
||||
{ RG_DEKU_TREE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_DODONGOS_CAVERN_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_JABU_JABUS_BELLY_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_FOREST_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_FIRE_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_WATER_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_SPIRIT_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_SHADOW_TEMPLE_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_BOTW_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_ICE_CAVERN_MAP, "ITEM_DUNGEON_MAP" },
|
||||
{ RG_DEKU_TREE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_DODONGOS_CAVERN_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_JABU_JABUS_BELLY_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_FOREST_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_FIRE_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_WATER_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_SPIRIT_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_SHADOW_TEMPLE_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_BOTW_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_ICE_CAVERN_COMPASS, "ITEM_COMPASS" },
|
||||
{ RG_FOREST_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_FIRE_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_WATER_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_SPIRIT_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_SHADOW_TEMPLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_GANONS_CASTLE_BOSS_KEY, "ITEM_KEY_BOSS" },
|
||||
{ RG_FOREST_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_FIRE_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_WATER_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_SPIRIT_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_SHADOW_TEMPLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_BOTW_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_GTG_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_HIDEOUT_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_GANONS_CASTLE_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_TCG_SMALL_KEY, "ITEM_KEY_SMALL" },
|
||||
{ RG_KOKIRI_EMERALD, "ITEM_KOKIRI_EMERALD" },
|
||||
{ RG_GORON_RUBY, "ITEM_GORON_RUBY" },
|
||||
{ RG_ZORA_SAPPHIRE, "ITEM_ZORA_SAPPHIRE" },
|
||||
{ RG_FOREST_MEDALLION, "ITEM_MEDALLION_FOREST" },
|
||||
{ RG_FIRE_MEDALLION, "ITEM_MEDALLION_FIRE" },
|
||||
{ RG_WATER_MEDALLION, "ITEM_MEDALLION_WATER" },
|
||||
{ RG_SPIRIT_MEDALLION, "ITEM_MEDALLION_SPIRIT" },
|
||||
{ RG_SHADOW_MEDALLION, "ITEM_MEDALLION_SHADOW" },
|
||||
{ RG_LIGHT_MEDALLION, "ITEM_MEDALLION_LIGHT" },
|
||||
{ RG_RECOVERY_HEART, "ITEM_HEART_GRAYSCALE" },
|
||||
{ RG_GREEN_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_GREG_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_BLUE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_RED_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_PURPLE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_HUGE_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_LOSER_GREEN_RUPEE, "ITEM_RUPEE_GRAYSCALE" },
|
||||
{ RG_PIECE_OF_HEART, "ITEM_HEART_PIECE" },
|
||||
{ RG_HEART_CONTAINER, "ITEM_HEART_CONTAINER" },
|
||||
{ RG_ICE_TRAP, "ITEM_ICE_TRAP" },
|
||||
{ RG_MILK, "ITEM_MILK_BOTTLE" },
|
||||
{ RG_BOMBS_5, "ITEM_BOMB" },
|
||||
{ RG_BOMBS_10, "ITEM_BOMB" },
|
||||
{ RG_BOMBS_20, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_525, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_535, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_10, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_20, "ITEM_BOMB" },
|
||||
{ RG_BUY_BOMBS_30, "ITEM_BOMB" },
|
||||
{ RG_DEKU_NUTS_5, "ITEM_NUT" },
|
||||
{ RG_DEKU_NUTS_10, "ITEM_NUT" },
|
||||
{ RG_BUY_DEKU_NUTS_5, "ITEM_NUT" },
|
||||
{ RG_BUY_DEKU_NUTS_10, "ITEM_NUT" },
|
||||
{ RG_BOMBCHU_5, "ITEM_BOMBCHU" },
|
||||
{ RG_BOMBCHU_10, "ITEM_BOMBCHU" },
|
||||
{ RG_BOMBCHU_20, "ITEM_BOMBCHU" },
|
||||
{ RG_BUY_BOMBCHUS_20, "ITEM_BOMBCHU" },
|
||||
{ RG_ARROWS_5, "ITEM_ARROWS_SMALL" },
|
||||
{ RG_BUY_ARROWS_10, "ITEM_ARROWS_SMALL" },
|
||||
{ RG_ARROWS_10, "ITEM_ARROWS_MEDIUM" },
|
||||
{ RG_BUY_ARROWS_30, "ITEM_ARROWS_MEDIUM" },
|
||||
{ RG_ARROWS_30, "ITEM_ARROWS_LARGE" },
|
||||
{ RG_BUY_ARROWS_50, "ITEM_ARROWS_LARGE" },
|
||||
{ RG_TCG_PIECE_OF_HEART, "ITEM_HEART_PIECE" },
|
||||
{ RG_DEKU_SEEDS_30, "ITEM_SEEDS" },
|
||||
{ RG_BUY_DEKU_SEEDS_30, "ITEM_SEEDS" },
|
||||
{ RG_BUY_HEART, "ITEM_HEART_GRAYSCALE" },
|
||||
{ RG_FISHING_POLE, "ITEM_FISHING_POLE" },
|
||||
{ RG_SOLD_OUT, "ITEM_SOLD_OUT" },
|
||||
{ RG_TRIFORCE_PIECE, "TRIFORCE_PIECE" },
|
||||
{ RG_SKELETON_KEY, "ITEM_KEY_SMALL" } };
|
||||
|
||||
Rando::Item plandomizerRandoRetrieveItem(RandomizerGet randoGetItem) {
|
||||
auto randoGetItemEntry = Rando::StaticData::RetrieveItem(randoGetItem);
|
||||
|
@ -530,15 +528,19 @@ void PlandomizerSaveSpoilerLog() {
|
|||
|
||||
for (auto& import : plandoLogData) {
|
||||
if (import.checkRewardItem.GetRandomizerGet() == RG_ICE_TRAP) {
|
||||
spoilerSave["locations"][import.checkName] = { { "item", import.checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW) },
|
||||
{ "model", import.iceTrapModel.GetName().GetForCurrentLanguage(MF_RAW) },
|
||||
{ "trickName", import.iceTrapName.c_str() } };
|
||||
spoilerSave["locations"][import.checkName] = {
|
||||
{ "item", import.checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW) },
|
||||
{ "model", import.iceTrapModel.GetName().GetForCurrentLanguage(MF_RAW) },
|
||||
{ "trickName", import.iceTrapName.c_str() }
|
||||
};
|
||||
if (import.shopPrice > -1) {
|
||||
spoilerSave["locations"][import.checkName]["price"] = import.shopPrice;
|
||||
}
|
||||
} else if (import.shopPrice > -1) {
|
||||
spoilerSave["locations"][import.checkName] = { { "item", import.checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW) },
|
||||
{ "price", import.shopPrice } };
|
||||
spoilerSave["locations"][import.checkName] = {
|
||||
{ "item", import.checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW) },
|
||||
{ "price", import.shopPrice }
|
||||
};
|
||||
} else {
|
||||
spoilerSave["locations"][import.checkName] = import.checkRewardItem.GetName().GetForCurrentLanguage(MF_RAW);
|
||||
}
|
||||
|
@ -622,8 +624,7 @@ void PlandomizerLoadSpoilerLog(std::string logFile) {
|
|||
checkObject.checkRewardItem =
|
||||
plandomizerRandoRetrieveItem(Rando::StaticData::itemNameToEnum[value.get<std::string>()]);
|
||||
checkObject.shopPrice = -1;
|
||||
if (checkObject.shopPrice == -1 &&
|
||||
checkObject.checkRewardItem.GetItemType() == ITEMTYPE_SHOP) {
|
||||
if (checkObject.shopPrice == -1 && checkObject.checkRewardItem.GetItemType() == ITEMTYPE_SHOP) {
|
||||
checkObject.shopPrice = checkObject.checkRewardItem.GetPrice();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -170,14 +170,13 @@ Dungeons::Dungeons() {
|
|||
"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);
|
||||
dungeonList[BOTTOM_OF_THE_WELL] =
|
||||
DungeonInfo("Bottom of the Well", RHT_BOTTOM_OF_THE_WELL, RG_BOTW_MAP,
|
||||
RG_BOTW_COMPASS, RG_BOTW_SMALL_KEY, RG_BOTW_KEY_RING,
|
||||
RG_NONE, RA_BOTTOM_OF_THE_WELL, 3, 2, RSK_MQ_BOTTOM_OF_THE_WELL);
|
||||
DungeonInfo("Bottom of the Well", RHT_BOTTOM_OF_THE_WELL, RG_BOTW_MAP, RG_BOTW_COMPASS, RG_BOTW_SMALL_KEY,
|
||||
RG_BOTW_KEY_RING, 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,
|
||||
RG_NONE, RG_NONE, RG_NONE, RA_ICE_CAVERN, 0, 0, RSK_MQ_ICE_CAVERN);
|
||||
dungeonList[GERUDO_TRAINING_GROUND] = DungeonInfo(
|
||||
"Gerudo Training Ground", RHT_GERUDO_TRAINING_GROUND, RG_NONE, RG_NONE, RG_GTG_SMALL_KEY,
|
||||
RG_GTG_KEY_RING, RG_NONE, RA_GERUDO_TRAINING_GROUND, 9, 3, RSK_MQ_GTG);
|
||||
dungeonList[GERUDO_TRAINING_GROUND] =
|
||||
DungeonInfo("Gerudo Training Ground", RHT_GERUDO_TRAINING_GROUND, RG_NONE, RG_NONE, RG_GTG_SMALL_KEY,
|
||||
RG_GTG_KEY_RING, RG_NONE, RA_GERUDO_TRAINING_GROUND, 9, 3, RSK_MQ_GTG);
|
||||
dungeonList[GANONS_CASTLE] =
|
||||
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);
|
||||
|
|
|
@ -276,7 +276,8 @@ const HintText Hint::GetHintText(uint8_t id) const {
|
|||
return StaticData::hintTextTable[RHT_CAN_BE_FOUND_AT];
|
||||
}
|
||||
} else {
|
||||
return HintText(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:
|
||||
return HintText(CustomMessage("ERROR: NO HINTKEY PROVIDED AND HINT TYPE HAS NO DEFAULT"));
|
||||
|
@ -411,15 +412,13 @@ oJson Hint::toJSON() {
|
|||
if (!(StaticData::staticHintInfoMap.contains(ownKey) &&
|
||||
StaticData::staticHintInfoMap[ownKey].targetItems.size() > 0)) {
|
||||
if (items.size() == 1) {
|
||||
log["item"] = StaticData::GetItemTable()[items[0]]
|
||||
.GetName()
|
||||
.GetForCurrentLanguage(MF_RAW); // RANDOTODO change to CustomMessage;
|
||||
log["item"] = StaticData::GetItemTable()[items[0]].GetName().GetForCurrentLanguage(
|
||||
MF_RAW); // RANDOTODO change to CustomMessage;
|
||||
} else if (items.size() > 1) {
|
||||
std::vector<std::string> itemStrings = {};
|
||||
for (size_t c = 0; c < items.size(); c++) {
|
||||
itemStrings.push_back(StaticData::GetItemTable()[items[c]]
|
||||
.GetName()
|
||||
.GetForCurrentLanguage(MF_RAW)); // RANDOTODO change to CustomMessage
|
||||
itemStrings.push_back(StaticData::GetItemTable()[items[c]].GetName().GetForCurrentLanguage(
|
||||
MF_RAW)); // RANDOTODO change to CustomMessage
|
||||
}
|
||||
log["items"] = itemStrings;
|
||||
}
|
||||
|
|
|
@ -1034,7 +1034,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
|||
});
|
||||
} else if (item00->itemEntry.modIndex == MOD_RANDOMIZER) {
|
||||
Notification::Emit({
|
||||
.message = "You found ",//RANDOTODO change based on language
|
||||
.message = "You found ", // RANDOTODO change based on language
|
||||
.suffix = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId)
|
||||
.GetName()
|
||||
.GetForCurrentLanguage(MF_RAW),
|
||||
|
|
|
@ -15,13 +15,12 @@ Item::Item()
|
|||
: randomizerGet(RG_NONE), type(ITEMTYPE_ITEM), getItemId(GI_NONE), advancement(false), hintKey(RHT_NONE),
|
||||
progressive(false), price(0) {
|
||||
}
|
||||
Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_,
|
||||
const bool advancement_, 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 bool progressive_, const uint16_t price_)
|
||||
: randomizerGet(randomizerGet_), type(type_), getItemId(getItemId_),
|
||||
advancement(advancement_), logicVal(logicVal_), hintKey(hintKey_), progressive(progressive_), price(price_) {
|
||||
Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_, const bool advancement_,
|
||||
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 bool progressive_, const uint16_t price_)
|
||||
: randomizerGet(randomizerGet_), type(type_), getItemId(getItemId_), advancement(advancement_), logicVal(logicVal_),
|
||||
hintKey(hintKey_), progressive(progressive_), price(price_) {
|
||||
if (modIndex_ == MOD_RANDOMIZER || getItemId > 0x7D) {
|
||||
giEntry = std::make_shared<GetItemEntry>(GetItemEntry{
|
||||
itemId_, field_, static_cast<int16_t>((chestAnimation_ != CHEST_ANIM_SHORT ? 1 : -1) * (gid_ + 1)), textId_,
|
||||
|
@ -35,27 +34,31 @@ Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_,
|
||||
const bool advancement_, 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 bool progressive_, const uint16_t price_)
|
||||
: randomizerGet(randomizerGet_), type(type_), getItemId(getItemId_),
|
||||
advancement(advancement_), logicVal(logicVal_), hintKey(hintKey_), progressive(progressive_), price(price_) {
|
||||
Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_, const bool advancement_,
|
||||
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 bool progressive_, const uint16_t price_)
|
||||
: randomizerGet(randomizerGet_), type(type_), getItemId(getItemId_), advancement(advancement_), logicVal(logicVal_),
|
||||
hintKey(hintKey_), progressive(progressive_), 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, NULL });
|
||||
}
|
||||
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_, NULL });
|
||||
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, NULL });
|
||||
} 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_, NULL });
|
||||
}
|
||||
}
|
||||
|
||||
Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_,
|
||||
const bool advancement_, LogicVal logicVal_, const RandomizerHintTextKey hintKey_, const bool progressive_,
|
||||
const uint16_t price_)
|
||||
: randomizerGet(randomizerGet_), type(type_), getItemId(getItemId_),
|
||||
advancement(advancement_), logicVal(logicVal_), hintKey(hintKey_), progressive(progressive_), price(price_) {
|
||||
Item::Item(const RandomizerGet randomizerGet_, const ItemType type_, const int16_t getItemId_, const bool advancement_,
|
||||
LogicVal logicVal_, const RandomizerHintTextKey hintKey_, const bool progressive_, const uint16_t price_)
|
||||
: randomizerGet(randomizerGet_), type(type_), getItemId(getItemId_), advancement(advancement_), logicVal(logicVal_),
|
||||
hintKey(hintKey_), progressive(progressive_), price(price_) {
|
||||
}
|
||||
|
||||
Item::~Item() = default;
|
||||
|
|
|
@ -30,16 +30,16 @@ namespace Rando {
|
|||
class Item {
|
||||
public:
|
||||
Item();
|
||||
Item(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, bool advancement_,
|
||||
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_,
|
||||
Item(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, bool advancement_, 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_,
|
||||
bool progressive_ = false, uint16_t price_ = 0);
|
||||
Item(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, bool advancement_,
|
||||
LogicVal logicVal_, RandomizerHintTextKey hintKey_, uint16_t objectId_, uint16_t gid_,
|
||||
uint16_t textId_, uint16_t field_, int16_t chestAnimation_, GetItemCategory category_, uint16_t modIndex_,
|
||||
bool progressive_ = false, uint16_t price_ = 0);
|
||||
Item(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, bool advancement_,
|
||||
LogicVal logicVal_, RandomizerHintTextKey hintKey_, bool progressive_ = false, uint16_t price_ = 0);
|
||||
Item(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, bool advancement_, LogicVal logicVal_,
|
||||
RandomizerHintTextKey hintKey_, uint16_t objectId_, uint16_t gid_, uint16_t textId_, uint16_t field_,
|
||||
int16_t chestAnimation_, GetItemCategory category_, uint16_t modIndex_, bool progressive_ = false,
|
||||
uint16_t price_ = 0);
|
||||
Item(RandomizerGet randomizerGet_, ItemType type_, int16_t getItemId_, bool advancement_, LogicVal logicVal_,
|
||||
RandomizerHintTextKey hintKey_, bool progressive_ = false, uint16_t price_ = 0);
|
||||
~Item();
|
||||
|
||||
void ApplyEffect() const;
|
||||
|
|
|
@ -406,11 +406,11 @@ void Rando::StaticData::InitItemTable() {
|
|||
// Init itemNameToEnum
|
||||
for (auto& item : itemTable) {
|
||||
std::vector<std::string> strings = item.GetName().GetAllMessages(MF_RAW);
|
||||
for (std::string string: strings){
|
||||
if (itemNameToEnum.contains(string) && string != ""){
|
||||
if (itemNameToEnum[string] != item.GetRandomizerGet()){
|
||||
for (std::string string : strings) {
|
||||
if (itemNameToEnum.contains(string) && string != "") {
|
||||
if (itemNameToEnum[string] != item.GetRandomizerGet()) {
|
||||
SPDLOG_DEBUG("\tREPEATED STRING WITH " + string + "\n\n");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
itemNameToEnum[string] = item.GetRandomizerGet();
|
||||
}
|
||||
|
|
|
@ -1460,99 +1460,99 @@ std::map<RandomizerGet, uint32_t> Logic::RandoGetToEquipFlag = {
|
|||
{ RG_IRON_BOOTS, EQUIP_FLAG_BOOTS_IRON }, { RG_HOVER_BOOTS, EQUIP_FLAG_BOOTS_HOVER }
|
||||
};
|
||||
|
||||
std::map<RandomizerGet, uint32_t> Logic::RandoGetToRandInf = {
|
||||
{ RG_ZELDAS_LETTER, RAND_INF_ZELDAS_LETTER },
|
||||
{ RG_WEIRD_EGG, RAND_INF_WEIRD_EGG },
|
||||
{ RG_GOHMA_SOUL, RAND_INF_GOHMA_SOUL },
|
||||
{ RG_KING_DODONGO_SOUL, RAND_INF_KING_DODONGO_SOUL },
|
||||
{ RG_BARINADE_SOUL, RAND_INF_BARINADE_SOUL },
|
||||
{ RG_PHANTOM_GANON_SOUL, RAND_INF_PHANTOM_GANON_SOUL },
|
||||
{ RG_VOLVAGIA_SOUL, RAND_INF_VOLVAGIA_SOUL },
|
||||
{ RG_MORPHA_SOUL, RAND_INF_MORPHA_SOUL },
|
||||
{ RG_BONGO_BONGO_SOUL, RAND_INF_BONGO_BONGO_SOUL },
|
||||
{ RG_TWINROVA_SOUL, RAND_INF_TWINROVA_SOUL },
|
||||
{ RG_GANON_SOUL, RAND_INF_GANON_SOUL },
|
||||
{ RG_OCARINA_A_BUTTON, RAND_INF_HAS_OCARINA_A },
|
||||
{ RG_OCARINA_C_UP_BUTTON, RAND_INF_HAS_OCARINA_C_UP },
|
||||
{ RG_OCARINA_C_DOWN_BUTTON, RAND_INF_HAS_OCARINA_C_DOWN },
|
||||
{ RG_OCARINA_C_LEFT_BUTTON, RAND_INF_HAS_OCARINA_C_LEFT },
|
||||
{ RG_OCARINA_C_RIGHT_BUTTON, RAND_INF_HAS_OCARINA_C_RIGHT },
|
||||
{ RG_SKELETON_KEY, RAND_INF_HAS_SKELETON_KEY },
|
||||
{ RG_GREG_RUPEE, RAND_INF_GREG_FOUND },
|
||||
{ RG_FISHING_POLE, RAND_INF_FISHING_POLE_FOUND },
|
||||
{ RG_GUARD_HOUSE_KEY, RAND_INF_GUARD_HOUSE_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_MASK_SHOP_KEY, RAND_INF_MASK_SHOP_KEY_OBTAINED },
|
||||
{ RG_MARKET_SHOOTING_KEY, RAND_INF_MARKET_SHOOTING_GALLERY_KEY_OBTAINED },
|
||||
{ RG_BOMBCHU_BOWLING_KEY, RAND_INF_BOMBCHU_BOWLING_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_RICHARDS_HOUSE_KEY, RAND_INF_RICHARDS_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_POTION_SHOP_KEY, RAND_INF_KAK_POTION_SHOP_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_SKULLTULA_HOUSE_KEY, RAND_INF_SKULLTULA_HOUSE_KEY_OBTAINED },
|
||||
{ RG_IMPAS_HOUSE_KEY, RAND_INF_IMPAS_HOUSE_KEY_OBTAINED },
|
||||
{ RG_WINDMILL_KEY, RAND_INF_WINDMILL_KEY_OBTAINED },
|
||||
{ RG_KAK_SHOOTING_KEY, RAND_INF_KAK_SHOOTING_GALLERY_KEY_OBTAINED },
|
||||
{ RG_DAMPES_HUT_KEY, RAND_INF_DAMPES_HUT_KEY_OBTAINED },
|
||||
{ RG_TALONS_HOUSE_KEY, RAND_INF_TALONS_HOUSE_KEY_OBTAINED },
|
||||
{ RG_STABLES_KEY, RAND_INF_STABLES_KEY_OBTAINED },
|
||||
{ RG_BACK_TOWER_KEY, RAND_INF_BACK_TOWER_KEY_OBTAINED },
|
||||
{ RG_HYLIA_LAB_KEY, RAND_INF_HYLIA_LAB_KEY_OBTAINED },
|
||||
{ RG_FISHING_HOLE_KEY, RAND_INF_FISHING_HOLE_KEY_OBTAINED },
|
||||
};
|
||||
std::map<RandomizerGet, uint32_t> Logic::RandoGetToRandInf = {
|
||||
{ RG_ZELDAS_LETTER, RAND_INF_ZELDAS_LETTER },
|
||||
{ RG_WEIRD_EGG, RAND_INF_WEIRD_EGG },
|
||||
{ RG_GOHMA_SOUL, RAND_INF_GOHMA_SOUL },
|
||||
{ RG_KING_DODONGO_SOUL, RAND_INF_KING_DODONGO_SOUL },
|
||||
{ RG_BARINADE_SOUL, RAND_INF_BARINADE_SOUL },
|
||||
{ RG_PHANTOM_GANON_SOUL, RAND_INF_PHANTOM_GANON_SOUL },
|
||||
{ RG_VOLVAGIA_SOUL, RAND_INF_VOLVAGIA_SOUL },
|
||||
{ RG_MORPHA_SOUL, RAND_INF_MORPHA_SOUL },
|
||||
{ RG_BONGO_BONGO_SOUL, RAND_INF_BONGO_BONGO_SOUL },
|
||||
{ RG_TWINROVA_SOUL, RAND_INF_TWINROVA_SOUL },
|
||||
{ RG_GANON_SOUL, RAND_INF_GANON_SOUL },
|
||||
{ RG_OCARINA_A_BUTTON, RAND_INF_HAS_OCARINA_A },
|
||||
{ RG_OCARINA_C_UP_BUTTON, RAND_INF_HAS_OCARINA_C_UP },
|
||||
{ RG_OCARINA_C_DOWN_BUTTON, RAND_INF_HAS_OCARINA_C_DOWN },
|
||||
{ RG_OCARINA_C_LEFT_BUTTON, RAND_INF_HAS_OCARINA_C_LEFT },
|
||||
{ RG_OCARINA_C_RIGHT_BUTTON, RAND_INF_HAS_OCARINA_C_RIGHT },
|
||||
{ RG_SKELETON_KEY, RAND_INF_HAS_SKELETON_KEY },
|
||||
{ RG_GREG_RUPEE, RAND_INF_GREG_FOUND },
|
||||
{ RG_FISHING_POLE, RAND_INF_FISHING_POLE_FOUND },
|
||||
{ RG_GUARD_HOUSE_KEY, RAND_INF_GUARD_HOUSE_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_MASK_SHOP_KEY, RAND_INF_MASK_SHOP_KEY_OBTAINED },
|
||||
{ RG_MARKET_SHOOTING_KEY, RAND_INF_MARKET_SHOOTING_GALLERY_KEY_OBTAINED },
|
||||
{ RG_BOMBCHU_BOWLING_KEY, RAND_INF_BOMBCHU_BOWLING_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_RICHARDS_HOUSE_KEY, RAND_INF_RICHARDS_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_POTION_SHOP_KEY, RAND_INF_KAK_POTION_SHOP_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_SKULLTULA_HOUSE_KEY, RAND_INF_SKULLTULA_HOUSE_KEY_OBTAINED },
|
||||
{ RG_IMPAS_HOUSE_KEY, RAND_INF_IMPAS_HOUSE_KEY_OBTAINED },
|
||||
{ RG_WINDMILL_KEY, RAND_INF_WINDMILL_KEY_OBTAINED },
|
||||
{ RG_KAK_SHOOTING_KEY, RAND_INF_KAK_SHOOTING_GALLERY_KEY_OBTAINED },
|
||||
{ RG_DAMPES_HUT_KEY, RAND_INF_DAMPES_HUT_KEY_OBTAINED },
|
||||
{ RG_TALONS_HOUSE_KEY, RAND_INF_TALONS_HOUSE_KEY_OBTAINED },
|
||||
{ RG_STABLES_KEY, RAND_INF_STABLES_KEY_OBTAINED },
|
||||
{ RG_BACK_TOWER_KEY, RAND_INF_BACK_TOWER_KEY_OBTAINED },
|
||||
{ RG_HYLIA_LAB_KEY, RAND_INF_HYLIA_LAB_KEY_OBTAINED },
|
||||
{ RG_FISHING_HOLE_KEY, RAND_INF_FISHING_HOLE_KEY_OBTAINED },
|
||||
};
|
||||
|
||||
std::map<uint32_t, uint32_t> Logic::RandoGetToDungeonScene = {
|
||||
{ RG_FOREST_TEMPLE_SMALL_KEY, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_SMALL_KEY, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_SMALL_KEY, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_SMALL_KEY, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_SMALL_KEY, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_BOTW_SMALL_KEY, SCENE_BOTTOM_OF_THE_WELL },
|
||||
{ RG_GTG_SMALL_KEY, SCENE_GERUDO_TRAINING_GROUND },
|
||||
{ RG_HIDEOUT_SMALL_KEY, SCENE_THIEVES_HIDEOUT },
|
||||
{ RG_GANONS_CASTLE_SMALL_KEY, SCENE_INSIDE_GANONS_CASTLE },
|
||||
{ RG_FOREST_TEMPLE_KEY_RING, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_KEY_RING, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_KEY_RING, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_KEY_RING, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_KEY_RING, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_BOTW_KEY_RING, SCENE_BOTTOM_OF_THE_WELL },
|
||||
{ RG_GTG_KEY_RING, SCENE_GERUDO_TRAINING_GROUND },
|
||||
{ RG_HIDEOUT_KEY_RING, SCENE_THIEVES_HIDEOUT },
|
||||
{ RG_GANONS_CASTLE_KEY_RING, SCENE_INSIDE_GANONS_CASTLE },
|
||||
{ RG_FOREST_TEMPLE_BOSS_KEY, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_BOSS_KEY, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_BOSS_KEY, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_BOSS_KEY, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_BOSS_KEY, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_GANONS_CASTLE_BOSS_KEY, SCENE_INSIDE_GANONS_CASTLE },
|
||||
{ RG_DEKU_TREE_MAP, SCENE_DEKU_TREE },
|
||||
{ RG_DODONGOS_CAVERN_MAP, SCENE_DODONGOS_CAVERN },
|
||||
{ RG_JABU_JABUS_BELLY_MAP, SCENE_JABU_JABU },
|
||||
{ RG_FOREST_TEMPLE_MAP, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_MAP, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_MAP, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_MAP, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_MAP, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_BOTW_MAP, SCENE_BOTTOM_OF_THE_WELL },
|
||||
{ RG_ICE_CAVERN_MAP, SCENE_ICE_CAVERN },
|
||||
{ RG_DEKU_TREE_COMPASS, SCENE_DEKU_TREE },
|
||||
{ RG_DODONGOS_CAVERN_COMPASS, SCENE_DODONGOS_CAVERN },
|
||||
{ RG_JABU_JABUS_BELLY_COMPASS, SCENE_JABU_JABU },
|
||||
{ RG_FOREST_TEMPLE_COMPASS, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_COMPASS, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_COMPASS, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_COMPASS, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_COMPASS, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_BOTW_COMPASS, SCENE_BOTTOM_OF_THE_WELL },
|
||||
{ RG_ICE_CAVERN_COMPASS, SCENE_ICE_CAVERN },
|
||||
{ RG_TCG_SMALL_KEY, SCENE_TREASURE_BOX_SHOP }
|
||||
};
|
||||
std::map<uint32_t, uint32_t> Logic::RandoGetToDungeonScene = {
|
||||
{ RG_FOREST_TEMPLE_SMALL_KEY, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_SMALL_KEY, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_SMALL_KEY, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_SMALL_KEY, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_SMALL_KEY, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_BOTW_SMALL_KEY, SCENE_BOTTOM_OF_THE_WELL },
|
||||
{ RG_GTG_SMALL_KEY, SCENE_GERUDO_TRAINING_GROUND },
|
||||
{ RG_HIDEOUT_SMALL_KEY, SCENE_THIEVES_HIDEOUT },
|
||||
{ RG_GANONS_CASTLE_SMALL_KEY, SCENE_INSIDE_GANONS_CASTLE },
|
||||
{ RG_FOREST_TEMPLE_KEY_RING, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_KEY_RING, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_KEY_RING, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_KEY_RING, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_KEY_RING, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_BOTW_KEY_RING, SCENE_BOTTOM_OF_THE_WELL },
|
||||
{ RG_GTG_KEY_RING, SCENE_GERUDO_TRAINING_GROUND },
|
||||
{ RG_HIDEOUT_KEY_RING, SCENE_THIEVES_HIDEOUT },
|
||||
{ RG_GANONS_CASTLE_KEY_RING, SCENE_INSIDE_GANONS_CASTLE },
|
||||
{ RG_FOREST_TEMPLE_BOSS_KEY, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_BOSS_KEY, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_BOSS_KEY, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_BOSS_KEY, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_BOSS_KEY, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_GANONS_CASTLE_BOSS_KEY, SCENE_INSIDE_GANONS_CASTLE },
|
||||
{ RG_DEKU_TREE_MAP, SCENE_DEKU_TREE },
|
||||
{ RG_DODONGOS_CAVERN_MAP, SCENE_DODONGOS_CAVERN },
|
||||
{ RG_JABU_JABUS_BELLY_MAP, SCENE_JABU_JABU },
|
||||
{ RG_FOREST_TEMPLE_MAP, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_MAP, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_MAP, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_MAP, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_MAP, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_BOTW_MAP, SCENE_BOTTOM_OF_THE_WELL },
|
||||
{ RG_ICE_CAVERN_MAP, SCENE_ICE_CAVERN },
|
||||
{ RG_DEKU_TREE_COMPASS, SCENE_DEKU_TREE },
|
||||
{ RG_DODONGOS_CAVERN_COMPASS, SCENE_DODONGOS_CAVERN },
|
||||
{ RG_JABU_JABUS_BELLY_COMPASS, SCENE_JABU_JABU },
|
||||
{ RG_FOREST_TEMPLE_COMPASS, SCENE_FOREST_TEMPLE },
|
||||
{ RG_FIRE_TEMPLE_COMPASS, SCENE_FIRE_TEMPLE },
|
||||
{ RG_WATER_TEMPLE_COMPASS, SCENE_WATER_TEMPLE },
|
||||
{ RG_SPIRIT_TEMPLE_COMPASS, SCENE_SPIRIT_TEMPLE },
|
||||
{ RG_SHADOW_TEMPLE_COMPASS, SCENE_SHADOW_TEMPLE },
|
||||
{ RG_BOTW_COMPASS, SCENE_BOTTOM_OF_THE_WELL },
|
||||
{ RG_ICE_CAVERN_COMPASS, SCENE_ICE_CAVERN },
|
||||
{ RG_TCG_SMALL_KEY, SCENE_TREASURE_BOX_SHOP }
|
||||
};
|
||||
|
||||
std::map<uint32_t, uint32_t> Logic::RandoGetToQuestItem = {
|
||||
{ RG_FOREST_MEDALLION, QUEST_MEDALLION_FOREST },
|
||||
|
@ -1581,15 +1581,15 @@ std::map<uint32_t, uint32_t> Logic::RandoGetToQuestItem = {
|
|||
};
|
||||
|
||||
std::map<uint32_t, uint32_t> BottleRandomizerGetToItemID = {
|
||||
{ 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_BLUE_POTION, ITEM_POTION_BLUE },
|
||||
{ RG_BOTTLE_WITH_FAIRY, ITEM_FAIRY },
|
||||
{ RG_BOTTLE_WITH_FISH, ITEM_FISH },
|
||||
{ RG_BOTTLE_WITH_BLUE_FIRE, ITEM_BLUE_FIRE },
|
||||
{ RG_BOTTLE_WITH_BUGS, ITEM_BUG },
|
||||
{ RG_BOTTLE_WITH_POE, ITEM_POE },
|
||||
{ RG_BOTTLE_WITH_BIG_POE, ITEM_BIG_POE },
|
||||
{ RG_BOTTLE_WITH_BLUE_POTION, ITEM_POTION_BLUE },
|
||||
{ RG_BOTTLE_WITH_FAIRY, ITEM_FAIRY },
|
||||
{ RG_BOTTLE_WITH_FISH, ITEM_FISH },
|
||||
{ RG_BOTTLE_WITH_BLUE_FIRE, ITEM_BLUE_FIRE },
|
||||
{ RG_BOTTLE_WITH_BUGS, ITEM_BUG },
|
||||
{ RG_BOTTLE_WITH_POE, ITEM_POE },
|
||||
{ RG_BOTTLE_WITH_BIG_POE, ITEM_BIG_POE },
|
||||
};
|
||||
|
||||
uint32_t HookshotLookup[3] = { ITEM_NONE, ITEM_HOOKSHOT, ITEM_LONGSHOT };
|
||||
|
|
|
@ -635,17 +635,21 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
|||
|
||||
// Inventory Items
|
||||
case RG_PROGRESSIVE_STICK_BAG:
|
||||
return infiniteUpgrades != RO_INF_UPGRADES_OFF ?
|
||||
(Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_STICK_UPGRADE) ? CANT_OBTAIN_ALREADY_HAVE : CAN_OBTAIN) :
|
||||
(CUR_UPG_VALUE(UPG_STICKS) < 3 ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE);
|
||||
return infiniteUpgrades != RO_INF_UPGRADES_OFF
|
||||
? (Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_STICK_UPGRADE) ? CANT_OBTAIN_ALREADY_HAVE
|
||||
: CAN_OBTAIN)
|
||||
: (CUR_UPG_VALUE(UPG_STICKS) < 3 ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE);
|
||||
case RG_DEKU_STICK_1:
|
||||
case RG_BUY_DEKU_STICK_1:
|
||||
return CUR_UPG_VALUE(UPG_STICKS) || !OTRGlobals::Instance->gRandoContext->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG).Get()
|
||||
? CAN_OBTAIN : CANT_OBTAIN_NEED_UPGRADE;
|
||||
return CUR_UPG_VALUE(UPG_STICKS) ||
|
||||
!OTRGlobals::Instance->gRandoContext->GetOption(RSK_SHUFFLE_DEKU_STICK_BAG).Get()
|
||||
? CAN_OBTAIN
|
||||
: CANT_OBTAIN_NEED_UPGRADE;
|
||||
case RG_PROGRESSIVE_NUT_BAG:
|
||||
return infiniteUpgrades != RO_INF_UPGRADES_OFF ?
|
||||
(Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_NUT_UPGRADE) ? CANT_OBTAIN_ALREADY_HAVE : CAN_OBTAIN) :
|
||||
(CUR_UPG_VALUE(UPG_NUTS) < 3 ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE);
|
||||
return infiniteUpgrades != RO_INF_UPGRADES_OFF
|
||||
? (Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_NUT_UPGRADE) ? CANT_OBTAIN_ALREADY_HAVE
|
||||
: CAN_OBTAIN)
|
||||
: (CUR_UPG_VALUE(UPG_NUTS) < 3 ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE);
|
||||
case RG_DEKU_NUTS_5:
|
||||
case RG_DEKU_NUTS_10:
|
||||
case RG_BUY_DEKU_NUTS_5:
|
||||
|
@ -874,7 +878,8 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
|||
case RG_SHADOW_TEMPLE_COMPASS:
|
||||
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_SHADOW_TEMPLE) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||
case RG_BOTW_COMPASS:
|
||||
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_BOTTOM_OF_THE_WELL) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_BOTTOM_OF_THE_WELL) ? CAN_OBTAIN
|
||||
: CANT_OBTAIN_ALREADY_HAVE;
|
||||
case RG_ICE_CAVERN_COMPASS:
|
||||
return !CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, SCENE_ICE_CAVERN) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||
case RG_FOREST_TEMPLE_BOSS_KEY:
|
||||
|
@ -906,17 +911,30 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
|||
? CAN_OBTAIN
|
||||
: CANT_OBTAIN_ALREADY_HAVE;
|
||||
case RG_SHADOW_TEMPLE_SMALL_KEY:
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_SHADOW_TEMPLE] < SHADOW_TEMPLE_SMALL_KEY_MAX ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_SHADOW_TEMPLE] < SHADOW_TEMPLE_SMALL_KEY_MAX
|
||||
? CAN_OBTAIN
|
||||
: CANT_OBTAIN_ALREADY_HAVE;
|
||||
case RG_BOTW_SMALL_KEY:
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_BOTTOM_OF_THE_WELL] < BOTTOM_OF_THE_WELL_SMALL_KEY_MAX ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_BOTTOM_OF_THE_WELL] < BOTTOM_OF_THE_WELL_SMALL_KEY_MAX
|
||||
? CAN_OBTAIN
|
||||
: CANT_OBTAIN_ALREADY_HAVE;
|
||||
case RG_GTG_SMALL_KEY:
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_GERUDO_TRAINING_GROUND] < GERUDO_TRAINING_GROUND_SMALL_KEY_MAX ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_GERUDO_TRAINING_GROUND] <
|
||||
GERUDO_TRAINING_GROUND_SMALL_KEY_MAX
|
||||
? CAN_OBTAIN
|
||||
: CANT_OBTAIN_ALREADY_HAVE;
|
||||
case RG_HIDEOUT_SMALL_KEY:
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_THIEVES_HIDEOUT] < GERUDO_FORTRESS_SMALL_KEY_MAX ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_THIEVES_HIDEOUT] < GERUDO_FORTRESS_SMALL_KEY_MAX
|
||||
? CAN_OBTAIN
|
||||
: CANT_OBTAIN_ALREADY_HAVE;
|
||||
case RG_GANONS_CASTLE_SMALL_KEY:
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_INSIDE_GANONS_CASTLE] < GANONS_CASTLE_SMALL_KEY_MAX ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_INSIDE_GANONS_CASTLE] < GANONS_CASTLE_SMALL_KEY_MAX
|
||||
? CAN_OBTAIN
|
||||
: CANT_OBTAIN_ALREADY_HAVE;
|
||||
case RG_TCG_SMALL_KEY:
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_TREASURE_BOX_SHOP] < TREASURE_GAME_SMALL_KEY_MAX ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||
return gSaveContext.inventory.dungeonKeys[SCENE_TREASURE_BOX_SHOP] < TREASURE_GAME_SMALL_KEY_MAX
|
||||
? CAN_OBTAIN
|
||||
: CANT_OBTAIN_ALREADY_HAVE;
|
||||
|
||||
// Dungeon Rewards
|
||||
case RG_KOKIRI_EMERALD:
|
||||
|
@ -5185,179 +5203,136 @@ void Randomizer::CreateCustomMessages() {
|
|||
"vielleicht&dafür...",
|
||||
"Vous obtenez une %rBouteille avec&un Esprit%w! Ça intéresserait&peut-être le vendeur d'Âme "),
|
||||
|
||||
GIMESSAGE(RG_HIDEOUT_SMALL_KEY, ITEM_KEY_SMALL,
|
||||
"You found a %yThieves Hideout &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %yDiebesversteck%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gWaldtempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %gTemple de la Forêt%w!"),
|
||||
GIMESSAGE(RG_FIRE_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL,
|
||||
"You found a %rFire Temple &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %rFeuertempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %rTemple du Feu%w!"),
|
||||
GIMESSAGE(RG_WATER_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL,
|
||||
"You found a %bWater Temple &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %bWassertempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %bTemple de l'Eau%w!"),
|
||||
GIMESSAGE(RG_SPIRIT_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL,
|
||||
"You found a %ySpirit Temple &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %yGeistertempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %yTemple de l'Esprit%w!"),
|
||||
GIMESSAGE(RG_SHADOW_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL,
|
||||
"You found a %pShadow Temple &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %pSchattentempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %pTemple de l'Ombre%w!"),
|
||||
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 für den %pGrund des Brunnens%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %pPuits%w!"),
|
||||
GIMESSAGE(RG_GTG_SMALL_KEY, ITEM_KEY_SMALL,
|
||||
"You found a %yGerudo Training &Ground %wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %yGerudo-Trainingsgelände%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für %rGanons Schloß%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %rChâteau de Ganon%w!"),
|
||||
GIMESSAGE(RG_GUARD_HOUSE_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gGuard House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus der Wachen%w!",
|
||||
"Vous obtenez la %rClé %wde la&%gMaison des Gardes%w!"),
|
||||
GIMESSAGE(RG_MARKET_BAZAAR_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gMarket Bazaar%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gBasar des Marktes%w!",
|
||||
"Vous obtenez la %rClé %wdu %gBazar&de la Place du Marché%w!"),
|
||||
GIMESSAGE(RG_MARKET_POTION_SHOP_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gMarket Potion Shop%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gMagie-Laden des Marktes%w!",
|
||||
"Vous obtenez la %rClé %wde la&%gPlace du Marché%w!"),
|
||||
GIMESSAGE(RG_MASK_SHOP_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gMask Shop%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gMaskenladen%w!",
|
||||
"Vous obtenez la %rClé %wde la&%gFoire aux Masques%w!"),
|
||||
GIMESSAGE(RG_MARKET_SHOOTING_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gMarket Shooting Gallery%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gSchießbude des Marktes%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gMinenbowlingbahn%w!",
|
||||
"Vous obtenez la %rClé %wdu %gBowling&Teigneux%w!"),
|
||||
GIMESSAGE(RG_TCG_BUILDING_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gTreasure Chest Game Building%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus des Schatzkisten-Pokers%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gKrabbelminenladen%w!",
|
||||
"Vous obtenez la %rClé %wdu %gMagasin&de Missiles%w!"),
|
||||
GIMESSAGE(RG_RICHARDS_HOUSE_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to&%gRichard's House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus von Richard%w!",
|
||||
"Vous obtenez la %rClé %wde la %gMaison&de Kiki%w!"),
|
||||
GIMESSAGE(RG_ALLEY_HOUSE_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to&the %gAlley House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus in der Gasse%w!",
|
||||
"Vous obtenez la %rClé %wde la %gMaison&de la Ruelle%w!"),
|
||||
GIMESSAGE(RG_KAK_BAZAAR_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gKakariko Bazaar%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gBasar von Kakariko%w!",
|
||||
"Vous obtenez la %rClé %wdu %gBazar&de Cocorico%w!"),
|
||||
GIMESSAGE(RG_KAK_POTION_SHOP_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gKakariko Potion Shop%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gMagie-Laden von Kakariko%w!",
|
||||
"Vous obtenez la %rClé %wdu %gMagasin de&Potions de Cocorico%w!"),
|
||||
GIMESSAGE(RG_BOSS_HOUSE_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gBoss's House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus des Chefs%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für %gAsas Hexenladen%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gSkulltula-Haus%w!",
|
||||
"Vous obtenez la %rClé %wde la %gMaison&des Araignées%w!"),
|
||||
GIMESSAGE(RG_IMPAS_HOUSE_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to&%gImpa's House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus von 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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gWindmühle%w!",
|
||||
"Vous obtenez la %rClé %w du %gMoulin%w!"),
|
||||
GIMESSAGE(RG_KAK_SHOOTING_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gKakariko Shooting Gallery%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gSchießbude von Kakariko%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gHütte von Boris%w!",
|
||||
"Vous obtenez la %rClé %wde la %gCabane&d'Igor%w!"),
|
||||
GIMESSAGE(RG_TALONS_HOUSE_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to&%gTalon's House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus von Talon%w!",
|
||||
"Vous obtenez la %rClé %wde la %gMaison&de Talon%w!"),
|
||||
GIMESSAGE(RG_STABLES_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gStables%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gStälle%w!",
|
||||
"Vous obtenez la %rClé %wdes %gÉcuries%w!"),
|
||||
GIMESSAGE(RG_BACK_TOWER_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gBack Tower%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %ghinteren Turm%w!",
|
||||
"Vous obtenez la %rClé %wdu %gSilo%w!"),
|
||||
GIMESSAGE(RG_HYLIA_LAB_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gHylia Laboratory%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHylia-Labor%w!",
|
||||
"Vous obtenez la %rClé %wdu %gLaboratoire&du Lac Hylia%w!"),
|
||||
GIMESSAGE(RG_FISHING_HOLE_KEY, ITEM_KEY_SMALL,
|
||||
"You found the key to the&%gPond%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gFischweiher%w!",
|
||||
"Vous obtenez la %rClé %wde l'%gÉtang%w!"),
|
||||
GIMESSAGE(RG_HIDEOUT_SMALL_KEY, ITEM_KEY_SMALL, "You found a %yThieves Hideout &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %yDiebesversteck%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gWaldtempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %gTemple de la Forêt%w!"),
|
||||
GIMESSAGE(RG_FIRE_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %rFire Temple &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %rFeuertempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %rTemple du Feu%w!"),
|
||||
GIMESSAGE(RG_WATER_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %bWater Temple &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %bWassertempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %bTemple de l'Eau%w!"),
|
||||
GIMESSAGE(RG_SPIRIT_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %ySpirit Temple &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %yGeistertempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %yTemple de l'Esprit%w!"),
|
||||
GIMESSAGE(RG_SHADOW_TEMPLE_SMALL_KEY, ITEM_KEY_SMALL, "You found a %pShadow Temple &%wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %pSchattentempel%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %pTemple de l'Ombre%w!"),
|
||||
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 für den %pGrund des Brunnens%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %pPuits%w!"),
|
||||
GIMESSAGE(RG_GTG_SMALL_KEY, ITEM_KEY_SMALL, "You found a %yGerudo Training &Ground %wSmall Key!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %yGerudo-Trainingsgelände%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für %rGanons Schloß%w!",
|
||||
"Vous obtenez une %rPetite Clé %w&du %rChâteau de Ganon%w!"),
|
||||
GIMESSAGE(RG_GUARD_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to the&%gGuard House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus der Wachen%w!",
|
||||
"Vous obtenez la %rClé %wde la&%gMaison des Gardes%w!"),
|
||||
GIMESSAGE(RG_MARKET_BAZAAR_KEY, ITEM_KEY_SMALL, "You found the key to the&%gMarket Bazaar%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gBasar des Marktes%w!",
|
||||
"Vous obtenez la %rClé %wdu %gBazar&de la Place du Marché%w!"),
|
||||
GIMESSAGE(RG_MARKET_POTION_SHOP_KEY, ITEM_KEY_SMALL, "You found the key to the&%gMarket Potion Shop%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gMagie-Laden des Marktes%w!",
|
||||
"Vous obtenez la %rClé %wde la&%gPlace du Marché%w!"),
|
||||
GIMESSAGE(RG_MASK_SHOP_KEY, ITEM_KEY_SMALL, "You found the key to the&%gMask Shop%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gMaskenladen%w!",
|
||||
"Vous obtenez la %rClé %wde la&%gFoire aux Masques%w!"),
|
||||
GIMESSAGE(RG_MARKET_SHOOTING_KEY, ITEM_KEY_SMALL, "You found the key to the&%gMarket Shooting Gallery%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gSchießbude des Marktes%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gMinenbowlingbahn%w!",
|
||||
"Vous obtenez la %rClé %wdu %gBowling&Teigneux%w!"),
|
||||
GIMESSAGE(RG_TCG_BUILDING_KEY, ITEM_KEY_SMALL, "You found the key to the&%gTreasure Chest Game Building%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus des Schatzkisten-Pokers%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gKrabbelminenladen%w!",
|
||||
"Vous obtenez la %rClé %wdu %gMagasin&de Missiles%w!"),
|
||||
GIMESSAGE(RG_RICHARDS_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to&%gRichard's House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus von Richard%w!",
|
||||
"Vous obtenez la %rClé %wde la %gMaison&de Kiki%w!"),
|
||||
GIMESSAGE(RG_ALLEY_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to&the %gAlley House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus in der Gasse%w!",
|
||||
"Vous obtenez la %rClé %wde la %gMaison&de la Ruelle%w!"),
|
||||
GIMESSAGE(RG_KAK_BAZAAR_KEY, ITEM_KEY_SMALL, "You found the key to the&%gKakariko Bazaar%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gBasar von Kakariko%w!",
|
||||
"Vous obtenez la %rClé %wdu %gBazar&de Cocorico%w!"),
|
||||
GIMESSAGE(RG_KAK_POTION_SHOP_KEY, ITEM_KEY_SMALL, "You found the key to the&%gKakariko Potion Shop%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gMagie-Laden von Kakariko%w!",
|
||||
"Vous obtenez la %rClé %wdu %gMagasin de&Potions de Cocorico%w!"),
|
||||
GIMESSAGE(RG_BOSS_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to the&%gBoss's House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus des Chefs%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für %gAsas Hexenladen%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gSkulltula-Haus%w!",
|
||||
"Vous obtenez la %rClé %wde la %gMaison&des Araignées%w!"),
|
||||
GIMESSAGE(RG_IMPAS_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to&%gImpa's House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus von 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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gWindmühle%w!",
|
||||
"Vous obtenez la %rClé %w du %gMoulin%w!"),
|
||||
GIMESSAGE(RG_KAK_SHOOTING_KEY, ITEM_KEY_SMALL, "You found the key to the&%gKakariko Shooting Gallery%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gSchießbude von Kakariko%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!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gHütte von Boris%w!",
|
||||
"Vous obtenez la %rClé %wde la %gCabane&d'Igor%w!"),
|
||||
GIMESSAGE(RG_TALONS_HOUSE_KEY, ITEM_KEY_SMALL, "You found the key to&%gTalon's House%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHaus von Talon%w!",
|
||||
"Vous obtenez la %rClé %wde la %gMaison&de Talon%w!"),
|
||||
GIMESSAGE(RG_STABLES_KEY, ITEM_KEY_SMALL, "You found the key to the&%gStables%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für die %gStälle%w!",
|
||||
"Vous obtenez la %rClé %wdes %gÉcuries%w!"),
|
||||
GIMESSAGE(RG_BACK_TOWER_KEY, ITEM_KEY_SMALL, "You found the key to the&%gBack Tower%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %ghinteren Turm%w!",
|
||||
"Vous obtenez la %rClé %wdu %gSilo%w!"),
|
||||
GIMESSAGE(RG_HYLIA_LAB_KEY, ITEM_KEY_SMALL, "You found the key to the&%gHylia Laboratory%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für das %gHylia-Labor%w!",
|
||||
"Vous obtenez la %rClé %wdu %gLaboratoire&du Lac Hylia%w!"),
|
||||
GIMESSAGE(RG_FISHING_HOLE_KEY, ITEM_KEY_SMALL, "You found the key to the&%gPond%w!",
|
||||
"Du erhältst einen %rkleinen&Schlüssel%w für den %gFischweiher%w!",
|
||||
"Vous obtenez la %rClé %wde l'%gÉtang%w!"),
|
||||
|
||||
GIMESSAGE(RG_HIDEOUT_KEY_RING, ITEM_KEY_SMALL,
|
||||
"You found a %yThieves Hideout&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für das %yDiebesversteck%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!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %gWaldtempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %gTemple de la Forêt%w!"),
|
||||
GIMESSAGE(RG_FIRE_TEMPLE_KEY_RING, ITEM_KEY_SMALL,
|
||||
"You found a %rFire Temple&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %rFeuertempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %rTemple du Feu%w!"),
|
||||
GIMESSAGE(RG_WATER_TEMPLE_KEY_RING, ITEM_KEY_SMALL,
|
||||
"You found a %bWater Temple&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %bWassertempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %bTemple de l'Eau%w!"),
|
||||
GIMESSAGE(RG_SPIRIT_TEMPLE_KEY_RING, ITEM_KEY_SMALL,
|
||||
"You found a %ySpirit Temple&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %yGeistertempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %yTemple de l'Esprit%w!"),
|
||||
GIMESSAGE(RG_SHADOW_TEMPLE_KEY_RING, ITEM_KEY_SMALL,
|
||||
"You found a %pShadow Temple&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %pSchattentempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %pTemple de l'Ombre%w!"),
|
||||
GIMESSAGE(RG_BOTW_KEY_RING, ITEM_KEY_SMALL,
|
||||
"You found a %pBottom of the&Well %wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %pGrund des Brunnens%w!",
|
||||
"Vous obtenez le trousseau de&clés du %pPuits%w!"),
|
||||
GIMESSAGE(RG_GTG_KEY_RING, ITEM_KEY_SMALL,
|
||||
"You found a %yGerudo Training&Ground %wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für das %yGerudo-Trainingsgelände%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!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für %rGanons Schloß%w!",
|
||||
"Vous obtenez le trousseau de&clés du %rChâteau de Ganon%w!"),
|
||||
GIMESSAGE(RG_TCG_KEY_RING, ITEM_KEY_SMALL,
|
||||
"You found a %rTreasure Chest Game&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w& für das %rSchatztruhen-Poker&%w!",
|
||||
"Vous obtenez le trousseau de&clés du %rJeu de la Chasse au Trésor%w!"),
|
||||
GIMESSAGE(RG_HIDEOUT_KEY_RING, ITEM_KEY_SMALL, "You found a %yThieves Hideout&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für das %yDiebesversteck%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!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %gWaldtempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %gTemple de la Forêt%w!"),
|
||||
GIMESSAGE(RG_FIRE_TEMPLE_KEY_RING, ITEM_KEY_SMALL, "You found a %rFire Temple&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %rFeuertempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %rTemple du Feu%w!"),
|
||||
GIMESSAGE(RG_WATER_TEMPLE_KEY_RING, ITEM_KEY_SMALL, "You found a %bWater Temple&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %bWassertempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %bTemple de l'Eau%w!"),
|
||||
GIMESSAGE(RG_SPIRIT_TEMPLE_KEY_RING, ITEM_KEY_SMALL, "You found a %ySpirit Temple&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %yGeistertempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %yTemple de l'Esprit%w!"),
|
||||
GIMESSAGE(RG_SHADOW_TEMPLE_KEY_RING, ITEM_KEY_SMALL, "You found a %pShadow Temple&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %pSchattentempel%w!",
|
||||
"Vous obtenez le trousseau de&clés du %pTemple de l'Ombre%w!"),
|
||||
GIMESSAGE(RG_BOTW_KEY_RING, ITEM_KEY_SMALL, "You found a %pBottom of the&Well %wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für den %pGrund des Brunnens%w!",
|
||||
"Vous obtenez le trousseau de&clés du %pPuits%w!"),
|
||||
GIMESSAGE(RG_GTG_KEY_RING, ITEM_KEY_SMALL, "You found a %yGerudo Training&Ground %wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für das %yGerudo-Trainingsgelände%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!",
|
||||
"Du erhältst ein %rSchlüsselbund%w&für %rGanons Schloß%w!",
|
||||
"Vous obtenez le trousseau de&clés du %rChâteau de Ganon%w!"),
|
||||
GIMESSAGE(RG_TCG_KEY_RING, ITEM_KEY_SMALL, "You found a %rTreasure Chest Game&%wKeyring!",
|
||||
"Du erhältst ein %rSchlüsselbund%w& für das %rSchatztruhen-Poker&%w!",
|
||||
"Vous obtenez le trousseau de&clés du %rJeu de la Chasse au Trésor%w!"),
|
||||
|
||||
GIMESSAGE(RG_FOREST_TEMPLE_BOSS_KEY, ITEM_KEY_BOSS, "You found the %gForest Temple&%wBoss Key!",
|
||||
"Du erhältst den %rMaster-Schlüssel%w&für den %gWaldtempel%w!",
|
||||
|
@ -5378,87 +5353,67 @@ void Randomizer::CreateCustomMessages() {
|
|||
"Du erhältst den %rMaster-Schlüssel%w&für %rGanons Schloß%w!",
|
||||
"Vous obtenez la %rClé d'or %wdu&%rChâteau de Ganon%w!"),
|
||||
|
||||
GIMESSAGE(RG_DEKU_TREE_MAP, ITEM_DUNGEON_MAP,
|
||||
"You found the %gDeku Tree&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%gDeku-Baum%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wde&l'%gArbre Mojo%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_DODONGOS_CAVERN_MAP, ITEM_DUNGEON_MAP,
|
||||
"You found the %rDodongo's Cavern&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für&%rDodongos Höhle%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wde la&%rCaverne Dodongo%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_JABU_JABUS_BELLY_MAP, ITEM_DUNGEON_MAP,
|
||||
"You found the %bJabu Jabu's Belly&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für&%bJabu-Jabus Bauch%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%bVentre de Jabu-Jabu%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_FOREST_TEMPLE_MAP, ITEM_DUNGEON_MAP,
|
||||
"You found the %gForest Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%gWaldtempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%gTemple de la Forêt%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_FIRE_TEMPLE_MAP, ITEM_DUNGEON_MAP,
|
||||
"You found the %rFire Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%rFeuertempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%rTemple du Feu%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_WATER_TEMPLE_MAP, ITEM_DUNGEON_MAP,
|
||||
"You found the %bWater Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%bWassertempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%bTemple de l'Eau%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_SPIRIT_TEMPLE_MAP, ITEM_DUNGEON_MAP,
|
||||
"You found the %ySpirit Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%yGeistertempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%yTemple de l'Esprit%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_SHADOW_TEMPLE_MAP, ITEM_DUNGEON_MAP,
|
||||
"You found the %pShadow Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%pSchattentempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%pTemple de l'Ombre%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_BOTW_MAP, ITEM_DUNGEON_MAP,
|
||||
"You found the %pBottom of the&Well %wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%pGrund des Brunnens%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]]",
|
||||
"Du erhältst die %rKarte%w für die&%cEishöhle%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wde&la %cCaverne Polaire%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_DEKU_TREE_MAP, ITEM_DUNGEON_MAP, "You found the %gDeku Tree&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%gDeku-Baum%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wde&l'%gArbre Mojo%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_DODONGOS_CAVERN_MAP, ITEM_DUNGEON_MAP, "You found the %rDodongo's Cavern&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für&%rDodongos Höhle%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wde la&%rCaverne Dodongo%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_JABU_JABUS_BELLY_MAP, ITEM_DUNGEON_MAP, "You found the %bJabu Jabu's Belly&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für&%bJabu-Jabus Bauch%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%bVentre de Jabu-Jabu%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_FOREST_TEMPLE_MAP, ITEM_DUNGEON_MAP, "You found the %gForest Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%gWaldtempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%gTemple de la Forêt%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_FIRE_TEMPLE_MAP, ITEM_DUNGEON_MAP, "You found the %rFire Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%rFeuertempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%rTemple du Feu%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_WATER_TEMPLE_MAP, ITEM_DUNGEON_MAP, "You found the %bWater Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%bWassertempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%bTemple de l'Eau%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_SPIRIT_TEMPLE_MAP, ITEM_DUNGEON_MAP, "You found the %ySpirit Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%yGeistertempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%yTemple de l'Esprit%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_SHADOW_TEMPLE_MAP, ITEM_DUNGEON_MAP, "You found the %pShadow Temple&%wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%pSchattentempel%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wdu&%pTemple de l'Ombre%w![[typeHint]]"),
|
||||
GIMESSAGE(RG_BOTW_MAP, ITEM_DUNGEON_MAP, "You found the %pBottom of the&Well %wMap![[typeHint]]",
|
||||
"Du erhältst die %rKarte%w für den&%pGrund des Brunnens%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]]",
|
||||
"Du erhältst die %rKarte%w für die&%cEishöhle%w![[typeHint]]",
|
||||
"Vous obtenez la %rCarte %wde&la %cCaverne Polaire%w![[typeHint]]"),
|
||||
|
||||
GIMESSAGE(RG_DEKU_TREE_COMPASS, ITEM_COMPASS,
|
||||
"You found the %gDeku Tree&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%gDeku-Baum%w!",
|
||||
"Vous obtenez la %rBoussole %wde&l'%gArbre Mojo%w!"),
|
||||
GIMESSAGE(RG_DODONGOS_CAVERN_COMPASS, ITEM_COMPASS,
|
||||
"You found the %rDodongo's Cavern&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für&%rDodongos Höhle%w!",
|
||||
"Vous obtenez la %rBoussole %wde la&%rCaverne Dodongo%w!"),
|
||||
GIMESSAGE(RG_JABU_JABUS_BELLY_COMPASS, ITEM_COMPASS,
|
||||
"You found the %bJabu Jabu's Belly&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%bJabu-Jabus Bauch%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%bVentre de Jabu-Jabu%w!"),
|
||||
GIMESSAGE(RG_FOREST_TEMPLE_COMPASS, ITEM_COMPASS,
|
||||
"You found the %gForest Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%gWaldtempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%gTemple de la Forêt%w!"),
|
||||
GIMESSAGE(RG_FIRE_TEMPLE_COMPASS, ITEM_COMPASS,
|
||||
"You found the %rFire Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%rFeuertempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%rTemple du Feu%w!"),
|
||||
GIMESSAGE(RG_WATER_TEMPLE_COMPASS, ITEM_COMPASS,
|
||||
"You found the %bWater Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%bWassertempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%bTemple de l'Eau%w!"),
|
||||
GIMESSAGE(RG_SPIRIT_TEMPLE_COMPASS, ITEM_COMPASS,
|
||||
"You found the %ySpirit Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%yGeistertempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%yTemple de l'Esprit%w!"),
|
||||
GIMESSAGE(RG_SHADOW_TEMPLE_COMPASS, ITEM_COMPASS,
|
||||
"You found the %pShadow Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%pSchattentempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%pTemple de l'Ombre%w!"),
|
||||
GIMESSAGE(RG_BOTW_COMPASS, ITEM_COMPASS,
|
||||
"You found the %pBottom of the&Well %wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%pGrund des Brunnens%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%pPuits%w!"),
|
||||
GIMESSAGE(RG_ICE_CAVERN_COMPASS, ITEM_COMPASS,
|
||||
"You found the %cIce Cavern&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für die&%cEishöhle%w!",
|
||||
"Vous obtenez la %rBoussole %wde&la %cCaverne Polaire%w!"),
|
||||
GIMESSAGE(RG_DEKU_TREE_COMPASS, ITEM_COMPASS, "You found the %gDeku Tree&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%gDeku-Baum%w!",
|
||||
"Vous obtenez la %rBoussole %wde&l'%gArbre Mojo%w!"),
|
||||
GIMESSAGE(RG_DODONGOS_CAVERN_COMPASS, ITEM_COMPASS, "You found the %rDodongo's Cavern&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für&%rDodongos Höhle%w!",
|
||||
"Vous obtenez la %rBoussole %wde la&%rCaverne Dodongo%w!"),
|
||||
GIMESSAGE(RG_JABU_JABUS_BELLY_COMPASS, ITEM_COMPASS, "You found the %bJabu Jabu's Belly&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%bJabu-Jabus Bauch%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%bVentre de Jabu-Jabu%w!"),
|
||||
GIMESSAGE(RG_FOREST_TEMPLE_COMPASS, ITEM_COMPASS, "You found the %gForest Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%gWaldtempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%gTemple de la Forêt%w!"),
|
||||
GIMESSAGE(RG_FIRE_TEMPLE_COMPASS, ITEM_COMPASS, "You found the %rFire Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%rFeuertempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%rTemple du Feu%w!"),
|
||||
GIMESSAGE(RG_WATER_TEMPLE_COMPASS, ITEM_COMPASS, "You found the %bWater Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%bWassertempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%bTemple de l'Eau%w!"),
|
||||
GIMESSAGE(RG_SPIRIT_TEMPLE_COMPASS, ITEM_COMPASS, "You found the %ySpirit Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%yGeistertempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%yTemple de l'Esprit%w!"),
|
||||
GIMESSAGE(RG_SHADOW_TEMPLE_COMPASS, ITEM_COMPASS, "You found the %pShadow Temple&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%pSchattentempel%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%pTemple de l'Ombre%w!"),
|
||||
GIMESSAGE(RG_BOTW_COMPASS, ITEM_COMPASS, "You found the %pBottom of the&Well %wCompass!",
|
||||
"Du erhältst den %rKompaß%w für den&%pGrund des Brunnens%w!",
|
||||
"Vous obtenez la %rBoussole %wdu&%pPuits%w!"),
|
||||
GIMESSAGE(RG_ICE_CAVERN_COMPASS, ITEM_COMPASS, "You found the %cIce Cavern&%wCompass!",
|
||||
"Du erhältst den %rKompaß%w für die&%cEishöhle%w!",
|
||||
"Vous obtenez la %rBoussole %wde&la %cCaverne Polaire%w!"),
|
||||
|
||||
GIMESSAGE(RG_MAGIC_BEAN_PACK, ITEM_BEAN,
|
||||
"You got a %rPack of Magic Beans%w!&Find a suitable spot for a garden&and plant them. Then, wait "
|
||||
|
|
|
@ -1809,7 +1809,9 @@ void DrawLocation(RandomizerCheck rc) {
|
|||
txt = itemLoc->GetPlacedItem().GetName().GetForCurrentLanguage(MF_RAW);
|
||||
} else {
|
||||
if (IsHeartPiece((GetItemID)Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetItemID())) {
|
||||
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetName().GetForCurrentLanguage(MF_RAW);
|
||||
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem())
|
||||
.GetName()
|
||||
.GetForCurrentLanguage(MF_RAW);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -1838,7 +1840,9 @@ void DrawLocation(RandomizerCheck rc) {
|
|||
}
|
||||
} else {
|
||||
if (IsHeartPiece((GetItemID)Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetItemID())) {
|
||||
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem()).GetName().GetForCurrentLanguage(MF_RAW);
|
||||
txt = Rando::StaticData::RetrieveItem(loc->GetVanillaItem())
|
||||
.GetName()
|
||||
.GetForCurrentLanguage(MF_RAW);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -133,30 +133,30 @@ std::vector<ItemTrackerItem> ocarinaButtonItems = {
|
|||
std::vector<ItemTrackerItem> overworldKeyItems = {
|
||||
// Hack for right now, just gonna overworld keys as dungeon keys.
|
||||
// Will replace with other macro once we have a custom texture
|
||||
ITEM_TRACKER_ITEM_CUSTOM(RG_GUARD_HOUSE_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_MASK_SHOP_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_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_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_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_BOSS_HOUSE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||
ITEM_TRACKER_ITEM_CUSTOM(RG_GUARD_HOUSE_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_MASK_SHOP_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_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_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_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_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_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_WINDMILL_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_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_BACK_TOWER_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||
ITEM_TRACKER_ITEM_CUSTOM(RG_HYLIA_LAB_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||
ITEM_TRACKER_ITEM_CUSTOM(RG_FISHING_HOLE_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_WINDMILL_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_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_BACK_TOWER_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||
ITEM_TRACKER_ITEM_CUSTOM(RG_HYLIA_LAB_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||
ITEM_TRACKER_ITEM_CUSTOM(RG_FISHING_HOLE_KEY, ITEM_KEY_SMALL, ITEM_KEY_SMALL, 0, DrawItem),
|
||||
};
|
||||
|
||||
std::vector<ItemTrackerItem> fishingPoleItems = { ITEM_TRACKER_ITEM(ITEM_FISHING_POLE, 0, DrawItem) };
|
||||
|
|
|
@ -233,21 +233,22 @@ StaticData::PopulateTranslationMap(std::unordered_map<uint32_t, CustomMessage> i
|
|||
return output;
|
||||
}
|
||||
|
||||
std::unordered_map<std::string, uint32_t> StaticData::PopulateTranslationMap(std::unordered_map<uint32_t, RandomizerHintTextKey> input){
|
||||
std::unordered_map<std::string, uint32_t> output = {};
|
||||
for (const auto& [key, text] : input) {
|
||||
std::vector<std::string> strings = hintTextTable[text].GetClear().GetAllMessages();
|
||||
for (std::string string: strings){
|
||||
if (output.contains(string)){
|
||||
if (output[string] != key && string != ""){
|
||||
SPDLOG_DEBUG("\tREPEATED STRING WITH " + string + "\n\n");
|
||||
std::unordered_map<std::string, uint32_t>
|
||||
StaticData::PopulateTranslationMap(std::unordered_map<uint32_t, RandomizerHintTextKey> input) {
|
||||
std::unordered_map<std::string, uint32_t> output = {};
|
||||
for (const auto& [key, text] : input) {
|
||||
std::vector<std::string> strings = hintTextTable[text].GetClear().GetAllMessages();
|
||||
for (std::string string : strings) {
|
||||
if (output.contains(string)) {
|
||||
if (output[string] != key && string != "") {
|
||||
SPDLOG_DEBUG("\tREPEATED STRING WITH " + string + "\n\n");
|
||||
}
|
||||
} else {
|
||||
output[string] = key;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
output[string] = key;
|
||||
}
|
||||
}
|
||||
}
|
||||
return output;
|
||||
return output;
|
||||
}
|
||||
|
||||
std::unordered_map<std::string, uint32_t> StaticData::hintNameToEnum = {};
|
||||
|
|
|
@ -558,8 +558,8 @@ void SaveManager::SaveRandomizer(SaveContext* saveContext, int sectionID, bool f
|
|||
|
||||
std::vector<RandomizerGet> items = hint->GetHintedItems();
|
||||
SaveManager::Instance->SaveArray("items", items.size(), [&](size_t i) {
|
||||
SaveManager::Instance->SaveData("",
|
||||
Rando::StaticData::GetItemTable()[items[i]].GetName().GetEnglish(MF_RAW));
|
||||
SaveManager::Instance->SaveData(
|
||||
"", Rando::StaticData::GetItemTable()[items[i]].GetName().GetEnglish(MF_RAW));
|
||||
});
|
||||
|
||||
std::vector<uint8_t> itemNamesChosen = hint->GetItemNamesChosen();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue