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.Ammo"),
CVAR_ENHANCEMENT("ExtraTraps.Kill"),
CVAR_ENHANCEMENT("ExtraTraps.Teleport")
CVAR_ENHANCEMENT("ExtraTraps.Teleport"),
};
std::vector<AltTrapType> getEnabledAddTraps () {

View file

@ -27,39 +27,50 @@ static DListPatchInfo freezardBodyDListPatchInfos[] = {
};
static DListPatchInfo ironKnuckleDListPatchInfos[] = {
// VambraceLeft
{ object_ik_DL_01BE98, 39 },
{ object_ik_DL_01BE98, 59 },
// ArmLeft
{ object_ik_DL_01C130, 38 },
// VambraceRight
{ object_ik_DL_01C2B8, 39 },
{ object_ik_DL_01C2B8, 59 },
// ArmRight
{ object_ik_DL_01C550, 38 },
// Waist
{ object_ik_DL_01C7B8, 8 },
{ object_ik_DL_01C7B8, 28 },
// PauldronLeft
{ object_ik_DL_01CB58, 8 },
{ object_ik_DL_01CB58, 31 },
// BootTipLeft
{ object_ik_DL_01CCA0, 15 },
{ object_ik_DL_01CCA0, 37 },
{ object_ik_DL_01CCA0, 52 },
{ object_ik_DL_01CCA0, 68 },
// WaistArmorLeft
{ object_ik_DL_01CEE0, 27 },
{ object_ik_DL_01CEE0, 46 },
{ object_ik_DL_01CEE0, 125 },
// PauldronRight
{ object_ik_DL_01D2B0, 8 },
{ object_ik_DL_01D2B0, 32 },
// BootTipRight
{ object_ik_DL_01D3F8, 15 },
{ object_ik_DL_01D3F8, 37 },
{ object_ik_DL_01D3F8, 52 },
{ object_ik_DL_01D3F8, 68 },
// WaistArmorRight
{ object_ik_DL_01D638, 23 },
{ object_ik_DL_01D638, 42 },
{ 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
Gfx mirroredSunSongTex[] = {
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)) {

View file

@ -219,7 +219,7 @@ const static std::map<std::string, uint16_t> ammoItems{
{ "sticks", ITEM_STICK }, { "nuts", ITEM_NUT },
{ "bombs", ITEM_BOMB }, { "seeds", ITEM_SLINGSHOT },
{ "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) {
@ -1418,17 +1418,17 @@ void DebugConsole_Init(void) {
CMD_REGISTER("save_state", {SaveStateHandler, "Save a state."});
CMD_REGISTER("load_state", {LoadStateHandler, "Load a state."});
CMD_REGISTER("set_slot", {StateSlotSelectHandler, "Selects a SaveState slot", {
{"Slot number", Ship::ArgumentType::NUMBER,}
{"Slot number", Ship::ArgumentType::NUMBER},
}});
// Map & Location
CMD_REGISTER("void", {VoidHandler, "Voids out of the current map."});
CMD_REGISTER("reload", {ReloadHandler, "Reloads the current map."});
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)", {
{"entrance", Ship::ArgumentType::NUMBER}
{"entrance", Ship::ArgumentType::NUMBER},
}});
// Gameplay
@ -1437,11 +1437,11 @@ void DebugConsole_Init(void) {
CMD_REGISTER("map", {LoadSceneHandler, "Load up kak?"});
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.", {
{"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
@ -1451,50 +1451,50 @@ void DebugConsole_Init(void) {
{"z", Ship::ArgumentType::NUMBER, true},
{"rx", 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.", {
{"x", 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.", {
{"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.", {
{"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.", {
{"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", {
{"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.", {
{"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.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
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.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
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."});
CMD_REGISTER("gravity", {GravityHandler, "Set gravity level.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
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("defense_modifier", {DefenseModifierHandler, "Sets the defense modifier.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
CMD_REGISTER("damage", {DamageHandler, "Deal damage to Link.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
CMD_REGISTER("heal", {HealHandler, "Heals Link.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
CMD_REGISTER("fill_magic", {FillMagicHandler, "Fills magic."});
@ -1530,34 +1530,34 @@ void DebugConsole_Init(void) {
CMD_REGISTER("empty_magic", {EmptyMagicHandler, "Empties magic."});
CMD_REGISTER("no_z", {NoZHandler, "Disables Z-button presses.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
CMD_REGISTER("ohko", {OneHitKOHandler,
"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.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
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("reverse_controls", {ReverseControlsHandler, "Reverses the controls.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
CMD_REGISTER("update_rupees", {UpdateRupeesHandler, "Adds rupees.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
CMD_REGISTER("speed_modifier", {SpeedModifierHandler, "Sets the speed modifier.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
CMD_REGISTER("boots", {BootsHandler, "Activates boots.", {
@ -1573,7 +1573,7 @@ void DebugConsole_Init(void) {
}});
CMD_REGISTER("knockback", {KnockbackHandler, "Knocks Link back.", {
{"value", Ship::ArgumentType::NUMBER}
{"value", Ship::ArgumentType::NUMBER},
}});
CMD_REGISTER("electrocute", {ElectrocuteHandler, "Electrocutes Link."});

View file

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

View file

@ -159,7 +159,7 @@ static int enemiesToRandomize[] = {
ACTOR_EN_HINTNUTS, // Hint Deku Scrubs
ACTOR_EN_WF, // Wolfos
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,

View file

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

View file

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

View file

@ -33,7 +33,7 @@ PriceSettingsStruct shopsanityPrices = {RSK_SHOPSANITY_PRICES,
RSK_SHOPSANITY_PRICES_ADULT_WALLET_WEIGHT,
RSK_SHOPSANITY_PRICES_GIANT_WALLET_WEIGHT,
RSK_SHOPSANITY_PRICES_TYCOON_WALLET_WEIGHT,
RSK_SHOPSANITY_PRICES_AFFORDABLE};
RSK_SHOPSANITY_PRICES_AFFORDABLE, };
PriceSettingsStruct scrubPrices = {RSK_SCRUBS_PRICES,
RSK_SCRUBS_PRICES_FIXED_PRICE,
@ -44,7 +44,7 @@ PriceSettingsStruct scrubPrices = {RSK_SCRUBS_PRICES,
RSK_SCRUBS_PRICES_ADULT_WALLET_WEIGHT,
RSK_SCRUBS_PRICES_GIANT_WALLET_WEIGHT,
RSK_SCRUBS_PRICES_TYCOON_WALLET_WEIGHT,
RSK_SCRUBS_PRICES_AFFORDABLE};
RSK_SCRUBS_PRICES_AFFORDABLE, };
PriceSettingsStruct merchantPrices = {RSK_MERCHANT_PRICES,
RSK_MERCHANT_PRICES_FIXED_PRICE,
@ -55,7 +55,7 @@ PriceSettingsStruct merchantPrices = {RSK_MERCHANT_PRICES,
RSK_MERCHANT_PRICES_ADULT_WALLET_WEIGHT,
RSK_MERCHANT_PRICES_GIANT_WALLET_WEIGHT,
RSK_MERCHANT_PRICES_TYCOON_WALLET_WEIGHT,
RSK_MERCHANT_PRICES_AFFORDABLE};
RSK_MERCHANT_PRICES_AFFORDABLE, };
static void RemoveStartingItemsFromPool() {
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
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) {
@ -166,7 +167,8 @@ uint16_t GetPriceFromSettings(Rando::Location *loc, PriceSettingsStruct priceSet
for (size_t i = 0; i < ShopPriceProbability.size(); i++) {
if (random < ShopPriceProbability[i]) {
// 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;
@ -289,67 +291,67 @@ void InitTrickNames() {
trickNameTable[RG_KOKIRI_SWORD] = {
Text{"Korok Sword", "Épée Korok", "Espada Korok"},
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] = {
Text{"Goddess Sword", "Épée de la déesse", "Espada Divina"},
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] = {
Text{"Medigoron's Sword", "l'Épée de Medigoron", "La espada de Medigoron"},
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] = {
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{"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] = {
Text{"Boko Shield", "Bouclier Boko", "Escudo Boko"},
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] = {
Text{"Hyrule Shield", "Bouclier d'Hyrule", "Escudo Hylian"},
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] = {
Text{"Magic Mirror", "Miroir Magique", "Escudo mágico"},
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] = {
Text{"Gerudo Top", "Tunique Gerudo", "Pechera gerudo"},
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] = {
Text{"Rito Tunic", "Tunique Rito", "Sayo rito"},
Text{"Mermaid Suit", "Costume de sirène", "Costume de sirène"},
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] = {
Text{"Iron Hoofs", "Patins de Plomb", "Botas férreas"},
Text{"Snow Boots", "Bottes de Neige", "Botas de nieve"},
Text{"Red Boots", "Bottes rouges", "Botas rojas"},
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] = {
Text{"Hover Hoofs", "Patins des airs", "Botas flotadoras"},
Text{"Golden Boots", "Bottes dorées", "Botas de Oro"},
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] = {
Text{"Poached Egg", "Oeuf à la coque", "Huevo pasado"},
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] = {
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{"Letter to Kafei", "Lettre pour Kafei", "Carta para Kafei "},
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] = {
Text{"Banana", "Banane", "Plátano"},
Text{"Prank Fetch Toy", "Inséparable Bâtonnet", "Bumerang"},
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] = {
Text{"Sheikah-leidoscope", "Sheikah-léidoscope", "Monóculo de la Verdad"},
Text{"Sheikah Sensor", "Sonar Sheikah", "Sensor Sheikah"},
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] = {
Text{"Goron Gavel", "Masse Perforatrice", "Mazo Goron"},
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] = {
Text{"Cave Charm", "Charme de grotte", "Amuleto de la cueva"},
Text{"Stone of Agahnim", "Fragment d'Agahnim", "Piedra de Agahnim"},
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] = {
Text{"Eldin's Fire", "Feu d'Eldin", "Fuego de Eldin"},
Text{"Din's Blaze", "Flamme de Din", "Poder de Din"},
Text{"Magic Lantern", "Lanterne Magique", "Linterna mágica"},
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] = {
Text{"Faron's Wind", "Vent de Firone", "Viento de Farone"},
Text{"Farore's Windfall", "Zéphyr de Farore", "Valor de Farore"},
Text{"Tingle Air", "Tingle Air", "Tingle de aire"},
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] = {
Text{"Lanayru's Love", "Amour de Lanelle", "Amor de Lanayru"},
Text{"Nayru's Passion", "Passion de Nayru", "Sabiduría de Nayru"},
Text{"Tingle Shield", "Bouclier Tingle", "Escudo de hormigueo"},
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] = {
Text{"Fire Rod", "Baguette de feu", "Cetro de fuego"},
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] = {
Text{"Ice Rod", "Baguette des Glaces", "Cetro de Hielo"},
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] = {
Text{"Wind Arrow", "Flèche de Vent", "Flecha del Viento"},
Text{"Wand of Gamelon", "Baguette de Gamelon", "Varita de Gamelón"},
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] = {
Text{"Desert Title Deed", "Abonnement Gerudo", "Escritura del desierto"},
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{"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] = {
Text{"Funky Bean Pack", "Paquet de Fèves Magiques", "Lote de frijoles mágicos"},
Text{"Grapple Berries", "Baies de grappin", "Bayas de garfio"},
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] = {
Text{"Diamond Hearts", "Coeurs de Diamant", "Contenedor de diamante"},
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] = {
Text{"Arpagos Egg", "Oeuf d'Arpagos", "Huevo de Arpagos"},
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] = {
Text{"D.I.Y. Alarm Clock", "Réveille-matin improvisé", "Alarma emplumada portátil"},
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] = {
Text{"Blucco", "Chair-Qui-Poule", "Cucazul"},
Text{"Piyoko", "Piyoko", "Piyoko"},
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] = {
Text{"Magic Mushroom", "Champignon magique", "Champiñón mágico"},
Text{"Endura Shroom", "Champi Vigueur", "Champiñón del bosque"},
Text{"Sleepy Toadstool", "Crapaud Fatigué", "Seta durmiente"},
Text{"Mushroom", "Champignon", "Seta"}
Text{"Mushroom", "Champignon", "Seta"},
};
trickNameTable[RG_ODD_POTION] = {
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{"Secret Medicine", "Médicament", "Pócima secreta"},
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] = {
Text{"Carpenter's Saw", "Scie du charpentier", "Sierra del carpintero"},
Text{"Poacher's Sword", "Hache du chasseur", "Espada del capataz"},
Text{"Ancient Bladesaw", "Longue Épée Archéonique", "Mandoble ancestral"},
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] = {
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 Noble Sword", "Épée noble brisée", "Espada noble 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] = {
Text{"Biggoron's Prescription", "Ordonnance de Grogoron", "Receta de Biggoron"},
@ -489,26 +491,26 @@ void InitTrickNames() {
Text{"Urgent Prescription", "Ordonnance urgente", "Prescripción"},
Text{"Swordsman's Scroll", "Précis d'escrime", "Esgrimidorium"},
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] = {
Text{"Don Gero", "Don Gero", "Don Gero"},
Text{"Hot-Footed Frog", "Grenouille à pieds chauds", "Rana de patas calientes"},
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] = {
Text{"Biggoron's Eyedrops", "Gouttes de Grogoron", "Gotas de Biggoron"},
Text{"Hyrule's Finest Eyedrops", "Eau du Lac Hylia", "Gotas oculares"},
Text{"Moon's Tear", "Larme de Lune", "Lágrima de Luna"},
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] = {
Text{"Clay Check", "Certificat Grogoron", "Comprobante de Reclamación"},
Text{"Ancient Tablet", "Stèle ancienne", "Litografía arcana"},
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] = {
@ -517,19 +519,19 @@ void InitTrickNames() {
Text{"Gold Walltula Token", "Jeton de Walltula dorée", "Skulltula dorada"},
Text{"Maiamai", "Ti'gorneau", "Maimai"},
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] = {
Text{"Progressive Grappling Hook", "Lance-chaîne (prog.)", "Garra progresiva"},
Text{"Progressive Clawshot", "Grappin-griffe (prog.)", "Zarpa progresiva"},
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] = {
Text{"Power Glove", "Gant de Puissance (prog.)", "Guanteletes 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] = {
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 Blast Mask", "Masque d'Explosion (prog.)", "Máscara explosiva progresiva"},
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] = {
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 Crossbow", "Arbalète (prog.)", "Ballesta progresiva"},
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] = {
Text{"Progressive Seed Capacity", "Capacité de graines (prog.)", "Mayor capacidad de semillas"},
Text{"Progressive Catapult", "Catapulte (prog.)", "Catapulta 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 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] = {
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 Rupoor Capacity", "Capacité de Roupir (prog.)", "Capacidad progresiva Rupobre"},
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] = {
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 Diving Ability", "Plongée (prog.)", "Buceo progresivo"},
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] = {
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 Pear Capacity", "Capacité de poire (prog.)", "Capacidad progresiva de pera"},
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] = {
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 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] = {
Text{"Progressive Bomblings", "Bombinsectes (prog.)", "Bombinsectos progresivos"},
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 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] = {
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 Magic Powder", "Poudre magique (prog.)", "Medidor de carga progresivo"}
Text{"Progressive Magic Powder", "Poudre magique (prog.)", "Medidor de carga progresivo"},
};
trickNameTable[RG_PROGRESSIVE_OCARINA] = {
Text{"Progressive Memento", "Souvenir (prog.)", "Silbato progresivo"},
Text{"Progressive Whistle", "Siffler (prog.)", "Silbido progresivo"},
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] = {
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 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 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] = {
@ -615,7 +617,7 @@ void InitTrickNames() {
Text{"Tingle Bottle", "Flacon de Tingle", "Botella de Tingle"},
Text{"Magic Bottle", "Flacon magique", "Frasco feérico"},
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] = {
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 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 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] = {
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 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] = {
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 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] = {
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 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] = {
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 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] = {
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 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 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] = {
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 Lanayru Ants", "Flacon de fourmis de Lanelle", "Celestarabajo embotellado"},
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] = {
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 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] = {
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 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] = {
Text{"Bottle with Composer Brother", "Flacon avec un compositeur", "Hermana Poe embotellada"},
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] = {
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 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] = {
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 Horse", "Chant du cheval", "Chant du cheval"}
Text{"Song of Horse", "Chant du cheval", "Chant du cheval"},
};
trickNameTable[RG_SARIAS_SONG] = {
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{"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] = {
Text{"Song of Passing", "Mambo de Manbo", "Melodía del transcurrir"},
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] = {
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{"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] = {
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{"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] = {
Text{"Saria's Karaoke", "Karaoké de Saria", "Dueto del bosque"},
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] = {
Text{"Darunia's Tango", "Tango de Darunia", "Coro del fuego"},
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] = {
Text{"Ruto's Blues", "Blues de Ruto", "Sonata del agua"},
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] = {
Text{"Nabooru's Reggae", "Reggae de Nabooru", "Reggae del espíritu"},
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] = {
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{"Song of Discovery", "Chant des secrets", "Canto revelador"}
Text{"Song of Discovery", "Chant des secrets", "Canto revelador"},
};
trickNameTable[RG_PRELUDE_OF_LIGHT] = {
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{"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] = {
@ -748,93 +750,93 @@ void InitTrickNames() {
Text{"Farore's Pearl", "Perle de Farore", "Orbe de Farore"},
Text{"Aquanine", "Smaragdine", "Yerbánida"},
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] = {
Text{"Pendant of Power", "Pendentif de la force", "Colgante del poder"},
Text{"Din's Pearl", "Perle de Din", "Orbe de Din"},
Text{"Crimsonine", "Alzanine", "Bermellina"},
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] = {
Text{"Pendant of Wisdom", "Pendentif de la sagesse", "Colgante de la sabiduría"},
Text{"Nayru's Pearl", "Perle de Nayru", "Orbe de Nayru"},
Text{"Azurine", "Aquanine", "Azurina"},
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] = {
Text{"Wind Medallion", "Médaillon du vent", "Medallón del Viento"},
Text{"Wind Element", "Elément Vent", "Elemento de aire"},
Text{"Saria's Medallion", "Médaillon de Saria", "Medallón de Saria"},
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] = {
Text{"Fire Element", "Elément Feu", "Elemento de fuego"},
Text{"Darunia's Medallion", "Médaillon de Darunia", "Medallón de Darunia"},
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] = {
Text{"Water Element", "Elément Eau", "Elemento de agua"},
Text{"Ice Medallion", "Médaillon de glace", "Medallón Helado"},
Text{"Ruto's Medallion", "Médaillon de Ruto", "Medallón de Ruto"},
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] = {
Text{"Earth Element", "Elément Terre", "Elemento de tierra"},
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{"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] = {
Text{"Fused Shadow", "Cristal d'ombre", "Sombra Fundida"},
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{"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] = {
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{"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] = {
Text{"Love", "Bisou", "Te amo"},
Text{"Life", "Vie", "vida"},
Text{"HP", "VP", "VP"}
Text{"HP", "VP", "VP"},
};
trickNameTable[RG_GREEN_RUPEE] = {
Text{"False Greg", "Faux Greg", "Falso Greg"},
Text{"One Ruby", "Un rubis", "Un rubí"},
Text{"Rupoor (1)", "Roupir (1)", "Rupobre (1)"},
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] = {
Text{"Blupee", "Bleubi", "Azupia"},
Text{"Five Rubies", "Cinq Rubys", "Cinco rubíes"},
Text{"Five Rupees", "Cinq rubis", "Bolívar 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] = {
Text{"Big 20", "Grand 20", "Los 20 grandes"},
Text{"Twenty Rubies", "vingt rubis", "Veinte rubíes"},
Text{"Rupoor (20)", "Roupir (20)", "Rupobre (20)"},
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] = {
Text{"Purpee", "pourbi", "morupiua"},
Text{"Fifty Rubies", "cinquante rubis", "Cincuenta rubíes"},
Text{"Rupoor (50)", "Roupir (50)", "Rupobre (50)"},
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] = {
Text{"Hugo", "Or Rubi", "Oro Rubi"},
@ -842,102 +844,102 @@ void InitTrickNames() {
Text{"Diamond", "Diamant", "Diamante"},
Text{"Huge Ruby", "Énorme rubis", "Rubi gigante"},
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] = {
Text{"Pizza Heart", "Fromage de cœur", "Pieza de Chorizo"},
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] = {
Text{"Crystal Heart", "Cœur de cristal", "Corazón de cristal"},
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] = {
Text{"Piece of Cheese", "Morceau de Fromage", "Piece of Cheese"},
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] = {
Text{"Spider Sense", "", ""},
Text{"Deku Spirit", "", ""},
Text{"Ghost of Ghoma", "", ""}
Text{"Ghost of Ghoma", "", ""},
};
trickNameTable[RG_KING_DODONGO_SOUL] = {
Text{"Lizard Soul", "", ""},
Text{"Regal Remains", "", ""},
Text{"Dodongo's Core", "", ""}
Text{"Dodongo's Core", "", ""},
};
trickNameTable[RG_BARINADE_SOUL] = {
Text{"Parasitic Poltergeist", "", ""},
Text{"Jabu Insides", "", ""},
Text{"Barinade Bacteria", "", ""}
Text{"Barinade Bacteria", "", ""},
};
trickNameTable[RG_PHANTOM_GANON_SOUL] = {
Text{"Bigger Poe", "", ""},
Text{"Sacred Forest Pine Tree", "", ""},
Text{"Ganon's Phantom", "", ""}
Text{"Ganon's Phantom", "", ""},
};
trickNameTable[RG_VOLVAGIA_SOUL] = {
Text{"Dragon Roast", "", ""},
Text{"Hot n' Ready", "", ""},
Text{"Volvagia's Vitality", "", ""}
Text{"Volvagia's Vitality", "", ""},
};
trickNameTable[RG_MORPHA_SOUL] = {
Text{"Dihydrogen Monoxide", "", ""},
Text{"Morpha Molecules", "", ""},
Text{"Wet Stuff", "", ""}
Text{"Wet Stuff", "", ""},
};
trickNameTable[RG_BONGO_BONGO_SOUL] = {
Text{"Shadow Soul", "", ""},
Text{"Dark Essence", "", ""},
Text{"Bongo Bongo's Bongo", "", ""}
Text{"Bongo Bongo's Bongo", "", ""},
};
trickNameTable[RG_TWINROVA_SOUL] = {
Text{"Sandy Ashes", "", ""},
Text{"Spiritual Spirit", "", ""},
Text{"Twin Rovers", "", ""}
Text{"Twin Rovers", "", ""},
};
trickNameTable[RG_GANON_SOUL] = {
Text{"Pure Evil", "", ""},
Text{"Ganon's Ghost", "", ""},
Text{"Pork", "", ""}
Text{"Pork", "", ""},
};
trickNameTable[RG_FISHING_POLE] = {
Text{"Fish Tickler", "Fish Tickler", "Fish Tickler"},
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] = {
Text{"Ocarina J Button", "", ""},
Text{"Ocarina Ayy Button", "", ""},
Text{"Ocarina A Trigger", "", ""}
Text{"Ocarina A Trigger", "", ""},
};
trickNameTable[RG_OCARINA_C_UP_BUTTON] = {
Text{"Ocarina C North Button", "", ""},
Text{"Ocarina C App Button", "", ""},
Text{"Ocarina Sup Button", "", ""}
Text{"Ocarina Sup Button", "", ""},
};
trickNameTable[RG_OCARINA_C_DOWN_BUTTON] = {
Text{"Ocarina C South Button", "", ""},
Text{"Ocarina Z Down Button", "", ""},
Text{"Ocarina See Down Button", "", ""},
Text{"Ocarina C Dawn Button", "", ""}
Text{"Ocarina C Dawn Button", "", ""},
};
trickNameTable[RG_OCARINA_C_LEFT_BUTTON] = {
Text{"Ocarina C West Button", "", ""},
Text{"Ocarina Sea Left Button", "", ""},
Text{"Ocarina C Lift Button", "", ""},
Text{"Ocarina Rewind Button", "", ""}
Text{"Ocarina Rewind Button", "", ""},
};
trickNameTable[RG_OCARINA_C_RIGHT_BUTTON] = {
Text{"Ocarina C East 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] = {
Text{"Grappling Hook", "Grappin-griffe", "Gancho lanzable"},
Text{"Clawshot", "Lance-chaîne", "Zarpa"},
Text{"Gripshot", "Grappince", "Enganchador"}
Text{"Gripshot", "Grappince", "Enganchador"},
};
trickNameTable[GI_LONGSHOT] = {
Text{"Longshot, no strings attached", "Grappin sans attrape", "Gancho lanzable más largo"},
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] = {
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{"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] = {
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{"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] = {
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{"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] = {
Text{"Bow", "Arc", "Arco del Hada"},
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] = {
Text{"Arrow Capacity (40)", "Capacité de flèches (40)", "Capacidad de flechas (40)"},
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] = {
Text{"Arrow Capacity (50)", "Capacité de flèches (50)", "Capacidad de flechas (50)"},
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] = {
Text{"Slingshot", "Lance-Pierre", "Tirachinas del Hada"},
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] = {
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{"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] = {
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{"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] = {
Text{"Goron's Gauntlet", "Gantelet Goron", "Brazalete amarillo"},
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] = {
Text{"Silver Bracelets", "Bracelets d'argent", "Guantes Moguma"},
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] = {
Text{"Golden Bracelets", "Bracelets d'or", "Guantelete de Thanos"},
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] = {
Text{"Silver Pearl", "Perle d'argent", "Perla de Plata progresiva"},
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] = {
Text{"Golden Pearl", "Perle d'or", "Perla de Oro progresiva"},
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] = {
Text{"Rupee Capacity (200)", "Capacité de rubis (200)", "Capacidad de rupias (200)"},
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] = {
Text{"Rupee Capacity (500)", "Capacité de rubis (500)", "Capacidad de rupias (500)"},
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] = {
Text{"Rupee Capacity (999)", "Capacité de rubis (999)", "Capacidad de rupias (999)"},
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] = {
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{"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] = {
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{"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] = {
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{"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] = {
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{"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] = {
Text{"Stamina Meter", "Jauge d'endurance", "Medidor de vigor"},
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] = {
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 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] = {
Text{"Ocarina", "Ocarina", "Ocarina"},
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] = {
Text{"Flute", "Flûte", "Flauta"},
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] = {
Text{"D.I.Y. Alarm Clock", "Réveille-matin improvisé", "Alarma emplumada"},
Text{"Kakariko Cucco", "Cocotte Cocorico", "Cuco de Kakariko"},
Text{"Hatched Cucco", "Cocotte éclose", "Pollo"}
Text{"Hatched Cucco", "Cocotte éclose", "Pollo"},
};
trickNameTable[GI_MASK_KEATON] = {
Text{"Kee... Something Mask", "Masque de Quiche", "Máscara Kealgo"},
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] = {
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{"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] = {
Text{"Skrik Mask", "Masque Skrik", "Máscara Escalofriante"},
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] = {
Text{"Peppy Mask", "Masque de Peppy", "Capucha de Pascua"},
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] = {
Text{"Goro Mask", "Masque Goro", "Máscara Goro"},
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] = {
Text{"Zola Mask", "Masque Zola", "Máscara Zola"},
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] = {
Text{"Ganguro Mask", "Masque de Ganguro", "Máscara Canguro"},
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] = {
Text{"Sheikah Mask", "Masque Sheikah", "Máscara Sheikah"},
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>;
std::map<SceneDoorParamsPair, RandomizerInf> lookupTable = {
// clang-format off
{{ SCENE_MARKET_ENTRANCE_DAY, 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 },
@ -61,6 +62,8 @@ std::map<SceneDoorParamsPair, RandomizerInf> lookupTable = {
{{ SCENE_LON_LON_RANCH, 447 }, RAND_INF_BACK_TOWER_UNLOCKED },
{{ SCENE_LAKE_HYLIA, 447 }, RAND_INF_HYLIA_LAB_UNLOCKED },
{{ SCENE_LAKE_HYLIA, 1471 }, RAND_INF_FISHING_HOLE_UNLOCKED },
// clang-format on
};
static void OnDoorInit(void* actorRef) {

View file

@ -62,7 +62,7 @@ void Rando::StaticData::RegisterCowLocations() {
static bool registered = false;
if (registered) return;
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_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));

View file

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

View file

@ -113,8 +113,9 @@ std::vector<RandomizerCheck> Rando::StaticData::GetOverworldFairyLocations() {
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
// 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);
// 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);

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_POTION_SHOP_KAKARIKO, RC_KAK_POTION_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 = {
{SCENE_DEKU_TREE, RCAREA_DEKU_TREE},
@ -124,7 +124,7 @@ std::vector<uint32_t> spoilingEntrances = {
ENTR_SHADOW_TEMPLE_BOSS_DOOR,
ENTR_ICE_CAVERN_ENTRANCE,
ENTR_GERUDO_TRAINING_GROUND_ENTRANCE,
ENTR_INSIDE_GANONS_CASTLE_ENTRANCE
ENTR_INSIDE_GANONS_CASTLE_ENTRANCE,
};
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; });
}
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() {
for (auto& [rcArea, vec] : checksByArea) {

View file

@ -34,10 +34,14 @@ s16 dynamicExitList[] = {
ENTR_MARKET_DAY_OUTSIDE_SHOOTING_GALLERY,
ENTR_ZORAS_FOUNTAIN_OUTSIDE_GREAT_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

View file

@ -340,7 +340,7 @@ std::vector<uint32_t> buttonMap = {
BTN_DUP,
BTN_DDOWN,
BTN_DLEFT,
BTN_DRIGHT
BTN_DRIGHT,
};
typedef enum {
@ -354,18 +354,18 @@ typedef enum {
typedef enum {
KEYS_COLLECTED_MAX,
KEYS_CURRENT_COLLECTED_MAX,
KEYS_CURRENT_MAX
KEYS_CURRENT_MAX,
} ItemTrackerKeysNumberOption;
typedef enum {
TRIFORCE_PIECE_COLLECTED_REQUIRED,
TRIFORCE_PIECE_COLLECTED_REQUIRED_MAX
TRIFORCE_PIECE_COLLECTED_REQUIRED_MAX,
} ItemTrackerTriforcePieceNumberOption;
typedef enum {
SECTION_DISPLAY_HIDDEN,
SECTION_DISPLAY_MAIN_WINDOW,
SECTION_DISPLAY_SEPARATE
SECTION_DISPLAY_SEPARATE,
} ItemTrackerDisplayType;
typedef enum {
@ -377,7 +377,7 @@ typedef enum {
typedef enum {
SECTION_DISPLAY_MINIMAL_HIDDEN,
SECTION_DISPLAY_MINIMAL_SEPARATE
SECTION_DISPLAY_MINIMAL_SEPARATE,
} ItemTrackerMinimalDisplayType;
struct ItemTrackerNumbers {
@ -1562,20 +1562,20 @@ void ItemTrackerWindow::DrawElement() {
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_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 = {
{ 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 = {
{ 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*> displayModes = {{ TRACKER_DISPLAY_ALWAYS, "Always" }, { TRACKER_DISPLAY_COMBO_BUTTON, "Combo Button Hold" }};
{ 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*> 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"},
{ 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_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" }};
{ 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*> 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" }};
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_ICE_CAVERN, RHT_ICE_CAVERN},
{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 = {
@ -183,7 +183,7 @@ std::unordered_map<uint32_t, RandomizerHintTextKey> StaticData::trialData = {
{TK_FIRE_TRIAL, RHT_FIRE_TRIAL},
{TK_WATER_TRIAL, RHT_WATER_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 = {
@ -303,7 +303,7 @@ std::unordered_map<u32, RandomizerHint> StaticData::grottoChestParamsToHint{
{22984, RH_KAK_OPEN_GROTTO_GOSSIP_STONE},
{22985, RH_ZR_OPEN_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 = {};

View file

@ -314,7 +314,7 @@ OTRGlobals::OTRGlobals() {
OOT_NTSC_US_GC,
OOT_PAL_GC,
OOT_PAL_GC_DBG1,
OOT_PAL_GC_DBG2
OOT_PAL_GC_DBG2,
};
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 = {
{ DEKU_STICK_NORMAL, "Normal" },
{ 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 = {
{ FORCED_DIALOG_SKIP_NONE, "None" },
{ FORCED_DIALOG_SKIP_NAVI, "Navi" },
{ 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 = {
{ SGIA_DISABLED, "Disabled" },
{ SGIA_JUNK, "Junk Items" },
{ SGIA_ALL, "All Items" }
{ SGIA_ALL, "All Items" },
};
static const std::unordered_map<int32_t, const char*> chestStyleMatchesContentsOptions = {
{ CSMC_DISABLED, "Disabled" },
{ CSMC_BOTH, "Both" },
{ CSMC_TEXTURE, "Texture Only" },
{ CSMC_SIZE, "Size Only" }
{ CSMC_SIZE, "Size Only" },
};
static const std::unordered_map<int32_t, const char*> timeTravelOptions = {
{ TIME_TRAVEL_DISABLED, "Disabled" },
{ 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 = {
{ WATERFALL_ALWAYS, "Always" },
{ WATERFALL_ONCE, "Once" },
{ WATERFALL_NEVER, "Never" }
{ WATERFALL_NEVER, "Never" },
};
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_MERCILESS, "Merciless (64x)" },
{ DAMAGE_TORTURE, "Pure Torture (128x)" },
{ DAMAGE_OHKO, "OHKO (256x)" }
{ DAMAGE_OHKO, "OHKO (256x)" },
};
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_4_HEARTS, "4 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 = {
{ PAUSE_ANY_CURSOR_RANDO_ONLY, "Only in Rando" },
{ 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 = {
{ SWORD_TOGGLE_NONE, "None" },
{ 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 = {
{ ZFIGHT_FIX_DISABLED, "Disabled" },
{ 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 = {
@ -170,13 +170,13 @@ static const std::unordered_map<int32_t, const char*> mirroredWorldModes = {
{ MIRRORED_WORLD_DUNGEONS_VANILLA, "Dungeons (Vanilla)" },
{ MIRRORED_WORLD_DUNGEONS_MQ, "Dungeons (MQ)" },
{ 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 = {
{ ENEMY_RANDOMIZER_OFF, "Disabled" },
{ 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 = {
@ -186,14 +186,14 @@ static const std::unordered_map<int32_t, const char*> debugSaveFileModes = {
static const std::unordered_map<int32_t, const char*> bootSequenceLabels = {
{ BOOTSEQUENCE_DEFAULT, "Default" },
{ BOOTSEQUENCE_AUTHENTIC, "Authentic" },
{ BOOTSEQUENCE_FILESELECT, "File Select" }
{ BOOTSEQUENCE_FILESELECT, "File Select" },
};
static const std::unordered_map<int32_t, const char*> enhancementPresetList = {
{ ENHANCEMENT_PRESET_DEFAULT, "Default" },
{ ENHANCEMENT_PRESET_VANILLA_PLUS, "Vanilla Plus" },
{ ENHANCEMENT_PRESET_ENHANCED, "Enhanced" },
{ ENHANCEMENT_PRESET_RANDOMIZER, "Randomizer" }
{ ENHANCEMENT_PRESET_RANDOMIZER, "Randomizer" },
};
class SohMenu : public Ship::Menu {

View file

@ -10,7 +10,7 @@
static std::string comboboxTooltip = "";
static int32_t enhancementPresetSelected = ENHANCEMENT_PRESET_DEFAULT;
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" {
void enableBetaQuest() { isBetaQuestEnabled = true; }

View file

@ -14,8 +14,8 @@ namespace SohGui {
extern std::shared_ptr<SohMenu> mSohMenu;
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 std::unordered_map<int32_t, const char*> imguiScaleOptions = {{ 0, "Small" }, { 1, "Normal" }, { 2, "Large" }, { 3, "X-Large" }};
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" }, };
const char* GetGameVersionString(uint32_t index) {
uint32_t gameVersion = ResourceMgr_GetGameVersion(index);

View file

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

View file

@ -663,34 +663,62 @@ static BetterSceneSelectEntry sBetterScenes[] = {
};
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
{ 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_8, ENTR_SACRED_FOREST_MEADOW_SOUTH_EXIT, 0, 0xED, SCENE_SACRED_FOREST_MEADOW, { -201.0, 0.0, 1906.0 }}, // SFM Entryway -> SFM Wolfos 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_HYRULE_FIELD_FENCE_EXIT, 0, 0x03, SCENE_HYRULE_FIELD, { -4026.0, -700.0, 13858.0 }}, // Hyrule Field -> HF Open 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_0, ENTR_KAKARIKO_VILLAGE_OUTSIDE_SHOP_GRANNY, 0, 0x28, SCENE_KAKARIKO_VILLAGE, { 861.0, 80.0, -253.0 }}, // Kak Backyard -> Kak Open 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_DEATH_MOUNTAIN_TRAIL_GC_EXIT, 0, 0x57, SCENE_DEATH_MOUNTAIN_TRAIL, { -389.0, 1386.0, -1202.0 }}, // Death Mountain -> DMT Storms 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_ZORAS_RIVER_WATERFALL_EXIT, 0, 0x29, SCENE_ZORAS_RIVER, { 369.0, 570.0, 128.0 }}, // Zora River -> ZR Open 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_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
{ 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_4, ENTR_LON_LON_RANCH_OUTSIDE_TOWER, 0, 0xFC, SCENE_LON_LON_RANCH, { 1798.0, 0.0, 1498.0 }}, // Lon Lon Ranch -> LLR 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_7, ENTR_LOST_WOODS_NORTH_EXIT, 8, 0xF5, SCENE_LOST_WOODS, { 677.0, 0.0, -2515.0 }}, // LW Beyond Mido -> LW Scrubs 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_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
{ 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_10, ENTR_DESERT_COLOSSUS_WARP_PAD, 0, 0xFD, SCENE_DESERT_COLOSSUS, { 71.0, -32.0, -1303.0 }}, // Desert Colossus -> Colossus 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_1, ENTR_HYRULE_FIELD_STAIRS_EXIT, 0, 0xE5, SCENE_HYRULE_FIELD, { 2059.0, 20.0, -174.0 }}, // Hyrule Field -> HF Near Kak 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_5, ENTR_HYRULE_FIELD_ROCKY_PATH, 0, 0xE4, SCENE_HYRULE_FIELD, { -7873.0, -300.0, 6916.0 }}, // Hyrule Field -> HF Cow 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_6, ENTR_GERUDO_VALLEY_EAST_EXIT, 0, 0xF2, SCENE_GERUDO_VALLEY, { 271.0, -555.0, 1465.0 }}, // GV Grotto Ledge -> GV Octorok 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
// Kokiri Forest -> KF Storms Grotto
{ ENTR_GROTTOS_0, ENTR_KOKIRI_FOREST_0, 0, 0x2C, SCENE_KOKIRI_FOREST, { -504.0, 380.0, -1224.0 }},
// Lost Woods -> LW Near Shortcuts Grotto
{ ENTR_GROTTOS_0, ENTR_LOST_WOODS_TUNNEL_SHORTCUT, 2, 0x14, SCENE_LOST_WOODS, { 922.0, 0.0, -933.0 }},
// SFM Entryway -> SFM Wolfos Grotto
{ ENTR_GROTTOS_8, ENTR_SACRED_FOREST_MEADOW_SOUTH_EXIT, 0, 0xED, SCENE_SACRED_FOREST_MEADOW, { -201.0, 0.0, 1906.0 }},
// Hyrule Field -> HF Near Market Grotto
{ ENTR_GROTTOS_0, ENTR_HYRULE_FIELD_PAST_BRIDGE_SPAWN, 0, 0x00, SCENE_HYRULE_FIELD, { -1428.0, 0.0, 790.0 }},
// Hyrule Field -> HF Open Grotto
{ ENTR_GROTTOS_0, ENTR_HYRULE_FIELD_FENCE_EXIT, 0, 0x03, SCENE_HYRULE_FIELD, { -4026.0, -700.0, 13858.0 }},
// Hyrule Field -> HF Southeast Grotto
{ ENTR_GROTTOS_0, ENTR_HYRULE_FIELD_FENCE_EXIT, 0, 0x22, SCENE_HYRULE_FIELD, { -259.0, -500.0, 12356.0 }},
// Kak Backyard -> Kak Open Grotto
{ ENTR_GROTTOS_0, ENTR_KAKARIKO_VILLAGE_OUTSIDE_SHOP_GRANNY, 0, 0x28, SCENE_KAKARIKO_VILLAGE, { 861.0, 80.0, -253.0 }},
// Kakariko Village -> Kak Redead Grotto
{ ENTR_GROTTOS_3, ENTR_KAKARIKO_VILLAGE_OUTSIDE_SHOP_GRANNY, 0, 0xE7, SCENE_KAKARIKO_VILLAGE, { -400.0, 0.0, 408.0 }},
// Death Mountain -> DMT Storms Grotto
{ ENTR_GROTTOS_0, ENTR_DEATH_MOUNTAIN_TRAIL_GC_EXIT, 0, 0x57, SCENE_DEATH_MOUNTAIN_TRAIL, { -389.0, 1386.0, -1202.0 }},
// DMC Upper Nearby -> DMC Upper Grotto
{ ENTR_GROTTOS_0, ENTR_DEATH_MOUNTAIN_CRATER_UPPER_EXIT, 1, 0x7A, SCENE_DEATH_MOUNTAIN_CRATER, { 50.0, 1233.0, 1776.0 }},
// Zora River -> ZR Open Grotto
{ ENTR_GROTTOS_0, ENTR_ZORAS_RIVER_WATERFALL_EXIT, 0, 0x29, SCENE_ZORAS_RIVER, { 369.0, 570.0, 128.0 }},
// Hyrule Field -> HF Inside Fence Grotto
{ ENTR_GROTTOS_2, ENTR_HYRULE_FIELD_FENCE_EXIT, 0, 0xE6, SCENE_HYRULE_FIELD, { -5002.0, -700.0, 13823.0 }},
// DMC Lower Nearby -> DMC Hammer Grotto
{ ENTR_GROTTOS_4, ENTR_DEATH_MOUNTAIN_CRATER_GC_EXIT, 1, 0xF9, SCENE_DEATH_MOUNTAIN_CRATER, { -1703.0, 722.0, -481.0 }},
// GC Grotto Platform -> GC 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) {