mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-08-21 06:48:39 -04:00
Fix grammar (#7053)
This commit is contained in:
@@ -100,7 +100,7 @@ void DrawVisualAgony(Player* player, double temp) {
|
||||
}
|
||||
if (temp == 0 || temp <= 0.1f) {
|
||||
/*Fail check, it is used to draw off the icon when
|
||||
link is standing out range but do not refresh unk_6A0.
|
||||
Link is standing out of range but do not refresh unk_6A0.
|
||||
Also used to make a default value in my case.*/
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, stoneOfAgonyColor.r, stoneOfAgonyColor.g, stoneOfAgonyColor.b,
|
||||
DefaultIconA);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
/**
|
||||
* Replace characters to prevent crashes from invalid paths (e.g, "test :)" creating an NTFS Alternate Data Stream
|
||||
* Replace characters to prevent crashes from invalid paths (e.g., "test :)" creating an NTFS Alternate Data Stream
|
||||
* instead of a regular file).
|
||||
*/
|
||||
static std::string SanitizeFilename(const std::string& name) {
|
||||
|
||||
@@ -25,7 +25,7 @@ AnimationHeaderCommon* ResourceMgr_LoadAnimByName(const char* path);
|
||||
// the start of the animation or past the end of it. In either case you add a list of animations'
|
||||
// data that are neighboring before or after the target animation. If more weird frame data is
|
||||
// required then add more of the neighboring animations in ROM.
|
||||
// TODO use std::array, we don't need the functionality of of std::vector
|
||||
// TODO use std::array, we don't need the functionality of std::vector
|
||||
static std::vector<WeirdAnimation> weirdAnimations{
|
||||
// For weirdshots.
|
||||
{ gPlayerAnim_link_bow_side_walk,
|
||||
|
||||
@@ -502,7 +502,7 @@ void ResetPositionAll() {
|
||||
|
||||
int hue = 0;
|
||||
|
||||
// Runs every frame to update rainbow hue, a potential future optimization is to only run this a once or twice a second
|
||||
// Runs every frame to update rainbow hue, a potential future optimization is to only run this once or twice a second
|
||||
// and increase the speed of the rainbow hue rotation.
|
||||
void CosmeticsUpdateTick() {
|
||||
int index = 0;
|
||||
|
||||
@@ -159,7 +159,7 @@ void CalcTriNorm(const Vec3f& v1, const Vec3f& v2, const Vec3f& v3, Vec3f& norm)
|
||||
}
|
||||
}
|
||||
|
||||
// Various macros used for creating verticies and rendering that aren't in gbi.h
|
||||
// Various macros used for creating vertices and rendering that aren't in gbi.h
|
||||
#define G_CC_MODULATERGB_PRIM_ENVA PRIMITIVE, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT
|
||||
#define G_CC_PRIMITIVE_ENVA 0, 0, 0, PRIMITIVE, 0, 0, 0, ENVIRONMENT
|
||||
#define qs105(n) ((int16_t)((n)*0x0020))
|
||||
@@ -216,8 +216,8 @@ void CreateCylinderData() {
|
||||
cylinderGfx.push_back(gsSPEndDisplayList());
|
||||
}
|
||||
|
||||
// This subdivides a face into four tris by placing new verticies at the midpoints of the sides (Like a triforce!), then
|
||||
// blowing up the verticies so they are on the unit sphere
|
||||
// This subdivides a face into four tris by placing new vertices at the midpoints of the sides (Like a triforce!), then
|
||||
// blowing up the vertices so they are on the unit sphere
|
||||
void CreateSphereFace(std::vector<std::tuple<size_t, size_t, size_t>>& faces, int32_t v0Index, int32_t v1Index,
|
||||
int32_t v2Index) {
|
||||
size_t nextIndex = sphereVtx.size();
|
||||
@@ -235,7 +235,7 @@ void CreateSphereFace(std::vector<std::tuple<size_t, size_t, size_t>>& faces, in
|
||||
const Vtx& v1 = sphereVtx[v1Index];
|
||||
const Vtx& v2 = sphereVtx[v2Index];
|
||||
|
||||
// Create 3 new verticies at the midpoints
|
||||
// Create 3 new vertices at the midpoints
|
||||
Vec3f vs[3] = {
|
||||
Vec3f{ (v0.n.ob[0] + v1.n.ob[0]) / 2.0f, (v0.n.ob[1] + v1.n.ob[1]) / 2.0f, (v0.n.ob[2] + v1.n.ob[2]) / 2.0f },
|
||||
Vec3f{ (v1.n.ob[0] + v2.n.ob[0]) / 2.0f, (v1.n.ob[1] + v2.n.ob[1]) / 2.0f, (v1.n.ob[2] + v2.n.ob[2]) / 2.0f },
|
||||
@@ -256,14 +256,14 @@ void CreateSphereFace(std::vector<std::tuple<size_t, size_t, size_t>>& faces, in
|
||||
}
|
||||
|
||||
// Creates a sphere following the idea in here:
|
||||
// http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html Spcifically, create a icosahedron by
|
||||
// http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html Specifically, create an icosahedron by
|
||||
// realizing that the points can be placed on 3 rectangles that are on each unit plane. Then, subdividing each face.
|
||||
void CreateSphereData() {
|
||||
std::vector<Vec3f> base;
|
||||
|
||||
float d = (1.0f + sqrtf(5.0f)) / 2.0f;
|
||||
|
||||
// Create the 12 starting verticies, 4 on each rectangle
|
||||
// Create the 12 starting vertices, 4 on each rectangle
|
||||
base.emplace_back(Vec3f({ -1, d, 0 }));
|
||||
base.emplace_back(Vec3f({ 1, d, 0 }));
|
||||
base.emplace_back(Vec3f({ -1, -d, 0 }));
|
||||
@@ -279,7 +279,7 @@ void CreateSphereData() {
|
||||
base.emplace_back(Vec3f({ -d, 0, -1 }));
|
||||
base.emplace_back(Vec3f({ -d, 0, 1 }));
|
||||
|
||||
// Normalize verticies so they are on the unit sphere
|
||||
// Normalize vertices so they are on the unit sphere
|
||||
for (Vec3f& v : base) {
|
||||
float mag = sqrtf(v.x * v.x + v.y * v.y + v.z * v.z);
|
||||
v.x /= mag;
|
||||
|
||||
@@ -1395,7 +1395,7 @@ void DrawFlagArrayWithTooltips(const std::string& name, T& flags, Colors color,
|
||||
ImGui::PopID();
|
||||
}
|
||||
|
||||
// Draw a flag bitfield as an grid of checkboxes
|
||||
// Draw a flag bitfield as a grid of checkboxes
|
||||
void DrawFlagTableArray16(const FlagTable& flagTable, uint16_t row, uint16_t& flags) {
|
||||
ImGui::PushID((std::to_string(row) + flagTable.name).c_str());
|
||||
for (int32_t flagIndex = 15; flagIndex >= 0; flagIndex--) {
|
||||
|
||||
@@ -1281,7 +1281,7 @@ int Fill() {
|
||||
// showItemProgress = false;
|
||||
ctx->playthroughLocations.clear();
|
||||
ctx->GetEntranceShuffler()->playthroughEntrances.clear();
|
||||
RegionTable_Init(); // Reset the world graph to intialize the proper locations
|
||||
RegionTable_Init(); // Reset the world graph to initialize the proper locations
|
||||
ctx->ItemReset(); // Reset shops incase of shopsanity random
|
||||
ctx->GenerateLocationPool();
|
||||
GenerateItemPool();
|
||||
|
||||
@@ -72,11 +72,11 @@ void StaticData::HintTable_Init() {
|
||||
/*french*/ "Selon moi, détruire #100 Skulltulas d'or# donne #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/exterminar #100 skulltulas doradas# revela #[[1]]#.
|
||||
{},
|
||||
{CustomMessage("They say that #100 bug badges# rewards #[[1]]#.",
|
||||
{CustomMessage("They say that #100 bug badges# reward #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß die Belohnung für #100 Insektenplaketten# #[[1]]# |sei|seien|.",
|
||||
/*french*/ "Selon moi, #100 écussons# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#100 medallas de insectos# otorgan #[[1]]#.
|
||||
CustomMessage("They say that #100 spider souls# yields #[[1]]#.",
|
||||
CustomMessage("They say that #100 spider souls# yield #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß #100 Spinnenseelen# #[[1]]# einbrächten.",
|
||||
/*french*/ "Selon moi, #100 âmes d'arachnide# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#100 almas de araña# otorgan #[[1]]#.
|
||||
@@ -175,11 +175,11 @@ void StaticData::HintTable_Init() {
|
||||
/*french*/ "Selon moi, détruire #50 Skulltulas d'or# donne #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/exterminar #50 skulltulas doradas# revela #[[1]]#.
|
||||
{},
|
||||
{CustomMessage("They say that #50 bug badges# rewards #[[1]]#.",
|
||||
{CustomMessage("They say that #50 bug badges# reward #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß die Belohnung für #50 Insektenplaketten# #[[1]]# |sei|seien|.",
|
||||
/*french*/ "Selon moi, #50 écussons# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#50 medallas de insectos# otorgan #[[1]]#.
|
||||
CustomMessage("They say that #50 spider souls# yields #[[1]]#.",
|
||||
CustomMessage("They say that #50 spider souls# yield #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß #50 Spinnenseelen# #[[1]]# einbrächte.",
|
||||
/*french*/ "Selon moi, #50 âmes d'arachnide# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#50 almas de araña# otorgan #[[1]]#.
|
||||
@@ -193,11 +193,11 @@ void StaticData::HintTable_Init() {
|
||||
/*french*/ "Selon moi, détruire #40 Skulltulas d'or# donne #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/exterminar #40 skulltulas doradas# revela #[[1]]#.
|
||||
{},
|
||||
{CustomMessage("They say that #40 bug badges# rewards #[[1]]#.",
|
||||
{CustomMessage("They say that #40 bug badges# reward #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß die Belohnung für #40 Insektenplaketten# #[[1]]# |sei|seien|.",
|
||||
/*french*/ "Selon moi, #40 écussons# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#40 medallas de insectos# otorgan #[[1]]#.
|
||||
CustomMessage("They say that #40 spider souls# yields #[[1]]#.",
|
||||
CustomMessage("They say that #40 spider souls# yield #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß #40 Spinnenseelen# #[[1]]# einbrächte.",
|
||||
/*french*/ "Selon moi, #40 âmes d'arachnide# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#40 almas de araña# otorgan #[[1]]#.
|
||||
@@ -211,11 +211,11 @@ void StaticData::HintTable_Init() {
|
||||
/*french*/ "Selon moi, détruire #30 Skulltulas d'or# donne #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/exterminar #30 skulltulas doradas# revela #[[1]]#.
|
||||
{},
|
||||
{CustomMessage("They say that #30 bug badges# rewards #[[1]]#.",
|
||||
{CustomMessage("They say that #30 bug badges# reward #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß die Belohnung für #30 Insektenplaketten# #[[1]]# |sei|seien|.",
|
||||
/*french*/ "Selon moi, #30 écussons# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#30 medallas de insectos# otorgan #[[1]]#.
|
||||
CustomMessage("They say that #30 spider souls# yields #[[1]]#.",
|
||||
CustomMessage("They say that #30 spider souls# yield #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß #30 Spinnenseelen# #[[1]]# einbrächte.",
|
||||
/*french*/ "Selon moi, #30 âmes d'arachnide# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#30 almas de araña# otorgan #[[1]]#.
|
||||
@@ -229,11 +229,11 @@ void StaticData::HintTable_Init() {
|
||||
/*french*/ "Selon moi, détruire #20 Skulltulas d'or# donne #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/exterminar #20 skulltulas doradas# revela #[[1]]#.
|
||||
{},
|
||||
{CustomMessage("They say that #20 bug badges# rewards #[[1]]#.",
|
||||
{CustomMessage("They say that #20 bug badges# reward #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß die Belohnung für #20 Insektenplaketten# #[[1]]# |sei|seien|.",
|
||||
/*french*/ "Selon moi, #20 écussons# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#20 medallas de insectos# otorgan #[[1]]#.
|
||||
CustomMessage("They say that #20 spider souls# yields #[[1]]#.",
|
||||
CustomMessage("They say that #20 spider souls# yield #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß #20 Spinnenseelen# #[[1]]# einbrächte.",
|
||||
/*french*/ "Selon moi, #20 âmes d'arachnide# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/#20 almas de araña# otorgan #[[1]]#.
|
||||
@@ -625,12 +625,12 @@ void StaticData::HintTable_Init() {
|
||||
/*french*/ "Selon moi, l'araignée sous #une pierre bleue dans une caverne# a #[[1]]#.", {QM_RED, QM_GREEN})});
|
||||
// /*spanish*/una Skulltula bajo #bloques temporales de una cueva# otorga #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_BOOMERANG_CHEST] = HintText(CustomMessage("They say that a school of #stingers swallowed by Jabu-Jabu# guard #[[1]]#.",
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_BOOMERANG_CHEST] = HintText(CustomMessage("They say that a school of #stingers swallowed by Jabu-Jabu# guards #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #von Jabu-Jabu verschluckter Rochenschwarm# #[[1]]# bewache.",
|
||||
/*french*/ "Selon moi, les #raies dans Jabu-Jabu# protègent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/unos #stingers engullidos por Jabu-Jabu# guardan #[[1]]#.
|
||||
{},
|
||||
{CustomMessage("They say that a school of #stingers swallowed by a deity# guard #[[1]]#.",
|
||||
{CustomMessage("They say that a school of #stingers swallowed by a deity# guards #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #von einer Gottheit verschluckter Rochenschwarm# #[[1]]# bewache.",
|
||||
/*french*/ "Selon moi, les #raies dans un gardien# protègent #[[1]]#.", {QM_RED, QM_GREEN})});
|
||||
// /*spanish*/unos de #stingers engullidos por cierta deidad# guardan #[[1]]#.
|
||||
@@ -1660,7 +1660,7 @@ void StaticData::HintTable_Init() {
|
||||
/*german*/ "Man erzählt sich, daß Basil nicht besonders gut darin ist vorauszuplanen.",
|
||||
/*french*/ "Selon moi, Ingo ne fait pas un très bon geôlier."));
|
||||
|
||||
hintTextTable[RHT_JUNK50] = HintText(CustomMessage("You found a spiritual Stone! By which I mean, I worship Nayru.",
|
||||
hintTextTable[RHT_JUNK50] = HintText(CustomMessage("You found a Spiritual Stone! By which I mean, I worship Nayru.",
|
||||
/*german*/ "Du hast einen Heiligen Stein gefunden!^Also... eigentlich heißt das nur, daß ich Nayru verehre.",
|
||||
/*french*/ "Vous avez trouvé une Pierre Ancestrale! En effet, je vénère la déesse Hylia."));
|
||||
|
||||
@@ -1680,7 +1680,7 @@ void StaticData::HintTable_Init() {
|
||||
/*german*/ "Man erzählt sich, daß die \"Nightly Builds\" instabil sein könnten.",
|
||||
/*french*/ "Selon moi, les \"nightly builds\" peuvent être instables."));
|
||||
|
||||
hintTextTable[RHT_JUNK55] = HintText(CustomMessage("You're playing a Randomizer. I'm randomized!^Here's a random number: #4#.&Enjoy your Randomizer!",
|
||||
hintTextTable[RHT_JUNK55] = HintText(CustomMessage("You're playing a Randomizer. I'm randomized!^Here's a random number: #4#.&Enjoy your Randomizer!",
|
||||
/*german*/ "Du spielst einen Randomizer. Ich wurde zufällig generiert!^Hier ist eine zufällige Zahl: #4#.&Viel Spaß mit dem Randomizer!",
|
||||
/*french*/ "Tu joues à un randomizer. Je suis aléatoire!^Voici un nombre aléatoire: #4#.&Bonne partie!"));
|
||||
|
||||
@@ -2208,7 +2208,7 @@ void StaticData::HintTable_Init() {
|
||||
/*french*/ "Selon moi, #[[1]]# a été dissipée par Sheik.", {QM_YELLOW}));
|
||||
// /*spanish*/Según dicen, #[[1]]# se disipó gracias a Sheik.
|
||||
|
||||
hintTextTable[RHT_TRIAL_ON] = HintText(CustomMessage("They say that #[[1]]# protects Ganons Tower.",
|
||||
hintTextTable[RHT_TRIAL_ON] = HintText(CustomMessage("They say that #[[1]]# protects Ganon's Tower.",
|
||||
/*german*/ "Man erzählt sich, daß #[[1]]# den Teufelsturm schütze.",
|
||||
/*french*/ "Selon moi, #[[1]]# protège la Tour de Ganon.", {QM_PINK}));
|
||||
// /*spanish*/Según dicen, #[[1]]# protege la torre de Ganon
|
||||
@@ -2342,7 +2342,7 @@ void StaticData::HintTable_Init() {
|
||||
/*french*/ "Pfeuuh! Tu n'trouveras jamais l'#Epée Kokiri# que j'ai cachée dans #[[1]]#!",
|
||||
{QM_GREEN, QM_RED}));
|
||||
|
||||
hintTextTable[RHT_LOACH_HINT] = HintText(CustomMessage("What?^You wanna know about the&%rHyrule Loach%w?^It's a big fish, but it's so rare that I'll give my %g[[1]]%w to anyone who catches it. Seriously!",
|
||||
hintTextTable[RHT_LOACH_HINT] = HintText(CustomMessage("What?^You wanna know about the&%rHyrule Loach%w?^It's a big fish, but it's so rare that I'll give %g[[1]]%w to anyone who catches it. Seriously!",
|
||||
/*german*/ "Was?^Du willst etwas über die&%rhylianische Forelle%w wissen?&Es ist ein riesiger Fisch,&der unfassbar selten ist!^Wenn Du mir eine bringst, |springt|springen| für Dich&%g[[1]]%w dabei raus.&Ganz im Ernst!",
|
||||
/*french*/ "Quoi?&Tu veux en savoir plus sur le&%rBrochet d'Hyrule%w?^C'est un gros poisson, mais il&est si rare que je donne&%g[[1]]%w&à celui qui l'attrape.^Ouais, j'suis sérieux!",
|
||||
{QM_RED}));
|
||||
@@ -2371,7 +2371,7 @@ void StaticData::HintTable_Init() {
|
||||
{QM_RED, QM_GREEN, QM_GREEN, QM_GREEN}, {}, TEXTBOX_TYPE_WOODEN));
|
||||
|
||||
hintTextTable[RHT_HBA_HINT_NOT_ON_HORSE] = HintText(CustomMessage("Hey, rookie!&Come back on your #horse# and take on the #Horseback Archery# challenge!^"
|
||||
"Impress me with a high score of 1000 to win a #[[1]]# or score 1500 for #[[2]]#!",
|
||||
"Impress me with a high score of 1000 to win #[[1]]# or score 1500 for #[[2]]#!",
|
||||
/*german*/ "Hey, Kleiner! Das ist die %rArena für Bogenschießen zu Pferde%w.^"
|
||||
"Wenn Du reiten kannst, beeindrucke mich mit #1.000 Punkten# und gewinne #[[1]]#!^Knackst Du #1.500 Punkte# gibt es #[[2]]#!",
|
||||
/*french*/ "Hé, l'nouveau!&Reviens avec ton #cheval# et essaie notre #Terrain d'Archerie Montée#^"
|
||||
@@ -2379,7 +2379,7 @@ void StaticData::HintTable_Init() {
|
||||
{QM_RED, QM_RED, QM_GREEN, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_HBA_HINT_INITIAL] = HintText(CustomMessage("Hey, rookie!&Want to take on the #Horseback Archery# challenge?^"
|
||||
"Impress me with a high score of 1000 to win a #[[1]]# or score 1500 for #[[2]]#!\x0B",
|
||||
"Impress me with a high score of 1000 to win #[[1]]# or score 1500 for #[[2]]#!\x0B",
|
||||
/*german*/ "Hey, Kleiner! Wie wäre es mit einer Runde %rBogenschießen zu Pferde%w!?^"
|
||||
"Wenn Du mich mit #1.000 Punkten# beeindruckst, erhältst Du #[[1]]#!^Knackst Du #1.500 Punkte# gibt es #[[2]]#!\x0B",
|
||||
/*french*/ "Hé, l'nouveau!&Tu veux essayer notre #Terrain d'Archerie Montée#^"
|
||||
@@ -2395,52 +2395,52 @@ void StaticData::HintTable_Init() {
|
||||
{QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_MALON_HINT_HOW_IS_EPONA] = HintText(CustomMessage("@! You should come back with Epona and try to beat my time on the #Obstacle Course#!^"
|
||||
"If you beat my time, I'll give you my favourite #cow# Elsie and her toy #[[1]]#!",
|
||||
"If you beat my time, I'll give you my favorite #cow# Elsie and her toy, #[[1]]#!",
|
||||
/*german*/ "@! Warum kommst Du nicht mit Epona zurück und versuchst Dich an dem #Hindernisparcours#?^"
|
||||
"Gelingt es Dir den Rekord zu brechen, bekommst Du meine #Lieblingskuh# Elsie^und ihr Lieblingsspielzeug, #[[1]]#!",
|
||||
/*french*/ "@! Tu devrais revenir avec Epona et essayer de battre mon temps sur le #Parcours d'Obstacles#!^"
|
||||
"Si tu bats mon temps, je te donnerai ma vache préférée, Elsie, ainsi que son jouet #[[1]]#!",
|
||||
"Si tu bats mon temps, je te donnerai ma vache préférée, Elsie, ainsi que son jouet, #[[1]]#!",
|
||||
{QM_RED, QM_BLUE, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_MALON_HINT_OBSTICLE_COURSE] = HintText(CustomMessage("How about trying the #Obstacle Course?# If you beat my time I'll let you keep my favourite #cow# Elsie and her toy #[[1]]#!^"
|
||||
hintTextTable[RHT_MALON_HINT_OBSTICLE_COURSE] = HintText(CustomMessage("How about trying the #Obstacle Course?# If you beat my time I'll let you keep my favorite #cow# Elsie and her toy, #[[1]]#!^"
|
||||
"Challenge the #Obstacle Course?#\x1B#Let's go&No thanks#",
|
||||
/*german*/ "Warum versuchst Du Dich nicht mit Epona an dem #Hindernisparcours#?^"
|
||||
"Gelingt es Dir den Rekord zu brechen, bekommst Du meine #Lieblingskuh# Elsie^und ihr Lieblingsspielzeug, #[[1]]#!^"
|
||||
"Wie sieht's aus?&Möchtest Du es versuchen?\x1B#Ja!&Nein!#",
|
||||
/*french*/ "Que dirais-tu d'essayer le #Parcours d'Obstacles#? Si tu bats mon temps, je te donnerai ma vache préférée, Elsie, et son jouet #[[1]]#!^"
|
||||
/*french*/ "Que dirais-tu d'essayer le #Parcours d'Obstacles#? Si tu bats mon temps, je te donnerai ma vache préférée, Elsie, et son jouet, #[[1]]#!^"
|
||||
"Tenter le #Parcours d'Obstacles#?\x1B#Allons-y&Non merci#",
|
||||
{QM_RED, QM_BLUE, QM_GREEN, QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_MALON_HINT_TURNING_EVIL] = HintText(CustomMessage("@? Is that you? ^If I ran the ranch, I'd build an #Obstacle Course#, and whoever gets the best time would win a #cow#!^"
|
||||
"Elsie loves sharing her #[[1]]# with new people, It'll be fun!^...But Ingo won't let me...",
|
||||
"Elsie loves sharing #[[1]]# with new people, it'll be fun!^...But Ingo won't let me...",
|
||||
/*german*/ "@? Bist Du das?^Wenn ich die Farm leiten würde, würde ich einen #Hindernisparcours# bauen, und wer die beste Zeit schafft, gewinnt eine #Kuh#!^"
|
||||
"Elsie würde es lieben, #[[1]]# mit neuen Leuten zu teilen, es würde Spaß machen!^...Aber Basil läßt mich nicht...",
|
||||
/*french*/ "@? C'est toi?^Si je dirigeais le ranch, je construirais un #Parcours d'Obstacles#, et celui qui obtiendrait le meilleur temps gagnerait une #vache#!^"
|
||||
"Elsie adore partager son #[[1]]# avec de nouvelles personnes, ce serait amusant!^... Mais Ingo ne me laisse pas faire...",
|
||||
"Elsie adore partager #[[1]]# avec de nouvelles personnes, ce serait amusant!^... Mais Ingo ne me laisse pas faire...",
|
||||
{QM_RED, QM_BLUE, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_MALON_HINT_INGO_TEMPTED] = HintText(CustomMessage("@! You should come back in the morning and try to beat my time on the #Obstacle Course#!^"
|
||||
"If you beat my time, I'll give you my favourite #cow# Elsie and her toy #[[1]]#!",
|
||||
"If you beat my time, I'll give you my favorite #cow# Elsie and her toy, #[[1]]#!",
|
||||
/*german*/ "@! Warum kommst Du nicht morgens wieder und versuchst Dich an dem #Hindernisparcours#?^"
|
||||
"Gelingt es Dir den Rekord zu brechen, bekommst Du meine #Lieblingskuh# Elsie^und ihr Lieblingsspielzeug, #[[1]]#!",
|
||||
/*french*/ "@! Tu devrais revenir le matin et essayer de battre mon temps sur le #Parcours d'Obstacles#!^"
|
||||
"Si tu bats mon temps, je te donnerai ma vache préférée, Elsie, ainsi que son jouet #[[1]]#!",
|
||||
"Si tu bats mon temps, je te donnerai ma vache préférée, Elsie, ainsi que son jouet, #[[1]]#!",
|
||||
{QM_RED, QM_BLUE, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_CHICKENS_HINT] = HintText(CustomMessage("You! Please!&Bring my Cucco's back to my pen!&I'll give you my #[[1]]#!",
|
||||
hintTextTable[RHT_CHICKENS_HINT] = HintText(CustomMessage("You! Please!&Bring my Cuccos back to my pen!&I'll give you #[[1]]#!",
|
||||
/*german*/ "Was soll ich nur tun?! Bitte!&Hilf mir, die Hühner wieder einzusammeln!^Ich gebe Dir auch #[[1]]#, wenn du mir hilfst!",
|
||||
/*french*/ "Mes Cocottes sont perdues!&Dépose toutes les cocottes dans cet enclos!&Je te donnerai #[[1]]#!",
|
||||
{QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_BIG_POES_HINT] = HintText(CustomMessage("You have #\x1E\x01 Poe Points#! Reach 1000 and you'll get a #[[1]]#!",
|
||||
hintTextTable[RHT_BIG_POES_HINT] = HintText(CustomMessage("You have #\x1E\x01 Poe Points#! Reach 1000 and you'll get #[[1]]#!",
|
||||
/*german*/ "Du hast nun #\x1E\x01 Punkte# auf dem Nachtschwärmer-Konto gut!^"
|
||||
"Hast Du %y1.000 Punkte%w gesammelt dann |wartet|warten| #[[1]]# auf Dich! Hehehe...",
|
||||
/*french*/ "Tu as #\x1E\x01 Points d'Âme#! Atteins 1000 et tu recevras #[[1]]#!",
|
||||
{QM_YELLOW, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_BIGGORON_HINT] = HintText(CustomMessage("Arrrrrre you here to claim my finest #[[1]]#? Shoooooow me your #Claim Check#.",
|
||||
hintTextTable[RHT_BIGGORON_HINT] = HintText(CustomMessage("Arrrrrre you here to claim my finest work, #[[1]]#? Shoooooow me your #Claim Check#.",
|
||||
/*german*/ "Arrrrr, bist Du hier, um etwas von mir schmieden zu lassen? Zeig mir das #Zertifikat# und #[[1]]# |gehört|gehören| Dir!",
|
||||
/*french*/ "Eeeeeees-tu ici pour réclaaaaaamer mon plus beau #[[1]]#? Moooooontre-moi ton #Certificat#.",
|
||||
/*french*/ "Eeeeeees-tu ici pour réclaaaaaamer ma meilleure oeuvre, #[[1]]#? Moooooontre-moi ton #Certificat#.",
|
||||
{QM_GREEN, QM_RED}));
|
||||
|
||||
hintTextTable[RHT_FROGS_HINT] = HintText(CustomMessage("Some frogs holding #[[1]]# are looking at you from underwater...",
|
||||
|
||||
@@ -395,12 +395,12 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, un #organe descendant# mène à #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, un #ser movedizo entre paredes# conduce a #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_SWITCHES_CHEST] = HintText(CustomMessage("They say that a #pair of digested cows# hold #[[1]]#.",
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_SWITCHES_CHEST] = HintText(CustomMessage("They say that a #pair of digested cows# holds #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Paar verdauter Kühe# #[[1]]# hielte.",
|
||||
/*french*/ "Selon moi, #deux boeufs digérés# détiennent #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, un #par de digeridas vacas# otorgan #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_VINES_CHEST] = HintText(CustomMessage("They say that a #pair of digested cows# hold #[[1]]#.",
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_VINES_CHEST] = HintText(CustomMessage("They say that a #pair of digested cows# holds #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Paar verdauter Kühe# #[[1]]# hielte.",
|
||||
/*french*/ "Selon moi, #deux boeufs digérés# détiennent #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, un #par de digeridas vacas# otorgan #[[1]]#.
|
||||
@@ -410,27 +410,27 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, le #cadeau des dernières vaches# estomacales est #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, las #vacas al final# de la tripa de cierta deidad otorgan #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_FALLING_LIKE_LIKE_ROOM_CHEST] = HintText(CustomMessage("They say that #cows protected by falling monsters# in a deity's belly guard hide #[[1]]#.",
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_FALLING_LIKE_LIKE_ROOM_CHEST] = HintText(CustomMessage("They say that #cows protected by falling monsters# in a deity's belly hide #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß #von fallenden Monstern bewachte Kühe# im Bauche einer Gottheit #[[1]]# verstecken würden.",
|
||||
/*french*/ "Selon moi, des #vaches protégées par des monstres tombants# cachent #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, unas #vacas custodiadas por monstruos del techo# de la tripa de cierta deidad otorgan #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_BOOMERANG_ROOM_SMALL_CHEST] = HintText(CustomMessage("They say that a school of #stingers swallowed by Jabu-Jabu# guard #[[1]]#.",
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_BOOMERANG_ROOM_SMALL_CHEST] = HintText(CustomMessage("They say that a school of #stingers swallowed by Jabu-Jabu# guards #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß von #Jabu-Jabu verschluckte Rochen# #[[1]]# bewachen würden.",
|
||||
/*french*/ "Selon moi, les #raies avallées par Jabu-Jabu# protègent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/ Según dicen, unos #stingers engullidos por Jabu-Jabu# guardan #[[1]]#.
|
||||
{}, {
|
||||
CustomMessage("They say that a school of #stingers swallowed by a deity# guard #[[1]]#.",
|
||||
CustomMessage("They say that a school of #stingers swallowed by a deity# guards #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß von #einer Gottheit verschluckte Rochen# #[[1]]# bewachen würden.",
|
||||
/*french*/ "Selon moi, les #raies avallées par le gardien# protègent #[[1]]#.", {QM_RED, QM_GREEN})});
|
||||
// /*spanish*/ Según dicen, unos #stingers engullidos por cierta deidad# guardan #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_BOOMERANG_CHEST] = HintText(CustomMessage("They say that a school of #stingers swallowed by Jabu-Jabu# guard #[[1]]#.",
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_MQ_BOOMERANG_CHEST] = HintText(CustomMessage("They say that a school of #stingers swallowed by Jabu-Jabu# guards #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß von #Jabu-Jabu verschluckte Rochen# #[[1]]# bewachen würden.",
|
||||
/*french*/ "Selon moi, les #raies avallées par Jabu-Jabu# protègent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/ Según dicen, unos #stingers engullidos por Jabu-Jabu# guardan #[[1]]#.
|
||||
{}, {
|
||||
CustomMessage("They say that a school of #stingers swallowed by a deity# guard #[[1]]#.",
|
||||
CustomMessage("They say that a school of #stingers swallowed by a deity# guards #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß von #einer Gottheit verschluckte Rochen# #[[1]]# bewachen würden.",
|
||||
/*french*/ "Selon moi, les #raies avallées par le gardien# protègent #[[1]]#.", {QM_RED, QM_GREEN})});
|
||||
// /*spanish*/ Según dicen, unos #stingers engullidos por cierta deidad# guardan #[[1]]#.
|
||||
@@ -485,7 +485,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, la #peste Mojo dans le ventre du gardien# vend #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, un #deku dentro de cierta deidad# vende #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_POT_JABU_JABUS_BELLY] = HintText(CustomMessage("They say that a #pot in Jabu Jabu's Belly# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_JABU_JABUS_BELLY] = HintText(CustomMessage("They say that a #pot in Jabu-Jabu's Belly# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug in Jabu-Jabus Bauch# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans le Ventre de Jabu-Jabu# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -497,19 +497,19 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß sich #nahe des zentralen Aufzugs in Jabu-Jabus Bauch# #[[1]]# |befände|befänden|.",
|
||||
/*french*/ "Selon moi, près d'un #ascenceur central dans le Ventre de Jabu-Jabu# se trouve #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_GRASS] = HintText(CustomMessage("They say that some #grass in Jabu Jabu's Belly# hides #[[1]]#.",
|
||||
hintTextTable[RHT_JABU_JABUS_BELLY_GRASS] = HintText(CustomMessage("They say that some #grass in Jabu-Jabu's Belly# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß etwas #Gras in Jabu-Jabus Bauch# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, de l'#herbe dans le Ventre de Jabu-Jabu# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_CRATE_JABU_JABU] = HintText(CustomMessage("They say that a #crate in Jabu Jabu's Belly# contains #[[1]]#.",
|
||||
hintTextTable[RHT_CRATE_JABU_JABU] = HintText(CustomMessage("They say that a #crate in Jabu-Jabu's Belly# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine #Kiste in Jabu-Jabus Bauch# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans le Ventre de Jabu-Jabu# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_JABU_BOULDER] = HintText(CustomMessage("They say that a #boulder in Jabu Jabu's Belly# contains #[[1]]#.",
|
||||
hintTextTable[RHT_JABU_BOULDER] = HintText(CustomMessage("They say that a #boulder in Jabu-Jabu's Belly# contains #[[1]]#.",
|
||||
/*german*/ TODO_TRANSLATE,
|
||||
/*french*/ TODO_TRANSLATE, {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_WONDER_ITEM_JABU_JABU] = HintText(CustomMessage("They say that a #wonder item in Jabu Jabu's Belly# hides #[[1]]#.",
|
||||
hintTextTable[RHT_WONDER_ITEM_JABU_JABU] = HintText(CustomMessage("They say that a #wonder item in Jabu-Jabu's Belly# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand in Jabu-Jabus Bauch# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux dans le Ventre de Jabu-Jabu# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -521,7 +521,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, sur l'#arbre dans le Temple de la Forêt# gît #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, sobre un #árbol del Templo del Bosque# yace #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_FOREST_TEMPLE_FIRST_STALFOS_CHEST] = HintText(CustomMessage("They say that #defeating enemies beneath a falling ceiling# in Forest Temple yields #[[1]]#.",
|
||||
hintTextTable[RHT_FOREST_TEMPLE_FIRST_STALFOS_CHEST] = HintText(CustomMessage("They say that #defeating enemies beneath a falling ceiling# in the Forest Temple yields #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Besiegen von Gegnern, unter einer fallenden Decke# im Waldtempel, #[[1]]# einbrächte.",
|
||||
/*french*/ "Selon moi, #deux squelettes# dans le Temple de la Forêt protègent #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, #derrotar enemigos caídos de lo alto# del Templo del Bosque revela #[[1]]#.
|
||||
@@ -531,7 +531,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, le #coffre submergé dans la forêt# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, un #sumergido cofre en lo profundo del bosque# contiene #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_FOREST_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say that a #fiery skull# in Forest Temple guards #[[1]]#.",
|
||||
hintTextTable[RHT_FOREST_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say that a #fiery skull# in the Forest Temple guards #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #feuriger Schädel# im Waldtempel #[[1]]# bewache.",
|
||||
/*french*/ "Selon moi, le #crâne enflammé# dans le Temple de la Forêt protège #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, una #ardiente calavera# del Templo del Bosque esconde #[[1]]#.
|
||||
@@ -606,7 +606,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, sur l'#arbre dans le Temple de la Forêt# gît #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, sobre un #árbol del Templo del Bosque# yace #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_FOREST_TEMPLE_MQ_WOLFOS_CHEST] = HintText(CustomMessage("They say that #defeating enemies beneath a falling ceiling# in Forest Temple yields #[[1]]#.",
|
||||
hintTextTable[RHT_FOREST_TEMPLE_MQ_WOLFOS_CHEST] = HintText(CustomMessage("They say that #defeating enemies beneath a falling ceiling# in the Forest Temple yields #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Besiegen von Gegnern, unter einer fallenden Decke# im Waldtempel, #[[1]]# einbrächte.",
|
||||
/*french*/ "Selon moi, #deux squelettes# dans le Temple de la Forêt protègent #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, #derrotar enemigos caídos de lo alto# del Templo del Bosque revela #[[1]]#.
|
||||
@@ -730,12 +730,12 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß eine #Spinne, auf einem Vorsprung# im Waldtempel, #[[1]]# besäße.",
|
||||
/*french*/ "Selon moi, une #Skulltula dans le jardin du Temple de la Forêt# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, una #Skulltula en un borde# del Templo del Bosque otorga #[[1]]#.
|
||||
hintTextTable[RHT_FOREST_TEMPLE_MQ_GS_WELL] = HintText(CustomMessage("They say that #draining a well# in Forest Temple uncovers a spider with #[[1]]#.",
|
||||
hintTextTable[RHT_FOREST_TEMPLE_MQ_GS_WELL] = HintText(CustomMessage("They say that #draining a well# in the Forest Temple uncovers a spider with #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Entleeren eines Brunnens# im Waldtempel, eine Spinne enthülle, welche #[[1]]# besäße.",
|
||||
/*french*/ "Selon moi, une #Skulltula au fond du Puits du Temple de la Forêt# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, #vaciar el pozo# del Templo del Bosque desvela una Skulltula que otorga #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_POT_FOREST_TEMPLE] = HintText(CustomMessage("They say that a #pot in Forest Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_FOREST_TEMPLE] = HintText(CustomMessage("They say that a #pot in the Forest Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug im Waldtempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans le Temple de la Fôret# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -743,7 +743,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß ein #Herz im Waldtempel# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #coeur dans le Temple de la Fôret# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_CRATE_FOREST_TEMPLE] = HintText(CustomMessage("They say that a #crate in Forest Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_CRATE_FOREST_TEMPLE] = HintText(CustomMessage("They say that a #crate in the Forest Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine #Kiste im Waldtempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans le Temple de la Fôret# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -790,7 +790,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, le #Goron caché près du labyrinthe# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, un #goron escondido tras un laberinto# guarda #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST] = HintText(CustomMessage("They say that a #blocked path# in Fire Temple holds #[[1]]#.",
|
||||
hintTextTable[RHT_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST] = HintText(CustomMessage("They say that a #blocked path# in the Fire Temple holds #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #blockierter Pfad# im Feuertempel #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, un #sol fragile dans le Temple du Feu# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, en un #camino bloqueado# del Templo del Fuego yace #[[1]]#.
|
||||
@@ -825,7 +825,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, le #Danse-Flamme au coeur du volcan# a #[[1]]#.", {QM_RED, QM_GREEN})});
|
||||
// /*spanish*/ Según dicen, el #Bailafuego en lo profundo del volcán# esconde #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_FIRE_TEMPLE_MQ_COMPASS_CHEST] = HintText(CustomMessage("They say that a #blocked path# in Fire Temple holds #[[1]]#.",
|
||||
hintTextTable[RHT_FIRE_TEMPLE_MQ_COMPASS_CHEST] = HintText(CustomMessage("They say that a #blocked path# in the Fire Temple holds #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #blockierter Pfad# im Feuertempel #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, le #chemin scellé# dans le Temple du Feu contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, en un #camino bloqueado# del Templo del Fuego yace #[[1]]#.
|
||||
@@ -935,7 +935,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, une #Skulltula près du labyrinthe enflammé du Temple du Feu# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, una #Skulltula junto a un ardiente laberinto# otorga #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_POT_FIRE_TEMPLE] = HintText(CustomMessage("They say that a #pot in Fire Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_FIRE_TEMPLE] = HintText(CustomMessage("They say that a #pot in the Fire Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug im Feuertempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans le Temple du Feu# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -951,11 +951,11 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß das #Anrufen der Sonne, hinter dem Thron eines Ritters in einem Vulkan#, #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #appeler le soleil derrière le trône d’un chevalier dans un volcan# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_CRATE_FIRE_TEMPLE] = HintText(CustomMessage("They say that a #crate in Fire Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_CRATE_FIRE_TEMPLE] = HintText(CustomMessage("They say that a #crate in the Fire Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine #Kiste im Feuertempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans le Temple du Feu# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_WONDER_ITEM_FIRE_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in Fire Temple# hides #[[1]]#.",
|
||||
hintTextTable[RHT_WONDER_ITEM_FIRE_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in the Fire Temple# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand im Feuertempel# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux dans le Temple du Feu# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1086,7 +1086,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, une #Skulltula au dessus de la rivière du Temple de l'Eau# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, una #Skulltula sobre un río# del Templo del Agua otorga #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_POT_WATER_TEMPLE] = HintText(CustomMessage("They say that a #pot in Water Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_WATER_TEMPLE] = HintText(CustomMessage("They say that a #pot in the Water Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug im Wassertempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans le Temple de l'Eau# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1106,11 +1106,11 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß das #Anrufen der Sonne, vor einem Duell mit seinem Schatten#, #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #appeler le soleil avant un duel avec son ombre# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_CRATE_WATER_TEMPLE] = HintText(CustomMessage("They say that a #crate in Water Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_CRATE_WATER_TEMPLE] = HintText(CustomMessage("They say that a #crate in the Water Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine #Kiste im Wassertempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans le Temple de l'Eau# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_WONDER_ITEM_WATER_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in Water Temple# hides #[[1]]#.",
|
||||
hintTextTable[RHT_WONDER_ITEM_WATER_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in the Water Temple# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand im Wassertempel# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux dans le Temple de l'Eau# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1347,7 +1347,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, une #Skulltula sur une paroi de verre du Temple de l'Esprit# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, #sobre una plataforma de cristal# yace una Skulltula que otorga #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_POT_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #pot in Spirit Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #pot in the Spirit Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug im Geistertempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans le Temple de l'Esprit# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1359,7 +1359,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß sich bewacht von einem #Ring der Flammen#, im Geistertempel #[[1]]# |befände|befänden|.",
|
||||
/*french*/ "Selon moi, protégé par un #cercle de flammes# dans le Temple de l'Esprit se trouve #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun past rolling boulders in Spirit Temple# reveals #[[1]]#.",
|
||||
hintTextTable[RHT_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun past rolling boulders in the Spirit Temple# reveals #[[1]]#.",
|
||||
/*german*/ TODO_TRANSLATE,
|
||||
/*french*/ TODO_TRANSLATE, {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1367,7 +1367,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ TODO_TRANSLATE,
|
||||
/*french*/ TODO_TRANSLATE, {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_CRATE_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #crate in Spirit Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_CRATE_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #crate in the Spirit Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine #Kiste im Geistertempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans le Temple de l'Esprit# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1375,11 +1375,11 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ TODO_TRANSLATE,
|
||||
/*french*/ TODO_TRANSLATE, {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_SIGN_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that #reading a statue in Spirit Temple# reveals #[[1]]#.",
|
||||
hintTextTable[RHT_SIGN_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that #reading a statue in the Spirit Temple# reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Lesen einer Statue im Geistertempel# #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #lire une statue dans le Temple de l'Esprit# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_WONDER_ITEM_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in Spirit Temple# hides #[[1]]#.",
|
||||
hintTextTable[RHT_WONDER_ITEM_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in the Spirit Temple# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand im Geistertempel# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux dans le Temple de l'Esprit# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1491,7 +1491,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, les #faucheurs danseurs# du Temple de l'Ombre protègent #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, las #giratorias guadañas# protegen #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_SHADOW_TEMPLE_MQ_BEAMOS_SILVER_RUPEES_CHEST] = HintText(CustomMessage("They say that #collecting rupees in a vast cavern# with the Shadow Temple unveils #[[1]]#.",
|
||||
hintTextTable[RHT_SHADOW_TEMPLE_MQ_BEAMOS_SILVER_RUPEES_CHEST] = HintText(CustomMessage("They say that #collecting rupees in a vast cavern# within the Shadow Temple unveils #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Sammeln von Rubinen in einer riesigen Kaverne# im Schattentempel #[[1]]# offenbaren würde.",
|
||||
/*french*/ "Selon moi, les #pièces argentées dans le Temple de l'Ombre# révèlent #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, hacerte con las #rupias en una gran caverna# del Templo de las Sombras revela #[[1]]#.
|
||||
@@ -1626,7 +1626,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, une #Skulltula près du repère du Temple de l'Ombre# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, una #Skulltula flotante# del Templo de las Sombras otorga #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_POT_SHADOW_TEMPLE] = HintText(CustomMessage("They say that a #pot in Shadow Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_SHADOW_TEMPLE] = HintText(CustomMessage("They say that a #pot in the Shadow Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug im Schattentempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans le Temple de l'Ombre# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1634,27 +1634,27 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß ein #Herz im Schattentempel# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #coeur dans le Temple de l'Ombre# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_SHADOW_TEMPLE_BEAMOS_STORM_FAIRY] = HintText(CustomMessage("They say that an #calling the rain for a sentry guarding a house of the dead# reveals #[[1]]#.",
|
||||
hintTextTable[RHT_SHADOW_TEMPLE_BEAMOS_STORM_FAIRY] = HintText(CustomMessage("They say that #calling the rain for a sentry guarding a house of the dead# reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Anrufen des Regens, nahe eines Wachpostens des Hauses der Toten#, #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #appeler la pluie pour une sentinelle gardant une maison des morts# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_SHADOW_TEMPLE_PIT_STORM_FAIRY] = HintText(CustomMessage("They say that an #calling the rain on a platform suspended above a bottomless pit# reveals #[[1]]#.",
|
||||
hintTextTable[RHT_SHADOW_TEMPLE_PIT_STORM_FAIRY] = HintText(CustomMessage("They say that #calling the rain on a platform suspended above a bottomless pit# reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Anrufen des Regens, auf einer Plattform, welche über einer bodenlosen Grube schwebt#, #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #appeler la pluie sur une plateforme suspendue au-dessus d’un gouffre sans fond# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_SHADOW_TEMPLE_WIND_HINT_SUN_FAIRY] = HintText(CustomMessage("They say that an #calling the sun near an invisible chest guarded by the dead# reveals #[[1]]#.",
|
||||
hintTextTable[RHT_SHADOW_TEMPLE_WIND_HINT_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun near an invisible chest guarded by the dead# reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Anrufen der Sonne, nahe einer von Toten bewachten unsichtbaren Truhe#, #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #appeler le soleil près d’un coffre invisible gardé par les morts# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_CRATE_SHADOW_TEMPLE] = HintText(CustomMessage("They say that a #crate in Shadow Temple# contains #[[1]]#.",
|
||||
hintTextTable[RHT_CRATE_SHADOW_TEMPLE] = HintText(CustomMessage("They say that a #crate in the Shadow Temple# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine #Kiste im Schattentempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans le Temple de l'Ombre# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_SIGN_SHADOW_TEMPLE] = HintText(CustomMessage("They say that #reading a sign in Shadow Temple# reveals #[[1]]#.",
|
||||
hintTextTable[RHT_SIGN_SHADOW_TEMPLE] = HintText(CustomMessage("They say that #reading a sign in the Shadow Temple# reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Lesen eines Schildes im Schattentempel# #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #lire un panneau dans le Temple de l'Ombre# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_WONDER_ITEM_SHADOW_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in Shadow Temple# hides #[[1]]#.",
|
||||
hintTextTable[RHT_WONDER_ITEM_SHADOW_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in the Shadow Temple# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand im Schattentempel# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux dans le Temple de l'Ombre# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1776,7 +1776,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, une #Skulltula embarrée dans la crypte au fonds du Puits# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, una #Skulltula encerrada en una cripta# del pozo otorga #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_POT_BOTTOM_OF_THE_WELL] = HintText(CustomMessage("They say that a #pot in Bottom of the Well# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_BOTTOM_OF_THE_WELL] = HintText(CustomMessage("They say that a #pot in the Bottom of the Well# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug auf dem Grund des Brunnens# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans le Puits# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1788,15 +1788,15 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß ein #im Boden versteckter Pfad# im Brunnen #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, un #passage caché sous le sol# dans le puits mène à #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_BOTTOM_OF_THE_WELL_BASEMENT_SUN_FAIRY] = HintText(CustomMessage("They say that an #calling the sun a dead end# within the well reveals #[[1]]#.",
|
||||
hintTextTable[RHT_BOTTOM_OF_THE_WELL_BASEMENT_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun in a dead end# within the well reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Anrufen der Sonne in einer Sackgasse# innerhalb des Brunnens #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #appeler le soleil dans une impasse# à l’intérieur du puits révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY] = HintText(CustomMessage("They say that an #calling the sun in an empty cell# within the well reveals #[[1]]#.",
|
||||
hintTextTable[RHT_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun in an empty cell# within the well reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Anrufen der Sonne in einer leeren Zelle# innerhalb des Brunnens #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #appeler le soleil dans une cellule vide# à l’intérieur du puits révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY] = HintText(CustomMessage("They say that an #calling the sun a dead end# within the well reveals #[[1]]#.",
|
||||
hintTextTable[RHT_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun in a dead end# within the well reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Anrufen der Sonne in einer Sackgasse# innerhalb des Brunnens #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #appeler le soleil dans une impasse# à l’intérieur du puits révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1804,7 +1804,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß etwas #Gras auf dem Grund des Brunnens# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, de l'#herbe dans le Puits# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_BOTW_BOULDER] = HintText(CustomMessage("They say that a #boulder in Bottom of the Well# contains #[[1]]#.",
|
||||
hintTextTable[RHT_BOTW_BOULDER] = HintText(CustomMessage("They say that a #boulder in the Bottom of the Well# contains #[[1]]#.",
|
||||
/*german*/ TODO_TRANSLATE,
|
||||
/*french*/ TODO_TRANSLATE, {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -1885,11 +1885,11 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, une #Skulltula figée dans la glace rouge# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, una #Skulltula tras un ardiente hielo# otorga #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_POT_ICE_CAVERN] = HintText(CustomMessage("They say that a #pot in Ice Cavern# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_ICE_CAVERN] = HintText(CustomMessage("They say that a #pot in the Ice Cavern# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug in der Eishöhle# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans la Caverne Polaire# contient #[[1]]#.", { QM_RED, QM_GREEN }));
|
||||
|
||||
hintTextTable[RHT_ICE_CAVERN_HEART] = HintText(CustomMessage("They say that atop on a #frozen pillar# lies #[[1]]#.",
|
||||
hintTextTable[RHT_ICE_CAVERN_HEART] = HintText(CustomMessage("They say that atop a #frozen pillar# lies #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß auf einer #gefrorenen Säule# #[[1]]# |läge|lägen|.",
|
||||
/*french*/ "Selon moi, le dessus d'un #pilier de glace# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -2092,23 +2092,23 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*french*/ "Selon moi, #derrière un bloc argent# dans le Gymnase Gerudo gît #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, una #hazaña de fuerza# premia a las bandidas con #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_GERUDO_TRAINING_GROUNDS_HEART] = HintText(CustomMessage("They say that a watching a #trial with Dinolfos# is #[[1]]#.",
|
||||
hintTextTable[RHT_GERUDO_TRAINING_GROUNDS_HEART] = HintText(CustomMessage("They say that watching a #trial with Dinolfos# reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß einer #Prüfung mit Dinodorus# zuzuschauen #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, dans #une épreuve avec un Dinolfos# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_CRATE_GERUDO_TRAINING_GROUND] = HintText(CustomMessage("They say that a #crate in Gerudo Training Ground# contains #[[1]]#.",
|
||||
hintTextTable[RHT_CRATE_GERUDO_TRAINING_GROUND] = HintText(CustomMessage("They say that a #crate in the Gerudo Training Ground# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine #Kiste in der Gerudo-Trainingsarena# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans le Gymnase Gerudo# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_WONDER_ITEM_GERUDO_TRAINING_GROUND] = HintText(CustomMessage("They say that a #wonder item in Gerudo Training Ground# hides #[[1]]#.",
|
||||
hintTextTable[RHT_WONDER_ITEM_GERUDO_TRAINING_GROUND] = HintText(CustomMessage("They say that a #wonder item in the Gerudo Training Ground# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand in der Gerudo-Trainingsarena# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux dans le Gymnase Gerudo# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_GERUDO_TRAINING_GROUND_ICICLE] = HintText(CustomMessage("They say that #breaking an icicle in in Gerudo Training Ground# reveals #[[1]]#.",
|
||||
hintTextTable[RHT_GERUDO_TRAINING_GROUND_ICICLE] = HintText(CustomMessage("They say that #breaking an icicle in the Gerudo Training Ground# reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Zerschlagen eines Eiszapfens in der Gerudo-Trainingsarena# #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #briser un stalactite de glace dans le Gymnase Gerudo# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_GERUDO_TRAINING_GROUND_RED_ICE] = HintText(CustomMessage("They say that #melting red ice in Gerudo Training Ground# gives #[[1]]#.",
|
||||
hintTextTable[RHT_GERUDO_TRAINING_GROUND_RED_ICE] = HintText(CustomMessage("They say that #melting red ice in the Gerudo Training Ground# gives #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Schmelzen von rotem Eis in der Gerudo-Trainingsarena# #[[1]]# gäbe.",
|
||||
/*french*/ "Selon moi, #faire fondre la glace rouge dans le Gymnase Gerudo# donne #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -2329,7 +2329,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
/*german*/ "Man erzählt sich, daß das #Zerschlagen eines Eiszapfens Ganons Schloß# #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #briser un stalactite de glace dans le Château de Ganon# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_GANONS_CASTLE_RED_ICE] = HintText(CustomMessage("They say that #melting red ice in a Ganon's Castle# gives #[[1]]#.",
|
||||
hintTextTable[RHT_GANONS_CASTLE_RED_ICE] = HintText(CustomMessage("They say that #melting red ice in Ganon's Castle# gives #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Schmelzen von rotem Eis in Ganons Schloß# #[[1]]# gäbe.",
|
||||
/*french*/ "Selon moi, #faire fondre la glace rouge dans le Château de Ganon# donne #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// clang-format on
|
||||
|
||||
@@ -171,7 +171,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*french*/ "Selon moi, la #grotte dans le labyrinthe sylvestre# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, bajo un #hoyo de un laberinto forestal# yace #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_DMT_STORMS_GROTTO_CHEST] = HintText(CustomMessage("They say that #hole flooded with rain on a mountain# holds #[[1]]#.",
|
||||
hintTextTable[RHT_DMT_STORMS_GROTTO_CHEST] = HintText(CustomMessage("They say that a #hole flooded with rain on a mountain# holds #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein #durch Regen geflutetes Erdloch eines Berges# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, la #grotte inondée de pluie sur la montagne# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, bajo un #hoyo de una montaña inundado de lluvia# yace #[[1]]#.
|
||||
@@ -294,7 +294,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*german*/ "Man erzählt sich, daß das #Fischen im Teich# #[[1]]# enthülle.",
|
||||
/*french*/ "Selon moi, #aller à l'étang# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_LH_HYRULE_LOACH] = HintText(CustomMessage("They say that #fishing the hyrule loach# will give you #[[1]]#.",
|
||||
hintTextTable[RHT_LH_HYRULE_LOACH] = HintText(CustomMessage("They say that #fishing the Hyrule Loach# will give you #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Fischen der hylianischen Forelle# #[[1]]# einbrächte.",
|
||||
/*french*/ "Selon moi, #pêcher le brochet Hylien# vous donnera #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/ Según dicen, si #pescas a la Locha de Hyrule# encontrarás #[[1]]#.
|
||||
@@ -350,7 +350,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*french*/ "Selon moi, les #amoureux canins# trouveront #[[1]]#.", {QM_RED, QM_GREEN})});
|
||||
// /*spanish*/ Según dicen, los #amantes caninos# encontrarán #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_LW_OCARINA_MEMORY_GAME] = HintText(CustomMessage("They say that #playing an Ocarina in Lost Woods# is rewarded with #[[1]]#.",
|
||||
hintTextTable[RHT_LW_OCARINA_MEMORY_GAME] = HintText(CustomMessage("They say that #playing an Ocarina in the Lost Woods# is rewarded with #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Spielen der Okarina in den verlorenen Wäldern# #[[1]]# gewähre.",
|
||||
/*french*/ "Selon moi, #jouer l'ocarina dans les Bois Perdus# donne #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/ Según dicen, #tocar la ocarina en el Bosque Perdido# otorga #[[1]]#.
|
||||
@@ -359,7 +359,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*german*/ "Man erzählt sich, daß der Preis für eine Partie #Simon sagt# #[[1]]# |sei|seien|.",
|
||||
/*french*/ "Selon moi, la #récompense de Jean Dit# est #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/ Según dicen, #repetir ciertas melodías# otorga #[[1]]#.
|
||||
CustomMessage("They say that a #child sing-a-long# holds #[[1]]#.",
|
||||
CustomMessage("They say that a #child sing-along# holds #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß die #jungen Flötisten# #[[1]]# besäßen.",
|
||||
/*french*/ "Selon moi, les #jeunes flûtistes# donnent #[[1]]#.", {QM_RED, QM_GREEN})});
|
||||
// /*spanish*/ Según dicen, #tocar junto a otros# otorga #[[1]]#.
|
||||
@@ -369,11 +369,11 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*french*/ "Selon moi, détruire #10 Skulltulas d'or# donne #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/ Según dicen, #exterminar 10 skulltulas doradas# revela #[[1]]#.
|
||||
{}, {
|
||||
CustomMessage("They say that #10 bug badges# rewards #[[1]]#.",
|
||||
CustomMessage("They say that #10 bug badges# reward #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß die Belohnung für #10 Insektenplaketten# #[[1]]# |sei|seien|.",
|
||||
/*french*/ "Selon moi, #10 écussons# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/ Según dicen, #10 medallas de insectos# otorgan #[[1]]#.
|
||||
CustomMessage("They say that #10 spider souls# yields #[[1]]#.",
|
||||
CustomMessage("They say that #10 spider souls# yield #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß #10 Spinnenseelen# #[[1]]# einbrächten.",
|
||||
/*french*/ "Selon moi, #10 âmes# donnent #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/ Según dicen, #10 almas de araña# otorgan #[[1]]#.
|
||||
@@ -547,7 +547,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*french*/ "Selon moi, #haut perché dans le moulin# gît #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, al #borde de un molino# yace #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH] = HintText(CustomMessage("They say that #dead Dampe's second# prize is #[[1]]#.",
|
||||
hintTextTable[RHT_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH] = HintText(CustomMessage("They say that #dead Dampé's second prize# is #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß der #zweite Preis des toten Boris# #[[1]]# |sei|seien|.",
|
||||
/*french*/ "Selon moi, la #deuxième course d'Igor# donne #[[1]]#.", {QM_RED, QM_GREEN}),
|
||||
// /*spanish*/ Según dicen, el segundo premio de #la carrera de Dampé# se trata de #[[1]]#.
|
||||
@@ -627,7 +627,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*french*/ "Selon moi, les #geôliers Gerudo# détiennent #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE update to match
|
||||
// /*spanish*/ Según dicen, #derrotar a las guardas Gerudo# revela #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_TH_DEAD_END_CARPENTER] = HintText(CustomMessage("They say that #defeating the Gerudo in a Dead End# reveals #[[1]]#.",
|
||||
hintTextTable[RHT_TH_DEAD_END_CARPENTER] = HintText(CustomMessage("They say that #defeating the Gerudo in a dead end# reveals #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß das #Besiegen der Gerudo-Wachen# #[[1]]# enthüllen würde.",//TODO_TRANSLATE update to match
|
||||
/*french*/ "Selon moi, les #geôliers Gerudo# détiennent #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE update to match
|
||||
// /*spanish*/ Según dicen, #derrotar a las guardas Gerudo# revela #[[1]]#.
|
||||
@@ -842,7 +842,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*french*/ "Selon moi, une #Skulltula sur le mur d'un centre de recherche# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, la noche revela una #Skulltula junto a un lago# que otorga #[[1]]#.
|
||||
|
||||
hintTextTable[RHT_LH_GS_LAB_CRATE] = HintText(CustomMessage("They say that a spider deed underwater in a #lab crate# holds #[[1]]#.",
|
||||
hintTextTable[RHT_LH_GS_LAB_CRATE] = HintText(CustomMessage("They say that a spider hidden underwater in a #lab crate# holds #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine Spinne in einer #Laborkiste# unter Wasser #[[1]]# besäße.",
|
||||
/*french*/ "Selon moi, une #Skulltula dans une boîte au fond d'une cuve d'eau# a #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/ Según dicen, una #Skulltula bajo la sumergida caja de un laboratorio# otorga #[[1]]#.
|
||||
@@ -1500,7 +1500,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*german*/ "Man erzählt sich, daß eine #Vase im Kokiri-Wald# #[[1]]# enthielte.", //TODO_TRANSLATE update to match
|
||||
/*french*/ "Selon moi, une #jarre dans la Fôret Kokiri# contient #[[1]]#.", {QM_RED, QM_GREEN})); //TODO_TRANSLATE update to match
|
||||
|
||||
hintTextTable[RHT_POT_KNOW_IT_ALL] = HintText(CustomMessage("They say that a #know-it-all bother's pot# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_KNOW_IT_ALL] = HintText(CustomMessage("They say that a #know-it-all brother's pot# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine #Vase im Kokiri-Wald# #[[1]]# enthielte.", //TODO_TRANSLATE update to match
|
||||
/*french*/ "Selon moi, une #jarre dans la Fôret Kokiri# contient #[[1]]#.", {QM_RED, QM_GREEN})); //TODO_TRANSLATE update to match
|
||||
|
||||
@@ -1512,11 +1512,11 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
|
||||
hintTextTable[RHT_TH_KITCHEN_POT_2] = HintText(CustomMessage("They say that a #Hideout's Kitchen pot# contains #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE
|
||||
|
||||
hintTextTable[RHT_TH_1_TORCH_CELL_RIGHT_POT] = HintText(CustomMessage("They say that the #thieve's right pot, watched by a single torch# contains #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE
|
||||
hintTextTable[RHT_TH_1_TORCH_CELL_RIGHT_POT] = HintText(CustomMessage("They say that the #thieves' right pot, watched by a single torch# contains #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE
|
||||
|
||||
hintTextTable[RHT_TH_1_TORCH_CELL_MID_POT] = HintText(CustomMessage("They say that the #thieve's middle pot, watched by a single torch# contains #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE
|
||||
hintTextTable[RHT_TH_1_TORCH_CELL_MID_POT] = HintText(CustomMessage("They say that the #thieves' middle pot, watched by a single torch# contains #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE
|
||||
|
||||
hintTextTable[RHT_TH_1_TORCH_CELL_LEFT_POT] = HintText(CustomMessage("They say that the #thieve's left pot, watched by a single torch# contains #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE
|
||||
hintTextTable[RHT_TH_1_TORCH_CELL_LEFT_POT] = HintText(CustomMessage("They say that the #thieves' left pot, watched by a single torch# contains #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE
|
||||
|
||||
hintTextTable[RHT_TH_STEEP_SLOPE_RIGHT_POT] = HintText(CustomMessage("They say that a #Gerudo pot, on the right of a sloped corner# contains #[[1]]#.", {QM_RED, QM_GREEN}));//TODO_TRANSLATE
|
||||
|
||||
@@ -1556,7 +1556,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug in Kakariko# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans le Village de Cocorico# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_POT_DAMPE] = HintText(CustomMessage("They say that a #pot in gravekeeper's tomb# contains #[[1]]#.",
|
||||
hintTextTable[RHT_POT_DAMPE] = HintText(CustomMessage("They say that a #pot in the gravekeeper's tomb# contains #[[1]]#.",
|
||||
//TODO_TRANSLATE check these to make sure they reference dampe's tomb not the graveyard area
|
||||
/*german*/ "Man erzählt sich, daß ein #Krug auf dem Friedhof# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #jarre dans le Cimetière# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
@@ -1625,7 +1625,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*german*/ "Man erzählt sich, daß innerhalb eines #Grabes eines leichtfüßigen Geistes# #[[1]]# |läge|lägen|.",
|
||||
/*french*/ "Selon moi, dans la #tombe d'un esprit à pieds rapides# se trouve #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/
|
||||
hintTextTable[RHT_GERUDO_VALLEY_GROTTO_RUPEE] = HintText(CustomMessage("They say that an Octarok in an #underground spring# guards #[[1]]#.",
|
||||
hintTextTable[RHT_GERUDO_VALLEY_GROTTO_RUPEE] = HintText(CustomMessage("They say that an Octorok in an #underground spring# guards #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß ein Oktorok in einer #untergründigen Quelle# #[[1]]# bewache.",
|
||||
/*french*/ "Selon moi, un Octrocher dans une #source souterraine# garde #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
// /*spanish*/
|
||||
@@ -2441,7 +2441,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand im Grab des Totengräbers# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux dans la tombe du fossoyeur# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_WONDER_ITEM_DEATH_MOUNTAIN_CRATER] = HintText(CustomMessage("They say that a #wonder item in Death Mountain's Crater# hides #[[1]]#.",
|
||||
hintTextTable[RHT_WONDER_ITEM_DEATH_MOUNTAIN_CRATER] = HintText(CustomMessage("They say that a #wonder item in Death Mountain Crater# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand im Todeskrater# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux sur le Mont du Péril# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -2461,7 +2461,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand in der Gerudo-Festung# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux dans la Forteresse Gerudo# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_WONDER_ITEM_THIEVES_HIDEOUT] = HintText(CustomMessage("They say that a #wonder item in Thieve's Hideout# hides #[[1]]#.",
|
||||
hintTextTable[RHT_WONDER_ITEM_THIEVES_HIDEOUT] = HintText(CustomMessage("They say that a #wonder item in Thieves' Hideout# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand im Versteck der Diebe# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, un #objet merveilleux dans a Cachette des Voleurs# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
|
||||
@@ -136,8 +136,7 @@ void BuildTriforceMessage(CustomMessage& msg) {
|
||||
|
||||
void BuildCustomItemMessage(Player* player, CustomMessage& msg) {
|
||||
int16_t rgid;
|
||||
msg = CustomMessage("You found [[article]][[color]][[name]]%w!",
|
||||
"Du erhältst [[article]][[color]][[name]]%w gefunden!",
|
||||
msg = CustomMessage("You found [[article]][[color]][[name]]%w!", "Du hast [[article]][[color]][[name]]%w gefunden!",
|
||||
"Vous avez trouvé [[article]][[color]][[name]]%w!", TEXTBOX_TYPE_BLUE);
|
||||
if (player->getItemEntry.objectId != OBJECT_INVALID) {
|
||||
rgid = player->getItemEntry.getItemId;
|
||||
@@ -243,7 +242,7 @@ void BuildMapMessage(uint16_t* textId, bool* loadFromMessageTable) {
|
||||
auto ctx = OTRGlobals::Instance->gRandoContext;
|
||||
CustomMessage msg =
|
||||
CustomMessage("You found the %g[[name]]%w! [[typeHint]]", "Du erhältst das %g[[name]]%w! [[typeHint]]",
|
||||
"Vous ebtenez %g[[name]]%w! [[typeHint]]", TEXTBOX_TYPE_BLUE);
|
||||
"Vous obtenez %g[[name]]%w! [[typeHint]]", TEXTBOX_TYPE_BLUE);
|
||||
int sceneNum = -1;
|
||||
switch (itemEntry.getItemId) {
|
||||
case RG_DEKU_TREE_MAP:
|
||||
|
||||
@@ -128,8 +128,8 @@ void BuildCarpetGuyMessage(uint16_t* textId, bool* loadFromMessageTable) {
|
||||
|
||||
void BuildCarpetGuyFailToBuyMessage(uint16_t* textId, bool* loadFromMessageTable) {
|
||||
CustomMessage msg =
|
||||
CustomMessage("I'm sorry I can't sell you these fine specimens, they need an %rexperienced owner%w.^"
|
||||
"Come back when you have had %gBombchus%w of your own.");
|
||||
CustomMessage("I'm sorry, I can't sell you these fine specimens. They need an %rexperienced owner%w.^"
|
||||
"Come back when you have %gBombchus%w of your own.");
|
||||
msg.AutoFormat();
|
||||
msg.LoadIntoFont();
|
||||
*loadFromMessageTable = false;
|
||||
|
||||
@@ -140,7 +140,7 @@ void BuildSkulltulaPeopleMessage(uint16_t* textId, bool* loadFromMessageTable) {
|
||||
}
|
||||
Rando::Item& item = Rando::StaticData::RetrieveItem(RAND_GET_ITEM_LOC(rc)->GetPlacedRandomizerGet());
|
||||
CustomMessage msg = CustomMessage("Yeaaarrgh! I'm cursed!!^Please save me by destroying %y[[d]] Spiders of the "
|
||||
"Curse%w and I will give you my [[color]][[1]]%w!",
|
||||
"Curse%w and I will give you [[color]][[1]]%w!",
|
||||
/*german*/
|
||||
"Yeaaarrgh! Ich bin verflucht!^Bitte rette mich, indem Du %y[[d]] Skulltulas%w "
|
||||
"zerstörst und ich werde Dir dafür [[color]][[1]]%w geben!",
|
||||
@@ -157,7 +157,7 @@ void BuildSkulltulaPeopleMessage(uint16_t* textId, bool* loadFromMessageTable) {
|
||||
|
||||
void Build100SkullsHintMessage(uint16_t* textId, bool* loadFromMessageTable) {
|
||||
CustomMessage msg = CustomMessage("Yeaaarrgh! I'm cursed!!^Please save me by destroying %y100 Spiders of the "
|
||||
"Curse%w and I will give you my [[color]][[1]]%w!",
|
||||
"Curse%w and I will give you [[color]][[1]]%w!",
|
||||
/*german*/
|
||||
"Yeaaarrgh! Ich bin verflucht!^Bitte rette mich, indem Du %y100 Skulltulas%w "
|
||||
"zerstörst und ich werde Dir dafür [[color]][[1]]%w geben!",
|
||||
|
||||
@@ -1118,7 +1118,7 @@ static void InitTrickNames() {
|
||||
// TODO_TRANSALTE
|
||||
{ Text{ "Fortress of Winds Small Key", "Fortress of Winds Small Key", "Fortress of Winds Small Key" },
|
||||
Text{ "a ", "une ", "einen " } },
|
||||
{ Text{ "Thieve's Town Small Key", "Thieve's Town Small Key", "Thieve's Town Small Key" },
|
||||
{ Text{ "Thieves' Town Small Key", "Thieves' Town Small Key", "Thieves' Town Small Key" },
|
||||
Text{ "a ", "une ", "einen " } },
|
||||
{ Text{ "Fortress Centrum Small Key", "Fortress Centrum Small Key", "Fortress Centrum Small Key" },
|
||||
Text{ "a ", "une ", "einen " } },
|
||||
@@ -1216,7 +1216,7 @@ static void InitTrickNames() {
|
||||
// TODO_TRANSALTE
|
||||
{ Text{ "Fortress of Winds Key Ring", "Fortress of Winds Key Ring", "Fortress of Winds Key Ring" },
|
||||
Text{ "the ", "le ", "den " } },
|
||||
{ Text{ "Thieve's Town Key Ring", "Thieve's Town Key Ring", "Thieve's Town Key Ring" },
|
||||
{ Text{ "Thieves' Town Key Ring", "Thieves' Town Key Ring", "Thieves' Town Key Ring" },
|
||||
Text{ "the ", "le ", "den " } },
|
||||
{ Text{ "Fortress Centrum Key Ring", "Fortress Centrum Key Ring", "Fortress Centrum Key Ring" },
|
||||
Text{ "the ", "le ", "den " } },
|
||||
|
||||
@@ -200,9 +200,9 @@ bool Randomizer_GetOverworldFishShuffled();
|
||||
bool Randomizer_IsAdultPond();
|
||||
/// Custom shadow draw function to add effect to uncollected fish
|
||||
void Fishsanity_DrawEffShadow(Actor* actor, Lights* lights, PlayState* play);
|
||||
/// Overriden actor draw function for bottleable fish
|
||||
/// Overridden actor draw function for bottleable fish
|
||||
void Fishsanity_DrawEnFish(struct Actor* actor, struct PlayState* play);
|
||||
/// Overriden actor draw function for the fishing pond
|
||||
/// Overridden actor draw function for the fishing pond
|
||||
void Fishsanity_DrawFishing(struct Actor* actor, struct PlayState* play);
|
||||
void Fishsanity_OpenGreyscaleColor(PlayState* play, Color_RGB8* color, int16_t frameOffset);
|
||||
void Fishsanity_CloseGreyscaleColor(PlayState* play);
|
||||
|
||||
@@ -9,7 +9,7 @@ void RegionTable_Init_BottomOfTheWell() {
|
||||
// Vanilla/MQ Decider
|
||||
areaTable[RR_BOTW_ENTRYWAY] = Region("Bottom of the Well Entryway", SCENE_BOTTOM_OF_THE_WELL, {}, {}, {
|
||||
//Exits
|
||||
//Technically involves an fake wall, but passing it lensless is intended in vanilla and it is well telegraphed
|
||||
//Technically involves a fake wall, but passing it lensless is intended in vanilla and it is well telegraphed
|
||||
//Backshot should be implemented here, or new regions should be added
|
||||
ENTRANCE(RR_BOTW_CORRIDOR, ctx->GetDungeon(Rando::BOTTOM_OF_THE_WELL)->IsVanilla() && logic->CanUse(RG_CRAWL)),
|
||||
ENTRANCE(RR_BOTW_MQ_PERIMETER, ctx->GetDungeon(Rando::BOTTOM_OF_THE_WELL)->IsMQ() && logic->CanUse(RG_CRAWL)),
|
||||
@@ -57,7 +57,7 @@ void RegionTable_Init_BottomOfTheWell() {
|
||||
ENTRANCE(RR_BOTW_B3_BLOCKED_GRASS, ctx->GetTrickOption(RT_LENS_BOTW) || logic->CanUse(RG_LENS_OF_TRUTH)),
|
||||
});
|
||||
|
||||
//This region combines the Middle with the perimeter's hidden areas. If a warp puts link into the middle without crossing the perimeter or using lens, it will need it's own region
|
||||
//This region combines the Middle with the perimeter's hidden areas. If a warp puts Link into the middle without crossing the perimeter or using lens, it will need it's own region
|
||||
areaTable[RR_BOTW_MIDDLE] = Region("Bottom of the Well Middle", SCENE_BOTTOM_OF_THE_WELL, {}, {
|
||||
//Locations
|
||||
//You can just barely pass the spider on the right side without damage or items, but it's probably tight enough to count as as a trick
|
||||
|
||||
@@ -443,7 +443,7 @@ void RegionTable_Init_DekuTree() {
|
||||
//Exits
|
||||
ENTRANCE(RR_DEKU_TREE_MQ_BASEMENT_LEDGE, logic->CanUse(RG_CRAWL) && AnyAgeTime([]{return logic->HasFireSourceWithTorch() || logic->CanUse(RG_FAIRY_BOW);})),
|
||||
ENTRANCE(RR_DEKU_TREE_MQ_BASEMENT_SOUTHWEST_ROOM, true),
|
||||
//Using a bow to get past here as adult is a bit precise on standing position but simple, doing as as child requires a side-hop with the bow out to shoot through the torch and may be trick worthy
|
||||
//Using a bow to get past here as adult is a bit precise on standing position but simple, doing so as child requires a side-hop with the bow out to shoot through the torch and may be trick worthy
|
||||
ENTRANCE(RR_DEKU_TREE_MQ_BASEMENT_BACK_ROOM, AnyAgeTime([]{return logic->HasFireSourceWithTorch() || logic->CanUse(RG_FAIRY_BOW);})),
|
||||
});
|
||||
|
||||
|
||||
@@ -392,7 +392,7 @@ void RegionTable_Init_DodongosCavern() {
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_STAIRCASE_UPPER_CRATE_3, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_STAIRCASE_UPPER_CRATE_4, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LOWER_2F_CRATE_SILVER, logic->CanBreakCrates() || (ctx->GetTrickOption(RT_VISIBLE_COLLISION) && (logic->IsChild || logic->CanUse(RG_HOOKSHOT)))),
|
||||
// possible with the hookshot method and longshot, but precise and would be it's own trick
|
||||
// possible with the hookshot method and longshot, but precise and would be its own trick
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_UPPER_2F_CRATE_SILVER, logic->CanBreakCrates() || (ctx->GetTrickOption(RT_VISIBLE_COLLISION) && logic->IsChild)),
|
||||
}, {
|
||||
//Exits
|
||||
|
||||
@@ -1030,7 +1030,7 @@ void RegionTable_Init_FireTemple() {
|
||||
}, {
|
||||
//Exits
|
||||
//The dropdown here is unusual in that it hits 1 of 3 locations: RR_FIRE_TEMPLE_MQ_2_FIRE_WALLS_LOWER, RR_FIRE_TEMPLE_MQ_2_FIRE_WALLS_UPPER_DOOR, and RR_FIRE_TEMPLE_MQ_2_FIRE_WALLS_SWITCH
|
||||
//Using this dropdown is in N64 logic elsewhere, but not here, probably because it requires good foreknowlege to determine where to land
|
||||
//Using this dropdown is in N64 logic elsewhere, but not here, probably because it requires good foreknowledge to determine where to land
|
||||
ENTRANCE(RR_FIRE_TEMPLE_MQ_2_FIRE_WALLS_LOWER, logic->TakeDamage()),
|
||||
ENTRANCE(RR_FIRE_TEMPLE_MQ_2_FIRE_WALLS_UPPER_DOOR, logic->TakeDamage()),
|
||||
ENTRANCE(RR_FIRE_TEMPLE_MQ_2_FIRE_WALLS_SWITCH, logic->TakeDamage()),
|
||||
|
||||
@@ -664,7 +664,7 @@ void RegionTable_Init_ShadowTemple() {
|
||||
ENTRANCE(RR_SHADOW_TEMPLE_MQ_STONE_UMBRELLA_ROOM, true),
|
||||
});
|
||||
|
||||
//For this room, logic assumes you can either take damage, wear passive spike resistence (Goron tunic or hovers) or see the spikes to navigate across the floor
|
||||
//For this room, logic assumes you can either take damage, wear passive spike resistance (Goron tunic or hovers) or see the spikes to navigate across the floor
|
||||
//As this only matters with 1 heart/OHKO logic, which is already a trick-level setting, using Hook and Longshot to reach rupees without moving is allowed
|
||||
areaTable[RR_SHADOW_TEMPLE_MQ_FLOOR_SPIKES_S_DOOR] = Region("Shadow Temple MQ Floor Spikes South Door", SCENE_SHADOW_TEMPLE, {}, {
|
||||
//Locations
|
||||
@@ -817,7 +817,7 @@ void RegionTable_Init_ShadowTemple() {
|
||||
//Locations
|
||||
LOCATION(RC_SHADOW_TEMPLE_MQ_AFTER_WIND_ENEMY_CHEST, logic->CanKillEnemy(RE_GIBDO) && logic->HasItem(RG_OPEN_CHEST)),
|
||||
LOCATION(RC_SHADOW_TEMPLE_MQ_AFTER_WIND_HIDDEN_CHEST, logic->HasExplosives() && (ctx->GetTrickOption(RT_LENS_SHADOW_MQ) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->HasItem(RG_OPEN_CHEST)),
|
||||
//The various methods for this can be a bit specific, might be worthy of it's own trick when it becomes relevant with dungeon shortcut settings.
|
||||
//The various methods for this can be a bit specific, might be worthy of its own trick when it becomes relevant with dungeon shortcut settings.
|
||||
LOCATION(RC_SHADOW_TEMPLE_MQ_GS_AFTER_WIND, logic->HasExplosives() || (ctx->GetTrickOption(RT_VISIBLE_COLLISION) && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA))),
|
||||
LOCATION(RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1, logic->CanBreakPots()),
|
||||
LOCATION(RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2, logic->CanBreakPots()),
|
||||
|
||||
@@ -1067,7 +1067,7 @@ bool Logic::CanKillEnemy(RandomizerEnemy enemy, EnemyDistance distance, bool wal
|
||||
case RE_BEAMOS:
|
||||
return HasExplosives();
|
||||
case RE_PURPLE_LEEVER:
|
||||
// dies on it's own, so this is the conditions to spawn it (killing 10 normal leevers)
|
||||
// dies on its own, so this is the conditions to spawn it (killing 10 normal leevers)
|
||||
// Sticks and Ice arrows work but will need ammo capacity logic
|
||||
// other methods can damage them but not kill them, and they run when hit, making them impractical
|
||||
return CanUse(RG_MASTER_SWORD) || CanUse(RG_BIGGORON_SWORD);
|
||||
@@ -1324,7 +1324,7 @@ bool Logic::WaterRisingTargetTo3FCentral() {
|
||||
HasExplosives() && CanUse(RG_HOVER_BOOTS));
|
||||
}
|
||||
|
||||
/* Water level has 7 events that govern it's logic.
|
||||
/* Water level has 7 events that govern its logic.
|
||||
* LOGIC_WATER_LOW, LOGIC_WATER_MIDDLE say that the player for sure can set the water to this level
|
||||
* the COULD varients of these 2, as well as LOGIC_WATER_HIGH instead check for if using those emblems would be possible
|
||||
* if the player had a specific water level and ZL
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace Rando {
|
||||
void Settings::CreateOptionDescriptions() {
|
||||
mOptionDescriptions[RSK_FOREST] =
|
||||
"Determines if Kokiri forest can be left for the Lost Woods bridge or the Deku Tree.\n"
|
||||
"Determines if Kokiri Forest can be left for the Lost Woods bridge or the Deku Tree.\n"
|
||||
"\n"
|
||||
"On - Kokiri Sword & Deku Shield are required to access "
|
||||
"the Deku Tree, and completing the Deku Tree is required to "
|
||||
@@ -71,7 +71,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Stones or medallions.\n"
|
||||
"\n"
|
||||
"Dungeons - Complete the specified amount of dungeons. Dungeons "
|
||||
"are considered complete after stepping in to the blue warp after "
|
||||
"are considered complete after stepping into the blue warp after "
|
||||
"the boss.\n"
|
||||
"\n"
|
||||
"Tokens - Obtain the specified amount of Skulltula tokens.\n"
|
||||
@@ -83,7 +83,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"\n"
|
||||
"Greg as Reward - Greg does change logic (can be part of expected path for opening "
|
||||
"bridge), Greg helps open bridge, max number of rewards on slider increases by 1 to "
|
||||
"account for Greg. \n"
|
||||
"account for Greg.\n"
|
||||
"\n"
|
||||
"Greg as Wildcard - Greg does not change logic, Greg helps open the bridge, max number of "
|
||||
"rewards on slider does not change.";
|
||||
@@ -116,16 +116,16 @@ void Settings::CreateOptionDescriptions() {
|
||||
"\n"
|
||||
"If Master Quest Dungeons is set to Set Number or Random, the dungeons chosen "
|
||||
"to be Master Quest here will count towards that total. Any Dungeons set to Vanilla "
|
||||
"here will be guaranteed to be Vanilla. If Set Number is higher than the amount of dungeons "
|
||||
"here will be guaranteed to be Vanilla. If Set Number is higher than the number of dungeons "
|
||||
"set to either MQ or Random here, you will have fewer MQ Dungeons than the number you "
|
||||
"set.";
|
||||
mOptionDescriptions[RSK_TRIFORCE_HUNT_PIECES_TOTAL] =
|
||||
"The amount of Triforce pieces that will be placed in the world. Set to 0 to disable Triforce Hunt.\n"
|
||||
"The number of Triforce pieces that will be placed in the world. Set to 0 to disable Triforce Hunt.\n"
|
||||
"\n"
|
||||
"Triforce Pieces can be used as a requirement for the Rainbow Bridge, Ganon's Boss Key, Ganon's Soul, or the "
|
||||
"win condition. Keep in mind seed generation can fail if more pieces are placed than there are junk items in "
|
||||
"the item pool.";
|
||||
mOptionDescriptions[RSK_WINCON_TRIFORCE_COUNT] = "The amount of Triforce pieces required to win the game.";
|
||||
mOptionDescriptions[RSK_WINCON_TRIFORCE_COUNT] = "The number of Triforce pieces required to win the game.";
|
||||
mOptionDescriptions[RSK_TRIFORCE_HUNT_PIECES_LOCATION] =
|
||||
"Any dungeon - Triforce pieces can only appear inside of any dungeon.\n"
|
||||
"\n"
|
||||
@@ -172,7 +172,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Shuffle the pool of entrances between Gerudo Fortress & Thieves' Hideout.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_GROTTO_ENTRANCES] =
|
||||
"Shuffle the pool of grotto entrances, including all graves, small Fairy fountains and the Deku Theatre.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_OWL_DROPS] = "Randomize where Kaepora Gaebora (the Owl) drops you at when you talk "
|
||||
mOptionDescriptions[RSK_SHUFFLE_OWL_DROPS] = "Randomize where Kaepora Gaebora (the Owl) drops you when you talk "
|
||||
"to him at Lake Hylia or at the top of Death Mountain Trail.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_WARP_SONGS] = "Randomize where each of the 6 warp songs leads to.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_OVERWORLD_SPAWNS] =
|
||||
@@ -182,7 +182,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"This stays consistent after saving and loading the game again.\n"
|
||||
"\n"
|
||||
"Keep in mind you may need to temporarily disable the \"Remember Save Location\" time saver to "
|
||||
"be able use the spawn positions, especially if they are the only logical way to get to certain areas.";
|
||||
"be able to use the spawn positions, especially if they are the only logical way to get to certain areas.";
|
||||
mOptionDescriptions[RSK_DECOUPLED_ENTRANCES] =
|
||||
"Decouple entrances when shuffling them. This means you are no longer guaranteed "
|
||||
"to end up back where you came from when you go back through an entrance.\n"
|
||||
@@ -260,13 +260,13 @@ void Settings::CreateOptionDescriptions() {
|
||||
"The ability to swim has to be found as an item (you can still be underwater with iron boots).\n"
|
||||
"\n"
|
||||
"If you enter a water entrance without swim you will be respawned on land to prevent infinite death loops.\n"
|
||||
"If you void out in Water Temple you will immediately be kicked out to prevent a softlock.";
|
||||
"If you void out in the Water Temple you will immediately be kicked out to prevent a softlock.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_GRAB] =
|
||||
"Shuffle the ability to grab as a progressive upgrade before Goron Bracelet.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_CLIMB] = "Shuffle the ability to climb ladders into the item pool.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_CRAWL] = "Shuffles the ability to use crawlspaces into the item pool.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_SPEAK] =
|
||||
"Shuffle ability to speak to NPCs. 6 jabbernuts will be shuffled:\nDeku, Gerudo, Goron, Hylian, Kokiri, "
|
||||
"Shuffle the ability to speak to NPCs. 6 jabbernuts will be shuffled:\nDeku, Gerudo, Goron, Hylian, Kokiri, "
|
||||
"Zora\nKaepora Gaebora speaks any language.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_OPEN_CHEST] =
|
||||
"Shuffles the ability to open chests into the item pool.\n"
|
||||
@@ -277,15 +277,16 @@ void Settings::CreateOptionDescriptions() {
|
||||
"\n"
|
||||
"Shuffled: shuffles Weird Egg into item pool.\n"
|
||||
"\n"
|
||||
"Skip Waking Talon: Talon already woken and back at Lon Lon Ranch with Malon.";
|
||||
"Skip Waking Talon: Talon is already awake and back at Lon Lon Ranch with Malon.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_ZELDAS_LETTER] =
|
||||
"Shuffles Zelda's Letter into the item pool, meeting Zelda gives a random item instead.\n"
|
||||
"Shuffles Zelda's Letter into the item pool; meeting Zelda gives a random item instead.\n"
|
||||
"\n"
|
||||
"Required to open Kakariko gate and Happy Mask Shop. Starting with letter starts with gate opened.\n"
|
||||
"Required to open the Kakariko gate and Happy Mask Shop. Starting with the letter starts with the gate "
|
||||
"opened.\n"
|
||||
"\n"
|
||||
"Meeting Zelda still triggers Saria at Sacred Forest Meadow.\n"
|
||||
"\n"
|
||||
"When disabled, \"Start with Zelda's Letter\" skips child Zelda: you also get item Impa would give.";
|
||||
"When disabled, \"Start with Zelda's Letter\" skips child Zelda: you also get the item Impa would give.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD] =
|
||||
"Shuffles the Gerudo Membership Card into the item pool.\n"
|
||||
"\n"
|
||||
@@ -295,7 +296,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Pots will drop a randomized item the first time they're broken and collected. This does not include the "
|
||||
"flying pots."
|
||||
" Pots will have a different appearance when they hold a randomized item.\n"
|
||||
"With this option enabled, Ganon's boss key door is moved further up the stairs to\n"
|
||||
"With this option enabled, Ganon's Boss Key door is moved further up the stairs to\n"
|
||||
"allow access to the pots before obtaining Ganon's Boss Key.\n"
|
||||
"\n"
|
||||
"Off - Pots will not be shuffled.\n"
|
||||
@@ -320,11 +321,11 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Trees will contain randomized items which are dropped the first time the player rolls into one.\n"
|
||||
"Trees will have a special appearance when carrying randomized items.\n"
|
||||
"\nSome trees are dependent on Link's age, such as some trees in Hyrule Field.\nTwo trees at Hyrule Castle are "
|
||||
"only shuffle with No Logic.";
|
||||
"only shuffled with No Logic.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_BUSHES] =
|
||||
"Bushes in Hyrule Field & Zora's Fountain will contain randomized items when first walked through.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_ICICLES] =
|
||||
"Stalagmites and stalactites in Ice Cavern and Ganon's Castle will contain randomized items when broken.\n"
|
||||
"Stalagmites and stalactites in the Ice Cavern and Ganon's Castle will contain randomized items when broken.\n"
|
||||
"Icicles will have a halo around them when carrying randomized items.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_RED_ICE] =
|
||||
"Red Ice will give randomized items when melted.\n"
|
||||
@@ -435,7 +436,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Note that, as child, there is a second loach available in the pond!";
|
||||
mOptionDescriptions[RSK_SHUFFLE_SCRUBS] =
|
||||
"Off - Scrubs will not be shuffled. The 3 Scrubs that give one-time items in the "
|
||||
"vanilla game (PoH, Deku Nut capacity, and Deku Stick capacity) will not spawn."
|
||||
"vanilla game (PoH, Deku Nut capacity, and Deku Stick capacity) will not spawn.\n"
|
||||
"\n"
|
||||
"One-Time Only - Only the 3 Scrubs that give one-time items in the "
|
||||
"vanilla game are shuffled.\n"
|
||||
@@ -476,12 +477,13 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Beans Only - Only the Bean Salesman will have a check, and a pack of Magic Beans will be added "
|
||||
"to the item pool.\n"
|
||||
"All But Beans - Medigoron, Granny and the Carpet Salesman will have checks, "
|
||||
"A Giant's Knife and a pack of Bombchus will be added to the item pool, and "
|
||||
"a Giant's Knife and a pack of Bombchus will be added to the item pool, and "
|
||||
"one of the bottles will contain a Blue Potion.\n"
|
||||
"All - Apply both effects.\n"
|
||||
"\n"
|
||||
"Granny's item will only be offered after you have traded in the Odd Mushroom when Shuffle Adult Trade is on. "
|
||||
"Otherwise when off, you will need to have found the Claim Check to buy her item (simulating the trade quest "
|
||||
"Otherwise when off, you will need to have found the Claim Check to buy her item (simulating that the trade "
|
||||
"quest "
|
||||
"is complete).";
|
||||
mOptionDescriptions[RSK_MERCHANT_PRICES] =
|
||||
"Vanilla - The same price as the Check in vanilla, 60 for the Bean Salesman.\n"
|
||||
@@ -509,10 +511,10 @@ void Settings::CreateOptionDescriptions() {
|
||||
"After choosing a price, set it to the affordable amount based on the wallet required.\n\n"
|
||||
"Affordable prices per tier: starter = 1, adult = 100, giant = 201, tycoon = 501\n\n"
|
||||
"Use this to enable wallet tier locking, but make merchant items not as expensive as they could be.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_FROG_SONG_RUPEES] = "Shuffles 5 Purple Rupees into to the item pool, and allows\n"
|
||||
mOptionDescriptions[RSK_SHUFFLE_FROG_SONG_RUPEES] = "Shuffles 5 Purple Rupees into the item pool, and allows\n"
|
||||
"you to earn items by playing songs at the Frog Choir.\n"
|
||||
"\n"
|
||||
"This setting does not effect the item earned from playing\n"
|
||||
"This setting does not affect the item earned from playing\n"
|
||||
"the Song of Storms and the frog song minigame.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_BEGGAR] =
|
||||
"Shuffle the rewards the Beggar gives for selling bugs, fish, and Blue Fire.\n"
|
||||
@@ -534,7 +536,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Six Chest Game Small Keys are added to the pool, or a single keyring holding all six "
|
||||
"if the Chest Minigame Keyring is selected under Keyrings.";
|
||||
mOptionDescriptions[RSK_EARLY_GRANNYS_SHOP] =
|
||||
"Makes Granny's Potion Shop available from start, rather than requiring Claim Check to be found first.\n"
|
||||
"Makes Granny's Potion Shop available from start, rather than requiring the Claim Check to be found first.\n"
|
||||
"\n"
|
||||
"This only applies when Shuffle Adult Trade is disabled. With Shuffle Adult "
|
||||
"Trade enabled, Granny still requires trading the Odd Mushroom as usual.";
|
||||
@@ -544,25 +546,25 @@ void Settings::CreateOptionDescriptions() {
|
||||
"\n"
|
||||
"You can still talk to him multiple times to get Huge Rupees.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_FREESTANDING] =
|
||||
"Freestanding rupees & hearts are shuffles to random items. "
|
||||
"Freestanding rupees & hearts are shuffled into random items. "
|
||||
"Freestanding heart pieces and small keys are already shuffled by default.\n"
|
||||
"\n"
|
||||
"Off - freestanding rupees & hearts will not be shuffled.\n"
|
||||
"\n"
|
||||
"Dungeons - Only freestanding rupees & hearts that are within dungeons.\n"
|
||||
"Dungeons - Only shuffle freestanding rupees & hearts that are within dungeons.\n"
|
||||
"\n"
|
||||
"Overworld - Only freestanding rupees & hearts that are outside of dungeons.\n"
|
||||
"Overworld - Only shuffle freestanding rupees & hearts that are outside of dungeons.\n"
|
||||
"\n"
|
||||
"All Items - Shuffle all freestanding rupees & hearts.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_SILVER] =
|
||||
"Silver rupees will be shuffled.\n"
|
||||
"Items will be added to pool which completes the silver rupee puzzles,\n"
|
||||
"Items will be added to the pool, which completes the silver rupee puzzles,\n"
|
||||
"while silver rupee locations will be random items.\n"
|
||||
"Off - silver rupees won't be shuffled."
|
||||
"Off - Silver rupees won't be shuffled.\n"
|
||||
"\n"
|
||||
"On - silver rupees will be individually spread out."
|
||||
"On - Silver rupees will be individually spread out.\n"
|
||||
"\n"
|
||||
"Wallet - silver rupees are shuffled as wallets, a single check to set flag for collecting them."
|
||||
"Wallet - Silver rupees are shuffled as wallets, a single check to set the flag for collecting them.\n"
|
||||
"\n"
|
||||
"Start With - Silver rupees are still replaced with items, but all silver rupee flags start set.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_FOUNTAIN_FAIRIES] =
|
||||
@@ -575,22 +577,21 @@ void Settings::CreateOptionDescriptions() {
|
||||
"\n"
|
||||
"This excludes gossip stones and magic bean locations.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_BUTTERFLY_FAIRIES] = "Shuffle fairies from butterfly locations.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_GRASS] =
|
||||
"Grass will drop a randomized item the first time they're cut and collected. "
|
||||
"Grass will have a different appearance when they hold a randomized item.\n"
|
||||
"\n"
|
||||
"Off - Grass will not be shuffled.\n"
|
||||
"\n"
|
||||
"Dungeons - Only shuffle grass that are within dungeons.\n"
|
||||
"\n"
|
||||
"Overworld - Only shuffle grass that are outside of dungeons.\n"
|
||||
"\n"
|
||||
"All Grass - Shuffle all grass.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_GRASS] = "Grass will drop a randomized item the first time it's cut and collected. "
|
||||
"Grass will have a different appearance when it holds a randomized item.\n"
|
||||
"\n"
|
||||
"Off - Grass will not be shuffled.\n"
|
||||
"\n"
|
||||
"Dungeons - Only shuffle grass that is within dungeons.\n"
|
||||
"\n"
|
||||
"Overworld - Only shuffle grass that is outside of dungeons.\n"
|
||||
"\n"
|
||||
"All Grass - Shuffle all grass.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_ROCKS] = "Shuffle rock locations.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_BOULDERS] = "Shuffle boulder locations.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_DUNGEON_REWARDS] =
|
||||
"Shuffles the location of Spiritual Stones and medallions.\n"
|
||||
"Vanilla - Spiritual Stones and medallions will be given from their respective boss.\n"
|
||||
"Vanilla - Spiritual Stones and medallions will be given by their respective boss.\n"
|
||||
"\n"
|
||||
"End of dungeons - Spiritual Stones and medallions will be given as rewards "
|
||||
"for beating major dungeons. Link will always start with one stone or medallion.\n"
|
||||
@@ -644,14 +645,15 @@ void Settings::CreateOptionDescriptions() {
|
||||
"The maximum amount of Keyrings that can be selected by Random or Count is 8, plus one if "
|
||||
"Gerudo Fortress Carpenters is set to Normal and Gerudo Fortress Keys is set to anything "
|
||||
"other than Vanilla, plus one if Shuffle Chest Minigame is on.";
|
||||
mOptionDescriptions[RSK_GERUDO_KEYS] = "Vanilla - Thieves' Hideout Keys will appear in their vanilla locations.\n"
|
||||
"\n"
|
||||
"Any dungeon - Thieves' Hideout Keys can only appear inside of any dungon.\n"
|
||||
"\n"
|
||||
"Overworld - Thieves' Hideout Keys can only appear outside of dungeons.\n"
|
||||
"\n"
|
||||
"Anywhere - Thieves' Hideout Keys can appear anywhere in the world.";
|
||||
mOptionDescriptions[RSK_BOSS_KEYSANITY] = "Start with - You will start with Boss keys from all dungeons.\n"
|
||||
mOptionDescriptions[RSK_GERUDO_KEYS] =
|
||||
"Vanilla - Thieves' Hideout Keys will appear in their vanilla locations.\n"
|
||||
"\n"
|
||||
"Any dungeon - Thieves' Hideout Keys can only appear inside of any dungeon.\n"
|
||||
"\n"
|
||||
"Overworld - Thieves' Hideout Keys can only appear outside of dungeons.\n"
|
||||
"\n"
|
||||
"Anywhere - Thieves' Hideout Keys can appear anywhere in the world.";
|
||||
mOptionDescriptions[RSK_BOSS_KEYSANITY] = "Start with - You will start with Boss Keys from all dungeons.\n"
|
||||
"\n"
|
||||
"Vanilla - Boss Keys will appear in their vanilla locations.\n"
|
||||
"\n"
|
||||
@@ -667,20 +669,20 @@ void Settings::CreateOptionDescriptions() {
|
||||
"\n"
|
||||
"Own dungeon - Ganon's Boss Key can appear anywhere inside Ganon's Castle.\n"
|
||||
"\n"
|
||||
"Start with - Places Ganon's Boss Key in your starting inventory."
|
||||
"Start with - Places Ganon's Boss Key in your starting inventory.\n"
|
||||
"\n"
|
||||
"Any dungeon - Ganon's Boss Key Key can only appear inside of any dungeon.\n"
|
||||
"Any dungeon - Ganon's Boss Key can only appear inside of any dungeon.\n"
|
||||
"\n"
|
||||
"Overworld - Ganon's Boss Key Key can only appear outside of dungeons.\n"
|
||||
"Overworld - Ganon's Boss Key can only appear outside of dungeons.\n"
|
||||
"\n"
|
||||
"Anywhere - Ganon's Boss Key Key can appear anywhere in the world.\n"
|
||||
"Anywhere - Ganon's Boss Key can appear anywhere in the world.\n"
|
||||
"\n"
|
||||
"Trigger - These settings put the boss key on a trigger, "
|
||||
"granting key once requirements met:\n"
|
||||
"granting the key once the requirements are met:\n"
|
||||
"- Stones: Obtain the specified amount of Spiritual Stones.\n"
|
||||
"- Medallions: Obtain the specified amount of medallions.\n"
|
||||
"- Dungeon rewards: Obtain the specified total sum of Spiritual Stones or medallions.\n"
|
||||
"- Dungeons: Complete the specified amount of dungeons. Dungeons are considered complete after stepping in to "
|
||||
"- Dungeons: Complete the specified amount of dungeons. Dungeons are considered complete after stepping into "
|
||||
"the blue warp after the boss.\n"
|
||||
"- Tokens: Obtain the specified amount of Skulltula tokens.";
|
||||
mOptionDescriptions[RSK_GBK_OPTIONS] =
|
||||
@@ -689,7 +691,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"\n"
|
||||
"Greg as Reward - Greg does change logic (can be part of expected path for obtaining "
|
||||
"GBK), Greg helps obtain GBK, max number of rewards on slider increases by 1 to "
|
||||
"account for Greg. \n"
|
||||
"account for Greg.\n"
|
||||
"\n"
|
||||
"Greg as Wildcard - Greg does not change logic, Greg helps obtain GBK, max number of "
|
||||
"rewards on slider does not change.";
|
||||
@@ -699,7 +701,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"\n"
|
||||
"Greg as Reward - Greg does change logic (can be part of expected path for obtaining "
|
||||
"Ganon's Soul), Greg helps obtain Ganon's Soul, max number of rewards on slider increases by 1 to "
|
||||
"account for Greg. \n"
|
||||
"account for Greg.\n"
|
||||
"\n"
|
||||
"Greg as Wildcard - Greg does not change logic, Greg helps obtain Ganon's Soul, max number of "
|
||||
"rewards on slider does not change.";
|
||||
@@ -713,13 +715,13 @@ void Settings::CreateOptionDescriptions() {
|
||||
"\n"
|
||||
"Completed - Once the Happy Mask Shop is opened, all masks will be available to be borrowed.\n"
|
||||
"\n"
|
||||
"Shuffle - Happy Mask Shop never opens, masks are shuffled with rest of items.";
|
||||
"Shuffle - Happy Mask Shop never opens, masks are shuffled with the rest of the items.";
|
||||
mOptionDescriptions[RSK_SKIP_SCARECROWS_SONG] =
|
||||
"Start with the ability to summon Pierre the Scarecrow. Pulling out an Ocarina in the usual locations will "
|
||||
"automatically summon him.\n"
|
||||
"With \"Shuffle Ocarina Buttons\" enabled, you'll need at least two Ocarina buttons to summon him.";
|
||||
mOptionDescriptions[RSK_SKIP_PLANTING_BEANS] = "Beans will be planted once you find beans.\n"
|
||||
"If bean souls are shuffled, you must find soul still.";
|
||||
"If bean souls are shuffled, you must still find the soul.";
|
||||
mOptionDescriptions[RSK_ITEM_POOL] = "Sets how many major items appear in the item pool.\n"
|
||||
"\n"
|
||||
"Plentiful - Extra major items are added to the pool.\n"
|
||||
@@ -732,11 +734,11 @@ void Settings::CreateOptionDescriptions() {
|
||||
mOptionDescriptions[RSK_BASE_ICE_TRAPS] =
|
||||
"Sets if ice traps that exist in vanilla are shuffled into the item pool.\n"
|
||||
"If this is on, 1 Trap will always be added to the pool,\n"
|
||||
"an additional trap will be added if Gerudo Training Grounds\n"
|
||||
"is NOT master quest,\n"
|
||||
"an additional trap will be added if the Gerudo Training Ground\n"
|
||||
"is NOT Master Quest,\n"
|
||||
"and 4 more will be added if Ganon's Castle is NOT Master Quest.";
|
||||
mOptionDescriptions[RSK_ADDITIONAL_ICE_TRAPS] =
|
||||
"Sets how many more Ice Traps will be added to item pool,\n"
|
||||
"Sets how many more Ice Traps will be added to the item pool,\n"
|
||||
"assuming there is enough space after placing Progression Items.\n\n"
|
||||
"You do not need to have base ice traps on for this setting to work.";
|
||||
mOptionDescriptions[RSK_ICE_TRAP_PERCENT] =
|
||||
@@ -778,12 +780,12 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Reading the Temple of Time altar as adult will tell you the locations of the medallions, as well as the "
|
||||
"conditions for building the Rainbow Bridge and getting the Boss Key for Ganon's Castle.";
|
||||
mOptionDescriptions[RSK_GANONDORF_HINT] =
|
||||
"Talking to Ganondorf in his boss room will tell you the location of the Light Arrows and Master Sword."
|
||||
"Talking to Ganondorf in his boss room will tell you the location of the Light Arrows and Master Sword. "
|
||||
"If this option is enabled and Ganondorf is reachable without these items, Gossip Stones will never hint the "
|
||||
"appropriate items."; // RANDOTODO make this hint text about no dupe hints a global hint for static hints. Add
|
||||
// to navi?
|
||||
mOptionDescriptions[RSK_SHEIK_LA_HINT] =
|
||||
"Talking to Sheik inside Ganon's Castle will tell you the location of the Light Arrows."
|
||||
"Talking to Sheik inside Ganon's Castle will tell you the location of the Light Arrows. "
|
||||
"If this option is enabled and Sheik is reachable without Light Arrows, Gossip Stones will never hint the "
|
||||
"Light Arrows.";
|
||||
mOptionDescriptions[RSK_DAMPES_DIARY_HINT] =
|
||||
@@ -791,8 +793,9 @@ void Settings::CreateOptionDescriptions() {
|
||||
mOptionDescriptions[RSK_GREG_HINT] =
|
||||
"Talking to the chest game owner after buying a key will tell you the location of Greg the Green Rupee.";
|
||||
mOptionDescriptions[RSK_LOACH_HINT] = "Talking to the fishing pond owner and asking to talk about something will "
|
||||
"tell you what's the reward for the Hyrule Loach.";
|
||||
mOptionDescriptions[RSK_BOSS_KEY_HINT] = "Navi will tell where boss key can be found when prompted at boss door.";
|
||||
"tell you the reward for the Hyrule Loach.";
|
||||
mOptionDescriptions[RSK_BOSS_KEY_HINT] =
|
||||
"Navi will tell you where the Boss Key can be found when prompted at a boss door.";
|
||||
mOptionDescriptions[RSK_SARIA_HINT] = "Talking to Saria either in person or through Saria's Song will tell you the "
|
||||
"location of a progressive magic meter.";
|
||||
mOptionDescriptions[RSK_MIDO_HINT] = "Talking to Mido as child will tell you the location of the Kokiri Sword.";
|
||||
@@ -811,7 +814,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
mOptionDescriptions[RSK_MALON_HINT] = "Talking to Malon as adult will tell you the item on \"Link's cow\", the cow "
|
||||
"you win from beating her time on the Lon Lon Obstacle Course.";
|
||||
mOptionDescriptions[RSK_HBA_HINT] =
|
||||
"Talking to the Horseback Archery gerudo in Gerudo Fortress, or the nearby sign, will tell you what you win "
|
||||
"Talking to the Horseback Archery Gerudo in Gerudo Fortress, or the nearby sign, will tell you what you win "
|
||||
"for scoring 1000 and 1500 points on Horseback Archery.";
|
||||
mOptionDescriptions[RSK_WARP_SONG_HINTS] = "Playing a warp song will tell you where it leads. (If warp song "
|
||||
"destinations are vanilla, this is always enabled.)";
|
||||
@@ -846,12 +849,12 @@ void Settings::CreateOptionDescriptions() {
|
||||
"usual 50.\n\n"
|
||||
"Bombchu Bowling is opened by obtaining the first Bombchu bag.";
|
||||
mOptionDescriptions[RSK_LINKS_POCKET] =
|
||||
"Dungeon Reward - Link will start with a Spiritual Stone or Medallion, and specific options will open up\n\n"
|
||||
"Dungeon Reward - Link will start with a Spiritual Stone or Medallion, and specific options will open up.\n\n"
|
||||
"Advancement - Link will start with a useful item.\n\n"
|
||||
"Anything - Link will start with a random item.\n\n"
|
||||
"Nothing - Link will not start with a bonus item.";
|
||||
mOptionDescriptions[RSK_LINKS_POCKET_REWARD] =
|
||||
"Any Reward - Link starts with a random Spiritual Stone or Medallion\n\n"
|
||||
"Any Reward - Link starts with a random Spiritual Stone or Medallion.\n\n"
|
||||
"Stone - Link starts with a random Spiritual Stone.\n\n"
|
||||
"Any Medallion - Link starts with a random Medallion.\n\n"
|
||||
"Light Medallion - Link starts with the Light Medallion.";
|
||||
@@ -870,7 +873,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Ice Arrows act like Blue Fire, making them able to melt red ice. "
|
||||
"Item placement logic will respect this option, so it might be required to use this to progress.";
|
||||
mOptionDescriptions[RSK_SKELETON_KEY] =
|
||||
"Adds a new item called the \"Skeleton Key\", it unlocks every dungeon door locked by a small key.";
|
||||
"Adds a new item called the \"Skeleton Key\"; it unlocks every dungeon door locked by a small key.";
|
||||
mOptionDescriptions[RSK_SUNLIGHT_ARROWS] =
|
||||
"Light Arrows can be used to light up the sun switches instead of using the Mirror Shield. "
|
||||
"Item placement logic will respect this option, so it might be required to use this to progress.";
|
||||
@@ -890,7 +893,7 @@ void Settings::CreateOptionDescriptions() {
|
||||
"required items and locations to beat the game "
|
||||
"will be guaranteed reachable.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_BEAN_SOULS] =
|
||||
"Shuffle 10 bean souls which must be found to spawn corresponding soil / plant.";
|
||||
"Shuffle 10 bean souls which must be found to spawn the corresponding soil/plant.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_BOSS_SOULS] =
|
||||
"Shuffles 8 boss souls (one for each blue warp dungeon). A boss will not appear until you collect its "
|
||||
"respective soul.";
|
||||
|
||||
@@ -575,7 +575,7 @@ void SortEntranceListByArea(EntranceOverride* entranceList, u8 byDest) {
|
||||
|
||||
if (curEntrance->reverseIndex == curOverride->index) {
|
||||
entranceList[idx] = tempList[j];
|
||||
// "Remove" this entrance from the tempList by setting it's values to zero
|
||||
// "Remove" this entrance from the tempList by setting its values to zero
|
||||
tempList[j] = emptyOverride;
|
||||
idx++;
|
||||
break;
|
||||
|
||||
@@ -237,7 +237,7 @@ struct WidgetPath {
|
||||
// is run once per frame to update its status (this is done to prevent dozens of redundant CVarGets in each frame loop)
|
||||
// `evaluation` returns a bool which can be determined by whatever code you want that changes its status
|
||||
// `reason` is the text displayed in the disabledTooltip when a widget is disabled by a particular DisableReason
|
||||
// `active` is what's referenced when determining disabled status for a widget that uses this This can also be used to
|
||||
// `active` is what's referenced when determining disabled status for a widget that uses this. This can also be used to
|
||||
// hold reasons to hide widgets so that their evaluations are also only run once per frame
|
||||
struct disabledInfo {
|
||||
DisableInfoFunc evaluation;
|
||||
|
||||
@@ -253,7 +253,7 @@ void ResolutionCustomWidget(WidgetInfo& info) {
|
||||
// Having this button should hopefully prevent support headaches.
|
||||
ImGui::TextColored(messageColor[MESSAGE_QUESTION], ICON_FA_QUESTION_CIRCLE
|
||||
" If the image is stretched and you don't know why, click this.");
|
||||
if (ImGui::Button("Click to reenable aspect correction.")) {
|
||||
if (ImGui::Button("Click to re-enable aspect correction.")) {
|
||||
CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IgnoreAspectCorrection", 0);
|
||||
Ship::Context::GetRawInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame();
|
||||
}
|
||||
|
||||
@@ -128,9 +128,10 @@ void SohMenu::AddMenuDevTools() {
|
||||
AddWidget(path, "Warping", WIDGET_SEPARATOR_TEXT);
|
||||
AddWidget(path, "Better Debug Warp Screen", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_DEVELOPER_TOOLS("BetterDebugWarpScreen"))
|
||||
.Options(CheckboxOptions()
|
||||
.Tooltip("Optimized Debug Warp Screen, with the added ability to chose entrances and time of day.")
|
||||
.DefaultValue(true));
|
||||
.Options(
|
||||
CheckboxOptions()
|
||||
.Tooltip("Optimized Debug Warp Screen, with the added ability to choose entrances and time of day.")
|
||||
.DefaultValue(true));
|
||||
AddWidget(path, "Debug Warp Screen Translation", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_DEVELOPER_TOOLS("DebugWarpScreenTranslation"))
|
||||
.Options(CheckboxOptions()
|
||||
|
||||
@@ -534,8 +534,8 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Exclude Glitch-Aiding Crawlspaces", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("GlitchAidingCrawlspaces"))
|
||||
.PreFunc([](WidgetInfo& info) { info.isHidden = CVarGetInteger(CVAR_ENHANCEMENT("CrawlSpeed"), 0) == 1; })
|
||||
.Options(CheckboxOptions().Tooltip("Don't increase crawl speed when exiting glitch-useful crawlspaces."
|
||||
"Currently it is only the BOTW crawlspace to locked door"));
|
||||
.Options(CheckboxOptions().Tooltip("Don't increase crawl speed when exiting glitch-useful crawlspaces.\n"
|
||||
"Currently it is only the BOTW crawlspace to a locked door."));
|
||||
AddWidget(path, "King Zora Speed: %.2fx", WIDGET_CVAR_SLIDER_FLOAT)
|
||||
.CVar(CVAR_ENHANCEMENT("MweepSpeed"))
|
||||
.Options(FloatSliderOptions().Min(0.1f).Max(5.0f).DefaultValue(1.0f).Format("%.2fx"));
|
||||
@@ -587,7 +587,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Spawn Bean Skulltula Faster", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("FasterBeanSkull"))
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"Makes Gold Skulltulas come out of bean patches faster after bugs dig into center."));
|
||||
"Makes Gold Skulltulas come out of bean patches faster after bugs dig into the center."));
|
||||
AddWidget(path, "Biggoron Forge Time: %d days", WIDGET_CVAR_SLIDER_INT)
|
||||
.CVar(CVAR_ENHANCEMENT("ForgeTime"))
|
||||
.Options(IntSliderOptions().Min(0).Max(3).DefaultValue(3).Format("%d days").Tooltip(
|
||||
@@ -610,7 +610,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
.CVar(CVAR_ENHANCEMENT("DisableGrottoRotation"))
|
||||
.RaceDisable(false)
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"Disables Grottos rotating with the Camera. To be used in conjuction with mods that want to "
|
||||
"Disables Grottos rotating with the Camera. To be used in conjunction with mods that want to "
|
||||
"replace grottos with 3D objects."));
|
||||
AddWidget(path, "Disable Link's Sword Trail", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("DisableLinkSwordTrail"))
|
||||
@@ -698,7 +698,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
"NOTE: Doesn't activate until scene transition."));
|
||||
AddWidget(path, "Disable Hot/Underwater Warning Text", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("DisableTunicWarningText"))
|
||||
.Options(CheckboxOptions().Tooltip("Disables warning text when you don't have on the Goron/Zora Tunic "
|
||||
.Options(CheckboxOptions().Tooltip("Disables warning text when you don't have the Goron/Zora Tunic on "
|
||||
"in Hot/Underwater conditions."));
|
||||
AddWidget(path, "Remember Minimap State Between Areas", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("RememberMapToggleState"))
|
||||
@@ -795,7 +795,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
info.options->disabled = !CVarGetInteger(CVAR_ENHANCEMENT("WidescreenActorCulling"), 0) &&
|
||||
CVarGetInteger(CVAR_ENHANCEMENT("DisableDrawDistance"), 1) <= 1;
|
||||
info.options->disabledTooltip =
|
||||
"Requires Actor Draw Distance to be increased or Widscreen Actor Culling to be enabled.";
|
||||
"Requires Actor Draw Distance to be increased or Widescreen Actor Culling to be enabled.";
|
||||
})
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"Exclude Actors that are useful for Glitches from the extended culling ranges. Some actors may still draw "
|
||||
@@ -831,7 +831,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Equipment Toggle", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("EquipmentCanBeRemoved"))
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"Allows equipment to be removed by toggling it on/off\n the equipment subscreen."));
|
||||
"Allows equipment to be removed by toggling it on/off in the equipment subscreen."));
|
||||
AddWidget(path, "Allow Strength Equipment to be Toggled", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("ToggleStrength"))
|
||||
.Callback([](WidgetInfo& info) {
|
||||
@@ -845,7 +845,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
"that require the player to not have Strength."));
|
||||
AddWidget(path, "Unsheathe Sword Without Slashing", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("UnsheatheWithoutSlashing"))
|
||||
.Options(CheckboxOptions().Tooltip("Allows Link to unsheathe sword without slashing automatically."));
|
||||
.Options(CheckboxOptions().Tooltip("Allows Link to unsheathe the sword without slashing automatically."));
|
||||
AddWidget(path, "Sword Toggle Options", WIDGET_CVAR_COMBOBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("SwordToggle"))
|
||||
.PreFunc(
|
||||
@@ -899,7 +899,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Persistent Masks", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("PersistentMasks"))
|
||||
.Options(
|
||||
CheckboxOptions().Tooltip("Stops masks from automatically unequipping on certain situations:\n"
|
||||
CheckboxOptions().Tooltip("Stops masks from automatically unequipping in certain situations:\n"
|
||||
"- When entering a new scene\n"
|
||||
"- When not in any C-Button or the D-pad\n"
|
||||
"- When saving and quitting\n"
|
||||
@@ -914,7 +914,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
info.options->disabled =
|
||||
OTRGlobals::Instance->gRandoContext->GetOption(RSK_MASK_QUEST).IsNot(RO_MASK_QUEST_VANILLA);
|
||||
info.options->disabledTooltip =
|
||||
"This setting is forcefully enabled when Mask Quest is Completed from the start or Shuffled";
|
||||
"This setting is forcefully enabled when Mask Quest is Completed from the start or Shuffled.";
|
||||
})
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"After completing the mask trading sub-quest, press A and any direction on the mask "
|
||||
@@ -1038,7 +1038,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Bottles", WIDGET_SEPARATOR_TEXT);
|
||||
AddWidget(path, "Rebottle Blue Fire", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("RebottleBlueFire"))
|
||||
.Options(CheckboxOptions().Tooltip("Blue Fire dropped from bottle can be bottled."));
|
||||
.Options(CheckboxOptions().Tooltip("Blue Fire dropped from a bottle can be bottled."));
|
||||
|
||||
// Fixes
|
||||
path.sidebarName = "Fixes";
|
||||
@@ -1059,13 +1059,13 @@ void SohMenu::AddMenuEnhancements() {
|
||||
"Fixes Dampé going backwards in certain circumstances when the player is going backwards."));
|
||||
AddWidget(path, "Fix Kokiri Forest Quest State", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("FixKokiriForestQuestState"))
|
||||
.Options(CheckboxOptions().Tooltip("Fixes kokiri animation state to match their text state when getting "
|
||||
.Options(CheckboxOptions().Tooltip("Fixes Kokiri animation state to match their text state when getting "
|
||||
"Zelda's Letter before Kokiri Emerald."));
|
||||
AddWidget(path, "Fix Raised Floor Switches", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("FixFloorSwitches"))
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"Fixes the two raised floor switches, the one in Forest Temple Basement and the one at the top of Fire "
|
||||
"Temple. This will lower them, making activating them easier."));
|
||||
.Options(CheckboxOptions().Tooltip("Fixes the two raised floor switches, the one in the Forest Temple basement "
|
||||
"and the one at the top of the Fire "
|
||||
"Temple. This will lower them, making activating them easier."));
|
||||
AddWidget(path, "Fix Zora Hint Dialogue", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("FixZoraHintDialogue"))
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
@@ -1104,7 +1104,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Fix Goron City Doors After Fire Temple", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("GCDoorsAfterFireFix"))
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"Forces Goron City doors open if you somehow complete Fire Temple without talking to Goron Link "
|
||||
"Forces Goron City doors open if you somehow complete Fire Temple without talking to Goron Link"
|
||||
" and receiving the Goron Tunic."));
|
||||
|
||||
AddWidget(path, "Fix MQ Water 1F Lock", WIDGET_CVAR_CHECKBOX)
|
||||
@@ -1114,8 +1114,8 @@ void SohMenu::AddMenuEnhancements() {
|
||||
info.options->disabledTooltip = "This setting is forcefully enabled when you are playing a Randomizer.";
|
||||
})
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"The second small key lock MQ water is removed before the player can reach it by a shared flag with some "
|
||||
"Stalfos on the way to Dark Link.\n"
|
||||
"The second small key lock in MQ Water Temple is removed before the player can reach it by a shared flag "
|
||||
"with some Stalfos on the way to Dark Link.\n"
|
||||
"Enabling this will cause that lock to use a different flag, working as intended."));
|
||||
|
||||
AddWidget(path, "Item-related Fixes", WIDGET_SEPARATOR_TEXT);
|
||||
@@ -1212,7 +1212,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
.CVar(CVAR_ENHANCEMENT("FixHammerHand"))
|
||||
.RaceDisable(false)
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"Fixes Adult Link having a backwards Left hand when holding the Megaton Hammer."));
|
||||
"Fixes Adult Link having a backwards left hand when holding the Megaton Hammer."));
|
||||
AddWidget(path, "Fix Vanishing Paths", WIDGET_CVAR_COMBOBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("SceneSpecificDirtPathFix"))
|
||||
.RaceDisable(false)
|
||||
@@ -1432,7 +1432,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Cuccos Needed By Anju: %d", WIDGET_CVAR_SLIDER_INT)
|
||||
.CVar(CVAR_ENHANCEMENT("CuccosToReturn"))
|
||||
.Options(IntSliderOptions().Min(0).Max(7).DefaultValue(7).Format("%d").Tooltip(
|
||||
"The amount of cuccos needed to receive bottle from Anju the Cucco Lady."));
|
||||
"The amount of cuccos needed to receive the bottle from Anju the Cucco Lady."));
|
||||
|
||||
path.column = SECTION_COLUMN_3;
|
||||
AddWidget(path, "Enemies", WIDGET_SEPARATOR_TEXT);
|
||||
@@ -1635,7 +1635,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Forest Temple", WIDGET_SEPARATOR_TEXT);
|
||||
AddWidget(path, "Solve Amy's Puzzle", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("SkipAmyPuzzle"))
|
||||
.Options(CheckboxOptions().Tooltip("Amy's block pushing puzzle instantly solved."));
|
||||
.Options(CheckboxOptions().Tooltip("Amy's block-pushing puzzle is instantly solved."));
|
||||
|
||||
AddWidget(path, "Ingo's Race", WIDGET_SEPARATOR_TEXT);
|
||||
AddWidget(path, "Number of Races", WIDGET_CVAR_COMBOBOX)
|
||||
@@ -1667,11 +1667,11 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Guarantee Bite", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("GuaranteeFishingBite"))
|
||||
.PreFunc(fishingDisabledFunc)
|
||||
.Options(CheckboxOptions().Tooltip("When a line is stable, guarantee bite. Otherwise use Default logic."));
|
||||
.Options(CheckboxOptions().Tooltip("When a line is stable, guarantee a bite. Otherwise use Default logic."));
|
||||
AddWidget(path, "Fish never Escape", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("FishNeverEscape"))
|
||||
.PreFunc(fishingDisabledFunc)
|
||||
.Options(CheckboxOptions().Tooltip("Once a hook as been set, Fish will never let go while being reeled in."));
|
||||
.Options(CheckboxOptions().Tooltip("Once a hook has been set, Fish will never let go while being reeled in."));
|
||||
AddWidget(path, "Loaches always Appear", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("LoachesAlwaysAppear"))
|
||||
.PreFunc(fishingDisabledFunc)
|
||||
@@ -1722,7 +1722,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Bounce off Walls", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("BounceOffWalls"))
|
||||
.Options(
|
||||
CheckboxOptions().Tooltip("Allows Link to bounce off walls when linear velocity is high enough, this is "
|
||||
CheckboxOptions().Tooltip("Allows Link to bounce off walls when linear velocity is high enough. This is "
|
||||
"relevant when frequently being knocked back by traps, CC, or in Anchor."));
|
||||
AddWidget(path, "Mirrored World", WIDGET_CVAR_COMBOBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("MirroredWorldMode"))
|
||||
@@ -1750,12 +1750,12 @@ void SohMenu::AddMenuEnhancements() {
|
||||
.Options(CheckboxOptions().Tooltip("Allows dogs to follow you anywhere you go, even if you leave the Market."));
|
||||
AddWidget(path, "Rupee Dash Mode", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("RupeeDash"))
|
||||
.Options(CheckboxOptions().Tooltip("Rupees reduce over time, Link suffers damage when the count hits 0."));
|
||||
.Options(CheckboxOptions().Tooltip("Rupees reduce over time; Link suffers damage when the count hits 0."));
|
||||
AddWidget(path, "Rupee Dash Wallet Scaling", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("RupeeDashScaling"))
|
||||
.PreFunc([](WidgetInfo& info) { info.isHidden = CVarGetInteger(CVAR_ENHANCEMENT("RupeeDash"), 0) == 0; })
|
||||
.Options(CheckboxOptions().DefaultValue(true).Tooltip("The larger Link's wallet, the faster Rupees reduce."));
|
||||
AddWidget(path, "Rupee Dash Interval %d seconds", WIDGET_CVAR_SLIDER_INT)
|
||||
AddWidget(path, "Rupee Dash Interval: %d seconds", WIDGET_CVAR_SLIDER_INT)
|
||||
.CVar(CVAR_ENHANCEMENT("RupeeDashInterval"))
|
||||
.PreFunc([](WidgetInfo& info) { info.isHidden = CVarGetInteger(CVAR_ENHANCEMENT("RupeeDash"), 0) == 0; })
|
||||
.Options(IntSliderOptions()
|
||||
@@ -1858,7 +1858,7 @@ void SohMenu::AddMenuEnhancements() {
|
||||
AddWidget(path, "Shield with Two-Handed Weapons", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_CHEAT("ShieldTwoHanded"))
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"This allows you to put up for shield with any two-handed weapon in hand except for Deku Sticks."));
|
||||
"This allows you to put up your shield with any two-handed weapon in hand except for Deku Sticks."));
|
||||
AddWidget(path, "Deku Sticks:", WIDGET_CVAR_COMBOBOX)
|
||||
.CVar(CVAR_CHEAT("DekuStick"))
|
||||
.Options(ComboboxOptions().ComboMap(dekuStickCheat).DefaultIndex(DEKU_STICK_NORMAL));
|
||||
|
||||
@@ -674,7 +674,7 @@ void SohMenu::AddMenuRandomizer() {
|
||||
WidgetPath path = { "Randomizer", "General", SECTION_COLUMN_1 };
|
||||
AddSidebarEntry("Randomizer", path.sidebarName, 2);
|
||||
AddWidget(path,
|
||||
"Be sure to explore the Presets and Enhancements Menus for various Speedups and Quality of life changes!",
|
||||
"Be sure to explore the Presets and Enhancements Menus for various Speedups and Quality of Life changes!",
|
||||
WIDGET_TEXT)
|
||||
.Options(TextOptions().Color(UIWidgets::Colors::Gray));
|
||||
AddWidget(path, "Seed Entry", WIDGET_SEPARATOR_TEXT);
|
||||
@@ -764,7 +764,7 @@ void SohMenu::AddMenuRandomizer() {
|
||||
.CVar(CVAR_RANDOMIZER_ENHANCEMENT("CustomKeyModels"))
|
||||
.Options(
|
||||
CheckboxOptions()
|
||||
.Tooltip("Use Custom graphics for Dungeon Keys, Big and Small, so that they can be easily told apart.")
|
||||
.Tooltip("Use custom graphics for Dungeon Keys, Big and Small, so that they can be easily told apart.")
|
||||
.DefaultValue(true));
|
||||
AddWidget(path, "Map & Compass Colors Match Dungeon", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_RANDOMIZER_ENHANCEMENT("ColoredMapsAndCompasses"))
|
||||
@@ -779,7 +779,7 @@ void SohMenu::AddMenuRandomizer() {
|
||||
.CVar(CVAR_RANDOMIZER_ENHANCEMENT("GenericJabberNutModel"))
|
||||
.RaceDisable(false)
|
||||
.Options(CheckboxOptions()
|
||||
.Tooltip("With Shuffle Speak, jabber nut model & color will be generic.")
|
||||
.Tooltip("With Shuffle Speak, the jabber nut model & color will be generic.")
|
||||
.DefaultValue(true));
|
||||
AddWidget(path, "Quest Item Fanfares", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_RANDOMIZER_ENHANCEMENT("QuestItemFanfares"))
|
||||
@@ -797,7 +797,7 @@ void SohMenu::AddMenuRandomizer() {
|
||||
.CVar(CVAR_RANDOMIZER_ENHANCEMENT("SimplerBossSoulModels"))
|
||||
.RaceDisable(false)
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"When shuffling boss souls, they'll appear as a simpler model instead of showing the boss' models."
|
||||
"When shuffling boss souls, they'll appear as a simpler model instead of showing the bosses' models. "
|
||||
"This might make boss souls more distinguishable from a distance, and can help with performance."));
|
||||
AddWidget(path, "Skip Get Item Animations", WIDGET_CVAR_COMBOBOX)
|
||||
.CVar(CVAR_RANDOMIZER_ENHANCEMENT("TimeSavers.SkipGetItemAnimation"))
|
||||
@@ -814,7 +814,7 @@ void SohMenu::AddMenuRandomizer() {
|
||||
"The size of the item when it is picked up."));
|
||||
AddWidget(path, "Signs Hint Entrances", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_RANDOMIZER_ENHANCEMENT("EntrancesOnSigns"))
|
||||
.Options(CheckboxOptions().Tooltip("If enabled, signs near loading zones will tell you where they lead to."));
|
||||
.Options(CheckboxOptions().Tooltip("If enabled, signs near loading zones will tell you where they lead."));
|
||||
|
||||
auto randoSettings = Rando::Settings::GetInstance();
|
||||
randoSettings->CreateOptions();
|
||||
|
||||
@@ -237,7 +237,7 @@ void SohMenu::AddMenuSettings() {
|
||||
AddWidget(path, "Text to Speech", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_SETTING("A11yTTS"))
|
||||
.RaceDisable(false)
|
||||
.Options(CheckboxOptions().Tooltip("Enables text to speech for in game dialog"));
|
||||
.Options(CheckboxOptions().Tooltip("Enables text to speech for in-game dialogue"));
|
||||
#endif
|
||||
AddWidget(path, "Disable Idle Camera Re-Centering", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_SETTING("A11yDisableIdleCam"))
|
||||
@@ -326,9 +326,10 @@ void SohMenu::AddMenuSettings() {
|
||||
|
||||
// Graphics Settings
|
||||
static int32_t maxFps = 360;
|
||||
const char* tooltip = "Uses Matrix Interpolation to create extra frames, resulting in smoother graphics. This is "
|
||||
"purely visual and does not impact game logic, execution of glitches etc.\n\nA higher target "
|
||||
"FPS than your monitor's refresh rate will waste resources, and might give a worse result.";
|
||||
const char* tooltip =
|
||||
"Uses Matrix Interpolation to create extra frames, resulting in smoother graphics. This is "
|
||||
"purely visual and does not impact game logic, execution of glitches, etc.\n\nA higher target "
|
||||
"FPS than your monitor's refresh rate will waste resources, and might give a worse result.";
|
||||
path.sidebarName = "Graphics";
|
||||
AddSidebarEntry("Settings", "Graphics", 3);
|
||||
AddWidget(path, "Graphics Options", WIDGET_SEPARATOR_TEXT);
|
||||
@@ -405,7 +406,7 @@ void SohMenu::AddMenuSettings() {
|
||||
.RaceDisable(false)
|
||||
.PreFunc([](WidgetInfo& info) { info.isHidden = mSohMenu->disabledMap.at(DISABLE_FOR_NO_VSYNC).active; })
|
||||
.Options(CheckboxOptions()
|
||||
.Tooltip("Removes tearing, but clamps your max FPS to your displays refresh rate.")
|
||||
.Tooltip("Removes tearing, but clamps your max FPS to your display's refresh rate.")
|
||||
.DefaultValue(true));
|
||||
AddWidget(path, "Windowed Fullscreen", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_SDL_WINDOWED_FULLSCREEN)
|
||||
|
||||
Reference in New Issue
Block a user