From 1595598941be996a5b3e097c6685b55227f49426 Mon Sep 17 00:00:00 2001 From: PurpleHato Date: Thu, 14 Aug 2025 22:59:54 +0200 Subject: [PATCH 1/8] Localization support --- .../Enhancements/randomizer/hook_handlers.cpp | 48 ++- soh/soh/util.cpp | 359 +++++++++++++++++- 2 files changed, 395 insertions(+), 12 deletions(-) diff --git a/soh/soh/Enhancements/randomizer/hook_handlers.cpp b/soh/soh/Enhancements/randomizer/hook_handlers.cpp index 8df83359f..3e6a3e7b8 100644 --- a/soh/soh/Enhancements/randomizer/hook_handlers.cpp +++ b/soh/soh/Enhancements/randomizer/hook_handlers.cpp @@ -1026,17 +1026,55 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l } if (item00->itemEntry.modIndex == MOD_NONE) { + std::string message; + + switch (gSaveContext.language) { + case LANGUAGE_FRA: + message = "Vous obtenez: "; + break; + case LANGUAGE_GER: + message = "Du hast: "; + break; + case LANGUAGE_ENG: + default: + message = "You found "; + break; + } + Notification::Emit({ .itemIcon = GetTextureForItemId(item00->itemEntry.itemId), - .message = "You found ", + .message = message, .suffix = SohUtils::GetItemName(item00->itemEntry.itemId), }); } else if (item00->itemEntry.modIndex == MOD_RANDOMIZER) { + std::string message; + std::string itemName; + + switch (gSaveContext.language) { + case LANGUAGE_FRA: + message = "Vous obtenez: "; + itemName = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId) + .GetName() + .french; + break; + case LANGUAGE_GER: + message = "Du hast: "; + itemName = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId) + .GetName() + .german; + break; + case LANGUAGE_ENG: + default: + message = "You found "; + itemName = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId) + .GetName() + .english; + break; + } + Notification::Emit({ - .message = "You found ", - .suffix = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId) - .GetName() - .english, + .message = message, + .suffix = itemName, }); } diff --git a/soh/soh/util.cpp b/soh/soh/util.cpp index a991c35ca..0c0a8661d 100644 --- a/soh/soh/util.cpp +++ b/soh/soh/util.cpp @@ -7,6 +7,7 @@ #include #include #include "Enhancements/randomizer/randomizerTypes.h" +#include std::vector sceneNames = { "Inside the Deku Tree", @@ -121,7 +122,7 @@ std::vector sceneNames = { "Treasure Chest Room", }; -std::vector itemNames = { +std::vector itemNamesEng = { "Deku Stick", "Deku Nut", "Bomb", @@ -280,7 +281,327 @@ std::vector itemNames = { "Deku Nut Upgrade (40)", }; -std::vector questItemNames = { +std::vector itemNamesFra = { + "Bâton Mojo", + "Noix Mojo", + "Bombe", + "Arc des Fées", + "Flèche de Feu", + "Feu de Din", + "Lance-Pierre des Fées", + "Ocarina des Fées", + "Ocarina du Temps", + "Missile Teigneux", + "Grappin", + "Super Grappin", + "Flèche de Glace", + "Vent de Farore", + "Boomerang", + "Loupe de Vérité", + "Haricot Magique", + "Marteau des Titans", + "Flèche de Lumière", + "Amour de Nayru", + "Bouteille Vide", + "Potion Rouge", + "Potion Verte", + "Potion Bleue", + "Fée en Bouteille", + "Poisson", + "Lait Lon Lon et Bouteille", + "Lettre de Ruto", + "Flamme Bleue", + "Insectes", + "Grand Spectre", + "Lait Lon Lon (Demi)", + "Spectre", + "Oeuf Suspect", + "Poule", + "Lettre de Zelda", + "Masque Pikachu", + "Masque de Mort", + "Masque du Fantôme", + "Capuche de Lapin", + "Masque Goron", + "Masque Zora", + "Masque Gerudo", + "Masque de Vérité", + "ÉPUISÉ", + "Oeuf de Poche", + "Cocotte de Poche", + "Cocorico Bleu", + "Champignon Suspect", + "Potion Suspecte", + "Scie de Charpentier", + "Épée Goron (Cassée)", + "Ordonnance", + "Grenouille Oeil", + "Gouttes pour les Yeux", + "Certificat", + "Arc des Fées & Flèche de Feu", + "Arc des Fées & Flèche de Glace", + "Arc des Fées & Flèche de Lumière", + "Épée Kokiri", + "Épée de Légende", + "Lame des Géants & Épée Biggoron", + "Bouclier Mojo", + "Bouclier Hylien", + "Bouclier Miroir", + "Tunique Kokiri", + "Tunique Goron", + "Tunique Zora", + "Bottes Kokiri", + "Bottes de Plomb", + "Bottes des Airs", + "Sac de Graines (30)", + "Sac de Graines (40)", + "Sac de Graines (50)", + "Carquois (30)", + "Grand Carquois (40)", + "Très Grand Carquois (50)", + "Sac de Bombes (20)", + "Grand Sac de Bombes (30)", + "Très Grand Sac de Bombes (40)", + "Bracelet Goron", + "Gantelets d'Argent", + "Gantelets d'Or", + "Écaille d'Argent", + "Écaille d'Or", + "Lame des Géants (Cassée)", + "Bourse d'Adulte", + "Bourse de Géant", + "Graines Mojo (5)", + "Canne à Pêche", + "Menuet des Bois", + "Boléro du Feu", + "Sérénade de l'Eau", + "Requiem de l'Esprit", + "Nocturne de l'Ombre", + "Prélude de la Lumière", + "Berceuse de Zelda", + "Chanson d'Epona", + "Chanson de Saria", + "Chant du Soleil", + "Chant du Temps", + "Chant des Tempêtes", + "Médaillon de la Forêt", + "Médaillon du Feu", + "Médaillon de l'Eau", + "Médaillon de l'Esprit", + "Médaillon de l'Ombre", + "Médaillon de la Lumière", + "Émeraude Kokiri", + "Rubis Goron", + "Saphir Zora", + "Pierre de Souffrance", + "Carte Gerudo", + "Symbole de Skulltula d'Or", + "Réceptacle de Coeur", + "Quart de Coeur", + "Clé du Boss", + "Boussole", + "Carte du Donjon", + "Petite Clé", + "Petite Magie", + "Grande Magie", + "Quart de Coeur", + "[Retiré]", + "[Retiré]", + "[Retiré]", + "[Retiré]", + "[Retiré]", + "[Retiré]", + "[Retiré]", + "Lait Lon Lon", + "Coeur", + "Rubis Vert", + "Rubis Bleu", + "Rubis Rouge", + "Rubis Pourpre", + "Rubis Argenté", + "[Retiré]", + "Bâtons Mojo (5)", + "Bâtons Mojo (10)", + "Noix Mojo (5)", + "Noix Mojo (10)", + "Bombes (5)", + "Bombes (10)", + "Bombes (20)", + "Bombes (30)", + "Flèches (Petites)", + "Flèches (Moyennes)", + "Flèches (Grandes)", + "Graines Mojo (30)", + "Missile Teigneux (5)", + "Missile Teigneux (20)", + "Amélioration Bâtons Mojo (20)", + "Amélioration Bâtons Mojo (30)", + "Amélioration Noix Mojo (30)", + "Amélioration Noix Mojo (40)", +}; + +std::vector itemNamesGer = { + "Deku-Stab", + "Deku-Nuss", + "Bombe", + "Feenbogen", + "Feuerpfeil", + "Dins Feuerinferno", + "Feen-Schleuder", + "Feen-Okarina", + "Okarina der Zeit", + "Krabbelmine", + "Enterhaken", + "Enterhaken (Lang)", + "Eispfeil", + "Farores Donnersturm", + "Bumerang", + "Auge der Wahrheit", + "Zauberbohne", + "Megatonhammer", + "Lichtpfeil", + "Nayrus Umarmung", + "Leere Flasche", + "Roter Trank", + "Grüner Trank", + "Blauer Trank", + "Fee in Flasche", + "Fisch", + "Lon Lon Milch & Flasche", + "Brief von Ruto", + "Blaue Flamme", + "Insekten", + "Großer Irrgeist", + "Lon Lon Milch (Halb)", + "Irrgeist", + "Seltsames Ei", + "Huhn", + "Brief von Zelda", + "Fuchsmaske", + "Totenkopfmaske", + "Schädelmaske", + "Hasenohren", + "Goron-Maske", + "Zora-Maske", + "Gerudo-Maske", + "Maske der Wahrheit", + "AUSVERKAUFT", + "Taschenei", + "Taschenhuhn", + "Cojiro", + "Seltsamer Pilz", + "Seltsamer Trank", + "Säge des Schmugglers", + "Goronen-Schwert (Kaputt)", + "Rezept", + "Augenfrosch", + "Augentropfen", + "Abholschein", + "Feenbogen & Feuerpfeil", + "Feenbogen & Eispfeil", + "Feenbogen & Lichtpfeil", + "Kokiri-Schwert", + "Master-Schwert", + "Riesenmesser & Biggorons Schwert", + "Deku-Schild", + "Hylia-Schild", + "Spiegelschild", + "Kokiri-Gewand", + "Goronen-Gewand", + "Zora-Gewand", + "Kokiri-Stiefel", + "Eisenstiefel", + "Schwebestiefel", + "Kugelbeutel (30)", + "Kugelbeutel (40)", + "Kugelbeutel (50)", + "Köcher (30)", + "Großer Köcher (40)", + "Riesenköcher (50)", + "Bombentasche (20)", + "Große Bombentasche (30)", + "Riesen-Bombentasche (40)", + "Goronen-Armband", + "Silberhandschuhe", + "Goldhandschuhe", + "Silberschuppe", + "Goldschuppe", + "Riesenmesser (Kaputt)", + "Erwachsenenbörse", + "Riesenbörse", + "Deku-Samen (5)", + "Angel", + "Menuett des Waldes", + "Bolero des Feuers", + "Serenade des Wassers", + "Requiem der Geister", + "Nocturne der Schatten", + "Präludium des Lichts", + "Zeldas Wiegenlied", + "Eponas Lied", + "Sarias Lied", + "Sonnenlied", + "Hymne der Zeit", + "Sturm-Lied", + "Amulett des Waldes", + "Amulett des Feuers", + "Amulett des Wassers", + "Amulett der Geister", + "Amulett der Schatten", + "Amulett des Lichts", + "Kokiri-Smaragd", + "Goronen-Rubin", + "Zora-Saphir", + "Stein des Wissens", + "Gerudo-Pass", + "Goldene Skulltula-Marke", + "Herzcontainer", + "Herzteil", + "Boss-Schlüssel", + "Kompass", + "Dungeon-Karte", + "Kleiner Schlüssel", + "Kleine Magie", + "Große Magie", + "Herzteil", + "[Entfernt]", + "[Entfernt]", + "[Entfernt]", + "[Entfernt]", + "[Entfernt]", + "[Entfernt]", + "[Entfernt]", + "Lon Lon Milch", + "Herz", + "Grüner Rubin", + "Blauer Rubin", + "Roter Rubin", + "Violetter Rubin", + "Silberner Rubin", + "[Entfernt]", + "Deku-Stäbe (5)", + "Deku-Stäbe (10)", + "Deku-Nüsse (5)", + "Deku-Nüsse (10)", + "Bomben (5)", + "Bomben (10)", + "Bomben (20)", + "Bomben (30)", + "Pfeile (Klein)", + "Pfeile (Mittel)", + "Pfeile (Groß)", + "Deku-Samen (30)", + "Krabbelmine (5)", + "Krabbelmine (20)", + "Deku-Stab-Erweiterung (20)", + "Deku-Stab-Erweiterung (30)", + "Deku-Nuss-Erweiterung (30)", + "Deku-Nuss-Erweiterung (40)", +}; + + + +std::vector questItemNamesEng = { "Forest Medallion", "Fire Medallion", "Water Medallion", "Spirit Medallion", "Shadow Medallion", "Light Medallion", "Minuet of Forest", "Bolero of Fire", "Serenade of Water", "Requiem of Spirit", "Nocturne of Shadow", "Prelude of Light", "Zelda's Lullaby", "Epona's Song", "Saria's Song", @@ -288,6 +609,16 @@ std::vector questItemNames = { "Zora's Sapphire", "Stone of Agony", "Gerudo's Card", "Gold Skulltula Token", }; +std::vector questItemNamesFra = { + "Médaillon de la Forêt", "Médaillon du Feu", "Médaillon de l'Eau", "Médaillon de l'Esprit", + "Médaillon de l'Ombre", "Médaillon de la Lumière", "Menuet des Bois", "Boléro du Feu", + "Sérénade de l'Eau", "Requiem de l'Esprit", "Nocturne de l'Ombre", "Prélude de la Lumière", + "Berceuse de Zelda", "Chanson d'Epona", "Chanson de Saria", "Chant du Soleil", + "Chant du Temps", "Chant des Tempêtes", "Émeraude Kokiri", "Rubis Goron", + "Saphir Zora", "Pierre de Souffrance", "Carte Gerudo", "Symbole de Skulltula d'Or", +}; + + std::array rcareaPrefixes = { "KF", "LW", @@ -334,23 +665,37 @@ const std::string& SohUtils::GetSceneName(int32_t scene) { } const std::string& SohUtils::GetItemName(int32_t item) { - if (item > itemNames.size()) { + const std::vector* currentItemNames = nullptr; + + switch (gSaveContext.language) { + case LANGUAGE_FRA: + currentItemNames = &itemNamesFra; + break; + case LANGUAGE_GER: + currentItemNames = &itemNamesGer; + break; + case LANGUAGE_ENG: + default: + currentItemNames = &itemNamesEng; + break; + } + + if (item >= currentItemNames->size()) { SPDLOG_WARN("Passed invalid item id to SohUtils::GetItemName: ({})", item); assert(false); return ""; } - - return itemNames[item]; + return (*currentItemNames)[item]; } const std::string& SohUtils::GetQuestItemName(int32_t item) { - if (item > questItemNames.size()) { + if (item > questItemNamesEng.size()) { SPDLOG_WARN("Passed invalid quest item id to SohUtils::GetQuestItemName: ({})", item); assert(false); return ""; } - return questItemNames[item]; + return questItemNamesEng[item]; } const std::string& SohUtils::GetRandomizerCheckAreaPrefix(int32_t rcarea) { From 998f1f8e51e9c082c129d51f0dc50c0bc748f8f8 Mon Sep 17 00:00:00 2001 From: PurpleHato Date: Thu, 14 Aug 2025 23:12:44 +0200 Subject: [PATCH 2/8] stick/nuts updrage french wording --- soh/soh/util.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/soh/soh/util.cpp b/soh/soh/util.cpp index 0c0a8661d..8343368d3 100644 --- a/soh/soh/util.cpp +++ b/soh/soh/util.cpp @@ -434,10 +434,10 @@ std::vector itemNamesFra = { "Graines Mojo (30)", "Missile Teigneux (5)", "Missile Teigneux (20)", - "Amélioration Bâtons Mojo (20)", - "Amélioration Bâtons Mojo (30)", - "Amélioration Noix Mojo (30)", - "Amélioration Noix Mojo (40)", + "Amélioration des Bâtons Mojo (20)", + "Amélioration des Bâtons Mojo (30)", + "Amélioration des Noix Mojo (30)", + "Amélioration des Noix Mojo (40)", }; std::vector itemNamesGer = { From 0d027e29286093cc9c4af1d577fac7ff87ea23a4 Mon Sep 17 00:00:00 2001 From: PurpleHato Date: Thu, 14 Aug 2025 23:20:25 +0200 Subject: [PATCH 3/8] forgot german questItem and function adaptation for these --- soh/soh/util.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/soh/soh/util.cpp b/soh/soh/util.cpp index 8343368d3..2edfedead 100644 --- a/soh/soh/util.cpp +++ b/soh/soh/util.cpp @@ -618,6 +618,15 @@ std::vector questItemNamesFra = { "Saphir Zora", "Pierre de Souffrance", "Carte Gerudo", "Symbole de Skulltula d'Or", }; +std::vector questItemNamesGer = { + "Amulett des Waldes", "Amulett des Feuers", "Amulett des Wassers", "Amulett der Geister", + "Amulett der Schatten", "Amulett des Lichts", "Menuett des Waldes", "Bolero des Feuers", + "Serenade des Wassers", "Requiem der Geister", "Nocturne der Schatten", "Präludium des Lichts", + "Zeldas Wiegenlied", "Eponas Lied", "Sarias Lied", "Sonnenlied", + "Hymne der Zeit", "Sturm-Lied", "Kokiri-Smaragd", "Goronen-Rubin", + "Zora-Saphir", "Stein des Wissens", "Gerudo-Pass", "Goldene Skulltula-Marke", +}; + std::array rcareaPrefixes = { "KF", @@ -685,17 +694,32 @@ const std::string& SohUtils::GetItemName(int32_t item) { assert(false); return ""; } + return (*currentItemNames)[item]; } const std::string& SohUtils::GetQuestItemName(int32_t item) { + const std::vector* currentQuestItemNames = nullptr; + + switch (gSaveContext.language) { + case LANGUAGE_FRA: + currentQuestItemNames = &questItemNamesFra; + break; + case LANGUAGE_GER: + currentQuestItemNames = &questItemNamesGer; + break; + case LANGUAGE_ENG: + default: + currentQuestItemNames = &questItemNamesEng; + break; + } if (item > questItemNamesEng.size()) { SPDLOG_WARN("Passed invalid quest item id to SohUtils::GetQuestItemName: ({})", item); assert(false); return ""; } - return questItemNamesEng[item]; + return (*currentQuestItemNames)[item]; } const std::string& SohUtils::GetRandomizerCheckAreaPrefix(int32_t rcarea) { From 970965876c5bc2ae27072b50b2ee2cae422354f4 Mon Sep 17 00:00:00 2001 From: PurpleHato Date: Thu, 14 Aug 2025 23:27:25 +0200 Subject: [PATCH 4/8] names --- soh/soh/util.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/soh/soh/util.cpp b/soh/soh/util.cpp index 2edfedead..3080f40ca 100644 --- a/soh/soh/util.cpp +++ b/soh/soh/util.cpp @@ -297,9 +297,9 @@ std::vector itemNamesFra = { "Flèche de Glace", "Vent de Farore", "Boomerang", - "Loupe de Vérité", + "Monocle de Vérité", "Haricot Magique", - "Marteau des Titans", + "Masse des Titans", "Flèche de Lumière", "Amour de Nayru", "Bouteille Vide", @@ -318,7 +318,7 @@ std::vector itemNamesFra = { "Oeuf Suspect", "Poule", "Lettre de Zelda", - "Masque Pikachu", + "Masque Renard", "Masque de Mort", "Masque du Fantôme", "Capuche de Lapin", @@ -329,14 +329,14 @@ std::vector itemNamesFra = { "ÉPUISÉ", "Oeuf de Poche", "Cocotte de Poche", - "Cocorico Bleu", + "Cojiro", "Champignon Suspect", "Potion Suspecte", - "Scie de Charpentier", + "Scie du Chasseur", "Épée Goron (Cassée)", "Ordonnance", - "Grenouille Oeil", - "Gouttes pour les Yeux", + "Crapaud-qui-louche", + "Super Gouttes", "Certificat", "Arc des Fées & Flèche de Feu", "Arc des Fées & Flèche de Glace", @@ -358,17 +358,17 @@ std::vector itemNamesFra = { "Sac de Graines (50)", "Carquois (30)", "Grand Carquois (40)", - "Très Grand Carquois (50)", + "Énorme Grand Carquois (50)", "Sac de Bombes (20)", - "Grand Sac de Bombes (30)", - "Très Grand Sac de Bombes (40)", + "Gros Sac de Bombes (30)", + "Énorme Sac de Bombes (40)", "Bracelet Goron", "Gantelets d'Argent", "Gantelets d'Or", "Écaille d'Argent", "Écaille d'Or", "Lame des Géants (Cassée)", - "Bourse d'Adulte", + "Grande Bourse", "Bourse de Géant", "Graines Mojo (5)", "Canne à Pêche", From f5703705220e7d09563bc5ecaa7b23ba12a9a55d Mon Sep 17 00:00:00 2001 From: PurpleHato Date: Thu, 14 Aug 2025 23:30:13 +0200 Subject: [PATCH 5/8] clang --- soh/soh/util.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/soh/soh/util.cpp b/soh/soh/util.cpp index 3080f40ca..3ff5fe50f 100644 --- a/soh/soh/util.cpp +++ b/soh/soh/util.cpp @@ -599,8 +599,6 @@ std::vector itemNamesGer = { "Deku-Nuss-Erweiterung (40)", }; - - std::vector questItemNamesEng = { "Forest Medallion", "Fire Medallion", "Water Medallion", "Spirit Medallion", "Shadow Medallion", "Light Medallion", "Minuet of Forest", "Bolero of Fire", "Serenade of Water", "Requiem of Spirit", @@ -627,7 +625,6 @@ std::vector questItemNamesGer = { "Zora-Saphir", "Stein des Wissens", "Gerudo-Pass", "Goldene Skulltula-Marke", }; - std::array rcareaPrefixes = { "KF", "LW", From aea3f358bc3a66757015849b1ada8179be652f79 Mon Sep 17 00:00:00 2001 From: PurpleHato Date: Thu, 14 Aug 2025 23:37:01 +0200 Subject: [PATCH 6/8] name + clang --- soh/soh/util.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/soh/soh/util.cpp b/soh/soh/util.cpp index 3ff5fe50f..2578b66e8 100644 --- a/soh/soh/util.cpp +++ b/soh/soh/util.cpp @@ -379,8 +379,8 @@ std::vector itemNamesFra = { "Nocturne de l'Ombre", "Prélude de la Lumière", "Berceuse de Zelda", - "Chanson d'Epona", - "Chanson de Saria", + "Chant d'Epona", + "Chant de Saria", "Chant du Soleil", "Chant du Temps", "Chant des Tempêtes", @@ -611,7 +611,7 @@ std::vector questItemNamesFra = { "Médaillon de la Forêt", "Médaillon du Feu", "Médaillon de l'Eau", "Médaillon de l'Esprit", "Médaillon de l'Ombre", "Médaillon de la Lumière", "Menuet des Bois", "Boléro du Feu", "Sérénade de l'Eau", "Requiem de l'Esprit", "Nocturne de l'Ombre", "Prélude de la Lumière", - "Berceuse de Zelda", "Chanson d'Epona", "Chanson de Saria", "Chant du Soleil", + "Berceuse de Zelda", "Chant d'Epona", "Chant de Saria", "Chant du Soleil", "Chant du Temps", "Chant des Tempêtes", "Émeraude Kokiri", "Rubis Goron", "Saphir Zora", "Pierre de Souffrance", "Carte Gerudo", "Symbole de Skulltula d'Or", }; From 42baff69c5474b6999e718608b0c74dee578f209 Mon Sep 17 00:00:00 2001 From: PurpleHato Date: Thu, 14 Aug 2025 23:39:28 +0200 Subject: [PATCH 7/8] should be the last one :derp: --- soh/soh/util.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soh/soh/util.cpp b/soh/soh/util.cpp index 2578b66e8..bd551f937 100644 --- a/soh/soh/util.cpp +++ b/soh/soh/util.cpp @@ -418,7 +418,7 @@ std::vector itemNamesFra = { "Rubis Bleu", "Rubis Rouge", "Rubis Pourpre", - "Rubis Argenté", + "Énorme Rubis", "[Retiré]", "Bâtons Mojo (5)", "Bâtons Mojo (10)", From ebfabd6c722f80c7c9ced8763a9cc1dae7adcb58 Mon Sep 17 00:00:00 2001 From: PurpleHato Date: Mon, 18 Aug 2025 17:37:08 +0200 Subject: [PATCH 8/8] German typo --- soh/soh/Enhancements/randomizer/hook_handlers.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/soh/soh/Enhancements/randomizer/hook_handlers.cpp b/soh/soh/Enhancements/randomizer/hook_handlers.cpp index 3e6a3e7b8..ea859b0f8 100644 --- a/soh/soh/Enhancements/randomizer/hook_handlers.cpp +++ b/soh/soh/Enhancements/randomizer/hook_handlers.cpp @@ -1,4 +1,4 @@ -#include +#include #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/enhancementTypes.h" @@ -1033,7 +1033,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l message = "Vous obtenez: "; break; case LANGUAGE_GER: - message = "Du hast: "; + message = "Du erhältst: "; break; case LANGUAGE_ENG: default: @@ -1058,7 +1058,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l .french; break; case LANGUAGE_GER: - message = "Du hast: "; + message = "Du erhältst: "; itemName = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId) .GetName() .german;