More prep for clang-format (#5239)

This commit is contained in:
Archez 2025-03-30 18:17:09 -04:00 committed by GitHub
parent bcd8842bde
commit 9355aca23e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
23 changed files with 311 additions and 263 deletions

View file

@ -45,7 +45,7 @@ const char* altTrapTypeCvars[] = {
CVAR_ENHANCEMENT("ExtraTraps.Void"), CVAR_ENHANCEMENT("ExtraTraps.Void"),
CVAR_ENHANCEMENT("ExtraTraps.Ammo"), CVAR_ENHANCEMENT("ExtraTraps.Ammo"),
CVAR_ENHANCEMENT("ExtraTraps.Kill"), CVAR_ENHANCEMENT("ExtraTraps.Kill"),
CVAR_ENHANCEMENT("ExtraTraps.Teleport") CVAR_ENHANCEMENT("ExtraTraps.Teleport"),
}; };
std::vector<AltTrapType> getEnabledAddTraps () { std::vector<AltTrapType> getEnabledAddTraps () {

View file

@ -27,39 +27,50 @@ static DListPatchInfo freezardBodyDListPatchInfos[] = {
}; };
static DListPatchInfo ironKnuckleDListPatchInfos[] = { static DListPatchInfo ironKnuckleDListPatchInfos[] = {
// VambraceLeft
{ object_ik_DL_01BE98, 39 }, { object_ik_DL_01BE98, 39 },
{ object_ik_DL_01BE98, 59 }, { object_ik_DL_01BE98, 59 },
// ArmLeft
{ object_ik_DL_01C130, 38 }, { object_ik_DL_01C130, 38 },
// VambraceRight
{ object_ik_DL_01C2B8, 39 }, { object_ik_DL_01C2B8, 39 },
{ object_ik_DL_01C2B8, 59 }, { object_ik_DL_01C2B8, 59 },
// ArmRight
{ object_ik_DL_01C550, 38 }, { object_ik_DL_01C550, 38 },
// Waist
{ object_ik_DL_01C7B8, 8 }, { object_ik_DL_01C7B8, 8 },
{ object_ik_DL_01C7B8, 28 }, { object_ik_DL_01C7B8, 28 },
// PauldronLeft
{ object_ik_DL_01CB58, 8 }, { object_ik_DL_01CB58, 8 },
{ object_ik_DL_01CB58, 31 }, { object_ik_DL_01CB58, 31 },
// BootTipLeft
{ object_ik_DL_01CCA0, 15 }, { object_ik_DL_01CCA0, 15 },
{ object_ik_DL_01CCA0, 37 }, { object_ik_DL_01CCA0, 37 },
{ object_ik_DL_01CCA0, 52 }, { object_ik_DL_01CCA0, 52 },
{ object_ik_DL_01CCA0, 68 }, { object_ik_DL_01CCA0, 68 },
// WaistArmorLeft
{ object_ik_DL_01CEE0, 27 }, { object_ik_DL_01CEE0, 27 },
{ object_ik_DL_01CEE0, 46 }, { object_ik_DL_01CEE0, 46 },
{ object_ik_DL_01CEE0, 125 }, { object_ik_DL_01CEE0, 125 },
// PauldronRight
{ object_ik_DL_01D2B0, 8 }, { object_ik_DL_01D2B0, 8 },
{ object_ik_DL_01D2B0, 32 }, { object_ik_DL_01D2B0, 32 },
// BootTipRight
{ object_ik_DL_01D3F8, 15 }, { object_ik_DL_01D3F8, 15 },
{ object_ik_DL_01D3F8, 37 }, { object_ik_DL_01D3F8, 37 },
{ object_ik_DL_01D3F8, 52 }, { object_ik_DL_01D3F8, 52 },
{ object_ik_DL_01D3F8, 68 }, { object_ik_DL_01D3F8, 68 },
// WaistArmorRight
{ object_ik_DL_01D638, 23 }, { object_ik_DL_01D638, 23 },
{ object_ik_DL_01D638, 42 }, { object_ik_DL_01D638, 42 },
{ object_ik_DL_01D638, 110 }, { object_ik_DL_01D638, 110 },
@ -336,7 +347,7 @@ void PatchMirroredSunSongEtching() {
// Only need to patch over the two SetTile commands to get the MIRROR effect // Only need to patch over the two SetTile commands to get the MIRROR effect
Gfx mirroredSunSongTex[] = { Gfx mirroredSunSongTex[] = {
gsDPLoadTextureBlock("", G_IM_FMT_IA, G_IM_SIZ_8b, 128, 32, 0, G_TX_MIRROR | G_TX_WRAP, gsDPLoadTextureBlock("", G_IM_FMT_IA, G_IM_SIZ_8b, 128, 32, 0, G_TX_MIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_CLAMP, 7, 5, G_TX_NOLOD, G_TX_NOLOD) G_TX_NOMIRROR | G_TX_CLAMP, 7, 5, G_TX_NOLOD, G_TX_NOLOD),
}; };
if (CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0)) { if (CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0)) {

View file

@ -219,7 +219,7 @@ const static std::map<std::string, uint16_t> ammoItems{
{ "sticks", ITEM_STICK }, { "nuts", ITEM_NUT }, { "sticks", ITEM_STICK }, { "nuts", ITEM_NUT },
{ "bombs", ITEM_BOMB }, { "seeds", ITEM_SLINGSHOT }, { "bombs", ITEM_BOMB }, { "seeds", ITEM_SLINGSHOT },
{ "arrows", ITEM_BOW }, { "bombchus", ITEM_BOMBCHU }, { "arrows", ITEM_BOW }, { "bombchus", ITEM_BOMBCHU },
{ "beans", ITEM_BEAN } { "beans", ITEM_BEAN },
}; };
static bool AddAmmoHandler(std::shared_ptr<Ship::Console> Console, const std::vector<std::string>& args, std::string* output) { static bool AddAmmoHandler(std::shared_ptr<Ship::Console> Console, const std::vector<std::string>& args, std::string* output) {
@ -1418,17 +1418,17 @@ void DebugConsole_Init(void) {
CMD_REGISTER("save_state", {SaveStateHandler, "Save a state."}); CMD_REGISTER("save_state", {SaveStateHandler, "Save a state."});
CMD_REGISTER("load_state", {LoadStateHandler, "Load a state."}); CMD_REGISTER("load_state", {LoadStateHandler, "Load a state."});
CMD_REGISTER("set_slot", {StateSlotSelectHandler, "Selects a SaveState slot", { CMD_REGISTER("set_slot", {StateSlotSelectHandler, "Selects a SaveState slot", {
{"Slot number", Ship::ArgumentType::NUMBER,} {"Slot number", Ship::ArgumentType::NUMBER},
}}); }});
// Map & Location // Map & Location
CMD_REGISTER("void", {VoidHandler, "Voids out of the current map."}); CMD_REGISTER("void", {VoidHandler, "Voids out of the current map."});
CMD_REGISTER("reload", {ReloadHandler, "Reloads the current map."}); CMD_REGISTER("reload", {ReloadHandler, "Reloads the current map."});
CMD_REGISTER("fw", {FWHandler, "Spawns the player where Farore's Wind is set.", { CMD_REGISTER("fw", {FWHandler, "Spawns the player where Farore's Wind is set.", {
{"clear|warp|backup", Ship::ArgumentType::TEXT} {"clear|warp|backup", Ship::ArgumentType::TEXT},
}}); }});
CMD_REGISTER("entrance", {EntranceHandler, "Sends player to the entered entrance (hex)", { CMD_REGISTER("entrance", {EntranceHandler, "Sends player to the entered entrance (hex)", {
{"entrance", Ship::ArgumentType::NUMBER} {"entrance", Ship::ArgumentType::NUMBER},
}}); }});
// Gameplay // Gameplay
@ -1437,11 +1437,11 @@ void DebugConsole_Init(void) {
CMD_REGISTER("map", {LoadSceneHandler, "Load up kak?"}); CMD_REGISTER("map", {LoadSceneHandler, "Load up kak?"});
CMD_REGISTER("rupee", {RupeeHandler, "Set your rupee counter.", { CMD_REGISTER("rupee", {RupeeHandler, "Set your rupee counter.", {
{"amount", Ship::ArgumentType::NUMBER} {"amount", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("bItem", {BHandler, "Set an item to the B button.", { CMD_REGISTER("bItem", {BHandler, "Set an item to the B button.", {
{"Item ID", Ship::ArgumentType::NUMBER} {"Item ID", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("spawn", { ActorSpawnHandler, "Spawn an actor.", { { "actor name/id", Ship::ArgumentType::NUMBER }, // TODO there should be an actor_id arg type CMD_REGISTER("spawn", { ActorSpawnHandler, "Spawn an actor.", { { "actor name/id", Ship::ArgumentType::NUMBER }, // TODO there should be an actor_id arg type
@ -1451,50 +1451,50 @@ void DebugConsole_Init(void) {
{"z", Ship::ArgumentType::NUMBER, true}, {"z", Ship::ArgumentType::NUMBER, true},
{"rx", Ship::ArgumentType::NUMBER, true}, {"rx", Ship::ArgumentType::NUMBER, true},
{"ry", Ship::ArgumentType::NUMBER, true}, {"ry", Ship::ArgumentType::NUMBER, true},
{"rz", Ship::ArgumentType::NUMBER, true} {"rz", Ship::ArgumentType::NUMBER, true},
}}); }});
CMD_REGISTER("pos", {SetPosHandler, "Sets the position of the player.", { CMD_REGISTER("pos", {SetPosHandler, "Sets the position of the player.", {
{"x", Ship::ArgumentType::NUMBER, true}, {"x", Ship::ArgumentType::NUMBER, true},
{"y", Ship::ArgumentType::NUMBER, true}, {"y", Ship::ArgumentType::NUMBER, true},
{"z", Ship::ArgumentType::NUMBER, true} {"z", Ship::ArgumentType::NUMBER, true},
}}); }});
CMD_REGISTER("addammo", {AddAmmoHandler, "Adds ammo of an item.", { CMD_REGISTER("addammo", {AddAmmoHandler, "Adds ammo of an item.", {
{"sticks|nuts|bombs|seeds|arrows|bombchus|beans", Ship::ArgumentType::TEXT}, {"sticks|nuts|bombs|seeds|arrows|bombchus|beans", Ship::ArgumentType::TEXT},
{"count", Ship::ArgumentType::NUMBER} {"count", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("takeammo", {TakeAmmoHandler, "Removes ammo of an item.", { CMD_REGISTER("takeammo", {TakeAmmoHandler, "Removes ammo of an item.", {
{"sticks|nuts|bombs|seeds|arrows|bombchus|beans", Ship::ArgumentType::TEXT}, {"sticks|nuts|bombs|seeds|arrows|bombchus|beans", Ship::ArgumentType::TEXT},
{"count", Ship::ArgumentType::NUMBER} {"count", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("bottle", {BottleHandler, "Changes item in a bottle slot.", { CMD_REGISTER("bottle", {BottleHandler, "Changes item in a bottle slot.", {
{"item", Ship::ArgumentType::TEXT}, {"item", Ship::ArgumentType::TEXT},
{"slot", Ship::ArgumentType::NUMBER} {"slot", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("give_item", {GiveItemHandler, "Gives an item to the player as if it was given from an actor", { CMD_REGISTER("give_item", {GiveItemHandler, "Gives an item to the player as if it was given from an actor", {
{"vanilla|randomizer", Ship::ArgumentType::TEXT}, {"vanilla|randomizer", Ship::ArgumentType::TEXT},
{"giveItemID", Ship::ArgumentType::NUMBER} {"giveItemID", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("item", {ItemHandler, "Sets item ID in arg 1 into slot arg 2. No boundary checks. Use with caution.", { CMD_REGISTER("item", {ItemHandler, "Sets item ID in arg 1 into slot arg 2. No boundary checks. Use with caution.", {
{"slot", Ship::ArgumentType::NUMBER}, {"slot", Ship::ArgumentType::NUMBER},
{"item id", Ship::ArgumentType::NUMBER} {"item id", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("invisible", {InvisibleHandler, "Activate Link's Elvish cloak, making him appear invisible.", { CMD_REGISTER("invisible", {InvisibleHandler, "Activate Link's Elvish cloak, making him appear invisible.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("giant_link", {GiantLinkHandler, "Turn Link into a giant Lonky boi.", { CMD_REGISTER("giant_link", {GiantLinkHandler, "Turn Link into a giant Lonky boi.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("minish_link", {MinishLinkHandler, "Turn Link into a minish boi.", { CMD_REGISTER("minish_link", {MinishLinkHandler, "Turn Link into a minish boi.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("add_heart_container", CMD_REGISTER("add_heart_container",
@ -1504,25 +1504,25 @@ void DebugConsole_Init(void) {
{RemoveHeartContainerHandler, "Remove a heart from Link. The minimal amount of hearts is 3."}); {RemoveHeartContainerHandler, "Remove a heart from Link. The minimal amount of hearts is 3."});
CMD_REGISTER("gravity", {GravityHandler, "Set gravity level.", { CMD_REGISTER("gravity", {GravityHandler, "Set gravity level.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("no_ui", {NoUIHandler, "Disables the UI.", { CMD_REGISTER("no_ui", {NoUIHandler, "Disables the UI.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("freeze", {FreezeHandler, "Freezes Link in place"}); CMD_REGISTER("freeze", {FreezeHandler, "Freezes Link in place"});
CMD_REGISTER("defense_modifier", {DefenseModifierHandler, "Sets the defense modifier.", { CMD_REGISTER("defense_modifier", {DefenseModifierHandler, "Sets the defense modifier.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("damage", {DamageHandler, "Deal damage to Link.", { CMD_REGISTER("damage", {DamageHandler, "Deal damage to Link.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("heal", {HealHandler, "Heals Link.", { CMD_REGISTER("heal", {HealHandler, "Heals Link.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("fill_magic", {FillMagicHandler, "Fills magic."}); CMD_REGISTER("fill_magic", {FillMagicHandler, "Fills magic."});
@ -1530,34 +1530,34 @@ void DebugConsole_Init(void) {
CMD_REGISTER("empty_magic", {EmptyMagicHandler, "Empties magic."}); CMD_REGISTER("empty_magic", {EmptyMagicHandler, "Empties magic."});
CMD_REGISTER("no_z", {NoZHandler, "Disables Z-button presses.", { CMD_REGISTER("no_z", {NoZHandler, "Disables Z-button presses.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("ohko", {OneHitKOHandler, CMD_REGISTER("ohko", {OneHitKOHandler,
"Activates one hit KO. Any damage kills Link and he cannot gain health in this mode.", { "Activates one hit KO. Any damage kills Link and he cannot gain health in this mode.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("pacifist", {PacifistHandler, "Activates pacifist mode. Prevents Link from using his weapon.", { CMD_REGISTER("pacifist", {PacifistHandler, "Activates pacifist mode. Prevents Link from using his weapon.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("paper_link", {PaperLinkHandler, "Link but made out of paper.", { CMD_REGISTER("paper_link", {PaperLinkHandler, "Link but made out of paper.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("rainstorm", {RainstormHandler, "Activates rainstorm."}); CMD_REGISTER("rainstorm", {RainstormHandler, "Activates rainstorm."});
CMD_REGISTER("reverse_controls", {ReverseControlsHandler, "Reverses the controls.", { CMD_REGISTER("reverse_controls", {ReverseControlsHandler, "Reverses the controls.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("update_rupees", {UpdateRupeesHandler, "Adds rupees.", { CMD_REGISTER("update_rupees", {UpdateRupeesHandler, "Adds rupees.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("speed_modifier", {SpeedModifierHandler, "Sets the speed modifier.", { CMD_REGISTER("speed_modifier", {SpeedModifierHandler, "Sets the speed modifier.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("boots", {BootsHandler, "Activates boots.", { CMD_REGISTER("boots", {BootsHandler, "Activates boots.", {
@ -1573,7 +1573,7 @@ void DebugConsole_Init(void) {
}}); }});
CMD_REGISTER("knockback", {KnockbackHandler, "Knocks Link back.", { CMD_REGISTER("knockback", {KnockbackHandler, "Knocks Link back.", {
{"value", Ship::ArgumentType::NUMBER} {"value", Ship::ArgumentType::NUMBER},
}}); }});
CMD_REGISTER("electrocute", {ElectrocuteHandler, "Electrocutes Link."}); CMD_REGISTER("electrocute", {ElectrocuteHandler, "Electrocutes Link."});

View file

@ -57,7 +57,7 @@ std::array<const char*, 12> acMapping = {
"Misc.", "Misc.",
"Boss", "Boss",
"Door", "Door",
"Chest" "Chest",
}; };
using namespace UIWidgets; using namespace UIWidgets;

View file

@ -159,7 +159,7 @@ static int enemiesToRandomize[] = {
ACTOR_EN_HINTNUTS, // Hint Deku Scrubs ACTOR_EN_HINTNUTS, // Hint Deku Scrubs
ACTOR_EN_WF, // Wolfos ACTOR_EN_WF, // Wolfos
ACTOR_EN_SKB, // Stalchild ACTOR_EN_SKB, // Stalchild
ACTOR_EN_CROW // Guay ACTOR_EN_CROW, // Guay
}; };
extern "C" uint8_t GetRandomizedEnemy(PlayState* play, int16_t *actorId, f32 *posX, f32 *posY, f32 *posZ, int16_t *rotX, extern "C" uint8_t GetRandomizedEnemy(PlayState* play, int16_t *actorId, f32 *posX, f32 *posY, f32 *posZ, int16_t *rotX,

View file

@ -102,13 +102,13 @@ typedef enum {
typedef enum { typedef enum {
TIME_TRAVEL_DISABLED, TIME_TRAVEL_DISABLED,
TIME_TRAVEL_OOT, TIME_TRAVEL_OOT,
TIME_TRAVEL_ANY TIME_TRAVEL_ANY,
} TimeTravelType; } TimeTravelType;
typedef enum { typedef enum {
WATERFALL_ALWAYS, WATERFALL_ALWAYS,
WATERFALL_ONCE, WATERFALL_ONCE,
WATERFALL_NEVER WATERFALL_NEVER,
} SleepingWaterfallType; } SleepingWaterfallType;
#endif #endif

View file

@ -10,7 +10,7 @@ static const int songMessageMap[] = {
TEXT_WARP_SERENADE_OF_WATER, TEXT_WARP_SERENADE_OF_WATER,
TEXT_WARP_REQUIEM_OF_SPIRIT, TEXT_WARP_REQUIEM_OF_SPIRIT,
TEXT_WARP_NOCTURNE_OF_SHADOW, TEXT_WARP_NOCTURNE_OF_SHADOW,
TEXT_WARP_PRELUDE_OF_LIGHT TEXT_WARP_PRELUDE_OF_LIGHT,
}; };
static const int ocarinaSongMap[] = { static const int ocarinaSongMap[] = {
@ -19,7 +19,7 @@ static const int ocarinaSongMap[] = {
OCARINA_SONG_SERENADE, OCARINA_SONG_SERENADE,
OCARINA_SONG_REQUIEM, OCARINA_SONG_REQUIEM,
OCARINA_SONG_NOCTURNE, OCARINA_SONG_NOCTURNE,
OCARINA_SONG_PRELUDE OCARINA_SONG_PRELUDE,
}; };
static const int entranceIndexMap[] = { static const int entranceIndexMap[] = {
@ -28,7 +28,7 @@ static const int entranceIndexMap[] = {
ENTR_LAKE_HYLIA_WARP_PAD, // Serenade ENTR_LAKE_HYLIA_WARP_PAD, // Serenade
ENTR_DESERT_COLOSSUS_WARP_PAD, // Requiem ENTR_DESERT_COLOSSUS_WARP_PAD, // Requiem
ENTR_GRAVEYARD_WARP_PAD, // Nocturne ENTR_GRAVEYARD_WARP_PAD, // Nocturne
ENTR_TEMPLE_OF_TIME_WARP_PAD // Prelude ENTR_TEMPLE_OF_TIME_WARP_PAD, // Prelude
}; };
static const int songAudioMap[] = { static const int songAudioMap[] = {
@ -37,7 +37,7 @@ static const int songAudioMap[] = {
NA_BGM_OCA_SERENADE, NA_BGM_OCA_SERENADE,
NA_BGM_OCA_REQUIEM, NA_BGM_OCA_REQUIEM,
NA_BGM_OCA_NOCTURNE, NA_BGM_OCA_NOCTURNE,
NA_BGM_OCA_LIGHT NA_BGM_OCA_LIGHT,
}; };
static bool isWarpActive = false; static bool isWarpActive = false;

View file

@ -33,7 +33,7 @@ PriceSettingsStruct shopsanityPrices = {RSK_SHOPSANITY_PRICES,
RSK_SHOPSANITY_PRICES_ADULT_WALLET_WEIGHT, RSK_SHOPSANITY_PRICES_ADULT_WALLET_WEIGHT,
RSK_SHOPSANITY_PRICES_GIANT_WALLET_WEIGHT, RSK_SHOPSANITY_PRICES_GIANT_WALLET_WEIGHT,
RSK_SHOPSANITY_PRICES_TYCOON_WALLET_WEIGHT, RSK_SHOPSANITY_PRICES_TYCOON_WALLET_WEIGHT,
RSK_SHOPSANITY_PRICES_AFFORDABLE}; RSK_SHOPSANITY_PRICES_AFFORDABLE, };
PriceSettingsStruct scrubPrices = {RSK_SCRUBS_PRICES, PriceSettingsStruct scrubPrices = {RSK_SCRUBS_PRICES,
RSK_SCRUBS_PRICES_FIXED_PRICE, RSK_SCRUBS_PRICES_FIXED_PRICE,
@ -44,7 +44,7 @@ PriceSettingsStruct scrubPrices = {RSK_SCRUBS_PRICES,
RSK_SCRUBS_PRICES_ADULT_WALLET_WEIGHT, RSK_SCRUBS_PRICES_ADULT_WALLET_WEIGHT,
RSK_SCRUBS_PRICES_GIANT_WALLET_WEIGHT, RSK_SCRUBS_PRICES_GIANT_WALLET_WEIGHT,
RSK_SCRUBS_PRICES_TYCOON_WALLET_WEIGHT, RSK_SCRUBS_PRICES_TYCOON_WALLET_WEIGHT,
RSK_SCRUBS_PRICES_AFFORDABLE}; RSK_SCRUBS_PRICES_AFFORDABLE, };
PriceSettingsStruct merchantPrices = {RSK_MERCHANT_PRICES, PriceSettingsStruct merchantPrices = {RSK_MERCHANT_PRICES,
RSK_MERCHANT_PRICES_FIXED_PRICE, RSK_MERCHANT_PRICES_FIXED_PRICE,
@ -55,7 +55,7 @@ PriceSettingsStruct merchantPrices = {RSK_MERCHANT_PRICES,
RSK_MERCHANT_PRICES_ADULT_WALLET_WEIGHT, RSK_MERCHANT_PRICES_ADULT_WALLET_WEIGHT,
RSK_MERCHANT_PRICES_GIANT_WALLET_WEIGHT, RSK_MERCHANT_PRICES_GIANT_WALLET_WEIGHT,
RSK_MERCHANT_PRICES_TYCOON_WALLET_WEIGHT, RSK_MERCHANT_PRICES_TYCOON_WALLET_WEIGHT,
RSK_MERCHANT_PRICES_AFFORDABLE}; RSK_MERCHANT_PRICES_AFFORDABLE, };
static void RemoveStartingItemsFromPool() { static void RemoveStartingItemsFromPool() {
for (RandomizerGet startingItem : StartingInventory) { for (RandomizerGet startingItem : StartingInventory) {

View file

@ -151,7 +151,8 @@ static constexpr std::array<double, 60> ShopPriceProbability= {
// Generate random number from 5 to wallet max // Generate random number from 5 to wallet max
int GetPriceFromMax(int max) { int GetPriceFromMax(int max) {
return Random(1, max) * 5; // random range of 1 - wallet max / 5, where wallet max is the highest it goes as a multiple of 5 // random range of 1 - wallet max / 5, where wallet max is the highest it goes as a multiple of 5
return Random(1, max) * 5;
} }
uint16_t GetPriceFromSettings(Rando::Location *loc, PriceSettingsStruct priceSettings) { uint16_t GetPriceFromSettings(Rando::Location *loc, PriceSettingsStruct priceSettings) {
@ -165,8 +166,9 @@ uint16_t GetPriceFromSettings(Rando::Location *loc, PriceSettingsStruct priceSet
double random = RandomDouble(); //Randomly generated probability value double random = RandomDouble(); //Randomly generated probability value
for (size_t i = 0; i < ShopPriceProbability.size(); i++) { for (size_t i = 0; i < ShopPriceProbability.size(); i++) {
if (random < ShopPriceProbability[i]) { if (random < ShopPriceProbability[i]) {
//The randomly generated value has surpassed the total probability up to this point, so this is the generated price // The randomly generated value has surpassed the total probability up to this point, so this is the generated price
return i * 5; //i in range [0, 59], output in range [0, 295] in increments of 5 // i in range [0, 59], output in range [0, 295] in increments of 5
return i * 5;
} }
} }
return 150; return 150;
@ -289,67 +291,67 @@ void InitTrickNames() {
trickNameTable[RG_KOKIRI_SWORD] = { trickNameTable[RG_KOKIRI_SWORD] = {
Text{"Korok Sword", "Épée Korok", "Espada Korok"}, Text{"Korok Sword", "Épée Korok", "Espada Korok"},
Text{"Hero's Sword", "Épée du Héros", "Espada del héroe"}, Text{"Hero's Sword", "Épée du Héros", "Espada del héroe"},
Text{"Razor Sword", "Lame Rasoir", "Espada de esmeril"} Text{"Razor Sword", "Lame Rasoir", "Espada de esmeril"},
}; };
trickNameTable[RG_MASTER_SWORD] = { trickNameTable[RG_MASTER_SWORD] = {
Text{"Goddess Sword", "Épée de la déesse", "Espada Divina"}, Text{"Goddess Sword", "Épée de la déesse", "Espada Divina"},
Text{"Gilded Sword", "Excalibur", "Espada de los Sabios"}, Text{"Gilded Sword", "Excalibur", "Espada de los Sabios"},
Text{"Magical Sword", "Lame dorée", "Fay"} Text{"Magical Sword", "Lame dorée", "Fay"},
}; };
trickNameTable[RG_GIANTS_KNIFE] = { trickNameTable[RG_GIANTS_KNIFE] = {
Text{"Medigoron's Sword", "l'Épée de Medigoron", "La espada de Medigoron"}, Text{"Medigoron's Sword", "l'Épée de Medigoron", "La espada de Medigoron"},
Text{"Razor Sword", "Lame Rasoir", "Espada de esmeril"}, Text{"Razor Sword", "Lame Rasoir", "Espada de esmeril"},
Text{"Royal Claymore", "Claymore Royale", "Royal Claymore"} Text{"Royal Claymore", "Claymore Royale", "Royal Claymore"},
}; };
trickNameTable[RG_BIGGORON_SWORD] = { trickNameTable[RG_BIGGORON_SWORD] = {
Text{"Power Sword", "Épée de Puissance", "Espada de poder"}, Text{"Power Sword", "Épée de Puissance", "Espada de poder"},
Text{"Fierce Deity Sword", "Épée du dieu démon", "Espada de la Fiera Deidad"}, Text{"Fierce Deity Sword", "Épée du dieu démon", "Espada de la Fiera Deidad"},
Text{"Tempered Sword", "Épée de Légende Nv.2", "Espada Maestra mejorada"}, Text{"Tempered Sword", "Épée de Légende Nv.2", "Espada Maestra mejorada"},
Text{"Biggoron's Knife", "Lame de Grogoron", "Daga de Biggoron"} Text{"Biggoron's Knife", "Lame de Grogoron", "Daga de Biggoron"},
}; };
trickNameTable[RG_DEKU_SHIELD] = { trickNameTable[RG_DEKU_SHIELD] = {
Text{"Boko Shield", "Bouclier Boko", "Escudo Boko"}, Text{"Boko Shield", "Bouclier Boko", "Escudo Boko"},
Text{"Ordon Shield", "Bouclier de Toal", "Escudo de Ordon"}, Text{"Ordon Shield", "Bouclier de Toal", "Escudo de Ordon"},
Text{"Wooden Shield", "Bouclier de Bois", "Escudo de madera"} Text{"Wooden Shield", "Bouclier de Bois", "Escudo de madera"},
}; };
trickNameTable[RG_HYLIAN_SHIELD] = { trickNameTable[RG_HYLIAN_SHIELD] = {
Text{"Hyrule Shield", "Bouclier d'Hyrule", "Escudo Hylian"}, Text{"Hyrule Shield", "Bouclier d'Hyrule", "Escudo Hylian"},
Text{"Goddess Shield", "Bouclier Sacré", "Escudo Divino"}, Text{"Goddess Shield", "Bouclier Sacré", "Escudo Divino"},
Text{"Hero's Shield", "Bouclier du Héros", "Escudo del héroe"} Text{"Hero's Shield", "Bouclier du Héros", "Escudo del héroe"},
}; };
trickNameTable[RG_MIRROR_SHIELD] = { trickNameTable[RG_MIRROR_SHIELD] = {
Text{"Magic Mirror", "Miroir Magique", "Escudo mágico"}, Text{"Magic Mirror", "Miroir Magique", "Escudo mágico"},
Text{"Magical Shield", "Bouclier Magique", "Escudo arcano"}, Text{"Magical Shield", "Bouclier Magique", "Escudo arcano"},
Text{"Mirror of Twilight", "Miroir des Ombres", "Espejo del Crepúsculo"} Text{"Mirror of Twilight", "Miroir des Ombres", "Espejo del Crepúsculo"},
}; };
trickNameTable[RG_GORON_TUNIC] = { trickNameTable[RG_GORON_TUNIC] = {
Text{"Gerudo Top", "Tunique Gerudo", "Pechera gerudo"}, Text{"Gerudo Top", "Tunique Gerudo", "Pechera gerudo"},
Text{"Flamebreaker Armor", "Armure de Pierre", " Armadura ignífuga"}, Text{"Flamebreaker Armor", "Armure de Pierre", " Armadura ignífuga"},
Text{"Red Mail", "Habits Rouges", "Ropas rojas"} Text{"Red Mail", "Habits Rouges", "Ropas rojas"},
}; };
trickNameTable[RG_ZORA_TUNIC] = { trickNameTable[RG_ZORA_TUNIC] = {
Text{"Rito Tunic", "Tunique Rito", "Sayo rito"}, Text{"Rito Tunic", "Tunique Rito", "Sayo rito"},
Text{"Mermaid Suit", "Costume de sirène", "Costume de sirène"}, Text{"Mermaid Suit", "Costume de sirène", "Costume de sirène"},
Text{"Zora Armor", "Armure Zora", "Túnica Zora"}, Text{"Zora Armor", "Armure Zora", "Túnica Zora"},
Text{"Blue Mail", "Habits Bleus", "Ropas azules"} Text{"Blue Mail", "Habits Bleus", "Ropas azules"},
}; };
trickNameTable[RG_IRON_BOOTS] = { trickNameTable[RG_IRON_BOOTS] = {
Text{"Iron Hoofs", "Patins de Plomb", "Botas férreas"}, Text{"Iron Hoofs", "Patins de Plomb", "Botas férreas"},
Text{"Snow Boots", "Bottes de Neige", "Botas de nieve"}, Text{"Snow Boots", "Bottes de Neige", "Botas de nieve"},
Text{"Red Boots", "Bottes rouges", "Botas rojas"}, Text{"Red Boots", "Bottes rouges", "Botas rojas"},
Text{"Zora Greaves", "Bottes Zora", "Zora Greaves"}, Text{"Zora Greaves", "Bottes Zora", "Zora Greaves"},
Text{"Boots of Power", "Bottes de Puissance", "Botas de plomo"} Text{"Boots of Power", "Bottes de Puissance", "Botas de plomo"},
}; };
trickNameTable[RG_HOVER_BOOTS] = { trickNameTable[RG_HOVER_BOOTS] = {
Text{"Hover Hoofs", "Patins des airs", "Botas flotadoras"}, Text{"Hover Hoofs", "Patins des airs", "Botas flotadoras"},
Text{"Golden Boots", "Bottes dorées", "Botas de Oro"}, Text{"Golden Boots", "Bottes dorées", "Botas de Oro"},
Text{"Pegasus Boots", "Bottes pégase", "Botas de Pegaso"}, Text{"Pegasus Boots", "Bottes pégase", "Botas de Pegaso"},
Text{"Boots of Speed", "Bottes de vitesse", "Botas del desierto"} Text{"Boots of Speed", "Bottes de vitesse", "Botas del desierto"},
}; };
trickNameTable[RG_WEIRD_EGG] = { trickNameTable[RG_WEIRD_EGG] = {
Text{"Poached Egg", "Oeuf à la coque", "Huevo pasado"}, Text{"Poached Egg", "Oeuf à la coque", "Huevo pasado"},
Text{"Lon Lon Egg", "Oeuf Lon Lon", "Huevo Lon Lon"}, Text{"Lon Lon Egg", "Oeuf Lon Lon", "Huevo Lon Lon"},
Text{"Zora Egg", "Oeuf Zora", "Huevo Zora"} Text{"Zora Egg", "Oeuf Zora", "Huevo Zora"},
}; };
trickNameTable[RG_ZELDAS_LETTER] = { trickNameTable[RG_ZELDAS_LETTER] = {
Text{"Ruto's Letter", "Lettre de Ruto", "Carta de Ruto"}, Text{"Ruto's Letter", "Lettre de Ruto", "Carta de Ruto"},
@ -357,109 +359,109 @@ void InitTrickNames() {
Text{"Zelda's Business Card", "Carte d'affaires de Zelda", "Carta"}, Text{"Zelda's Business Card", "Carte d'affaires de Zelda", "Carta"},
Text{"Letter to Kafei", "Lettre pour Kafei", "Carta para Kafei "}, Text{"Letter to Kafei", "Lettre pour Kafei", "Carta para Kafei "},
Text{"Goat's Letter", "Lettre de la Chèvre", "Carta de la Cabra"}, Text{"Goat's Letter", "Lettre de la Chèvre", "Carta de la Cabra"},
Text{"Maggie's Letter", "Lettre de Maggy", "Carta de Dolores"} Text{"Maggie's Letter", "Lettre de Maggy", "Carta de Dolores"},
}; };
trickNameTable[RG_BOOMERANG] = { trickNameTable[RG_BOOMERANG] = {
Text{"Banana", "Banane", "Plátano"}, Text{"Banana", "Banane", "Plátano"},
Text{"Prank Fetch Toy", "Inséparable Bâtonnet", "Bumerang"}, Text{"Prank Fetch Toy", "Inséparable Bâtonnet", "Bumerang"},
Text{"Gale Boomerang", "Boomerang Tornade", "Bumerán tornado"}, Text{"Gale Boomerang", "Boomerang Tornade", "Bumerán tornado"},
Text{"Magic Boomerang", "Boomerang Magique", "Bumerán mágico"} Text{"Magic Boomerang", "Boomerang Magique", "Bumerán mágico"},
}; };
trickNameTable[RG_LENS_OF_TRUTH] = { trickNameTable[RG_LENS_OF_TRUTH] = {
Text{"Sheikah-leidoscope", "Sheikah-léidoscope", "Monóculo de la Verdad"}, Text{"Sheikah-leidoscope", "Sheikah-léidoscope", "Monóculo de la Verdad"},
Text{"Sheikah Sensor", "Sonar Sheikah", "Sensor Sheikah"}, Text{"Sheikah Sensor", "Sonar Sheikah", "Sensor Sheikah"},
Text{"Crystal of Vision", "Cristal de Vision", "Cristal de Visión"}, Text{"Crystal of Vision", "Cristal de Vision", "Cristal de Visión"},
Text{"Magnifying Lens", "Loupe", "Lente Aumentadora"} Text{"Magnifying Lens", "Loupe", "Lente Aumentadora"},
}; };
trickNameTable[RG_MEGATON_HAMMER] = { trickNameTable[RG_MEGATON_HAMMER] = {
Text{"Goron Gavel", "Masse Perforatrice", "Mazo Goron"}, Text{"Goron Gavel", "Masse Perforatrice", "Mazo Goron"},
Text{"Magic Hammer", "Marteau Magique", "Martillo mágico"}, Text{"Magic Hammer", "Marteau Magique", "Martillo mágico"},
Text{"Skull Hammer", "Maillet Ressort", "Martillo de hierro"} Text{"Skull Hammer", "Maillet Ressort", "Martillo de hierro"},
}; };
trickNameTable[RG_STONE_OF_AGONY] = { trickNameTable[RG_STONE_OF_AGONY] = {
Text{"Cave Charm", "Charme de grotte", "Amuleto de la cueva"}, Text{"Cave Charm", "Charme de grotte", "Amuleto de la cueva"},
Text{"Stone of Agahnim", "Fragment d'Agahnim", "Piedra de Agahnim"}, Text{"Stone of Agahnim", "Fragment d'Agahnim", "Piedra de Agahnim"},
Text{"Shard of Agony", "Fragment de Souffrance", "Piedra de la Agonía"}, Text{"Shard of Agony", "Fragment de Souffrance", "Piedra de la Agonía"},
Text{"Pirate's Charm", "Pierre de Pirate", "Amuleto Pirata"} Text{"Pirate's Charm", "Pierre de Pirate", "Amuleto Pirata"},
}; };
trickNameTable[RG_DINS_FIRE] = { trickNameTable[RG_DINS_FIRE] = {
Text{"Eldin's Fire", "Feu d'Eldin", "Fuego de Eldin"}, Text{"Eldin's Fire", "Feu d'Eldin", "Fuego de Eldin"},
Text{"Din's Blaze", "Flamme de Din", "Poder de Din"}, Text{"Din's Blaze", "Flamme de Din", "Poder de Din"},
Text{"Magic Lantern", "Lanterne Magique", "Linterna mágica"}, Text{"Magic Lantern", "Lanterne Magique", "Linterna mágica"},
Text{"Ether Medallion", "Médaillon d'Éther", "Medallón de Tesoro"}, Text{"Ether Medallion", "Médaillon d'Éther", "Medallón de Tesoro"},
Text{"Bombos Medallion", "Médaillon des Flammes", "Medallón del Temblor"} Text{"Bombos Medallion", "Médaillon des Flammes", "Medallón del Temblor"},
}; };
trickNameTable[RG_FARORES_WIND] = { trickNameTable[RG_FARORES_WIND] = {
Text{"Faron's Wind", "Vent de Firone", "Viento de Farone"}, Text{"Faron's Wind", "Vent de Firone", "Viento de Farone"},
Text{"Farore's Windfall", "Zéphyr de Farore", "Valor de Farore"}, Text{"Farore's Windfall", "Zéphyr de Farore", "Valor de Farore"},
Text{"Tingle Air", "Tingle Air", "Tingle de aire"}, Text{"Tingle Air", "Tingle Air", "Tingle de aire"},
Text{"Travel Medallion", "Amulette de téléportation", "Medallón Maligno"}, Text{"Travel Medallion", "Amulette de téléportation", "Medallón Maligno"},
Text{"Irene's Taxi", "Le taxi d'Aëline", "El taxi de Airín"} Text{"Irene's Taxi", "Le taxi d'Aëline", "El taxi de Airín"},
}; };
trickNameTable[RG_NAYRUS_LOVE] = { trickNameTable[RG_NAYRUS_LOVE] = {
Text{"Lanayru's Love", "Amour de Lanelle", "Amor de Lanayru"}, Text{"Lanayru's Love", "Amour de Lanelle", "Amor de Lanayru"},
Text{"Nayru's Passion", "Passion de Nayru", "Sabiduría de Nayru"}, Text{"Nayru's Passion", "Passion de Nayru", "Sabiduría de Nayru"},
Text{"Tingle Shield", "Bouclier Tingle", "Escudo de hormigueo"}, Text{"Tingle Shield", "Bouclier Tingle", "Escudo de hormigueo"},
Text{"Shield Spell", "Bouclier Magique", "Hechizo de Protección"}, Text{"Shield Spell", "Bouclier Magique", "Hechizo de Protección"},
Text{"Magic Armor", "Armure Magique", "Armadura mágica"} Text{"Magic Armor", "Armure Magique", "Armadura mágica"},
}; };
trickNameTable[RG_FIRE_ARROWS] = { trickNameTable[RG_FIRE_ARROWS] = {
Text{"Fire Rod", "Baguette de feu", "Cetro de fuego"}, Text{"Fire Rod", "Baguette de feu", "Cetro de fuego"},
Text{"Bomb Arrow", "Flèche-Bombe", "Flecha bomba"}, Text{"Bomb Arrow", "Flèche-Bombe", "Flecha bomba"},
Text{"Red Candle", "Bougie Rouge", "Vela roja"} Text{"Red Candle", "Bougie Rouge", "Vela roja"},
}; };
trickNameTable[RG_ICE_ARROWS] = { trickNameTable[RG_ICE_ARROWS] = {
Text{"Ice Rod", "Baguette des Glaces", "Cetro de Hielo"}, Text{"Ice Rod", "Baguette des Glaces", "Cetro de Hielo"},
Text{"Ancient Arrow", "Flèche Archéonique", "Flecha ancestral"}, Text{"Ancient Arrow", "Flèche Archéonique", "Flecha ancestral"},
Text{"Ice Trap Arrow", "Flèche de Piège de Glace", "Cetro de hielo"} Text{"Ice Trap Arrow", "Flèche de Piège de Glace", "Cetro de hielo"},
}; };
trickNameTable[RG_LIGHT_ARROWS] = { trickNameTable[RG_LIGHT_ARROWS] = {
Text{"Wind Arrow", "Flèche de Vent", "Flecha del Viento"}, Text{"Wind Arrow", "Flèche de Vent", "Flecha del Viento"},
Text{"Wand of Gamelon", "Baguette de Gamelon", "Varita de Gamelón"}, Text{"Wand of Gamelon", "Baguette de Gamelon", "Varita de Gamelón"},
Text{"Shock Arrow", "Flèches Électriques", "Flecha eléctrica"}, Text{"Shock Arrow", "Flèches Électriques", "Flecha eléctrica"},
Text{"Silver Arrow", "Flèches d'Argent", "Flecha de plata"} Text{"Silver Arrow", "Flèches d'Argent", "Flecha de plata"},
}; };
trickNameTable[RG_GERUDO_MEMBERSHIP_CARD] = { trickNameTable[RG_GERUDO_MEMBERSHIP_CARD] = {
Text{"Desert Title Deed", "Abonnement Gerudo", "Escritura del desierto"}, Text{"Desert Title Deed", "Abonnement Gerudo", "Escritura del desierto"},
Text{"Sickle Moon Flag", "Drapeau du croissant de lune", "Bandera de la Luna Creciente"}, Text{"Sickle Moon Flag", "Drapeau du croissant de lune", "Bandera de la Luna Creciente"},
Text{"Complimentary ID", "Bon de félicitation", "Cupón especial"}, Text{"Complimentary ID", "Bon de félicitation", "Cupón especial"},
Text{"Gerudo's Card", "Carte Goron", "Tóken Gerudo"}, Text{"Gerudo's Card", "Carte Goron", "Tóken Gerudo"},
Text{"Gerudo's Membership Card", "Autographe de Nabooru", "Tarjeta Gerudo"} Text{"Gerudo's Membership Card", "Autographe de Nabooru", "Tarjeta Gerudo"},
}; };
trickNameTable[RG_MAGIC_BEAN_PACK] = { trickNameTable[RG_MAGIC_BEAN_PACK] = {
Text{"Funky Bean Pack", "Paquet de Fèves Magiques", "Lote de frijoles mágicos"}, Text{"Funky Bean Pack", "Paquet de Fèves Magiques", "Lote de frijoles mágicos"},
Text{"Grapple Berries", "Baies de grappin", "Bayas de garfio"}, Text{"Grapple Berries", "Baies de grappin", "Bayas de garfio"},
Text{"Crenel Bean Pack", "Paquet de Haricots Gonggle", "Lote de alubias mágicas"}, Text{"Crenel Bean Pack", "Paquet de Haricots Gonggle", "Lote de alubias mágicas"},
Text{"Mystical Seed Pack", "Pack de graines mystiques", "Paquete de semillas místicas"} Text{"Mystical Seed Pack", "Pack de graines mystiques", "Paquete de semillas místicas"},
}; };
trickNameTable[RG_DOUBLE_DEFENSE] = { trickNameTable[RG_DOUBLE_DEFENSE] = {
Text{"Diamond Hearts", "Coeurs de Diamant", "Contenedor de diamante"}, Text{"Diamond Hearts", "Coeurs de Diamant", "Contenedor de diamante"},
Text{"Double Damage", "Double Souffrance", "Doble daño receptivo"}, Text{"Double Damage", "Double Souffrance", "Doble daño receptivo"},
Text{"Quadruple Defence", "Quadruple Défence", "Defensa cuádruple"} Text{"Quadruple Defence", "Quadruple Défence", "Defensa cuádruple"},
}; };
trickNameTable[RG_POCKET_EGG] = { trickNameTable[RG_POCKET_EGG] = {
Text{"Arpagos Egg", "Oeuf d'Arpagos", "Huevo de Arpagos"}, Text{"Arpagos Egg", "Oeuf d'Arpagos", "Huevo de Arpagos"},
Text{"Lon Lon Egg", "oeuf Lon Lon", "Huevo Lon Lon"}, Text{"Lon Lon Egg", "oeuf Lon Lon", "Huevo Lon Lon"},
Text{"Zora Egg", "oeuf Zora", "Huevo del Pez Viento"} Text{"Zora Egg", "oeuf Zora", "Huevo del Pez Viento"},
}; };
trickNameTable[RG_POCKET_EGG] = { trickNameTable[RG_POCKET_EGG] = {
Text{"D.I.Y. Alarm Clock", "Réveille-matin improvisé", "Alarma emplumada portátil"}, Text{"D.I.Y. Alarm Clock", "Réveille-matin improvisé", "Alarma emplumada portátil"},
Text{"Kakariko Cucco", "Cocotte Cocorico", "Cuco de Kakariko"}, Text{"Kakariko Cucco", "Cocotte Cocorico", "Cuco de Kakariko"},
Text{"Hatched Cucco", "Cocotte éclose", "Pollo de bolsillo"} Text{"Hatched Cucco", "Cocotte éclose", "Pollo de bolsillo"},
}; };
trickNameTable[RG_COJIRO] = { trickNameTable[RG_COJIRO] = {
Text{"Blucco", "Chair-Qui-Poule", "Cucazul"}, Text{"Blucco", "Chair-Qui-Poule", "Cucazul"},
Text{"Piyoko", "Piyoko", "Piyoko"}, Text{"Piyoko", "Piyoko", "Piyoko"},
Text{"Dark Cucco", "Cocotte Sombre", "Cucco oscuro"}, Text{"Dark Cucco", "Cocotte Sombre", "Cucco oscuro"},
Text{"Grog's Cucco", "Cocotte de Grog", "Cuco de Grog"} Text{"Grog's Cucco", "Cocotte de Grog", "Cuco de Grog"},
}; };
trickNameTable[RG_ODD_MUSHROOM] = { trickNameTable[RG_ODD_MUSHROOM] = {
Text{"Magic Mushroom", "Champignon magique", "Champiñón mágico"}, Text{"Magic Mushroom", "Champignon magique", "Champiñón mágico"},
Text{"Endura Shroom", "Champi Vigueur", "Champiñón del bosque"}, Text{"Endura Shroom", "Champi Vigueur", "Champiñón del bosque"},
Text{"Sleepy Toadstool", "Crapaud Fatigué", "Seta durmiente"}, Text{"Sleepy Toadstool", "Crapaud Fatigué", "Seta durmiente"},
Text{"Mushroom", "Champignon", "Seta"} Text{"Mushroom", "Champignon", "Seta"},
}; };
trickNameTable[RG_ODD_POTION] = { trickNameTable[RG_ODD_POTION] = {
Text{"Odd Medicine", "Élixir suspect", "Poción rara"}, Text{"Odd Medicine", "Élixir suspect", "Poción rara"},
@ -467,21 +469,21 @@ void InitTrickNames() {
Text{"Mushroom Poultice", "Mixture de champignon", "Medicina de champiñones"}, Text{"Mushroom Poultice", "Mixture de champignon", "Medicina de champiñones"},
Text{"Secret Medicine", "Médicament", "Pócima secreta"}, Text{"Secret Medicine", "Médicament", "Pócima secreta"},
Text{"Mushroom Spores", "Spores de Champignons", "Esporas de hongos"}, Text{"Mushroom Spores", "Spores de Champignons", "Esporas de hongos"},
Text{"Hanyu Spore", "Hanyu Spore", "Espora Hanyu"} Text{"Hanyu Spore", "Hanyu Spore", "Espora Hanyu"},
}; };
trickNameTable[RG_POACHERS_SAW] = { trickNameTable[RG_POACHERS_SAW] = {
Text{"Carpenter's Saw", "Scie du charpentier", "Sierra del carpintero"}, Text{"Carpenter's Saw", "Scie du charpentier", "Sierra del carpintero"},
Text{"Poacher's Sword", "Hache du chasseur", "Espada del capataz"}, Text{"Poacher's Sword", "Hache du chasseur", "Espada del capataz"},
Text{"Ancient Bladesaw", "Longue Épée Archéonique", "Mandoble ancestral"}, Text{"Ancient Bladesaw", "Longue Épée Archéonique", "Mandoble ancestral"},
Text{"Woodcutter's Axe", "Hache du Bûcheron", "Hacha de leñador"}, Text{"Woodcutter's Axe", "Hache du Bûcheron", "Hacha de leñador"},
Text{"Grog's Saw", "Scie de Grog", "Sierra del Cazador Furtivo"} Text{"Grog's Saw", "Scie de Grog", "Sierra del Cazador Furtivo"},
}; };
trickNameTable[RG_BROKEN_SWORD] = { trickNameTable[RG_BROKEN_SWORD] = {
Text{"Broken Biggoron's Sword", "Épée brisée de Grogoron", "Espada de Biggoron rota"}, Text{"Broken Biggoron's Sword", "Épée brisée de Grogoron", "Espada de Biggoron rota"},
Text{"Broken Giant's Knife", "Lame des Géants brisée", "Daga gigante rota"}, Text{"Broken Giant's Knife", "Lame des Géants brisée", "Daga gigante rota"},
Text{"Broken Noble Sword", "Épée noble brisée", "Espada noble rota"}, Text{"Broken Noble Sword", "Épée noble brisée", "Espada noble rota"},
Text{"Broken Picori Blade", "Épée Minish brisée", "Espada minish rota"}, Text{"Broken Picori Blade", "Épée Minish brisée", "Espada minish rota"},
Text{"Decayed Master Sword", "Épée de légende pourrie", "Espada decadente de leyenda"} Text{"Decayed Master Sword", "Épée de légende pourrie", "Espada decadente de leyenda"},
}; };
trickNameTable[RG_PRESCRIPTION] = { trickNameTable[RG_PRESCRIPTION] = {
Text{"Biggoron's Prescription", "Ordonnance de Grogoron", "Receta de Biggoron"}, Text{"Biggoron's Prescription", "Ordonnance de Grogoron", "Receta de Biggoron"},
@ -489,26 +491,26 @@ void InitTrickNames() {
Text{"Urgent Prescription", "Ordonnance urgente", "Prescripción"}, Text{"Urgent Prescription", "Ordonnance urgente", "Prescripción"},
Text{"Swordsman's Scroll", "Précis d'escrime", "Esgrimidorium"}, Text{"Swordsman's Scroll", "Précis d'escrime", "Esgrimidorium"},
Text{"Portrait of Oren", "Portrait d'Orlène", "Retrato de Oren"}, Text{"Portrait of Oren", "Portrait d'Orlène", "Retrato de Oren"},
Text{"Letter to King Zora", "Lettre au roi Zora", "Carta al Rey Zora"} Text{"Letter to King Zora", "Lettre au roi Zora", "Carta al Rey Zora"},
}; };
trickNameTable[RG_EYEBALL_FROG] = { trickNameTable[RG_EYEBALL_FROG] = {
Text{"Don Gero", "Don Gero", "Don Gero"}, Text{"Don Gero", "Don Gero", "Don Gero"},
Text{"Hot-Footed Frog", "Grenouille à pieds chauds", "Rana de patas calientes"}, Text{"Hot-Footed Frog", "Grenouille à pieds chauds", "Rana de patas calientes"},
Text{"Lost Swordsmith", "Forgeron perdu", "Espadachín perdido"}, Text{"Lost Swordsmith", "Forgeron perdu", "Espadachín perdido"},
Text{"Eyedrop Frog", "Grenouille-qui-louche", "Globo Ocular de Rana"} Text{"Eyedrop Frog", "Grenouille-qui-louche", "Globo Ocular de Rana"},
}; };
trickNameTable[RG_EYEDROPS] = { trickNameTable[RG_EYEDROPS] = {
Text{"Biggoron's Eyedrops", "Gouttes de Grogoron", "Gotas de Biggoron"}, Text{"Biggoron's Eyedrops", "Gouttes de Grogoron", "Gotas de Biggoron"},
Text{"Hyrule's Finest Eyedrops", "Eau du Lac Hylia", "Gotas oculares"}, Text{"Hyrule's Finest Eyedrops", "Eau du Lac Hylia", "Gotas oculares"},
Text{"Moon's Tear", "Larme de Lune", "Lágrima de Luna"}, Text{"Moon's Tear", "Larme de Lune", "Lágrima de Luna"},
Text{"Engine Grease", "Graisse moteur", "Grasa del motor"}, Text{"Engine Grease", "Graisse moteur", "Grasa del motor"},
Text{"Zora Perfume", "Parfum Zora", "Perfume Zora"} Text{"Zora Perfume", "Parfum Zora", "Perfume Zora"},
}; };
trickNameTable[RG_CLAIM_CHECK] = { trickNameTable[RG_CLAIM_CHECK] = {
Text{"Clay Check", "Certificat Grogoron", "Comprobante de Reclamación"}, Text{"Clay Check", "Certificat Grogoron", "Comprobante de Reclamación"},
Text{"Ancient Tablet", "Stèle ancienne", "Litografía arcana"}, Text{"Ancient Tablet", "Stèle ancienne", "Litografía arcana"},
Text{"Sheikah Slate", "Tablette Sheikah", "Piedra Sheikah"}, Text{"Sheikah Slate", "Tablette Sheikah", "Piedra Sheikah"},
Text{"Cyclone Slate", "Ardoise des tornades", "Pizarra de los Torbellinos"} Text{"Cyclone Slate", "Ardoise des tornades", "Pizarra de los Torbellinos"},
}; };
trickNameTable[RG_GOLD_SKULLTULA_TOKEN] = { trickNameTable[RG_GOLD_SKULLTULA_TOKEN] = {
@ -517,19 +519,19 @@ void InitTrickNames() {
Text{"Gold Walltula Token", "Jeton de Walltula dorée", "Skulltula dorada"}, Text{"Gold Walltula Token", "Jeton de Walltula dorée", "Skulltula dorada"},
Text{"Maiamai", "Ti'gorneau", "Maimai"}, Text{"Maiamai", "Ti'gorneau", "Maimai"},
Text{"Gratitude Crystal", "Cristal de gratitude", "Gema de gratitud"}, Text{"Gratitude Crystal", "Cristal de gratitude", "Gema de gratitud"},
Text{"Korok Seed", "Noix korogu", "Semilla de kolog"} Text{"Korok Seed", "Noix korogu", "Semilla de kolog"},
}; };
trickNameTable[RG_PROGRESSIVE_HOOKSHOT] = { trickNameTable[RG_PROGRESSIVE_HOOKSHOT] = {
Text{"Progressive Grappling Hook", "Lance-chaîne (prog.)", "Garra progresiva"}, Text{"Progressive Grappling Hook", "Lance-chaîne (prog.)", "Garra progresiva"},
Text{"Progressive Clawshot", "Grappin-griffe (prog.)", "Zarpa progresiva"}, Text{"Progressive Clawshot", "Grappin-griffe (prog.)", "Zarpa progresiva"},
Text{"Progressive Gripshot", "Grappince (prog.)", "Enganchador progresivo"}, Text{"Progressive Gripshot", "Grappince (prog.)", "Enganchador progresivo"},
Text{"Progressive Rope", "Corde (prog.)", "Cuerda progresivo"} Text{"Progressive Rope", "Corde (prog.)", "Cuerda progresivo"},
}; };
trickNameTable[RG_PROGRESSIVE_STRENGTH] = { trickNameTable[RG_PROGRESSIVE_STRENGTH] = {
Text{"Power Glove", "Gant de Puissance (prog.)", "Guanteletes progresivos"}, Text{"Power Glove", "Gant de Puissance (prog.)", "Guanteletes progresivos"},
Text{"Power Bracelet", "Bracelet de Force (prog.)", "Brasaletes progresivos"}, Text{"Power Bracelet", "Bracelet de Force (prog.)", "Brasaletes progresivos"},
Text{"Magic Bracelet", "Bracelet Magique (prog.)", "Manoplas progresivas"} Text{"Magic Bracelet", "Bracelet Magique (prog.)", "Manoplas progresivas"},
}; };
trickNameTable[RG_PROGRESSIVE_BOMB_BAG] = { trickNameTable[RG_PROGRESSIVE_BOMB_BAG] = {
Text{"Progressive Bomb Capacity", "Capacité de bombes (prog.)", "Mayor capacidad de bombas"}, Text{"Progressive Bomb Capacity", "Capacité de bombes (prog.)", "Mayor capacidad de bombas"},
@ -537,7 +539,7 @@ void InitTrickNames() {
Text{"Progressive Bomb Box", "Boîte à bombes (prog.)", "Bolsa de bombas progresiva"}, Text{"Progressive Bomb Box", "Boîte à bombes (prog.)", "Bolsa de bombas progresiva"},
Text{"Progressive Blast Mask", "Masque d'Explosion (prog.)", "Máscara explosiva progresiva"}, Text{"Progressive Blast Mask", "Masque d'Explosion (prog.)", "Máscara explosiva progresiva"},
Text{"Progressive Powder Kegs", "Baril de Poudre (prog.)", "Barril de polvo progresivo"}, Text{"Progressive Powder Kegs", "Baril de Poudre (prog.)", "Barril de polvo progresivo"},
Text{"Progressive Remote Bombs", "Bombes à distance (prog.)", "Bombas remotas progresivas"} Text{"Progressive Remote Bombs", "Bombes à distance (prog.)", "Bombas remotas progresivas"},
}; };
trickNameTable[RG_PROGRESSIVE_BOW] = { trickNameTable[RG_PROGRESSIVE_BOW] = {
Text{"Progressive Arrow Capacity", "Capacité de flèches (prog.)", "Mayor capacidad de flechas"}, Text{"Progressive Arrow Capacity", "Capacité de flèches (prog.)", "Mayor capacidad de flechas"},
@ -545,14 +547,14 @@ void InitTrickNames() {
Text{"Progressive Arrow Holder", "Arbalète (prog.)", "Ballesta progresiva"}, Text{"Progressive Arrow Holder", "Arbalète (prog.)", "Ballesta progresiva"},
Text{"Progressive Crossbow", "Arbalète (prog.)", "Ballesta progresiva"}, Text{"Progressive Crossbow", "Arbalète (prog.)", "Ballesta progresiva"},
Text{"Progressive Sacred Bow", "Arc sacré (prog)", "Arco Sagrado Progresivo"}, Text{"Progressive Sacred Bow", "Arc sacré (prog)", "Arco Sagrado Progresivo"},
Text{"Progressive Lynel Bow", "Arc de Lynel (prog.)", "Arco de centaleón Progresivo"} Text{"Progressive Lynel Bow", "Arc de Lynel (prog.)", "Arco de centaleón Progresivo"},
}; };
trickNameTable[RG_PROGRESSIVE_SLINGSHOT] = { trickNameTable[RG_PROGRESSIVE_SLINGSHOT] = {
Text{"Progressive Seed Capacity", "Capacité de graines (prog.)", "Mayor capacidad de semillas"}, Text{"Progressive Seed Capacity", "Capacité de graines (prog.)", "Mayor capacidad de semillas"},
Text{"Progressive Catapult", "Catapulte (prog.)", "Catapulta progresiva"}, Text{"Progressive Catapult", "Catapulte (prog.)", "Catapulta progresiva"},
Text{"Progressive Scattershot", "Lance-Pierre rafale (prog.)", "Resortera múltiple progresiva"}, Text{"Progressive Scattershot", "Lance-Pierre rafale (prog.)", "Resortera múltiple progresiva"},
Text{"Progressive Seed Launcher", "Lanceur de semences (prog.)", "Lanzador de semillas progresivo"}, Text{"Progressive Seed Launcher", "Lanceur de semences (prog.)", "Lanzador de semillas progresivo"},
Text{"Progressive Seed Satchel", "Sac de graines (prog.)", "Bolsa de semillas progresiva"} Text{"Progressive Seed Satchel", "Sac de graines (prog.)", "Bolsa de semillas progresiva"},
}; };
trickNameTable[RG_PROGRESSIVE_WALLET] = { trickNameTable[RG_PROGRESSIVE_WALLET] = {
Text{"Progressive Rupee Capacity", "Capacité de rubis (prog.)", "Mayor capacidad de rupias"}, Text{"Progressive Rupee Capacity", "Capacité de rubis (prog.)", "Mayor capacidad de rupias"},
@ -560,45 +562,45 @@ void InitTrickNames() {
Text{"Progressive Rupee Bag", "Sac à rubis (prog.)", "Zurrón de rupias progresivo"}, Text{"Progressive Rupee Bag", "Sac à rubis (prog.)", "Zurrón de rupias progresivo"},
Text{"Progressive Rupoor Capacity", "Capacité de Roupir (prog.)", "Capacidad progresiva Rupobre"}, Text{"Progressive Rupoor Capacity", "Capacité de Roupir (prog.)", "Capacidad progresiva Rupobre"},
Text{"Progressive Spoils Bag", "Sac à Butin (prog.)", "Bolsa de trofeos progresiva"}, Text{"Progressive Spoils Bag", "Sac à Butin (prog.)", "Bolsa de trofeos progresiva"},
Text{"Progressive Ruby Bag", "Capacité du sac Ruby (prog.)", "Bolso Ruby progresivo"} Text{"Progressive Ruby Bag", "Capacité du sac Ruby (prog.)", "Bolso Ruby progresivo"},
}; };
trickNameTable[RG_PROGRESSIVE_SCALE] = { trickNameTable[RG_PROGRESSIVE_SCALE] = {
Text{"Progressive Flippers", "Palmes de Zora (prog.)", "Aletas de zora progresiva"}, Text{"Progressive Flippers", "Palmes de Zora (prog.)", "Aletas de zora progresiva"},
Text{"Progressive Dragon's Scale", "Écaille du dragon d'eau (prog.)", "Escama dragón acuático progresiva"}, Text{"Progressive Dragon's Scale", "Écaille du dragon d'eau (prog.)", "Escama dragón acuático progresiva"},
Text{"Progressive Diving Ability", "Plongée (prog.)", "Buceo progresivo"}, Text{"Progressive Diving Ability", "Plongée (prog.)", "Buceo progresivo"},
Text{"Progressive Pearl", "Perle (prog.)", "Perla progresiva"}, Text{"Progressive Pearl", "Perle (prog.)", "Perla progresiva"},
Text{"Progressive Scute", "Bulle (prog.)", "Fragmento Zora progresivo"} Text{"Progressive Scute", "Bulle (prog.)", "Fragmento Zora progresivo"},
}; };
trickNameTable[RG_PROGRESSIVE_NUT_UPGRADE] = { trickNameTable[RG_PROGRESSIVE_NUT_UPGRADE] = {
Text{"Progressive Nut Pack", "Paquet de noix (prog.)", "Mayor capacidad de semillas"}, Text{"Progressive Nut Pack", "Paquet de noix (prog.)", "Mayor capacidad de semillas"},
Text{"Progressive Bait Bag", "Sac à Appâts (prog.)", "Bolsa de cebo progresiva"}, Text{"Progressive Bait Bag", "Sac à Appâts (prog.)", "Bolsa de cebo progresiva"},
Text{"Progressive Pear Capacity", "Capacité de poire (prog.)", "Capacidad progresiva de pera"}, Text{"Progressive Pear Capacity", "Capacité de poire (prog.)", "Capacidad progresiva de pera"},
Text{"Progressive Nut Bag", "Sac de noix (prog.)", "Bolsa de nueces progresiva"}, Text{"Progressive Nut Bag", "Sac de noix (prog.)", "Bolsa de nueces progresiva"},
Text{"Progressive Husk Capacity", "Capacité de noisettes (prog.)", "Mayor capacidad de castañas"} Text{"Progressive Husk Capacity", "Capacité de noisettes (prog.)", "Mayor capacidad de castañas"},
}; };
trickNameTable[RG_PROGRESSIVE_STICK_UPGRADE] = { trickNameTable[RG_PROGRESSIVE_STICK_UPGRADE] = {
Text{"Progressive Stick Bag", "Sac de bâtons (prog.)", "Mayor capacidad de ramas deku"}, Text{"Progressive Stick Bag", "Sac de bâtons (prog.)", "Mayor capacidad de ramas deku"},
Text{"Progressive Stick Pack", "Paquet de bâtons Mojo (prog.)", "Mayor capacidad de bastones"}, Text{"Progressive Stick Pack", "Paquet de bâtons Mojo (prog.)", "Mayor capacidad de bastones"},
Text{"Progressive Branch Capacity", "Capacité de la succursale (prog.)", "Capacidad progresiva de la sucursal"}, Text{"Progressive Branch Capacity", "Capacité de la succursale (prog.)", "Capacidad progresiva de la sucursal"},
Text{"Progressive Rod Capacity", "Capacité de tiges (prog.)", "Mayor capacidad de cetros deku"} Text{"Progressive Rod Capacity", "Capacité de tiges (prog.)", "Mayor capacidad de cetros deku"},
}; };
trickNameTable[RG_PROGRESSIVE_BOMBCHUS] = { trickNameTable[RG_PROGRESSIVE_BOMBCHUS] = {
Text{"Progressive Bomblings", "Bombinsectes (prog.)", "Bombinsectos progresivos"}, Text{"Progressive Bomblings", "Bombinsectes (prog.)", "Bombinsectos progresivos"},
Text{"Progressive Sentrobe Bombs", "Bombe de Sphérodrone (prog.)", "Bomba de helicobot progresivo"}, Text{"Progressive Sentrobe Bombs", "Bombe de Sphérodrone (prog.)", "Bomba de helicobot progresivo"},
Text{"Progressive Bomb-ombs", "Bombe Soldat (prog.)", "Soldado bomba progresivo"}, Text{"Progressive Bomb-ombs", "Bombe Soldat (prog.)", "Soldado bomba progresivo"},
Text{"Progressive Missiles", "Missiles (prog.)", "Misiles progresivos"}, Text{"Progressive Missiles", "Missiles (prog.)", "Misiles progresivos"},
Text{"Progressive Bombchu Bag", "Sac à Bombchu (prog.)", "Bombachus progresivos"} Text{"Progressive Bombchu Bag", "Sac à Bombchu (prog.)", "Bombachus progresivos"},
}; };
trickNameTable[RG_PROGRESSIVE_MAGIC_METER] = { trickNameTable[RG_PROGRESSIVE_MAGIC_METER] = {
Text{"Progressive Stamina Meter", "Jauge d'endurance (prog.)", "Medidor de vigor progresivo"}, Text{"Progressive Stamina Meter", "Jauge d'endurance (prog.)", "Medidor de vigor progresivo"},
Text{"Progressive Energy Gauge", "Jauge d'énergie (prog.)", "Medidor de energía progresivo"}, Text{"Progressive Energy Gauge", "Jauge d'énergie (prog.)", "Medidor de energía progresivo"},
Text{"Progressive Magic Powder", "Poudre magique (prog.)", "Medidor de carga progresivo"} Text{"Progressive Magic Powder", "Poudre magique (prog.)", "Medidor de carga progresivo"},
}; };
trickNameTable[RG_PROGRESSIVE_OCARINA] = { trickNameTable[RG_PROGRESSIVE_OCARINA] = {
Text{"Progressive Memento", "Souvenir (prog.)", "Silbato progresivo"}, Text{"Progressive Memento", "Souvenir (prog.)", "Silbato progresivo"},
Text{"Progressive Whistle", "Siffler (prog.)", "Silbido progresivo"}, Text{"Progressive Whistle", "Siffler (prog.)", "Silbido progresivo"},
Text{"Progressive Flute", "Flûte (prog.)", "Flauta progresiva"}, Text{"Progressive Flute", "Flûte (prog.)", "Flauta progresiva"},
Text{"Progressive Recorder", "Harmonica (prog.)", "Armónica progresiva"} Text{"Progressive Recorder", "Harmonica (prog.)", "Armónica progresiva"},
}; };
trickNameTable[RG_PROGRESSIVE_GORONSWORD] = { trickNameTable[RG_PROGRESSIVE_GORONSWORD] = {
Text{"Progressive Titan Blade", "Lame des Titans (prog.)", "Hoja del Titán progresiva"}, Text{"Progressive Titan Blade", "Lame des Titans (prog.)", "Hoja del Titán progresiva"},
@ -606,7 +608,7 @@ void InitTrickNames() {
Text{"Progressive Giant Sword", "Épée géante (prog.)", "Espada gigante progresiva"}, Text{"Progressive Giant Sword", "Épée géante (prog.)", "Espada gigante progresiva"},
Text{"Progressive Darknut Sword", "Épée de Darknut (prog.)", "Espada Darknut progresiva"}, Text{"Progressive Darknut Sword", "Épée de Darknut (prog.)", "Espada Darknut progresiva"},
Text{"Progressive Power Sword", "Épée de Puissance (prog.)", "Espada de poder progresiva"}, Text{"Progressive Power Sword", "Épée de Puissance (prog.)", "Espada de poder progresiva"},
Text{"Progressive Big Stabby", "Gros coup de poignard (prog.)", "Gran puñalada progresiva"} Text{"Progressive Big Stabby", "Gros coup de poignard (prog.)", "Gran puñalada progresiva"},
}; };
trickNameTable[RG_EMPTY_BOTTLE] = { trickNameTable[RG_EMPTY_BOTTLE] = {
@ -615,7 +617,7 @@ void InitTrickNames() {
Text{"Tingle Bottle", "Flacon de Tingle", "Botella de Tingle"}, Text{"Tingle Bottle", "Flacon de Tingle", "Botella de Tingle"},
Text{"Magic Bottle", "Flacon magique", "Frasco feérico"}, Text{"Magic Bottle", "Flacon magique", "Frasco feérico"},
Text{"Glass Bottle", "Flacon de verre", "Botella de cristal"}, Text{"Glass Bottle", "Flacon de verre", "Botella de cristal"},
Text{"Bottle with Water", "Flacon d'eau", "Botella Tingle"} Text{"Bottle with Water", "Flacon d'eau", "Botella Tingle"},
}; };
trickNameTable[RG_BOTTLE_WITH_MILK] = { trickNameTable[RG_BOTTLE_WITH_MILK] = {
Text{"Bottle with Chateau Romani", "Flacon de cuvée Romani", "Botella de Reserva Romani"}, Text{"Bottle with Chateau Romani", "Flacon de cuvée Romani", "Botella de Reserva Romani"},
@ -626,121 +628,121 @@ void InitTrickNames() {
Text{"Bottle with Red Chu Jelly", "Flacon de gelée Chuchu rouge", "Jugo de Chuchu Rojo"}, Text{"Bottle with Red Chu Jelly", "Flacon de gelée Chuchu rouge", "Jugo de Chuchu Rojo"},
Text{"Bottle with Hibiscus Potion", "Flacon de potion de Hibiscus", "Botella de poción de Hibisco"}, Text{"Bottle with Hibiscus Potion", "Flacon de potion de Hibiscus", "Botella de poción de Hibisco"},
Text{"Bottle with Medicine of Life", "Flacon d'élixir rouge", "Botella de medicina de la vida"}, Text{"Bottle with Medicine of Life", "Flacon d'élixir rouge", "Botella de medicina de la vida"},
Text{"Bottle with Heart Potion", "Flacon de potion de soin", "Botella de poción de salud"} Text{"Bottle with Heart Potion", "Flacon de potion de soin", "Botella de poción de salud"},
}; };
trickNameTable[RG_BOTTLE_WITH_GREEN_POTION] = { trickNameTable[RG_BOTTLE_WITH_GREEN_POTION] = {
Text{"Bottle with Green Chu Jelly", "Flacon de gelée Chuchu verte", "Jugo de Chuchu Verde"}, Text{"Bottle with Green Chu Jelly", "Flacon de gelée Chuchu verte", "Jugo de Chuchu Verde"},
Text{"Bottle with Lamp Oil", "Flacon de Huile à lanterne", "Botella de Aceite de candil "}, Text{"Bottle with Lamp Oil", "Flacon de Huile à lanterne", "Botella de Aceite de candil "},
Text{"Bottle with Medicine of Magic", "Flacon d'élixir vert", "Botella de medicina mágica"}, Text{"Bottle with Medicine of Magic", "Flacon d'élixir vert", "Botella de medicina mágica"},
Text{"Bottle with Stamina Potion", "Flacon d'Endurol", "Botella de elixir vigorizante"} Text{"Bottle with Stamina Potion", "Flacon d'Endurol", "Botella de elixir vigorizante"},
}; };
trickNameTable[RG_BOTTLE_WITH_BLUE_POTION] = { trickNameTable[RG_BOTTLE_WITH_BLUE_POTION] = {
Text{"Bottle with Blue Chu Jelly", "Flacon de gelée Chuchu bleue", "Jugo de Chuchu Azul"}, Text{"Bottle with Blue Chu Jelly", "Flacon de gelée Chuchu bleue", "Jugo de Chuchu Azul"},
Text{"Bottle with Water of Life", "Flacon d'élixir bleu", "Botella de agua de la vida"}, Text{"Bottle with Water of Life", "Flacon d'élixir bleu", "Botella de agua de la vida"},
Text{"Bottle with Air Potion", "Flacon de potion d'oxygène", "Botella de oxígeno"} Text{"Bottle with Air Potion", "Flacon de potion d'oxygène", "Botella de oxígeno"},
}; };
trickNameTable[RG_BOTTLE_WITH_FAIRY] = { trickNameTable[RG_BOTTLE_WITH_FAIRY] = {
Text{"Bottle with Forest Firefly", "Flacon avec une luciole", "Luciérnaga del bosque"}, Text{"Bottle with Forest Firefly", "Flacon avec une luciole", "Luciérnaga del bosque"},
Text{"Bottle with Deku Princess", "Flacon avec Deku Princess", "Botella con Deku Princess"}, Text{"Bottle with Deku Princess", "Flacon avec Deku Princess", "Botella con Deku Princess"},
Text{"Bottle with Stray Fairy", "Flacon avec une fée perdue", "Hada perdida en una botella"} Text{"Bottle with Stray Fairy", "Flacon avec une fée perdue", "Hada perdida en una botella"},
}; };
trickNameTable[RG_BOTTLE_WITH_FISH] = { trickNameTable[RG_BOTTLE_WITH_FISH] = {
Text{"Bottle with Small Jabu-Jabu", "Flacon avec mini Jabu-Jabu", "Lord Chapu-Chapu embotellado"}, Text{"Bottle with Small Jabu-Jabu", "Flacon avec mini Jabu-Jabu", "Lord Chapu-Chapu embotellado"},
Text{"Bottle with Reekfish", "Flacon avec Reekfish", "Reekfish embotellada"}, Text{"Bottle with Reekfish", "Flacon avec Reekfish", "Reekfish embotellada"},
Text{"Bottle with Hyrule Bass", "Flacon avec perche d'Hyrule", "Locha de Hyrule embotellada"}, Text{"Bottle with Hyrule Bass", "Flacon avec perche d'Hyrule", "Locha de Hyrule embotellada"},
Text{"Bottle with Hyrule Loach", "Flacon avec loche d'Hyrule", "Perca de Términa embotellada"} Text{"Bottle with Hyrule Loach", "Flacon avec loche d'Hyrule", "Perca de Términa embotellada"},
}; };
trickNameTable[RG_BOTTLE_WITH_BLUE_FIRE] = { trickNameTable[RG_BOTTLE_WITH_BLUE_FIRE] = {
Text{"Bottle with Will-O-Wisp", "Flacon avec feu follet", "Botella de llama azul"}, Text{"Bottle with Will-O-Wisp", "Flacon avec feu follet", "Botella de llama azul"},
Text{"Bottle with Ancient Flame", "Flacon de flamme ancienne", "Botella de fuego ancestral"}, Text{"Bottle with Ancient Flame", "Flacon de flamme ancienne", "Botella de fuego ancestral"},
Text{"Bottle with a Blue Candle", "Flacon avec une bougie bleue", "Botella con una vela azul"}, Text{"Bottle with a Blue Candle", "Flacon avec une bougie bleue", "Botella con una vela azul"},
Text{"Bottle with Red Ice", "Flacon de Glace Rouge", "Botella de Hielo rojo"}, Text{"Bottle with Red Ice", "Flacon de Glace Rouge", "Botella de Hielo rojo"},
Text{"Bottle with Nayru's Flame", "Flacon de flamme de Nayru", "Botella de llamas de Nayru"} Text{"Bottle with Nayru's Flame", "Flacon de flamme de Nayru", "Botella de llamas de Nayru"},
}; };
trickNameTable[RG_BOTTLE_WITH_BUGS] = { trickNameTable[RG_BOTTLE_WITH_BUGS] = {
Text{"Bottle with Baby Tektites", "Flacon de bébé Araknon", "Tektites en una botella"}, Text{"Bottle with Baby Tektites", "Flacon de bébé Araknon", "Tektites en una botella"},
Text{"Bottle with A Beetle", "Flacon avec un scarabée", "Botella con un escarabajo"}, Text{"Bottle with A Beetle", "Flacon avec un scarabée", "Botella con un escarabajo"},
Text{"Bottle with Lanayru Ants", "Flacon de fourmis de Lanelle", "Celestarabajo embotellado"}, Text{"Bottle with Lanayru Ants", "Flacon de fourmis de Lanelle", "Celestarabajo embotellado"},
Text{"Bottle with Insects", "Flacon de bibittes", "Saltabosques embotellados"}, Text{"Bottle with Insects", "Flacon de bibittes", "Saltabosques embotellados"},
Text{"Bottle with a Golden Bee", "Flacon avec une abeille dorée", "Botella con una abeja dorada"} Text{"Bottle with a Golden Bee", "Flacon avec une abeille dorée", "Botella con una abeja dorada"},
}; };
trickNameTable[RG_BOTTLE_WITH_POE] = { trickNameTable[RG_BOTTLE_WITH_POE] = {
Text{"Bottle with Ghini", "Flacon avec Ghini", "Ghini en una botella"}, Text{"Bottle with Ghini", "Flacon avec Ghini", "Ghini en una botella"},
Text{"Bottle with Reapling", "Flacon avec Âme Damnée", "Reapling en una botella"}, Text{"Bottle with Reapling", "Flacon avec Âme Damnée", "Reapling en una botella"},
Text{"Bottle with Imp Poe", "Flacon avec Spectre", "Espectro en una botella"}, Text{"Bottle with Imp Poe", "Flacon avec Spectre", "Espectro en una botella"},
Text{"Bottle with Anti-Fairy", "Flacon avec Tetdoss", "Whisp en una botella"} Text{"Bottle with Anti-Fairy", "Flacon avec Tetdoss", "Whisp en una botella"},
}; };
trickNameTable[RG_RUTOS_LETTER] = { trickNameTable[RG_RUTOS_LETTER] = {
Text{"Bottle with Maggie's Letter", "Flacon avec lettre de Maggy", "Carta de Dolores"}, Text{"Bottle with Maggie's Letter", "Flacon avec lettre de Maggy", "Carta de Dolores"},
Text{"Bottle with Letter to Kafei", "Flacon avec lettre pour Kafei", "Carta para Kafei"}, Text{"Bottle with Letter to Kafei", "Flacon avec lettre pour Kafei", "Carta para Kafei"},
Text{"Bottle with Zelda's Letter", "Flacon avec Lettre de Zelda", "Carta náutica"} Text{"Bottle with Zelda's Letter", "Flacon avec Lettre de Zelda", "Carta náutica"},
}; };
trickNameTable[RG_BOTTLE_WITH_BIG_POE] = { trickNameTable[RG_BOTTLE_WITH_BIG_POE] = {
Text{"Bottle with Composer Brother", "Flacon avec un compositeur", "Hermana Poe embotellada"}, Text{"Bottle with Composer Brother", "Flacon avec un compositeur", "Hermana Poe embotellada"},
Text{"Bottle with Jalhalla", "Flacon avec Jalhalla", "Yaihalla embotellado"}, Text{"Bottle with Jalhalla", "Flacon avec Jalhalla", "Yaihalla embotellado"},
Text{"Bottle with Grim Repoe", "Flacon avec le Faucheur", "Bubble en una botella"} Text{"Bottle with Grim Repoe", "Flacon avec le Faucheur", "Bubble en una botella"},
}; };
trickNameTable[RG_ZELDAS_LULLABY] = { trickNameTable[RG_ZELDAS_LULLABY] = {
Text{"Ballad of the Goddess", "Chant de la déesse", "Cántico de la Diosa"}, Text{"Ballad of the Goddess", "Chant de la déesse", "Cántico de la Diosa"},
Text{"Song of Healing", "Chant de l'apaisement", "Canción de curación"}, Text{"Song of Healing", "Chant de l'apaisement", "Canción de curación"},
Text{"Song of the Hero", "Chant du héros", "Canción del héroe"} Text{"Song of the Hero", "Chant du héros", "Canción del héroe"},
}; };
trickNameTable[RG_EPONAS_SONG] = { trickNameTable[RG_EPONAS_SONG] = {
Text{"Song of Birds","Chant des oiseaux","Cantar del ave"}, Text{"Song of Birds","Chant des oiseaux","Cantar del ave"},
Text{"Song of Soaring", "Chant de l'envol", "Canción del viento"}, Text{"Song of Soaring", "Chant de l'envol", "Canción del viento"},
Text{"Song of Horse", "Chant du cheval", "Chant du cheval"} Text{"Song of Horse", "Chant du cheval", "Chant du cheval"},
}; };
trickNameTable[RG_SARIAS_SONG] = { trickNameTable[RG_SARIAS_SONG] = {
Text{"Mido's Song", "La chanson de Mido", "La canción de Mido"}, Text{"Mido's Song", "La chanson de Mido", "La canción de Mido"},
Text{"Kass' Theme", "Le thème de Kass", "El tema de Kass"}, Text{"Kass' Theme", "Le thème de Kass", "El tema de Kass"},
Text{"Tune of Echoes", "Chant des Échos ", "Melodía del Eco "} Text{"Tune of Echoes", "Chant des Échos ", "Melodía del Eco "},
}; };
trickNameTable[RG_SUNS_SONG] = { trickNameTable[RG_SUNS_SONG] = {
Text{"Song of Passing", "Mambo de Manbo", "Melodía del transcurrir"}, Text{"Song of Passing", "Mambo de Manbo", "Melodía del transcurrir"},
Text{"Command Melody", "Air du marionnettiste", "Cara al Sol"}, Text{"Command Melody", "Air du marionnettiste", "Cara al Sol"},
Text{"Moon's Song", "La chanson de Moon", "La canción de la luna"} Text{"Moon's Song", "La chanson de Moon", "La canción de la luna"},
}; };
trickNameTable[RG_SONG_OF_TIME] = { trickNameTable[RG_SONG_OF_TIME] = {
Text{"Song of Double Time", "Chant accéléré", "Canción del doble tiempo"}, Text{"Song of Double Time", "Chant accéléré", "Canción del doble tiempo"},
Text{"Inverted Song of Time", "Chant du temps inversé", "Canción del tiempo invertida"}, Text{"Inverted Song of Time", "Chant du temps inversé", "Canción del tiempo invertida"},
Text{"Tune of Ages", "Chant du Temps", "Melodía del Tiempo"} Text{"Tune of Ages", "Chant du Temps", "Melodía del Tiempo"},
}; };
trickNameTable[RG_SONG_OF_STORMS] = { trickNameTable[RG_SONG_OF_STORMS] = {
Text{"Ballad of Gales", "Requiem de la tornade", "Melodía del Tornado"}, Text{"Ballad of Gales", "Requiem de la tornade", "Melodía del Tornado"},
Text{"Frog's Song of Soul", "Rap des grenouilles", "Canción del alma de la rana"}, Text{"Frog's Song of Soul", "Rap des grenouilles", "Canción del alma de la rana"},
Text{"Wind's Requiem", "Mélodie du vent", "Melodía del Viento"} Text{"Wind's Requiem", "Mélodie du vent", "Melodía del Viento"},
}; };
trickNameTable[RG_MINUET_OF_FOREST] = { trickNameTable[RG_MINUET_OF_FOREST] = {
Text{"Saria's Karaoke", "Karaoké de Saria", "Dueto del bosque"}, Text{"Saria's Karaoke", "Karaoké de Saria", "Dueto del bosque"},
Text{"Sonata of Awakening", "Sonate de l'éveil", "Sonata del despertar"}, Text{"Sonata of Awakening", "Sonate de l'éveil", "Sonata del despertar"},
Text{"Wind God's Aria", "Hymne du dieu du vent", "Melodía del Espíritu del Viento"} Text{"Wind God's Aria", "Hymne du dieu du vent", "Melodía del Espíritu del Viento"},
}; };
trickNameTable[RG_BOLERO_OF_FIRE] = { trickNameTable[RG_BOLERO_OF_FIRE] = {
Text{"Darunia's Tango", "Tango de Darunia", "Coro del fuego"}, Text{"Darunia's Tango", "Tango de Darunia", "Coro del fuego"},
Text{"Tune of Currents", "Chants des Flux", "Melodía de las Corrientes"}, Text{"Tune of Currents", "Chants des Flux", "Melodía de las Corrientes"},
Text{"Goron Lullaby", "Berceuse des Gorons", "Nana goron"} Text{"Goron Lullaby", "Berceuse des Gorons", "Nana goron"},
}; };
trickNameTable[RG_SERENADE_OF_WATER] = { trickNameTable[RG_SERENADE_OF_WATER] = {
Text{"Ruto's Blues", "Blues de Ruto", "Sonata del agua"}, Text{"Ruto's Blues", "Blues de Ruto", "Sonata del agua"},
Text{"New Wave Bossa Nova", "Bossa-nova des flots", "Bossanova de las olas"}, Text{"New Wave Bossa Nova", "Bossa-nova des flots", "Bossanova de las olas"},
Text{"Manbo's Mambo", "Mambo de Manbo", "Mambo de Manbo"} Text{"Manbo's Mambo", "Mambo de Manbo", "Mambo de Manbo"},
}; };
trickNameTable[RG_REQUIEM_OF_SPIRIT] = { trickNameTable[RG_REQUIEM_OF_SPIRIT] = {
Text{"Nabooru's Reggae", "Reggae de Nabooru", "Reggae del espíritu"}, Text{"Nabooru's Reggae", "Reggae de Nabooru", "Reggae del espíritu"},
Text{"Elegy of Emptiness", "Hymne du vide", "Elegía al vacío"}, Text{"Elegy of Emptiness", "Hymne du vide", "Elegía al vacío"},
Text{"Earth God's Lyric", "Hymne du dieu de la terre", "Melodía del Espíritu de la Tierra"} Text{"Earth God's Lyric", "Hymne du dieu de la terre", "Melodía del Espíritu de la Tierra"},
}; };
trickNameTable[RG_NOCTURNE_OF_SHADOW] = { trickNameTable[RG_NOCTURNE_OF_SHADOW] = {
Text{"Impa's Death Metal", "Death métal d'Impa", "Diurno de la sombra"}, Text{"Impa's Death Metal", "Death métal d'Impa", "Diurno de la sombra"},
Text{"Oath to Order", "Ode de l'appel", "Oda al orden"}, Text{"Oath to Order", "Ode de l'appel", "Oda al orden"},
Text{"Song of Discovery", "Chant des secrets", "Canto revelador"} Text{"Song of Discovery", "Chant des secrets", "Canto revelador"},
}; };
trickNameTable[RG_PRELUDE_OF_LIGHT] = { trickNameTable[RG_PRELUDE_OF_LIGHT] = {
Text{"Rauru's Sing-Along", "Chansonnette de Rauru", "Predulio de luz"}, Text{"Rauru's Sing-Along", "Chansonnette de Rauru", "Predulio de luz"},
Text{"Ballad of the Wind Fish", "Ballade sur Poisson-Rêve", "Balada del Piez Viento"}, Text{"Ballad of the Wind Fish", "Ballade sur Poisson-Rêve", "Balada del Piez Viento"},
Text{"Song of Light", "Chant de la lumière", "Sonidos de la luz"} Text{"Song of Light", "Chant de la lumière", "Sonidos de la luz"},
}; };
trickNameTable[RG_KOKIRI_EMERALD] = { trickNameTable[RG_KOKIRI_EMERALD] = {
@ -748,93 +750,93 @@ void InitTrickNames() {
Text{"Farore's Pearl", "Perle de Farore", "Orbe de Farore"}, Text{"Farore's Pearl", "Perle de Farore", "Orbe de Farore"},
Text{"Aquanine", "Smaragdine", "Yerbánida"}, Text{"Aquanine", "Smaragdine", "Yerbánida"},
Text{"Farore's Emerald", "Émeraude de Farore", "Esmeralda de Farore"}, Text{"Farore's Emerald", "Émeraude de Farore", "Esmeralda de Farore"},
Text{"Kokiri's Peridot", "Péridot Kokiri", "Ágata de los Kokiri"} Text{"Kokiri's Peridot", "Péridot Kokiri", "Ágata de los Kokiri"},
}; };
trickNameTable[RG_GORON_RUBY] = { trickNameTable[RG_GORON_RUBY] = {
Text{"Pendant of Power", "Pendentif de la force", "Colgante del poder"}, Text{"Pendant of Power", "Pendentif de la force", "Colgante del poder"},
Text{"Din's Pearl", "Perle de Din", "Orbe de Din"}, Text{"Din's Pearl", "Perle de Din", "Orbe de Din"},
Text{"Crimsonine", "Alzanine", "Bermellina"}, Text{"Crimsonine", "Alzanine", "Bermellina"},
Text{"Din's Ruby", "Rubis de Din", "Rubí de Din"}, Text{"Din's Ruby", "Rubis de Din", "Rubí de Din"},
Text{"Goron's Garnet", "Grenat Goron", "Topacio de los Goron"} Text{"Goron's Garnet", "Grenat Goron", "Topacio de los Goron"},
}; };
trickNameTable[RG_ZORA_SAPPHIRE] = { trickNameTable[RG_ZORA_SAPPHIRE] = {
Text{"Pendant of Wisdom", "Pendentif de la sagesse", "Colgante de la sabiduría"}, Text{"Pendant of Wisdom", "Pendentif de la sagesse", "Colgante de la sabiduría"},
Text{"Nayru's Pearl", "Perle de Nayru", "Orbe de Nayru"}, Text{"Nayru's Pearl", "Perle de Nayru", "Orbe de Nayru"},
Text{"Azurine", "Aquanine", "Azurina"}, Text{"Azurine", "Aquanine", "Azurina"},
Text{"Nayru's Sapphire", "Saphir de Nayru", "Zafiro de Nayru"}, Text{"Nayru's Sapphire", "Saphir de Nayru", "Zafiro de Nayru"},
Text{"Zora's Aquamarine", "Aquamarine Zora", "Lapislázuli de los Zora"} Text{"Zora's Aquamarine", "Aquamarine Zora", "Lapislázuli de los Zora"},
}; };
trickNameTable[RG_FOREST_MEDALLION] = { trickNameTable[RG_FOREST_MEDALLION] = {
Text{"Wind Medallion", "Médaillon du vent", "Medallón del Viento"}, Text{"Wind Medallion", "Médaillon du vent", "Medallón del Viento"},
Text{"Wind Element", "Elément Vent", "Elemento de aire"}, Text{"Wind Element", "Elément Vent", "Elemento de aire"},
Text{"Saria's Medallion", "Médaillon de Saria", "Medallón de Saria"}, Text{"Saria's Medallion", "Médaillon de Saria", "Medallón de Saria"},
Text{"Sign of Air", "Glyphe de l'air", "Glifo de aire"}, Text{"Sign of Air", "Glyphe de l'air", "Glifo de aire"},
Text{"Medallion of Forest", "Médaillon du Temple de la Forêt", "Medalla del Bosque"} Text{"Medallion of Forest", "Médaillon du Temple de la Forêt", "Medalla del Bosque"},
}; };
trickNameTable[RG_FIRE_MEDALLION] = { trickNameTable[RG_FIRE_MEDALLION] = {
Text{"Fire Element", "Elément Feu", "Elemento de fuego"}, Text{"Fire Element", "Elément Feu", "Elemento de fuego"},
Text{"Darunia's Medallion", "Médaillon de Darunia", "Medallón de Darunia"}, Text{"Darunia's Medallion", "Médaillon de Darunia", "Medallón de Darunia"},
Text{"Sign of Fire", "Glyphe de feu", "Glifo de fuego"}, Text{"Sign of Fire", "Glyphe de feu", "Glifo de fuego"},
Text{"Medallion of Fire", "Médaillon du Temple du Feu", "Medalla del Fuego"} Text{"Medallion of Fire", "Médaillon du Temple du Feu", "Medalla del Fuego"},
}; };
trickNameTable[RG_WATER_MEDALLION] = { trickNameTable[RG_WATER_MEDALLION] = {
Text{"Water Element", "Elément Eau", "Elemento de agua"}, Text{"Water Element", "Elément Eau", "Elemento de agua"},
Text{"Ice Medallion", "Médaillon de glace", "Medallón Helado"}, Text{"Ice Medallion", "Médaillon de glace", "Medallón Helado"},
Text{"Ruto's Medallion", "Médaillon de Ruto", "Medallón de Ruto"}, Text{"Ruto's Medallion", "Médaillon de Ruto", "Medallón de Ruto"},
Text{"Sign of Water", "Glyphe de l'eau", "Glifo de agua"}, Text{"Sign of Water", "Glyphe de l'eau", "Glifo de agua"},
Text{"Medallion of Water", "Médaillon du Temple de l'Eau", "Medalla del Agua"} Text{"Medallion of Water", "Médaillon du Temple de l'Eau", "Medalla del Agua"},
}; };
trickNameTable[RG_SPIRIT_MEDALLION] = { trickNameTable[RG_SPIRIT_MEDALLION] = {
Text{"Earth Element", "Elément Terre", "Elemento de tierra"}, Text{"Earth Element", "Elément Terre", "Elemento de tierra"},
Text{"Nabooru's Medallion", "Médaillon de Nabooru", "Medallón de Nabooru"}, Text{"Nabooru's Medallion", "Médaillon de Nabooru", "Medallón de Nabooru"},
Text{"Sign of Earth", "Glyphe de la Terre", "Glifo de la tierra"}, Text{"Sign of Earth", "Glyphe de la Terre", "Glifo de la tierra"},
Text{"Medallion of Spirit", "Médaillon du Temple de l'Esprit", "Medalla del Espíritu"} Text{"Medallion of Spirit", "Médaillon du Temple de l'Esprit", "Medalla del Espíritu"},
}; };
trickNameTable[RG_SHADOW_MEDALLION] = { trickNameTable[RG_SHADOW_MEDALLION] = {
Text{"Fused Shadow", "Cristal d'ombre", "Sombra Fundida"}, Text{"Fused Shadow", "Cristal d'ombre", "Sombra Fundida"},
Text{"Impa's Medallion", "Médaillon d'Impa", "Medallón de Impa"}, Text{"Impa's Medallion", "Médaillon d'Impa", "Medallón de Impa"},
Text{"Sign of Illusion", "Glyphe de l'illusion", "Glifo de ilusión"}, Text{"Sign of Illusion", "Glyphe de l'illusion", "Glifo de ilusión"},
Text{"Medallion of Shadow", "Médaillon du Temple de l'Ombre", "Medalla de la Sombra"} Text{"Medallion of Shadow", "Médaillon du Temple de l'Ombre", "Medalla de la Sombra"},
}; };
trickNameTable[RG_LIGHT_MEDALLION] = { trickNameTable[RG_LIGHT_MEDALLION] = {
Text{"Compass of Light", "Boussole de lumière", "Brújula de Luz"}, Text{"Compass of Light", "Boussole de lumière", "Brújula de Luz"},
Text{"Rauru's Medallion", "Médaillon de Rauru", "Medallón de Rauru"}, Text{"Rauru's Medallion", "Médaillon de Rauru", "Medallón de Rauru"},
Text{"Sign of Destiny", "Glyphe du destin", "Glifo del destino"}, Text{"Sign of Destiny", "Glyphe du destin", "Glifo del destino"},
Text{"Medallion of Light", "Médaillon du temple de lumière", "Medalla de la Luz"} Text{"Medallion of Light", "Médaillon du temple de lumière", "Medalla de la Luz"},
}; };
trickNameTable[RG_RECOVERY_HEART] = { trickNameTable[RG_RECOVERY_HEART] = {
Text{"Love", "Bisou", "Te amo"}, Text{"Love", "Bisou", "Te amo"},
Text{"Life", "Vie", "vida"}, Text{"Life", "Vie", "vida"},
Text{"HP", "VP", "VP"} Text{"HP", "VP", "VP"},
}; };
trickNameTable[RG_GREEN_RUPEE] = { trickNameTable[RG_GREEN_RUPEE] = {
Text{"False Greg", "Faux Greg", "Falso Greg"}, Text{"False Greg", "Faux Greg", "Falso Greg"},
Text{"One Ruby", "Un rubis", "Un rubí"}, Text{"One Ruby", "Un rubis", "Un rubí"},
Text{"Rupoor (1)", "Roupir (1)", "Rupobre (1)"}, Text{"Rupoor (1)", "Roupir (1)", "Rupobre (1)"},
Text{"One Rupee", "Un rubis", "Guaraní hyliano"}, Text{"One Rupee", "Un rubis", "Guaraní hyliano"},
Text{"Rupee (1)", "Rubis (1)", "Peso hyliano"} Text{"Rupee (1)", "Rubis (1)", "Peso hyliano"},
}; };
trickNameTable[RG_BLUE_RUPEE] = { trickNameTable[RG_BLUE_RUPEE] = {
Text{"Blupee", "Bleubi", "Azupia"}, Text{"Blupee", "Bleubi", "Azupia"},
Text{"Five Rubies", "Cinq Rubys", "Cinco rubíes"}, Text{"Five Rubies", "Cinq Rubys", "Cinco rubíes"},
Text{"Five Rupees", "Cinq rubis", "Bolívar hyliano"}, Text{"Five Rupees", "Cinq rubis", "Bolívar hyliano"},
Text{"Rupee (5)", "Rubis (5)", "Peso hyliano"}, Text{"Rupee (5)", "Rubis (5)", "Peso hyliano"},
Text{"Rupoor (5)", "Roupir (5)", "Rupobre (5)"} Text{"Rupoor (5)", "Roupir (5)", "Rupobre (5)"},
}; };
trickNameTable[RG_RED_RUPEE] = { trickNameTable[RG_RED_RUPEE] = {
Text{"Big 20", "Grand 20", "Los 20 grandes"}, Text{"Big 20", "Grand 20", "Los 20 grandes"},
Text{"Twenty Rubies", "vingt rubis", "Veinte rubíes"}, Text{"Twenty Rubies", "vingt rubis", "Veinte rubíes"},
Text{"Rupoor (20)", "Roupir (20)", "Rupobre (20)"}, Text{"Rupoor (20)", "Roupir (20)", "Rupobre (20)"},
Text{"Twenty Rupees", "Vingt rubis", "Colon hyliano"}, Text{"Twenty Rupees", "Vingt rubis", "Colon hyliano"},
Text{"Rupee (20)", "Rubis (20)", "Peso hyliano"} Text{"Rupee (20)", "Rubis (20)", "Peso hyliano"},
}; };
trickNameTable[RG_PURPLE_RUPEE] = { trickNameTable[RG_PURPLE_RUPEE] = {
Text{"Purpee", "pourbi", "morupiua"}, Text{"Purpee", "pourbi", "morupiua"},
Text{"Fifty Rubies", "cinquante rubis", "Cincuenta rubíes"}, Text{"Fifty Rubies", "cinquante rubis", "Cincuenta rubíes"},
Text{"Rupoor (50)", "Roupir (50)", "Rupobre (50)"}, Text{"Rupoor (50)", "Roupir (50)", "Rupobre (50)"},
Text{"Fifty Rupees", "Cinquante rubis", "Balboa hyliano"}, Text{"Fifty Rupees", "Cinquante rubis", "Balboa hyliano"},
Text{"Rupee (50)", "Rubis (50)", "Peso hyliano"} Text{"Rupee (50)", "Rubis (50)", "Peso hyliano"},
}; };
trickNameTable[RG_HUGE_RUPEE] = { trickNameTable[RG_HUGE_RUPEE] = {
Text{"Hugo", "Or Rubi", "Oro Rubi"}, Text{"Hugo", "Or Rubi", "Oro Rubi"},
@ -842,102 +844,102 @@ void InitTrickNames() {
Text{"Diamond", "Diamant", "Diamante"}, Text{"Diamond", "Diamant", "Diamante"},
Text{"Huge Ruby", "Énorme rubis", "Rubi gigante"}, Text{"Huge Ruby", "Énorme rubis", "Rubi gigante"},
Text{"Two Hundred Rupees", "Deux cent rubis", "Euro hyliano"}, Text{"Two Hundred Rupees", "Deux cent rubis", "Euro hyliano"},
Text{"Rupee (200)", "Rubis (200)", "Dólar hyliano"} Text{"Rupee (200)", "Rubis (200)", "Dólar hyliano"},
}; };
trickNameTable[RG_PIECE_OF_HEART] = { trickNameTable[RG_PIECE_OF_HEART] = {
Text{"Pizza Heart", "Fromage de cœur", "Pieza de Chorizo"}, Text{"Pizza Heart", "Fromage de cœur", "Pieza de Chorizo"},
Text{"Little Bit Of Love", "Un peu d'amour", "Un poco de amor"}, Text{"Little Bit Of Love", "Un peu d'amour", "Un poco de amor"},
Text{"Rare Peach Stone", "Pierre de pêche rare", "Pierre de pêche rare"} Text{"Rare Peach Stone", "Pierre de pêche rare", "Pierre de pêche rare"},
}; };
trickNameTable[RG_HEART_CONTAINER] = { trickNameTable[RG_HEART_CONTAINER] = {
Text{"Crystal Heart", "Cœur de cristal", "Corazón de cristal"}, Text{"Crystal Heart", "Cœur de cristal", "Corazón de cristal"},
Text{"Life Heart", "Cœur de vie", "Vida Corazón"}, Text{"Life Heart", "Cœur de vie", "Vida Corazón"},
Text{"Lots of Love", "Beaucoup d'amour", "Mucho amor"} Text{"Lots of Love", "Beaucoup d'amour", "Mucho amor"},
}; };
trickNameTable[RG_TRIFORCE_PIECE] = { trickNameTable[RG_TRIFORCE_PIECE] = {
Text{"Piece of Cheese", "Morceau de Fromage", "Piece of Cheese"}, Text{"Piece of Cheese", "Morceau de Fromage", "Piece of Cheese"},
Text{"Triforce Shard", "Éclat de Triforce", "Triforce Shard"}, Text{"Triforce Shard", "Éclat de Triforce", "Triforce Shard"},
Text{"Shiny Rock", "Caiiloux Brillant", "Shiny Rock"} Text{"Shiny Rock", "Caiiloux Brillant", "Shiny Rock"},
}; };
trickNameTable[RG_GOHMA_SOUL] = { trickNameTable[RG_GOHMA_SOUL] = {
Text{"Spider Sense", "", ""}, Text{"Spider Sense", "", ""},
Text{"Deku Spirit", "", ""}, Text{"Deku Spirit", "", ""},
Text{"Ghost of Ghoma", "", ""} Text{"Ghost of Ghoma", "", ""},
}; };
trickNameTable[RG_KING_DODONGO_SOUL] = { trickNameTable[RG_KING_DODONGO_SOUL] = {
Text{"Lizard Soul", "", ""}, Text{"Lizard Soul", "", ""},
Text{"Regal Remains", "", ""}, Text{"Regal Remains", "", ""},
Text{"Dodongo's Core", "", ""} Text{"Dodongo's Core", "", ""},
}; };
trickNameTable[RG_BARINADE_SOUL] = { trickNameTable[RG_BARINADE_SOUL] = {
Text{"Parasitic Poltergeist", "", ""}, Text{"Parasitic Poltergeist", "", ""},
Text{"Jabu Insides", "", ""}, Text{"Jabu Insides", "", ""},
Text{"Barinade Bacteria", "", ""} Text{"Barinade Bacteria", "", ""},
}; };
trickNameTable[RG_PHANTOM_GANON_SOUL] = { trickNameTable[RG_PHANTOM_GANON_SOUL] = {
Text{"Bigger Poe", "", ""}, Text{"Bigger Poe", "", ""},
Text{"Sacred Forest Pine Tree", "", ""}, Text{"Sacred Forest Pine Tree", "", ""},
Text{"Ganon's Phantom", "", ""} Text{"Ganon's Phantom", "", ""},
}; };
trickNameTable[RG_VOLVAGIA_SOUL] = { trickNameTable[RG_VOLVAGIA_SOUL] = {
Text{"Dragon Roast", "", ""}, Text{"Dragon Roast", "", ""},
Text{"Hot n' Ready", "", ""}, Text{"Hot n' Ready", "", ""},
Text{"Volvagia's Vitality", "", ""} Text{"Volvagia's Vitality", "", ""},
}; };
trickNameTable[RG_MORPHA_SOUL] = { trickNameTable[RG_MORPHA_SOUL] = {
Text{"Dihydrogen Monoxide", "", ""}, Text{"Dihydrogen Monoxide", "", ""},
Text{"Morpha Molecules", "", ""}, Text{"Morpha Molecules", "", ""},
Text{"Wet Stuff", "", ""} Text{"Wet Stuff", "", ""},
}; };
trickNameTable[RG_BONGO_BONGO_SOUL] = { trickNameTable[RG_BONGO_BONGO_SOUL] = {
Text{"Shadow Soul", "", ""}, Text{"Shadow Soul", "", ""},
Text{"Dark Essence", "", ""}, Text{"Dark Essence", "", ""},
Text{"Bongo Bongo's Bongo", "", ""} Text{"Bongo Bongo's Bongo", "", ""},
}; };
trickNameTable[RG_TWINROVA_SOUL] = { trickNameTable[RG_TWINROVA_SOUL] = {
Text{"Sandy Ashes", "", ""}, Text{"Sandy Ashes", "", ""},
Text{"Spiritual Spirit", "", ""}, Text{"Spiritual Spirit", "", ""},
Text{"Twin Rovers", "", ""} Text{"Twin Rovers", "", ""},
}; };
trickNameTable[RG_GANON_SOUL] = { trickNameTable[RG_GANON_SOUL] = {
Text{"Pure Evil", "", ""}, Text{"Pure Evil", "", ""},
Text{"Ganon's Ghost", "", ""}, Text{"Ganon's Ghost", "", ""},
Text{"Pork", "", ""} Text{"Pork", "", ""},
}; };
trickNameTable[RG_FISHING_POLE] = { trickNameTable[RG_FISHING_POLE] = {
Text{"Fish Tickler", "Fish Tickler", "Fish Tickler"}, Text{"Fish Tickler", "Fish Tickler", "Fish Tickler"},
Text{"Floating Lure", "Floating Lure", "Floating Lure"}, Text{"Floating Lure", "Floating Lure", "Floating Lure"},
Text{"Fishing Reel", "Fishing Reel", "Fishing Reel"} Text{"Fishing Reel", "Fishing Reel", "Fishing Reel"},
}; };
trickNameTable[RG_OCARINA_A_BUTTON] = { trickNameTable[RG_OCARINA_A_BUTTON] = {
Text{"Ocarina J Button", "", ""}, Text{"Ocarina J Button", "", ""},
Text{"Ocarina Ayy Button", "", ""}, Text{"Ocarina Ayy Button", "", ""},
Text{"Ocarina A Trigger", "", ""} Text{"Ocarina A Trigger", "", ""},
}; };
trickNameTable[RG_OCARINA_C_UP_BUTTON] = { trickNameTable[RG_OCARINA_C_UP_BUTTON] = {
Text{"Ocarina C North Button", "", ""}, Text{"Ocarina C North Button", "", ""},
Text{"Ocarina C App Button", "", ""}, Text{"Ocarina C App Button", "", ""},
Text{"Ocarina Sup Button", "", ""} Text{"Ocarina Sup Button", "", ""},
}; };
trickNameTable[RG_OCARINA_C_DOWN_BUTTON] = { trickNameTable[RG_OCARINA_C_DOWN_BUTTON] = {
Text{"Ocarina C South Button", "", ""}, Text{"Ocarina C South Button", "", ""},
Text{"Ocarina Z Down Button", "", ""}, Text{"Ocarina Z Down Button", "", ""},
Text{"Ocarina See Down Button", "", ""}, Text{"Ocarina See Down Button", "", ""},
Text{"Ocarina C Dawn Button", "", ""} Text{"Ocarina C Dawn Button", "", ""},
}; };
trickNameTable[RG_OCARINA_C_LEFT_BUTTON] = { trickNameTable[RG_OCARINA_C_LEFT_BUTTON] = {
Text{"Ocarina C West Button", "", ""}, Text{"Ocarina C West Button", "", ""},
Text{"Ocarina Sea Left Button", "", ""}, Text{"Ocarina Sea Left Button", "", ""},
Text{"Ocarina C Lift Button", "", ""}, Text{"Ocarina C Lift Button", "", ""},
Text{"Ocarina Rewind Button", "", ""} Text{"Ocarina Rewind Button", "", ""},
}; };
trickNameTable[RG_OCARINA_C_RIGHT_BUTTON] = { trickNameTable[RG_OCARINA_C_RIGHT_BUTTON] = {
Text{"Ocarina C East Button", "", ""}, Text{"Ocarina C East Button", "", ""},
Text{"Ocarina C Wright Button", "", ""}, Text{"Ocarina C Wright Button", "", ""},
Text{"Overworld C Right Button", "", ""} Text{"Overworld C Right Button", "", ""},
}; };
/* /*
@ -945,182 +947,182 @@ void InitTrickNames() {
trickNameTable[GI_HOOKSHOT] = { trickNameTable[GI_HOOKSHOT] = {
Text{"Grappling Hook", "Grappin-griffe", "Gancho lanzable"}, Text{"Grappling Hook", "Grappin-griffe", "Gancho lanzable"},
Text{"Clawshot", "Lance-chaîne", "Zarpa"}, Text{"Clawshot", "Lance-chaîne", "Zarpa"},
Text{"Gripshot", "Grappince", "Enganchador"} Text{"Gripshot", "Grappince", "Enganchador"},
}; };
trickNameTable[GI_LONGSHOT] = { trickNameTable[GI_LONGSHOT] = {
Text{"Longshot, no strings attached", "Grappin sans attrape", "Gancho lanzable más largo"}, Text{"Longshot, no strings attached", "Grappin sans attrape", "Gancho lanzable más largo"},
Text{"Double Clawshot", "Double-grappin", "Superzarpa"}, Text{"Double Clawshot", "Double-grappin", "Superzarpa"},
Text{"Switch Hook", "Great grappin", "Gancho chulo"} Text{"Switch Hook", "Great grappin", "Gancho chulo"},
}; };
trickNameTable[GI_BOMB_BAG_1] = { trickNameTable[GI_BOMB_BAG_1] = {
Text{"Bomb Capacity (20)", "Capacité de bombes (20)", "Bolsa de bombas (contiene 20)"}, Text{"Bomb Capacity (20)", "Capacité de bombes (20)", "Bolsa de bombas (contiene 20)"},
Text{"Bronze Bomb Bag", "Sac de Bombes de bronze", "Saco de bronce de bombas"}, Text{"Bronze Bomb Bag", "Sac de Bombes de bronze", "Saco de bronce de bombas"},
Text{"Small Bomb Bag", "Petit Sac de Bombes", "Zurrón de bombas pequeño"} Text{"Small Bomb Bag", "Petit Sac de Bombes", "Zurrón de bombas pequeño"},
}; };
trickNameTable[GI_BOMB_BAG_2] = { trickNameTable[GI_BOMB_BAG_2] = {
Text{"Bomb Capacity (30)", "Capacité de bombes (30)", "Bolsa de bombas (contiene 30)"}, Text{"Bomb Capacity (30)", "Capacité de bombes (30)", "Bolsa de bombas (contiene 30)"},
Text{"Silver Bomb Bag", "Sac de Bombes d'argent", "Saco plateado de bombas"}, Text{"Silver Bomb Bag", "Sac de Bombes d'argent", "Saco plateado de bombas"},
Text{"Medium Bomb Bag", "Sac de Bombes moyen", "Zurrón de bombas mediano"} Text{"Medium Bomb Bag", "Sac de Bombes moyen", "Zurrón de bombas mediano"},
}; };
trickNameTable[GI_BOMB_BAG_3] = { trickNameTable[GI_BOMB_BAG_3] = {
Text{"Bomb Capacity (40)", "Capacité de bombes (40)", "Bolsa de bombas (contiene 40)"}, Text{"Bomb Capacity (40)", "Capacité de bombes (40)", "Bolsa de bombas (contiene 40)"},
Text{"Golden Bomb Bag", "Sac de Bombes d'or", "Saco dorado de bombas"}, Text{"Golden Bomb Bag", "Sac de Bombes d'or", "Saco dorado de bombas"},
Text{"Large Bomb Bag", "Gros Sac de Bombes", "Zurrón de bombas grande"} Text{"Large Bomb Bag", "Gros Sac de Bombes", "Zurrón de bombas grande"},
}; };
trickNameTable[GI_BOW_1] = { trickNameTable[GI_BOW_1] = {
Text{"Bow", "Arc", "Arco del Hada"}, Text{"Bow", "Arc", "Arco del Hada"},
Text{"Hero's Bow", "Arc du héros", "Arco del héroe"}, Text{"Hero's Bow", "Arc du héros", "Arco del héroe"},
Text{"Small Quiver", "Petit carquois", "Saco de flechas pequeño"} Text{"Small Quiver", "Petit carquois", "Saco de flechas pequeño"},
}; };
trickNameTable[GI_BOW_2] = { trickNameTable[GI_BOW_2] = {
Text{"Arrow Capacity (40)", "Capacité de flèches (40)", "Capacidad de flechas (40)"}, Text{"Arrow Capacity (40)", "Capacité de flèches (40)", "Capacidad de flechas (40)"},
Text{"Silver Quiver", "Carquois d'argent", "Carcaj plateado"}, Text{"Silver Quiver", "Carquois d'argent", "Carcaj plateado"},
Text{"Medium Quiver", "Carquois moyen", "Saco de flechas mediano"} Text{"Medium Quiver", "Carquois moyen", "Saco de flechas mediano"},
}; };
trickNameTable[GI_BOW_3] = { trickNameTable[GI_BOW_3] = {
Text{"Arrow Capacity (50)", "Capacité de flèches (50)", "Capacidad de flechas (50)"}, Text{"Arrow Capacity (50)", "Capacité de flèches (50)", "Capacidad de flechas (50)"},
Text{"Golden Quiver", "Carquois d'or", "Carcaj dorado"}, Text{"Golden Quiver", "Carquois d'or", "Carcaj dorado"},
Text{"Large Quiver", "Gros carquois", "Saco de flechas grande"} Text{"Large Quiver", "Gros carquois", "Saco de flechas grande"},
}; };
trickNameTable[GI_SLINGSHOT_1] = { trickNameTable[GI_SLINGSHOT_1] = {
Text{"Slingshot", "Lance-Pierre", "Tirachinas del Hada"}, Text{"Slingshot", "Lance-Pierre", "Tirachinas del Hada"},
Text{"Scattershot", "Lance-Pierre rafale", "Tirachinas múltiple"}, Text{"Scattershot", "Lance-Pierre rafale", "Tirachinas múltiple"},
Text{"Small Seed Satchel", "Petit sac de graines", "Bolsa de semillas pequeña"} Text{"Small Seed Satchel", "Petit sac de graines", "Bolsa de semillas pequeña"},
}; };
trickNameTable[GI_SLINGSHOT_2] = { trickNameTable[GI_SLINGSHOT_2] = {
Text{"Deku Seed Capacity (40)", "Capacité de graines (40)", "Capacidad de semillas (40)"}, Text{"Deku Seed Capacity (40)", "Capacité de graines (40)", "Capacidad de semillas (40)"},
Text{"Silver Deku Seed Bullet Bag", "Sac de graines d'argent", "Bolsa de balas (contiene 40)"}, Text{"Silver Deku Seed Bullet Bag", "Sac de graines d'argent", "Bolsa de balas (contiene 40)"},
Text{"Medium Seed Satchel", "Sac de graines moyen", "Bolsa de semillas mediana"} Text{"Medium Seed Satchel", "Sac de graines moyen", "Bolsa de semillas mediana"},
}; };
trickNameTable[GI_SLINGSHOT_3] = { trickNameTable[GI_SLINGSHOT_3] = {
Text{"Deku Seed Capacity (50)", "Capacité de graines (50)", "Capacidad de semillas (50)"}, Text{"Deku Seed Capacity (50)", "Capacité de graines (50)", "Capacidad de semillas (50)"},
Text{"Golden Deku Seed Bullet Bag", "Sac de graines d'or", "Bolsa de balas (contiene 50)"}, Text{"Golden Deku Seed Bullet Bag", "Sac de graines d'or", "Bolsa de balas (contiene 50)"},
Text{"Large Seed Satchel", "Gros sac de graines", "Bolsa de semillas grande"} Text{"Large Seed Satchel", "Gros sac de graines", "Bolsa de semillas grande"},
}; };
trickNameTable[GI_STRENGTH_1] = { trickNameTable[GI_STRENGTH_1] = {
Text{"Goron's Gauntlet", "Gantelet Goron", "Brazalete amarillo"}, Text{"Goron's Gauntlet", "Gantelet Goron", "Brazalete amarillo"},
Text{"Power Bracelet", "Bracelet de force", "Brazalete de fuerza"}, Text{"Power Bracelet", "Bracelet de force", "Brazalete de fuerza"},
Text{"Magic Bracelet", "Bracelet de Lavio", "Brazalete de Ravio"} Text{"Magic Bracelet", "Bracelet de Lavio", "Brazalete de Ravio"},
}; };
trickNameTable[GI_STRENGTH_2] = { trickNameTable[GI_STRENGTH_2] = {
Text{"Silver Bracelets", "Bracelets d'argent", "Guantes Moguma"}, Text{"Silver Bracelets", "Bracelets d'argent", "Guantes Moguma"},
Text{"Power Gloves", "Gant de puissance", "Guante del Poder"}, Text{"Power Gloves", "Gant de puissance", "Guante del Poder"},
Text{"Magic Gauntlets", "Gantelet magique", "Guante mágico"} Text{"Magic Gauntlets", "Gantelet magique", "Guante mágico"},
}; };
trickNameTable[GI_STRENGTH_3] = { trickNameTable[GI_STRENGTH_3] = {
Text{"Golden Bracelets", "Bracelets d'or", "Guantelete de Thanos"}, Text{"Golden Bracelets", "Bracelets d'or", "Guantelete de Thanos"},
Text{"Titan's Mitts", "Moufle de titan", "Guantes de Titán"}, Text{"Titan's Mitts", "Moufle de titan", "Guantes de Titán"},
Text{"Magnetic Gloves", "Magnéto-gants", "Guantes de fuego"} Text{"Magnetic Gloves", "Magnéto-gants", "Guantes de fuego"},
}; };
trickNameTable[GI_SCALE_1] = { trickNameTable[GI_SCALE_1] = {
Text{"Silver Pearl", "Perle d'argent", "Perla de Plata progresiva"}, Text{"Silver Pearl", "Perle d'argent", "Perla de Plata progresiva"},
Text{"Adult Scale", "Écaille d'adulte", "Bola de bolos zora"}, Text{"Adult Scale", "Écaille d'adulte", "Bola de bolos zora"},
Text{"Zora Scale", "Écaille Zora", "Escama de Zora"} Text{"Zora Scale", "Écaille Zora", "Escama de Zora"},
}; };
trickNameTable[GI_SCALE_2] = { trickNameTable[GI_SCALE_2] = {
Text{"Golden Pearl", "Perle d'or", "Perla de Oro progresiva"}, Text{"Golden Pearl", "Perle d'or", "Perla de Oro progresiva"},
Text{"Giant Scale", "Écaille de géant", "Escama de Faren"}, Text{"Giant Scale", "Écaille de géant", "Escama de Faren"},
Text{"Water Dragon Scale", "Écaille du dragon de l'eau", "Escama de dragón acuático"} Text{"Water Dragon Scale", "Écaille du dragon de l'eau", "Escama de dragón acuático"},
}; };
trickNameTable[GI_WALLET_1] = { trickNameTable[GI_WALLET_1] = {
Text{"Rupee Capacity (200)", "Capacité de rubis (200)", "Capacidad de rupias (200)"}, Text{"Rupee Capacity (200)", "Capacité de rubis (200)", "Capacidad de rupias (200)"},
Text{"Silver Wallet", "Bourse d'argent", "Cartera de rupias de adulto"}, Text{"Silver Wallet", "Bourse d'argent", "Cartera de rupias de adulto"},
Text{"Medium Wallet", "Bourse moyenne", "Zurrón de rupias mediano"} Text{"Medium Wallet", "Bourse moyenne", "Zurrón de rupias mediano"},
}; };
trickNameTable[GI_WALLET_2] = { trickNameTable[GI_WALLET_2] = {
Text{"Rupee Capacity (500)", "Capacité de rubis (500)", "Capacidad de rupias (500)"}, Text{"Rupee Capacity (500)", "Capacité de rubis (500)", "Capacidad de rupias (500)"},
Text{"Golden Wallet", "Bourse d'or", "Cartera de rupias gigante"}, Text{"Golden Wallet", "Bourse d'or", "Cartera de rupias gigante"},
Text{"Large Wallet", "Grosse Bourse", "Zurrón de rupias grande"} Text{"Large Wallet", "Grosse Bourse", "Zurrón de rupias grande"},
}; };
trickNameTable[GI_WALLET_3] = { trickNameTable[GI_WALLET_3] = {
Text{"Rupee Capacity (999)", "Capacité de rubis (999)", "Capacidad de rupias (999)"}, Text{"Rupee Capacity (999)", "Capacité de rubis (999)", "Capacidad de rupias (999)"},
Text{"Golden Wallet", "Bourse d'or", "Cartera de ricachón"}, Text{"Golden Wallet", "Bourse d'or", "Cartera de ricachón"},
Text{"Large Wallet", "Grosse Bourse", "Zurrón de rupias gigante"} Text{"Large Wallet", "Grosse Bourse", "Zurrón de rupias gigante"},
}; };
trickNameTable[GI_DEKU_NUT_UPGRADE_1] = { trickNameTable[GI_DEKU_NUT_UPGRADE_1] = {
Text{"Deku Bomb Capacity (30)", "Capacité de bombes Mojo (30)", "Capacidad de semillas deku (40)"}, Text{"Deku Bomb Capacity (30)", "Capacité de bombes Mojo (30)", "Capacidad de semillas deku (40)"},
Text{"Baba Nut Capacity (30)", "Capacité de noix Baba (30)", "Capacidad de nueces baba (40)"}, Text{"Baba Nut Capacity (30)", "Capacité de noix Baba (30)", "Capacidad de nueces baba (40)"},
Text{"Deku Nut Pack (30)", "Paquet de noix Mojo (30)", "Capacidad de nueces mojo (40)"} Text{"Deku Nut Pack (30)", "Paquet de noix Mojo (30)", "Capacidad de nueces mojo (40)"},
}; };
trickNameTable[GI_DEKU_NUT_UPGRADE_2] = { trickNameTable[GI_DEKU_NUT_UPGRADE_2] = {
Text{"Deku Bomb Capacity (40)", "Capacité de bombes Mojo (40)", "Capacidad de semillas deku (50)"}, Text{"Deku Bomb Capacity (40)", "Capacité de bombes Mojo (40)", "Capacidad de semillas deku (50)"},
Text{"Baba Nut Capacity (40)", "Capacité de noix Baba (40)", "Capacidad de nueces baba (50)"}, Text{"Baba Nut Capacity (40)", "Capacité de noix Baba (40)", "Capacidad de nueces baba (50)"},
Text{"Deku Nut Pack (40)", "Paquet de noix Mojo (40)", "Capacidad de nueces mojo (50)"} Text{"Deku Nut Pack (40)", "Paquet de noix Mojo (40)", "Capacidad de nueces mojo (50)"},
}; };
trickNameTable[GI_DEKU_STICK_UPGRADE_1] = { trickNameTable[GI_DEKU_STICK_UPGRADE_1] = {
Text{"Deku Rod Capacity (20)", "Capacité de tiges Mojo (20)", "Capacidad de palos mojo (20)"}, Text{"Deku Rod Capacity (20)", "Capacité de tiges Mojo (20)", "Capacidad de palos mojo (20)"},
Text{"Boko Stick Capacity (20)", "Capacité de Bâtons Boko (20)", "Capacidad de palos boko (20)"}, Text{"Boko Stick Capacity (20)", "Capacité de Bâtons Boko (20)", "Capacidad de palos boko (20)"},
Text{"Deku Stick Pack (20)", "Paquet de bâtons Mojo (20)", "Capacidad de bastones deku (20)"} Text{"Deku Stick Pack (20)", "Paquet de bâtons Mojo (20)", "Capacidad de bastones deku (20)"},
}; };
trickNameTable[GI_DEKU_STICK_UPGRADE_2] = { trickNameTable[GI_DEKU_STICK_UPGRADE_2] = {
Text{"Deku Rod Capacity (30)", "Capacité de tiges Mojo (30)", "Capacidad de palos mojo (30)"}, Text{"Deku Rod Capacity (30)", "Capacité de tiges Mojo (30)", "Capacidad de palos mojo (30)"},
Text{"Boko Stick Capacity (30)", "Capacité de Bâtons Boko (30)", "Capacidad de palos boko (30)"}, Text{"Boko Stick Capacity (30)", "Capacité de Bâtons Boko (30)", "Capacidad de palos boko (30)"},
Text{"Deku Stick Pack (30)", "Paquet de bâtons Mojo (30)", "Capacidad de bastones deku (30)"} Text{"Deku Stick Pack (30)", "Paquet de bâtons Mojo (30)", "Capacidad de bastones deku (30)"},
}; };
trickNameTable[GI_MAGIC_1] = { trickNameTable[GI_MAGIC_1] = {
Text{"Stamina Meter", "Jauge d'endurance", "Medidor de vigor"}, Text{"Stamina Meter", "Jauge d'endurance", "Medidor de vigor"},
Text{"Energy Meter", "Jauge d'énergie", "Medidor de energía"}, Text{"Energy Meter", "Jauge d'énergie", "Medidor de energía"},
Text{"Magic Powder", "Poudre magique", "Medidor de carga"} Text{"Magic Powder", "Poudre magique", "Medidor de carga"},
}; };
trickNameTable[GI_MAGIC_2] = { trickNameTable[GI_MAGIC_2] = {
Text{"Enhanced Stamina Meter", "Jauge d'endurance améliorée", "Medidor de vigor mejorado"}, Text{"Enhanced Stamina Meter", "Jauge d'endurance améliorée", "Medidor de vigor mejorado"},
Text{"Enhanced Energy Meter", "Jauge d'énergie améliorée", "Medidor de energía mejorado"}, Text{"Enhanced Energy Meter", "Jauge d'énergie améliorée", "Medidor de energía mejorado"},
Text{"Enhanced Magic Powder", "Poudre magique améliorée", "Medidor de carga mejorado"} Text{"Enhanced Magic Powder", "Poudre magique améliorée", "Medidor de carga mejorado"},
}; };
trickNameTable[GI_OCARINA_1] = { trickNameTable[GI_OCARINA_1] = {
Text{"Ocarina", "Ocarina", "Ocarina"}, Text{"Ocarina", "Ocarina", "Ocarina"},
Text{"Saria's Ocarina", "Ocarina de Saria", "Ocarina de Saria"}, Text{"Saria's Ocarina", "Ocarina de Saria", "Ocarina de Saria"},
Text{"Wood Ocarina", "Ocarina de bois", "Ocarina del Hada"} Text{"Wood Ocarina", "Ocarina de bois", "Ocarina del Hada"},
}; };
trickNameTable[GI_OCARINA_2] = { trickNameTable[GI_OCARINA_2] = {
Text{"Flute", "Flûte", "Flauta"}, Text{"Flute", "Flûte", "Flauta"},
Text{"Zelda's Ocarina", "Ocarina de Zelda", "Ocarina de Zelda"}, Text{"Zelda's Ocarina", "Ocarina de Zelda", "Ocarina de Zelda"},
Text{"Ocarina of Winds", "Ocarina des vents", "Ocarina del Viento"} Text{"Ocarina of Winds", "Ocarina des vents", "Ocarina del Viento"},
}; };
trickNameTable[GI_CUCCO] = { trickNameTable[GI_CUCCO] = {
Text{"D.I.Y. Alarm Clock", "Réveille-matin improvisé", "Alarma emplumada"}, Text{"D.I.Y. Alarm Clock", "Réveille-matin improvisé", "Alarma emplumada"},
Text{"Kakariko Cucco", "Cocotte Cocorico", "Cuco de Kakariko"}, Text{"Kakariko Cucco", "Cocotte Cocorico", "Cuco de Kakariko"},
Text{"Hatched Cucco", "Cocotte éclose", "Pollo"} Text{"Hatched Cucco", "Cocotte éclose", "Pollo"},
}; };
trickNameTable[GI_MASK_KEATON] = { trickNameTable[GI_MASK_KEATON] = {
Text{"Kee... Something Mask", "Masque de Quiche", "Máscara Kealgo"}, Text{"Kee... Something Mask", "Masque de Quiche", "Máscara Kealgo"},
Text{"Kitsune Mask", "Masque de Kitsune", "Máscara Kitsune"}, Text{"Kitsune Mask", "Masque de Kitsune", "Máscara Kitsune"},
Text{"Kafei's Mask", "Masque de Kafei", "Máscara de Kafei"} Text{"Kafei's Mask", "Masque de Kafei", "Máscara de Kafei"},
}; };
trickNameTable[GI_MASK_SKULL] = { trickNameTable[GI_MASK_SKULL] = {
Text{"Skull Kid's Mask", "Masque de Skull Kid", "Máscara de Skull Kid"}, Text{"Skull Kid's Mask", "Masque de Skull Kid", "Máscara de Skull Kid"},
Text{"Stalfos Mask", "Masque de squelette", "Máscara de Stalfos"}, Text{"Stalfos Mask", "Masque de squelette", "Máscara de Stalfos"},
Text{"Captain's Hat", "Heaume du capitaine", "Casco del capitán"} Text{"Captain's Hat", "Heaume du capitaine", "Casco del capitán"},
}; };
trickNameTable[GI_MASK_SPOOKY] = { trickNameTable[GI_MASK_SPOOKY] = {
Text{"Skrik Mask", "Masque Skrik", "Máscara Escalofriante"}, Text{"Skrik Mask", "Masque Skrik", "Máscara Escalofriante"},
Text{"ReDead Mask", "Masque de Remort", "Máscara de ReDead"}, Text{"ReDead Mask", "Masque de Remort", "Máscara de ReDead"},
Text{"Gibdo Mask", "Masque de Gibdo", "Careta de Gibdo"} Text{"Gibdo Mask", "Masque de Gibdo", "Careta de Gibdo"},
}; };
trickNameTable[GI_MASK_BUNNY] = { trickNameTable[GI_MASK_BUNNY] = {
Text{"Peppy Mask", "Masque de Peppy", "Capucha de Pascua"}, Text{"Peppy Mask", "Masque de Peppy", "Capucha de Pascua"},
Text{"Bunny Ears", "Oreilles de lapin", "Orejas de conejo"}, Text{"Bunny Ears", "Oreilles de lapin", "Orejas de conejo"},
Text{"Postman's Hat", "Casquette du facteur", "Gorra de cartero"} Text{"Postman's Hat", "Casquette du facteur", "Gorra de cartero"},
}; };
trickNameTable[GI_MASK_GORON] = { trickNameTable[GI_MASK_GORON] = {
Text{"Goro Mask", "Masque Goro", "Máscara Goro"}, Text{"Goro Mask", "Masque Goro", "Máscara Goro"},
Text{"Mask of Goron", "Masque des Gorons", "Máscara de los Goron"}, Text{"Mask of Goron", "Masque des Gorons", "Máscara de los Goron"},
Text{"Darunia Mask", "Masque de Darunia", "Máscara de Darmani"} Text{"Darunia Mask", "Masque de Darunia", "Máscara de Darmani"},
}; };
trickNameTable[GI_MASK_ZORA] = { trickNameTable[GI_MASK_ZORA] = {
Text{"Zola Mask", "Masque Zola", "Máscara Zola"}, Text{"Zola Mask", "Masque Zola", "Máscara Zola"},
Text{"Mask of Zora", "Masque des Zoras", "Máscara de los Zora"}, Text{"Mask of Zora", "Masque des Zoras", "Máscara de los Zora"},
Text{"Ruto Mask", "Masque de Ruto", "Máscara de Mikau"} Text{"Ruto Mask", "Masque de Ruto", "Máscara de Mikau"},
}; };
trickNameTable[GI_MASK_GERUDO] = { trickNameTable[GI_MASK_GERUDO] = {
Text{"Ganguro Mask", "Masque de Ganguro", "Máscara Canguro"}, Text{"Ganguro Mask", "Masque de Ganguro", "Máscara Canguro"},
Text{"Mask of Gerudo", "Masque des Gerudos", "Máscara de las Gerudo"}, Text{"Mask of Gerudo", "Masque des Gerudos", "Máscara de las Gerudo"},
Text{"Nabooru Mask", "Masque de Nabooru", "Máscara de Nabooru"} Text{"Nabooru Mask", "Masque de Nabooru", "Máscara de Nabooru"},
}; };
trickNameTable[GI_MASK_TRUTH] = { trickNameTable[GI_MASK_TRUTH] = {
Text{"Sheikah Mask", "Masque Sheikah", "Máscara Sheikah"}, Text{"Sheikah Mask", "Masque Sheikah", "Máscara Sheikah"},
Text{"Mask of Gossip", "Masque de potins", "Máscara chismosa"}, Text{"Mask of Gossip", "Masque de potins", "Máscara chismosa"},
Text{"Eye of Truth", "oeil de vérité", "Ojo de la Verdad"} Text{"Eye of Truth", "oeil de vérité", "Ojo de la Verdad"},
}; };
*/ */
} }

View file

@ -13,6 +13,7 @@ extern PlayState* gPlayState;
using SceneDoorParamsPair = std::pair<int, int>; using SceneDoorParamsPair = std::pair<int, int>;
std::map<SceneDoorParamsPair, RandomizerInf> lookupTable = { std::map<SceneDoorParamsPair, RandomizerInf> lookupTable = {
// clang-format off
{{ SCENE_MARKET_ENTRANCE_DAY, 447 }, RAND_INF_GUARD_HOUSE_UNLOCKED }, {{ SCENE_MARKET_ENTRANCE_DAY, 447 }, RAND_INF_GUARD_HOUSE_UNLOCKED },
{{ SCENE_MARKET_ENTRANCE_NIGHT, 447 }, RAND_INF_GUARD_HOUSE_UNLOCKED }, {{ SCENE_MARKET_ENTRANCE_NIGHT, 447 }, RAND_INF_GUARD_HOUSE_UNLOCKED },
{{ SCENE_MARKET_ENTRANCE_RUINS, 447 }, RAND_INF_GUARD_HOUSE_UNLOCKED }, {{ SCENE_MARKET_ENTRANCE_RUINS, 447 }, RAND_INF_GUARD_HOUSE_UNLOCKED },
@ -61,6 +62,8 @@ std::map<SceneDoorParamsPair, RandomizerInf> lookupTable = {
{{ SCENE_LON_LON_RANCH, 447 }, RAND_INF_BACK_TOWER_UNLOCKED }, {{ SCENE_LON_LON_RANCH, 447 }, RAND_INF_BACK_TOWER_UNLOCKED },
{{ SCENE_LAKE_HYLIA, 447 }, RAND_INF_HYLIA_LAB_UNLOCKED }, {{ SCENE_LAKE_HYLIA, 447 }, RAND_INF_HYLIA_LAB_UNLOCKED },
{{ SCENE_LAKE_HYLIA, 1471 }, RAND_INF_FISHING_HOLE_UNLOCKED }, {{ SCENE_LAKE_HYLIA, 1471 }, RAND_INF_FISHING_HOLE_UNLOCKED },
// clang-format on
}; };
static void OnDoorInit(void* actorRef) { static void OnDoorInit(void* actorRef) {

View file

@ -62,7 +62,7 @@ void Rando::StaticData::RegisterCowLocations() {
static bool registered = false; static bool registered = false;
if (registered) return; if (registered) return;
registered = true; registered = true;
// clang-format-off // clang-format off
locationTable[RC_KF_LINKS_HOUSE_COW] = Location::Base(RC_KF_LINKS_HOUSE_COW, RCQUEST_BOTH, RCTYPE_COW, ACTOR_EN_COW, SCENE_LINKS_HOUSE, 0x00, "Links House Cow", RHT_KF_LINKS_HOUSE_COW, RG_MILK, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COWS_MILKED_KF_LINKS_HOUSE_COW)); locationTable[RC_KF_LINKS_HOUSE_COW] = Location::Base(RC_KF_LINKS_HOUSE_COW, RCQUEST_BOTH, RCTYPE_COW, ACTOR_EN_COW, SCENE_LINKS_HOUSE, 0x00, "Links House Cow", RHT_KF_LINKS_HOUSE_COW, RG_MILK, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COWS_MILKED_KF_LINKS_HOUSE_COW));
locationTable[RC_HF_COW_GROTTO_COW] = Location::Base(RC_HF_COW_GROTTO_COW, RCQUEST_BOTH, RCTYPE_COW, RCAREA_HYRULE_FIELD, ACTOR_EN_COW, SCENE_GROTTOS, TWO_ACTOR_PARAMS(3485, -291), "Cow Grotto Cow", RHT_HF_COW_GROTTO_COW, RG_MILK, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COWS_MILKED_HF_COW_GROTTO_COW)); locationTable[RC_HF_COW_GROTTO_COW] = Location::Base(RC_HF_COW_GROTTO_COW, RCQUEST_BOTH, RCTYPE_COW, RCAREA_HYRULE_FIELD, ACTOR_EN_COW, SCENE_GROTTOS, TWO_ACTOR_PARAMS(3485, -291), "Cow Grotto Cow", RHT_HF_COW_GROTTO_COW, RG_MILK, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COWS_MILKED_HF_COW_GROTTO_COW));
locationTable[RC_LLR_STABLES_LEFT_COW] = Location::Base(RC_LLR_STABLES_LEFT_COW, RCQUEST_BOTH, RCTYPE_COW, ACTOR_EN_COW, SCENE_STABLE, TWO_ACTOR_PARAMS(-122, -254), "Stables Left Cow", RHT_LLR_STABLES_LEFT_COW, RG_MILK, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COWS_MILKED_LLR_STABLES_LEFT_COW)); locationTable[RC_LLR_STABLES_LEFT_COW] = Location::Base(RC_LLR_STABLES_LEFT_COW, RCQUEST_BOTH, RCTYPE_COW, ACTOR_EN_COW, SCENE_STABLE, TWO_ACTOR_PARAMS(-122, -254), "Stables Left Cow", RHT_LLR_STABLES_LEFT_COW, RG_MILK, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COWS_MILKED_LLR_STABLES_LEFT_COW));

View file

@ -1090,9 +1090,8 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
break; break;
} }
case VB_GIVE_ITEM_FROM_MEDIGORON: { case VB_GIVE_ITEM_FROM_MEDIGORON:
// fallthrough case VB_BE_ELIGIBLE_FOR_GIANTS_KNIFE_PURCHASE: {
case VB_BE_ELIGIBLE_FOR_GIANTS_KNIFE_PURCHASE:
if (EnGm_RandoCanGetMedigoronItem()) { if (EnGm_RandoCanGetMedigoronItem()) {
if (id == VB_GIVE_ITEM_FROM_MEDIGORON) { if (id == VB_GIVE_ITEM_FROM_MEDIGORON) {
EnGm* enGm = va_arg(args, EnGm*); EnGm* enGm = va_arg(args, EnGm*);

View file

@ -113,8 +113,9 @@ std::vector<RandomizerCheck> Rando::StaticData::GetOverworldFairyLocations() {
return fairyLocations; return fairyLocations;
} }
void Rando::StaticData::InitLocationTable() { // Randomizer Check Quest Type Area Actor ID Scene ID Params Flags Short Name Hint Text Key Vanilla Item Spoiler Collection Check Vanilla Progression Price void Rando::StaticData::InitLocationTable() {
// clang-format off // clang-format off
// Randomizer Check Quest Type Area Actor ID Scene ID Params Flags Short Name Hint Text Key Vanilla Item Spoiler Collection Check Vanilla Progression Price
locationTable[RC_UNKNOWN_CHECK] = Location::Base(RC_UNKNOWN_CHECK, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_INVALID, ACTOR_ID_MAX, SCENE_ID_MAX, 0x00, "Invalid Location", "Invalid Location", RHT_NONE, RG_NONE); locationTable[RC_UNKNOWN_CHECK] = Location::Base(RC_UNKNOWN_CHECK, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_INVALID, ACTOR_ID_MAX, SCENE_ID_MAX, 0x00, "Invalid Location", "Invalid Location", RHT_NONE, RG_NONE);
// Kokiri Forest // Kokiri Forest
locationTable[RC_KF_KOKIRI_SWORD_CHEST] = Location::Chest(RC_KF_KOKIRI_SWORD_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_KOKIRI_FOREST, 1248, 0x00, "Kokiri Sword Chest", RHT_KF_KOKIRI_SWORD_CHEST, RG_KOKIRI_SWORD, true); locationTable[RC_KF_KOKIRI_SWORD_CHEST] = Location::Chest(RC_KF_KOKIRI_SWORD_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_EN_BOX, SCENE_KOKIRI_FOREST, 1248, 0x00, "Kokiri Sword Chest", RHT_KF_KOKIRI_SWORD_CHEST, RG_KOKIRI_SWORD, true);

View file

@ -93,7 +93,7 @@ std::map<uint32_t, RandomizerCheck> startingShopItem = { { SCENE_KOKIRI_SHOP, RC
{ SCENE_BOMBCHU_SHOP, RC_MARKET_BOMBCHU_SHOP_ITEM_1 }, { SCENE_BOMBCHU_SHOP, RC_MARKET_BOMBCHU_SHOP_ITEM_1 },
{ SCENE_POTION_SHOP_KAKARIKO, RC_KAK_POTION_SHOP_ITEM_1 }, { SCENE_POTION_SHOP_KAKARIKO, RC_KAK_POTION_SHOP_ITEM_1 },
{ SCENE_ZORA_SHOP, RC_ZD_SHOP_ITEM_1 }, { SCENE_ZORA_SHOP, RC_ZD_SHOP_ITEM_1 },
{ SCENE_GORON_SHOP, RC_GC_SHOP_ITEM_1 } }; { SCENE_GORON_SHOP, RC_GC_SHOP_ITEM_1 }, };
std::map<SceneID, RandomizerCheckArea> DungeonRCAreasBySceneID = { std::map<SceneID, RandomizerCheckArea> DungeonRCAreasBySceneID = {
{SCENE_DEKU_TREE, RCAREA_DEKU_TREE}, {SCENE_DEKU_TREE, RCAREA_DEKU_TREE},
@ -124,7 +124,7 @@ std::vector<uint32_t> spoilingEntrances = {
ENTR_SHADOW_TEMPLE_BOSS_DOOR, ENTR_SHADOW_TEMPLE_BOSS_DOOR,
ENTR_ICE_CAVERN_ENTRANCE, ENTR_ICE_CAVERN_ENTRANCE,
ENTR_GERUDO_TRAINING_GROUND_ENTRANCE, ENTR_GERUDO_TRAINING_GROUND_ENTRANCE,
ENTR_INSIDE_GANONS_CASTLE_ENTRANCE ENTR_INSIDE_GANONS_CASTLE_ENTRANCE,
}; };
std::map<RandomizerCheckArea, std::vector<RandomizerCheck>> checksByArea; std::map<RandomizerCheckArea, std::vector<RandomizerCheck>> checksByArea;
@ -418,7 +418,7 @@ bool vector_contains_scene(std::vector<SceneID> vec, const int16_t scene) {
return std::any_of(vec.begin(), vec.end(), [&](const auto& x) { return x == scene; }); return std::any_of(vec.begin(), vec.end(), [&](const auto& x) { return x == scene; });
} }
std::vector<SceneID> skipScenes = {SCENE_GANON_BOSS, SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR, SCENE_GANON_BOSS, SCENE_INSIDE_GANONS_CASTLE_COLLAPSE, SCENE_GANONS_TOWER_COLLAPSE_INTERIOR}; std::vector<SceneID> skipScenes = {SCENE_GANON_BOSS, SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR, SCENE_GANON_BOSS, SCENE_INSIDE_GANONS_CASTLE_COLLAPSE, SCENE_GANONS_TOWER_COLLAPSE_INTERIOR,};
void ClearAreaChecksAndTotals() { void ClearAreaChecksAndTotals() {
for (auto& [rcArea, vec] : checksByArea) { for (auto& [rcArea, vec] : checksByArea) {

View file

@ -34,10 +34,14 @@ s16 dynamicExitList[] = {
ENTR_MARKET_DAY_OUTSIDE_SHOOTING_GALLERY, ENTR_MARKET_DAY_OUTSIDE_SHOOTING_GALLERY,
ENTR_ZORAS_FOUNTAIN_OUTSIDE_GREAT_FAIRY, ENTR_ZORAS_FOUNTAIN_OUTSIDE_GREAT_FAIRY,
ENTR_CASTLE_GROUNDS_GREAT_FAIRY_EXIT, // HC Fairy ENTR_CASTLE_GROUNDS_GREAT_FAIRY_EXIT, // HC Fairy
ENTR_DESERT_COLOSSUS_GREAT_FAIRY_EXIT ENTR_DESERT_COLOSSUS_GREAT_FAIRY_EXIT,
}; };
// Warp Song indices array : 0x53C33C = { ENTR_SACRED_FOREST_MEADOW_WARP_PAD, ENTR_DEATH_MOUNTAIN_CRATER_WARP_PAD, ENTR_LAKE_HYLIA_WARP_PAD, ENTR_DESERT_COLOSSUS_WARP_PAD, ENTR_GRAVEYARD_WARP_PAD, ENTR_TEMPLE_OF_TIME_WARP_PAD } // Warp Song indices array:
// 0x53C33C = {
// ENTR_SACRED_FOREST_MEADOW_WARP_PAD, ENTR_DEATH_MOUNTAIN_CRATER_WARP_PAD, ENTR_LAKE_HYLIA_WARP_PAD,
// ENTR_DESERT_COLOSSUS_WARP_PAD, ENTR_GRAVEYARD_WARP_PAD, ENTR_TEMPLE_OF_TIME_WARP_PAD
// }
// Owl Flights : 0x492064 and 0x492080 // Owl Flights : 0x492064 and 0x492080

View file

@ -340,7 +340,7 @@ std::vector<uint32_t> buttonMap = {
BTN_DUP, BTN_DUP,
BTN_DDOWN, BTN_DDOWN,
BTN_DLEFT, BTN_DLEFT,
BTN_DRIGHT BTN_DRIGHT,
}; };
typedef enum { typedef enum {
@ -354,18 +354,18 @@ typedef enum {
typedef enum { typedef enum {
KEYS_COLLECTED_MAX, KEYS_COLLECTED_MAX,
KEYS_CURRENT_COLLECTED_MAX, KEYS_CURRENT_COLLECTED_MAX,
KEYS_CURRENT_MAX KEYS_CURRENT_MAX,
} ItemTrackerKeysNumberOption; } ItemTrackerKeysNumberOption;
typedef enum { typedef enum {
TRIFORCE_PIECE_COLLECTED_REQUIRED, TRIFORCE_PIECE_COLLECTED_REQUIRED,
TRIFORCE_PIECE_COLLECTED_REQUIRED_MAX TRIFORCE_PIECE_COLLECTED_REQUIRED_MAX,
} ItemTrackerTriforcePieceNumberOption; } ItemTrackerTriforcePieceNumberOption;
typedef enum { typedef enum {
SECTION_DISPLAY_HIDDEN, SECTION_DISPLAY_HIDDEN,
SECTION_DISPLAY_MAIN_WINDOW, SECTION_DISPLAY_MAIN_WINDOW,
SECTION_DISPLAY_SEPARATE SECTION_DISPLAY_SEPARATE,
} ItemTrackerDisplayType; } ItemTrackerDisplayType;
typedef enum { typedef enum {
@ -377,7 +377,7 @@ typedef enum {
typedef enum { typedef enum {
SECTION_DISPLAY_MINIMAL_HIDDEN, SECTION_DISPLAY_MINIMAL_HIDDEN,
SECTION_DISPLAY_MINIMAL_SEPARATE SECTION_DISPLAY_MINIMAL_SEPARATE,
} ItemTrackerMinimalDisplayType; } ItemTrackerMinimalDisplayType;
struct ItemTrackerNumbers { struct ItemTrackerNumbers {
@ -1562,20 +1562,20 @@ void ItemTrackerWindow::DrawElement() {
static std::unordered_map<int32_t, const char*> itemTrackerCapacityTrackOptions = { static std::unordered_map<int32_t, const char*> itemTrackerCapacityTrackOptions = {
{ ITEM_TRACKER_NUMBER_NONE, "No Numbers" }, { ITEM_TRACKER_NUMBER_CURRENT_CAPACITY_ONLY, "Current Capacity" }, { ITEM_TRACKER_NUMBER_CURRENT_AMMO_ONLY, "Current Ammo" }, { ITEM_TRACKER_NUMBER_NONE, "No Numbers" }, { ITEM_TRACKER_NUMBER_CURRENT_CAPACITY_ONLY, "Current Capacity" }, { ITEM_TRACKER_NUMBER_CURRENT_AMMO_ONLY, "Current Ammo" },
{ ITEM_TRACKER_NUMBER_CAPACITY, "Current Capacity / Max Capacity" }, { ITEM_TRACKER_NUMBER_AMMO, "Current Ammo / Current Capacity" }}; { ITEM_TRACKER_NUMBER_CAPACITY, "Current Capacity / Max Capacity" }, { ITEM_TRACKER_NUMBER_AMMO, "Current Ammo / Current Capacity" },};
static std::unordered_map<int32_t, const char*> itemTrackerKeyTrackOptions = { static std::unordered_map<int32_t, const char*> itemTrackerKeyTrackOptions = {
{ KEYS_COLLECTED_MAX, "Collected / Max" }, { KEYS_CURRENT_COLLECTED_MAX, "Current / Collected / Max" }, { KEYS_CURRENT_MAX, "Current / Max" }}; { KEYS_COLLECTED_MAX, "Collected / Max" }, { KEYS_CURRENT_COLLECTED_MAX, "Current / Collected / Max" }, { KEYS_CURRENT_MAX, "Current / Max" },};
static std::unordered_map<int32_t, const char*> itemTrackerTriforcePieceTrackOptions = { static std::unordered_map<int32_t, const char*> itemTrackerTriforcePieceTrackOptions = {
{ TRIFORCE_PIECE_COLLECTED_REQUIRED, "Collected / Required" }, { TRIFORCE_PIECE_COLLECTED_REQUIRED_MAX, "Collected / Required / Max" }}; { TRIFORCE_PIECE_COLLECTED_REQUIRED, "Collected / Required" }, { TRIFORCE_PIECE_COLLECTED_REQUIRED_MAX, "Collected / Required / Max" },};
static std::unordered_map<int32_t, const char*> windowTypes = {{ TRACKER_WINDOW_FLOATING, "Floating" }, { TRACKER_WINDOW_WINDOW, "Window" }}; static std::unordered_map<int32_t, const char*> windowTypes = {{ TRACKER_WINDOW_FLOATING, "Floating" }, { TRACKER_WINDOW_WINDOW, "Window" },};
static std::unordered_map<int32_t, const char*> displayModes = {{ TRACKER_DISPLAY_ALWAYS, "Always" }, { TRACKER_DISPLAY_COMBO_BUTTON, "Combo Button Hold" }}; static std::unordered_map<int32_t, const char*> displayModes = {{ TRACKER_DISPLAY_ALWAYS, "Always" }, { TRACKER_DISPLAY_COMBO_BUTTON, "Combo Button Hold" },};
static std::unordered_map<int32_t, const char*> buttons = {{ TRACKER_COMBO_BUTTON_A, "A" }, { TRACKER_COMBO_BUTTON_B, "B"}, { TRACKER_COMBO_BUTTON_C_UP, "C-Up"}, static std::unordered_map<int32_t, const char*> buttons = {{ TRACKER_COMBO_BUTTON_A, "A" }, { TRACKER_COMBO_BUTTON_B, "B"}, { TRACKER_COMBO_BUTTON_C_UP, "C-Up"},
{ TRACKER_COMBO_BUTTON_C_DOWN, "C-Down" }, { TRACKER_COMBO_BUTTON_C_LEFT, "C-Left" }, { TRACKER_COMBO_BUTTON_C_RIGHT, "C-Right" }, { TRACKER_COMBO_BUTTON_L, "L" }, { TRACKER_COMBO_BUTTON_C_DOWN, "C-Down" }, { TRACKER_COMBO_BUTTON_C_LEFT, "C-Left" }, { TRACKER_COMBO_BUTTON_C_RIGHT, "C-Right" }, { TRACKER_COMBO_BUTTON_L, "L" },
{ TRACKER_COMBO_BUTTON_Z, "Z" }, { TRACKER_COMBO_BUTTON_R, "R" }, { TRACKER_COMBO_BUTTON_START, "Start" }, { TRACKER_COMBO_BUTTON_D_UP, "D-Up" }, { TRACKER_COMBO_BUTTON_Z, "Z" }, { TRACKER_COMBO_BUTTON_R, "R" }, { TRACKER_COMBO_BUTTON_START, "Start" }, { TRACKER_COMBO_BUTTON_D_UP, "D-Up" },
{ TRACKER_COMBO_BUTTON_D_DOWN, "D-Down" }, { TRACKER_COMBO_BUTTON_D_LEFT, "D-Left" }, { TRACKER_COMBO_BUTTON_D_RIGHT, "D-Right" }}; { TRACKER_COMBO_BUTTON_D_DOWN, "D-Down" }, { TRACKER_COMBO_BUTTON_D_LEFT, "D-Left" }, { TRACKER_COMBO_BUTTON_D_RIGHT, "D-Right" },};
static std::unordered_map<int32_t, const char*> displayTypes = {{ SECTION_DISPLAY_HIDDEN, "Hidden" }, { SECTION_DISPLAY_MAIN_WINDOW, "Main Window" }, { SECTION_DISPLAY_SEPARATE, "Separate" }}; static std::unordered_map<int32_t, const char*> displayTypes = {{ SECTION_DISPLAY_HIDDEN, "Hidden" }, { SECTION_DISPLAY_MAIN_WINDOW, "Main Window" }, { SECTION_DISPLAY_SEPARATE, "Separate" },};
static std::unordered_map<int32_t, const char*> extendedDisplayTypes = {{ SECTION_DISPLAY_EXTENDED_HIDDEN, "Hidden" }, static std::unordered_map<int32_t, const char*> extendedDisplayTypes = {{ SECTION_DISPLAY_EXTENDED_HIDDEN, "Hidden" },
{ SECTION_DISPLAY_EXTENDED_MAIN_WINDOW, "Main Window" }, { SECTION_DISPLAY_EXTENDED_MISC_WINDOW, "Misc Window" }, { SECTION_DISPLAY_EXTENDED_SEPARATE, "Separate" }}; { SECTION_DISPLAY_EXTENDED_MAIN_WINDOW, "Main Window" }, { SECTION_DISPLAY_EXTENDED_MISC_WINDOW, "Misc Window" }, { SECTION_DISPLAY_EXTENDED_SEPARATE, "Separate" },};
static std::unordered_map<int32_t, const char*> minimalDisplayTypes = {{ SECTION_DISPLAY_MINIMAL_HIDDEN, "Hidden" }, { SECTION_DISPLAY_MINIMAL_SEPARATE, "Separate" }}; static std::unordered_map<int32_t, const char*> minimalDisplayTypes = {{ SECTION_DISPLAY_MINIMAL_HIDDEN, "Hidden" }, { SECTION_DISPLAY_MINIMAL_SEPARATE, "Separate" }};
void ItemTrackerSettingsWindow::DrawElement() { void ItemTrackerSettingsWindow::DrawElement() {

View file

@ -174,7 +174,7 @@ std::unordered_map<uint32_t, RandomizerHintTextKey> StaticData::areaNames = { //
{RA_BOTTOM_OF_THE_WELL, RHT_BOTTOM_OF_THE_WELL}, {RA_BOTTOM_OF_THE_WELL, RHT_BOTTOM_OF_THE_WELL},
{RA_ICE_CAVERN, RHT_ICE_CAVERN}, {RA_ICE_CAVERN, RHT_ICE_CAVERN},
{RA_GERUDO_TRAINING_GROUND, RHT_GERUDO_TRAINING_GROUND}, {RA_GERUDO_TRAINING_GROUND, RHT_GERUDO_TRAINING_GROUND},
{RA_GANONS_CASTLE, RHT_GANONS_CASTLE} {RA_GANONS_CASTLE, RHT_GANONS_CASTLE},
}; };
std::unordered_map<uint32_t, RandomizerHintTextKey> StaticData::trialData = { std::unordered_map<uint32_t, RandomizerHintTextKey> StaticData::trialData = {
@ -183,7 +183,7 @@ std::unordered_map<uint32_t, RandomizerHintTextKey> StaticData::trialData = {
{TK_FIRE_TRIAL, RHT_FIRE_TRIAL}, {TK_FIRE_TRIAL, RHT_FIRE_TRIAL},
{TK_WATER_TRIAL, RHT_WATER_TRIAL}, {TK_WATER_TRIAL, RHT_WATER_TRIAL},
{TK_SHADOW_TRIAL, RHT_SHADOW_TRIAL}, {TK_SHADOW_TRIAL, RHT_SHADOW_TRIAL},
{TK_SPIRIT_TRIAL, RHT_SPIRIT_TRIAL} {TK_SPIRIT_TRIAL, RHT_SPIRIT_TRIAL},
}; };
std::unordered_map<RandomizerHint, StaticHintInfo> StaticData::staticHintInfoMap = { std::unordered_map<RandomizerHint, StaticHintInfo> StaticData::staticHintInfoMap = {
@ -303,7 +303,7 @@ std::unordered_map<u32, RandomizerHint> StaticData::grottoChestParamsToHint{
{22984, RH_KAK_OPEN_GROTTO_GOSSIP_STONE}, {22984, RH_KAK_OPEN_GROTTO_GOSSIP_STONE},
{22985, RH_ZR_OPEN_GROTTO_GOSSIP_STONE}, {22985, RH_ZR_OPEN_GROTTO_GOSSIP_STONE},
{23802, RH_DMC_UPPER_GROTTO_GOSSIP_STONE}, {23802, RH_DMC_UPPER_GROTTO_GOSSIP_STONE},
{22988, RH_KF_STORMS_GROTTO_GOSSIP_STONE} {22988, RH_KF_STORMS_GROTTO_GOSSIP_STONE},
}; };
std::array<HintText, RHT_MAX> StaticData::hintTextTable = {}; std::array<HintText, RHT_MAX> StaticData::hintTextTable = {};

View file

@ -314,7 +314,7 @@ OTRGlobals::OTRGlobals() {
OOT_NTSC_US_GC, OOT_NTSC_US_GC,
OOT_PAL_GC, OOT_PAL_GC,
OOT_PAL_GC_DBG1, OOT_PAL_GC_DBG1,
OOT_PAL_GC_DBG2 OOT_PAL_GC_DBG2,
}; };
context = Ship::Context::CreateUninitializedInstance("Ship of Harkinian", appShortName, "shipofharkinian.json"); context = Ship::Context::CreateUninitializedInstance("Ship of Harkinian", appShortName, "shipofharkinian.json");

View file

@ -64,39 +64,39 @@ static const std::unordered_map<int32_t, const char*> notificationPosition = {
static const std::unordered_map<int32_t, const char*> dekuStickCheat = { static const std::unordered_map<int32_t, const char*> dekuStickCheat = {
{ DEKU_STICK_NORMAL, "Normal" }, { DEKU_STICK_NORMAL, "Normal" },
{ DEKU_STICK_UNBREAKABLE, "Unbreakable" }, { DEKU_STICK_UNBREAKABLE, "Unbreakable" },
{ DEKU_STICK_UNBREAKABLE_AND_ALWAYS_ON_FIRE, "Unbreakable + Always on Fire" } { DEKU_STICK_UNBREAKABLE_AND_ALWAYS_ON_FIRE, "Unbreakable + Always on Fire" },
}; };
static const std::unordered_map<int32_t, const char*> skipForcedDialogOptions = { static const std::unordered_map<int32_t, const char*> skipForcedDialogOptions = {
{ FORCED_DIALOG_SKIP_NONE, "None" }, { FORCED_DIALOG_SKIP_NONE, "None" },
{ FORCED_DIALOG_SKIP_NAVI, "Navi" }, { FORCED_DIALOG_SKIP_NAVI, "Navi" },
{ FORCED_DIALOG_SKIP_NPC, "NPCs" }, { FORCED_DIALOG_SKIP_NPC, "NPCs" },
{ FORCED_DIALOG_SKIP_ALL, "All" } { FORCED_DIALOG_SKIP_ALL, "All" },
}; };
static const std::unordered_map<int32_t, const char*> skipGetItemAnimationOptions = { static const std::unordered_map<int32_t, const char*> skipGetItemAnimationOptions = {
{ SGIA_DISABLED, "Disabled" }, { SGIA_DISABLED, "Disabled" },
{ SGIA_JUNK, "Junk Items" }, { SGIA_JUNK, "Junk Items" },
{ SGIA_ALL, "All Items" } { SGIA_ALL, "All Items" },
}; };
static const std::unordered_map<int32_t, const char*> chestStyleMatchesContentsOptions = { static const std::unordered_map<int32_t, const char*> chestStyleMatchesContentsOptions = {
{ CSMC_DISABLED, "Disabled" }, { CSMC_DISABLED, "Disabled" },
{ CSMC_BOTH, "Both" }, { CSMC_BOTH, "Both" },
{ CSMC_TEXTURE, "Texture Only" }, { CSMC_TEXTURE, "Texture Only" },
{ CSMC_SIZE, "Size Only" } { CSMC_SIZE, "Size Only" },
}; };
static const std::unordered_map<int32_t, const char*> timeTravelOptions = { static const std::unordered_map<int32_t, const char*> timeTravelOptions = {
{ TIME_TRAVEL_DISABLED, "Disabled" }, { TIME_TRAVEL_DISABLED, "Disabled" },
{ TIME_TRAVEL_OOT, "Ocarina of Time" }, { TIME_TRAVEL_OOT, "Ocarina of Time" },
{ TIME_TRAVEL_ANY, "Any Ocarina" } { TIME_TRAVEL_ANY, "Any Ocarina" },
}; };
static const std::unordered_map<int32_t, const char*> sleepingWaterfallOptions = { static const std::unordered_map<int32_t, const char*> sleepingWaterfallOptions = {
{ WATERFALL_ALWAYS, "Always" }, { WATERFALL_ALWAYS, "Always" },
{ WATERFALL_ONCE, "Once" }, { WATERFALL_ONCE, "Once" },
{ WATERFALL_NEVER, "Never" } { WATERFALL_NEVER, "Never" },
}; };
static const std::unordered_map<int32_t, const char*> allPowers = { static const std::unordered_map<int32_t, const char*> allPowers = {
@ -108,7 +108,7 @@ static const std::unordered_map<int32_t, const char*> allPowers = {
{ DAMAGE_RIDICULOUS, "Ridiculous (32x)" }, { DAMAGE_RIDICULOUS, "Ridiculous (32x)" },
{ DAMAGE_MERCILESS, "Merciless (64x)" }, { DAMAGE_MERCILESS, "Merciless (64x)" },
{ DAMAGE_TORTURE, "Pure Torture (128x)" }, { DAMAGE_TORTURE, "Pure Torture (128x)" },
{ DAMAGE_OHKO, "OHKO (256x)" } { DAMAGE_OHKO, "OHKO (256x)" },
}; };
static const std::unordered_map<int32_t, const char*> subPowers = { static const std::unordered_map<int32_t, const char*> subPowers = {
@ -140,25 +140,25 @@ static const std::unordered_map<int32_t, const char*> bonkDamageValues = {
{ BONK_DAMAGE_2_HEARTS, "2 Hearts" }, { BONK_DAMAGE_2_HEARTS, "2 Hearts" },
{ BONK_DAMAGE_4_HEARTS, "4 Hearts" }, { BONK_DAMAGE_4_HEARTS, "4 Hearts" },
{ BONK_DAMAGE_8_HEARTS, "8 Hearts" }, { BONK_DAMAGE_8_HEARTS, "8 Hearts" },
{ BONK_DAMAGE_OHKO, "OHKO" } { BONK_DAMAGE_OHKO, "OHKO" },
}; };
static const std::unordered_map<int32_t, const char*> cursorAnywhereValues = { static const std::unordered_map<int32_t, const char*> cursorAnywhereValues = {
{ PAUSE_ANY_CURSOR_RANDO_ONLY, "Only in Rando" }, { PAUSE_ANY_CURSOR_RANDO_ONLY, "Only in Rando" },
{ PAUSE_ANY_CURSOR_ALWAYS_ON, "Always" }, { PAUSE_ANY_CURSOR_ALWAYS_ON, "Always" },
{ PAUSE_ANY_CURSOR_ALWAYS_OFF, "Never" } { PAUSE_ANY_CURSOR_ALWAYS_OFF, "Never" },
}; };
static const std::unordered_map<int32_t, const char*> swordToggleModes = { static const std::unordered_map<int32_t, const char*> swordToggleModes = {
{ SWORD_TOGGLE_NONE, "None" }, { SWORD_TOGGLE_NONE, "None" },
{ SWORD_TOGGLE_CHILD, "Child Toggle" }, { SWORD_TOGGLE_CHILD, "Child Toggle" },
{ SWORD_TOGGLE_BOTH_AGES, "Both Ages" } { SWORD_TOGGLE_BOTH_AGES, "Both Ages" },
}; };
static const std::unordered_map<int32_t, const char*> zFightingOptions = { static const std::unordered_map<int32_t, const char*> zFightingOptions = {
{ ZFIGHT_FIX_DISABLED, "Disabled" }, { ZFIGHT_FIX_DISABLED, "Disabled" },
{ ZFIGHT_FIX_CONSISTENT_VANISH, "Consistent Vanish" }, { ZFIGHT_FIX_CONSISTENT_VANISH, "Consistent Vanish" },
{ ZFIGHT_FIX_NO_VANISH, "No Vanish" } { ZFIGHT_FIX_NO_VANISH, "No Vanish" },
}; };
static const std::unordered_map<int32_t, const char*> mirroredWorldModes = { static const std::unordered_map<int32_t, const char*> mirroredWorldModes = {
@ -170,13 +170,13 @@ static const std::unordered_map<int32_t, const char*> mirroredWorldModes = {
{ MIRRORED_WORLD_DUNGEONS_VANILLA, "Dungeons (Vanilla)" }, { MIRRORED_WORLD_DUNGEONS_VANILLA, "Dungeons (Vanilla)" },
{ MIRRORED_WORLD_DUNGEONS_MQ, "Dungeons (MQ)" }, { MIRRORED_WORLD_DUNGEONS_MQ, "Dungeons (MQ)" },
{ MIRRORED_WORLD_DUNGEONS_RANDOM, "Dungeons Random" }, { MIRRORED_WORLD_DUNGEONS_RANDOM, "Dungeons Random" },
{ MIRRORED_WORLD_DUNGEONS_RANDOM_SEEDED, "Dungeons Random (Seeded)"} { MIRRORED_WORLD_DUNGEONS_RANDOM_SEEDED, "Dungeons Random (Seeded)"},
}; };
static const std::unordered_map<int32_t, const char*> enemyRandomizerModes = { static const std::unordered_map<int32_t, const char*> enemyRandomizerModes = {
{ ENEMY_RANDOMIZER_OFF, "Disabled" }, { ENEMY_RANDOMIZER_OFF, "Disabled" },
{ ENEMY_RANDOMIZER_RANDOM, "Random" }, { ENEMY_RANDOMIZER_RANDOM, "Random" },
{ ENEMY_RANDOMIZER_RANDOM_SEEDED, "Random (Seeded)"} { ENEMY_RANDOMIZER_RANDOM_SEEDED, "Random (Seeded)"},
}; };
static const std::unordered_map<int32_t, const char*> debugSaveFileModes = { static const std::unordered_map<int32_t, const char*> debugSaveFileModes = {
@ -186,14 +186,14 @@ static const std::unordered_map<int32_t, const char*> debugSaveFileModes = {
static const std::unordered_map<int32_t, const char*> bootSequenceLabels = { static const std::unordered_map<int32_t, const char*> bootSequenceLabels = {
{ BOOTSEQUENCE_DEFAULT, "Default" }, { BOOTSEQUENCE_DEFAULT, "Default" },
{ BOOTSEQUENCE_AUTHENTIC, "Authentic" }, { BOOTSEQUENCE_AUTHENTIC, "Authentic" },
{ BOOTSEQUENCE_FILESELECT, "File Select" } { BOOTSEQUENCE_FILESELECT, "File Select" },
}; };
static const std::unordered_map<int32_t, const char*> enhancementPresetList = { static const std::unordered_map<int32_t, const char*> enhancementPresetList = {
{ ENHANCEMENT_PRESET_DEFAULT, "Default" }, { ENHANCEMENT_PRESET_DEFAULT, "Default" },
{ ENHANCEMENT_PRESET_VANILLA_PLUS, "Vanilla Plus" }, { ENHANCEMENT_PRESET_VANILLA_PLUS, "Vanilla Plus" },
{ ENHANCEMENT_PRESET_ENHANCED, "Enhanced" }, { ENHANCEMENT_PRESET_ENHANCED, "Enhanced" },
{ ENHANCEMENT_PRESET_RANDOMIZER, "Randomizer" } { ENHANCEMENT_PRESET_RANDOMIZER, "Randomizer" },
}; };
class SohMenu : public Ship::Menu { class SohMenu : public Ship::Menu {

View file

@ -10,7 +10,7 @@
static std::string comboboxTooltip = ""; static std::string comboboxTooltip = "";
static int32_t enhancementPresetSelected = ENHANCEMENT_PRESET_DEFAULT; static int32_t enhancementPresetSelected = ENHANCEMENT_PRESET_DEFAULT;
bool isBetaQuestEnabled = false; bool isBetaQuestEnabled = false;
static std::unordered_map<int32_t, const char*> bunnyHoodEffectMap = {{ BUNNY_HOOD_VANILLA, "Vanilla" }, { BUNNY_HOOD_FAST, "Faster Run" }, { BUNNY_HOOD_FAST_AND_JUMP, "Faster + Longer Jump" }}; static std::unordered_map<int32_t, const char*> bunnyHoodEffectMap = {{ BUNNY_HOOD_VANILLA, "Vanilla" }, { BUNNY_HOOD_FAST, "Faster Run" }, { BUNNY_HOOD_FAST_AND_JUMP, "Faster + Longer Jump" },};
extern "C" { extern "C" {
void enableBetaQuest() { isBetaQuestEnabled = true; } void enableBetaQuest() { isBetaQuestEnabled = true; }

View file

@ -14,8 +14,8 @@ namespace SohGui {
extern std::shared_ptr<SohMenu> mSohMenu; extern std::shared_ptr<SohMenu> mSohMenu;
using namespace UIWidgets; using namespace UIWidgets;
static const std::unordered_map<int32_t, const char*> languages = {{ LANGUAGE_ENG, "English" }, { LANGUAGE_GER, "German" }, { LANGUAGE_FRA, "French" }, { LANGUAGE_JPN, "Japanese"}}; static const std::unordered_map<int32_t, const char*> languages = {{ LANGUAGE_ENG, "English" }, { LANGUAGE_GER, "German" }, { LANGUAGE_FRA, "French" }, { LANGUAGE_JPN, "Japanese"}, };
static std::unordered_map<int32_t, const char*> imguiScaleOptions = {{ 0, "Small" }, { 1, "Normal" }, { 2, "Large" }, { 3, "X-Large" }}; static std::unordered_map<int32_t, const char*> imguiScaleOptions = {{ 0, "Small" }, { 1, "Normal" }, { 2, "Large" }, { 3, "X-Large" }, };
const char* GetGameVersionString(uint32_t index) { const char* GetGameVersionString(uint32_t index) {
uint32_t gameVersion = ResourceMgr_GetGameVersion(index); uint32_t gameVersion = ResourceMgr_GetGameVersion(index);

View file

@ -4140,7 +4140,7 @@ const char* msgStaticTbl[] =
gFadingMessageBackgroundTex, gFadingMessageBackgroundTex,
gMessageContinueTriangleTex, gMessageContinueTriangleTex,
gMessageEndSquareTex, gMessageEndSquareTex,
gMessageArrowTex gMessageArrowTex,
}; };
// #endregion // #endregion

View file

@ -663,34 +663,62 @@ static BetterSceneSelectEntry sBetterScenes[] = {
}; };
static BetterSceneSelectGrottoData sBetterGrottos[] = { static BetterSceneSelectGrottoData sBetterGrottos[] = {
{ ENTR_GROTTOS_0, ENTR_KOKIRI_FOREST_0, 0, 0x2C, SCENE_KOKIRI_FOREST, { -504.0, 380.0, -1224.0 }}, // Kokiri Forest -> KF Storms Grotto // Kokiri Forest -> KF Storms Grotto
{ ENTR_GROTTOS_0, ENTR_LOST_WOODS_TUNNEL_SHORTCUT, 2, 0x14, SCENE_LOST_WOODS, { 922.0, 0.0, -933.0 }}, // Lost Woods -> LW Near Shortcuts Grotto { ENTR_GROTTOS_0, ENTR_KOKIRI_FOREST_0, 0, 0x2C, SCENE_KOKIRI_FOREST, { -504.0, 380.0, -1224.0 }},
{ ENTR_GROTTOS_8, ENTR_SACRED_FOREST_MEADOW_SOUTH_EXIT, 0, 0xED, SCENE_SACRED_FOREST_MEADOW, { -201.0, 0.0, 1906.0 }}, // SFM Entryway -> SFM Wolfos Grotto // Lost Woods -> LW Near Shortcuts Grotto
{ ENTR_GROTTOS_0, ENTR_HYRULE_FIELD_PAST_BRIDGE_SPAWN, 0, 0x00, SCENE_HYRULE_FIELD, { -1428.0, 0.0, 790.0 }}, // Hyrule Field -> HF Near Market Grotto { ENTR_GROTTOS_0, ENTR_LOST_WOODS_TUNNEL_SHORTCUT, 2, 0x14, SCENE_LOST_WOODS, { 922.0, 0.0, -933.0 }},
{ ENTR_GROTTOS_0, ENTR_HYRULE_FIELD_FENCE_EXIT, 0, 0x03, SCENE_HYRULE_FIELD, { -4026.0, -700.0, 13858.0 }}, // Hyrule Field -> HF Open Grotto // SFM Entryway -> SFM Wolfos Grotto
{ ENTR_GROTTOS_0, ENTR_HYRULE_FIELD_FENCE_EXIT, 0, 0x22, SCENE_HYRULE_FIELD, { -259.0, -500.0, 12356.0 }}, // Hyrule Field -> HF Southeast Grotto { ENTR_GROTTOS_8, ENTR_SACRED_FOREST_MEADOW_SOUTH_EXIT, 0, 0xED, SCENE_SACRED_FOREST_MEADOW, { -201.0, 0.0, 1906.0 }},
{ ENTR_GROTTOS_0, ENTR_KAKARIKO_VILLAGE_OUTSIDE_SHOP_GRANNY, 0, 0x28, SCENE_KAKARIKO_VILLAGE, { 861.0, 80.0, -253.0 }}, // Kak Backyard -> Kak Open Grotto // Hyrule Field -> HF Near Market Grotto
{ ENTR_GROTTOS_3, ENTR_KAKARIKO_VILLAGE_OUTSIDE_SHOP_GRANNY, 0, 0xE7, SCENE_KAKARIKO_VILLAGE, { -400.0, 0.0, 408.0 }}, // Kakariko Village -> Kak Redead Grotto { ENTR_GROTTOS_0, ENTR_HYRULE_FIELD_PAST_BRIDGE_SPAWN, 0, 0x00, SCENE_HYRULE_FIELD, { -1428.0, 0.0, 790.0 }},
{ ENTR_GROTTOS_0, ENTR_DEATH_MOUNTAIN_TRAIL_GC_EXIT, 0, 0x57, SCENE_DEATH_MOUNTAIN_TRAIL, { -389.0, 1386.0, -1202.0 }}, // Death Mountain -> DMT Storms Grotto // Hyrule Field -> HF Open Grotto
{ ENTR_GROTTOS_0, ENTR_DEATH_MOUNTAIN_CRATER_UPPER_EXIT, 1, 0x7A, SCENE_DEATH_MOUNTAIN_CRATER, { 50.0, 1233.0, 1776.0 }}, // DMC Upper Nearby -> DMC Upper Grotto { ENTR_GROTTOS_0, ENTR_HYRULE_FIELD_FENCE_EXIT, 0, 0x03, SCENE_HYRULE_FIELD, { -4026.0, -700.0, 13858.0 }},
{ ENTR_GROTTOS_0, ENTR_ZORAS_RIVER_WATERFALL_EXIT, 0, 0x29, SCENE_ZORAS_RIVER, { 369.0, 570.0, 128.0 }}, // Zora River -> ZR Open Grotto // Hyrule Field -> HF Southeast Grotto
{ ENTR_GROTTOS_2, ENTR_HYRULE_FIELD_FENCE_EXIT, 0, 0xE6, SCENE_HYRULE_FIELD, { -5002.0, -700.0, 13823.0 }}, // Hyrule Field -> HF Inside Fence Grotto { ENTR_GROTTOS_0, ENTR_HYRULE_FIELD_FENCE_EXIT, 0, 0x22, SCENE_HYRULE_FIELD, { -259.0, -500.0, 12356.0 }},
{ ENTR_GROTTOS_4, ENTR_DEATH_MOUNTAIN_CRATER_GC_EXIT, 1, 0xF9, SCENE_DEATH_MOUNTAIN_CRATER, { -1703.0, 722.0, -481.0 }}, // DMC Lower Nearby -> DMC Hammer Grotto // Kak Backyard -> Kak Open Grotto
{ ENTR_GROTTOS_4, ENTR_GORON_CITY_UPPER_EXIT, 3, 0xFB, SCENE_GORON_CITY, { 1091.0, 580.0, -1192.0 }}, // GC Grotto Platform -> GC Grotto { ENTR_GROTTOS_0, ENTR_KAKARIKO_VILLAGE_OUTSIDE_SHOP_GRANNY, 0, 0x28, SCENE_KAKARIKO_VILLAGE, { 861.0, 80.0, -253.0 }},
{ ENTR_GROTTOS_4, ENTR_LON_LON_RANCH_OUTSIDE_TOWER, 0, 0xFC, SCENE_LON_LON_RANCH, { 1798.0, 0.0, 1498.0 }}, // Lon Lon Ranch -> LLR Grotto // Kakariko Village -> Kak Redead Grotto
{ ENTR_GROTTOS_4, ENTR_LAKE_HYLIA_OUTSIDE_TEMPLE, 0, 0xEF, SCENE_LAKE_HYLIA, { -3044.0, -1033.0, 6070.0 }}, // Lake Hylia -> LH Grotto { ENTR_GROTTOS_3, ENTR_KAKARIKO_VILLAGE_OUTSIDE_SHOP_GRANNY, 0, 0xE7, SCENE_KAKARIKO_VILLAGE, { -400.0, 0.0, 408.0 }},
{ ENTR_GROTTOS_7, ENTR_LOST_WOODS_NORTH_EXIT, 8, 0xF5, SCENE_LOST_WOODS, { 677.0, 0.0, -2515.0 }}, // LW Beyond Mido -> LW Scrubs Grotto // Death Mountain -> DMT Storms Grotto
{ ENTR_GROTTOS_10, ENTR_ZORAS_RIVER_WEST_EXIT, 0, 0xEB, SCENE_ZORAS_RIVER, { -1632.0, 100.0, -123.0 }}, // Zora River -> ZR Storms Grotto { ENTR_GROTTOS_0, ENTR_DEATH_MOUNTAIN_TRAIL_GC_EXIT, 0, 0x57, SCENE_DEATH_MOUNTAIN_TRAIL, { -389.0, 1386.0, -1202.0 }},
{ ENTR_GROTTOS_10, ENTR_SACRED_FOREST_MEADOW_OUTSIDE_TEMPLE, 0, 0xEE, SCENE_SACRED_FOREST_MEADOW, { 317.0, 480.0, -2303.0 }}, // Sacred Forest Meadow -> SFM Storms Grotto // DMC Upper Nearby -> DMC Upper Grotto
{ ENTR_GROTTOS_10, ENTR_GERUDO_VALLEY_OUTSIDE_TENT, 0, 0xF0, SCENE_GERUDO_VALLEY, { -1321.0, 15.0, -968.0 }}, // GV Fortress Side -> GV Storms Grotto { ENTR_GROTTOS_0, ENTR_DEATH_MOUNTAIN_CRATER_UPPER_EXIT, 1, 0x7A, SCENE_DEATH_MOUNTAIN_CRATER, { 50.0, 1233.0, 1776.0 }},
{ ENTR_GROTTOS_10, ENTR_DESERT_COLOSSUS_WARP_PAD, 0, 0xFD, SCENE_DESERT_COLOSSUS, { 71.0, -32.0, -1303.0 }}, // Desert Colossus -> Colossus Grotto // Zora River -> ZR Open Grotto
{ ENTR_GROTTOS_12, ENTR_LOST_WOODS_TUNNEL_SHORTCUT, 6, 0xF3, SCENE_LOST_WOODS, { 75.0, -20.0, -1596.0 }}, // LW Beyond Mido -> Deku Theater { ENTR_GROTTOS_0, ENTR_ZORAS_RIVER_WATERFALL_EXIT, 0, 0x29, SCENE_ZORAS_RIVER, { 369.0, 570.0, 128.0 }},
{ ENTR_GROTTOS_1, ENTR_HYRULE_FIELD_STAIRS_EXIT, 0, 0xE5, SCENE_HYRULE_FIELD, { 2059.0, 20.0, -174.0 }}, // Hyrule Field -> HF Near Kak Grotto // Hyrule Field -> HF Inside Fence Grotto
{ ENTR_GROTTOS_9, ENTR_CASTLE_GROUNDS_RAINBOW_BRIDGE_EXIT, 0, 0xF6, SCENE_HYRULE_CASTLE, { 986.0, 1571.0, 837.0 }}, // Hyrule Castle Grounds -> HC Storms Grotto { ENTR_GROTTOS_2, ENTR_HYRULE_FIELD_FENCE_EXIT, 0, 0xE6, SCENE_HYRULE_FIELD, { -5002.0, -700.0, 13823.0 }},
{ ENTR_GROTTOS_5, ENTR_HYRULE_FIELD_ROCKY_PATH, 0, 0xE4, SCENE_HYRULE_FIELD, { -7873.0, -300.0, 6916.0 }}, // Hyrule Field -> HF Cow Grotto // DMC Lower Nearby -> DMC Hammer Grotto
{ ENTR_GROTTOS_13, ENTR_DEATH_MOUNTAIN_TRAIL_GC_EXIT, 0, 0xF8, SCENE_DEATH_MOUNTAIN_TRAIL, { -678.0, 1946.0, -284.0 }}, // Death Mountain Summit -> DMT Cow Grotto { ENTR_GROTTOS_4, ENTR_DEATH_MOUNTAIN_CRATER_GC_EXIT, 1, 0xF9, SCENE_DEATH_MOUNTAIN_CRATER, { -1703.0, 722.0, -481.0 }},
{ ENTR_GROTTOS_6, ENTR_GERUDO_VALLEY_EAST_EXIT, 0, 0xF2, SCENE_GERUDO_VALLEY, { 271.0, -555.0, 1465.0 }}, // GV Grotto Ledge -> GV Octorok Grotto // GC Grotto Platform -> GC Grotto
{ ENTR_GROTTOS_11, ENTR_HYRULE_FIELD_PAST_BRIDGE_SPAWN, 0, 0xE1, SCENE_HYRULE_FIELD, { -4945.0, -300.0, 2841.0 }}, // Hyrule Field -> HF Tektite Grotto { ENTR_GROTTOS_4, ENTR_GORON_CITY_UPPER_EXIT, 3, 0xFB, SCENE_GORON_CITY, { 1091.0, 580.0, -1192.0 }},
// Lon Lon Ranch -> LLR Grotto
{ ENTR_GROTTOS_4, ENTR_LON_LON_RANCH_OUTSIDE_TOWER, 0, 0xFC, SCENE_LON_LON_RANCH, { 1798.0, 0.0, 1498.0 }},
// Lake Hylia -> LH Grotto
{ ENTR_GROTTOS_4, ENTR_LAKE_HYLIA_OUTSIDE_TEMPLE, 0, 0xEF, SCENE_LAKE_HYLIA, { -3044.0, -1033.0, 6070.0 }},
// LW Beyond Mido -> LW Scrubs Grotto
{ ENTR_GROTTOS_7, ENTR_LOST_WOODS_NORTH_EXIT, 8, 0xF5, SCENE_LOST_WOODS, { 677.0, 0.0, -2515.0 }},
// Zora River -> ZR Storms Grotto
{ ENTR_GROTTOS_10, ENTR_ZORAS_RIVER_WEST_EXIT, 0, 0xEB, SCENE_ZORAS_RIVER, { -1632.0, 100.0, -123.0 }},
// Sacred Forest Meadow -> SFM Storms Grotto
{ ENTR_GROTTOS_10, ENTR_SACRED_FOREST_MEADOW_OUTSIDE_TEMPLE, 0, 0xEE, SCENE_SACRED_FOREST_MEADOW, { 317.0, 480.0, -2303.0 }},
// GV Fortress Side -> GV Storms Grotto
{ ENTR_GROTTOS_10, ENTR_GERUDO_VALLEY_OUTSIDE_TENT, 0, 0xF0, SCENE_GERUDO_VALLEY, { -1321.0, 15.0, -968.0 }},
// Desert Colossus -> Colossus Grotto
{ ENTR_GROTTOS_10, ENTR_DESERT_COLOSSUS_WARP_PAD, 0, 0xFD, SCENE_DESERT_COLOSSUS, { 71.0, -32.0, -1303.0 }},
// LW Beyond Mido -> Deku Theater
{ ENTR_GROTTOS_12, ENTR_LOST_WOODS_TUNNEL_SHORTCUT, 6, 0xF3, SCENE_LOST_WOODS, { 75.0, -20.0, -1596.0 }},
// Hyrule Field -> HF Near Kak Grotto
{ ENTR_GROTTOS_1, ENTR_HYRULE_FIELD_STAIRS_EXIT, 0, 0xE5, SCENE_HYRULE_FIELD, { 2059.0, 20.0, -174.0 }},
// Hyrule Castle Grounds -> HC Storms Grotto
{ ENTR_GROTTOS_9, ENTR_CASTLE_GROUNDS_RAINBOW_BRIDGE_EXIT, 0, 0xF6, SCENE_HYRULE_CASTLE, { 986.0, 1571.0, 837.0 }},
// Hyrule Field -> HF Cow Grotto
{ ENTR_GROTTOS_5, ENTR_HYRULE_FIELD_ROCKY_PATH, 0, 0xE4, SCENE_HYRULE_FIELD, { -7873.0, -300.0, 6916.0 }},
// Death Mountain Summit -> DMT Cow Grotto
{ ENTR_GROTTOS_13, ENTR_DEATH_MOUNTAIN_TRAIL_GC_EXIT, 0, 0xF8, SCENE_DEATH_MOUNTAIN_TRAIL, { -678.0, 1946.0, -284.0 }},
// GV Grotto Ledge -> GV Octorok Grotto
{ ENTR_GROTTOS_6, ENTR_GERUDO_VALLEY_EAST_EXIT, 0, 0xF2, SCENE_GERUDO_VALLEY, { 271.0, -555.0, 1465.0 }},
// Hyrule Field -> HF Tektite Grotto
{ ENTR_GROTTOS_11, ENTR_HYRULE_FIELD_PAST_BRIDGE_SPAWN, 0, 0xE1, SCENE_HYRULE_FIELD, { -4945.0, -300.0, 2841.0 }},
}; };
void Select_UpdateMenu(SelectContext* this) { void Select_UpdateMenu(SelectContext* this) {