mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-20 13:23:45 -07:00
Merge ebfabd6c72
into 568639dfc0
This commit is contained in:
commit
ea4dbe2874
2 changed files with 416 additions and 12 deletions
|
@ -1,4 +1,4 @@
|
|||
#include <libultraship/bridge.h>
|
||||
#include <libultraship/bridge.h>
|
||||
#include "soh/OTRGlobals.h"
|
||||
#include "soh/ResourceManagerHelpers.h"
|
||||
#include "soh/Enhancements/enhancementTypes.h"
|
||||
|
@ -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 erhältst: ";
|
||||
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) {
|
||||
Notification::Emit({
|
||||
.message = "You found ",
|
||||
.suffix = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId)
|
||||
std::string message;
|
||||
std::string itemName;
|
||||
|
||||
switch (gSaveContext.language) {
|
||||
case LANGUAGE_FRA:
|
||||
message = "Vous obtenez: ";
|
||||
itemName = Rando::StaticData::RetrieveItem((RandomizerGet)item00->itemEntry.getItemId)
|
||||
.GetName()
|
||||
.english,
|
||||
.french;
|
||||
break;
|
||||
case LANGUAGE_GER:
|
||||
message = "Du erhältst: ";
|
||||
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 = message,
|
||||
.suffix = itemName,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
378
soh/soh/util.cpp
378
soh/soh/util.cpp
|
@ -7,6 +7,7 @@
|
|||
#include <assert.h>
|
||||
#include <spdlog/spdlog.h>
|
||||
#include "Enhancements/randomizer/randomizerTypes.h"
|
||||
#include <variables.h>
|
||||
|
||||
std::vector<std::string> sceneNames = {
|
||||
"Inside the Deku Tree",
|
||||
|
@ -121,7 +122,7 @@ std::vector<std::string> sceneNames = {
|
|||
"Treasure Chest Room",
|
||||
};
|
||||
|
||||
std::vector<std::string> itemNames = {
|
||||
std::vector<std::string> itemNamesEng = {
|
||||
"Deku Stick",
|
||||
"Deku Nut",
|
||||
"Bomb",
|
||||
|
@ -280,7 +281,325 @@ std::vector<std::string> itemNames = {
|
|||
"Deku Nut Upgrade (40)",
|
||||
};
|
||||
|
||||
std::vector<std::string> questItemNames = {
|
||||
std::vector<std::string> 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",
|
||||
"Monocle de Vérité",
|
||||
"Haricot Magique",
|
||||
"Masse 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 Renard",
|
||||
"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",
|
||||
"Cojiro",
|
||||
"Champignon Suspect",
|
||||
"Potion Suspecte",
|
||||
"Scie du Chasseur",
|
||||
"Épée Goron (Cassée)",
|
||||
"Ordonnance",
|
||||
"Crapaud-qui-louche",
|
||||
"Super Gouttes",
|
||||
"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)",
|
||||
"Énorme Grand Carquois (50)",
|
||||
"Sac de Bombes (20)",
|
||||
"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)",
|
||||
"Grande Bourse",
|
||||
"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",
|
||||
"Chant d'Epona",
|
||||
"Chant 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",
|
||||
"Énorme Rubis",
|
||||
"[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 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<std::string> 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<std::string> 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 +607,24 @@ std::vector<std::string> questItemNames = {
|
|||
"Zora's Sapphire", "Stone of Agony", "Gerudo's Card", "Gold Skulltula Token",
|
||||
};
|
||||
|
||||
std::vector<std::string> 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", "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",
|
||||
};
|
||||
|
||||
std::vector<std::string> 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<std::string, RA_MAX> rcareaPrefixes = {
|
||||
"KF",
|
||||
"LW",
|
||||
|
@ -334,23 +671,52 @@ const std::string& SohUtils::GetSceneName(int32_t scene) {
|
|||
}
|
||||
|
||||
const std::string& SohUtils::GetItemName(int32_t item) {
|
||||
if (item > itemNames.size()) {
|
||||
const std::vector<std::string>* 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()) {
|
||||
const std::vector<std::string>* 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 questItemNames[item];
|
||||
return (*currentQuestItemNames)[item];
|
||||
}
|
||||
|
||||
const std::string& SohUtils::GetRandomizerCheckAreaPrefix(int32_t rcarea) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue