From f12838ea3b65e3dd269093f0e88011d9f6243686 Mon Sep 17 00:00:00 2001 From: gymnast86 Date: Mon, 1 Jun 2026 01:53:04 -0700 Subject: [PATCH] fix required dungeons sign when no dungeons are required --- .../generator/data/text/languages/english.yaml | 5 +++++ .../randomizer/generator/data/text/languages/french.yaml | 5 +++++ .../randomizer/generator/data/text/languages/german.yaml | 5 +++++ .../generator/data/text/languages/italian.yaml | 5 +++++ .../generator/data/text/languages/spanish.yaml | 5 +++++ src/dusk/randomizer/generator/logic/hints.cpp | 4 ++++ src/dusk/randomizer/generator/utility/text.cpp | 9 +++++++++ src/dusk/randomizer/generator/utility/text.hpp | 3 ++- 8 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/dusk/randomizer/generator/data/text/languages/english.yaml b/src/dusk/randomizer/generator/data/text/languages/english.yaml index e2633e35a7..aa0eaac028 100644 --- a/src/dusk/randomizer/generator/data/text/languages/english.yaml +++ b/src/dusk/randomizer/generator/data/text/languages/english.yaml @@ -1506,6 +1506,11 @@ Hyrule Castle: Cryptic: Text: the {kingdom's castle} +# NO REQUIRED DUNGEON TEXT +No Required Dungeons Text: + Standard: + Text: No Required Dungeons + # ITEM GET TEXT Foolish Get Item Text: Standard: diff --git a/src/dusk/randomizer/generator/data/text/languages/french.yaml b/src/dusk/randomizer/generator/data/text/languages/french.yaml index 7e76009e1c..765a177e98 100644 --- a/src/dusk/randomizer/generator/data/text/languages/french.yaml +++ b/src/dusk/randomizer/generator/data/text/languages/french.yaml @@ -1506,6 +1506,11 @@ Hyrule Castle: Cryptic: Text: the {kingdom's castle} +# NO REQUIRED DUNGEON TEXT +No Required Dungeons Text: + Standard: + Text: No Required Dungeons + # ITEM GET TEXT Foolish Get Item Text: Standard: diff --git a/src/dusk/randomizer/generator/data/text/languages/german.yaml b/src/dusk/randomizer/generator/data/text/languages/german.yaml index 7d3b53bb7f..42970a7af2 100644 --- a/src/dusk/randomizer/generator/data/text/languages/german.yaml +++ b/src/dusk/randomizer/generator/data/text/languages/german.yaml @@ -1506,6 +1506,11 @@ Hyrule Castle: Cryptic: Text: the {kingdom's castle} +# NO REQUIRED DUNGEON TEXT +No Required Dungeons Text: + Standard: + Text: No Required Dungeons + # ITEM GET TEXT Foolish Get Item Text: Standard: diff --git a/src/dusk/randomizer/generator/data/text/languages/italian.yaml b/src/dusk/randomizer/generator/data/text/languages/italian.yaml index 9828cef9da..dd4c995507 100644 --- a/src/dusk/randomizer/generator/data/text/languages/italian.yaml +++ b/src/dusk/randomizer/generator/data/text/languages/italian.yaml @@ -1506,6 +1506,11 @@ Hyrule Castle: Cryptic: Text: the {kingdom's castle} +# NO REQUIRED DUNGEON TEXT +No Required Dungeons Text: + Standard: + Text: No Required Dungeons + # ITEM GET TEXT Foolish Get Item Text: Standard: diff --git a/src/dusk/randomizer/generator/data/text/languages/spanish.yaml b/src/dusk/randomizer/generator/data/text/languages/spanish.yaml index a849a6b87a..0854999b04 100644 --- a/src/dusk/randomizer/generator/data/text/languages/spanish.yaml +++ b/src/dusk/randomizer/generator/data/text/languages/spanish.yaml @@ -1506,6 +1506,11 @@ Hyrule Castle: Cryptic: Text: the {kingdom's castle} +# NO REQUIRED DUNGEON TEXT +No Required Dungeons Text: + Standard: + Text: No Required Dungeons + # ITEM GET TEXT Foolish Get Item Text: Standard: diff --git a/src/dusk/randomizer/generator/logic/hints.cpp b/src/dusk/randomizer/generator/logic/hints.cpp index 2166162f66..0f638efa8c 100644 --- a/src/dusk/randomizer/generator/logic/hints.cpp +++ b/src/dusk/randomizer/generator/logic/hints.cpp @@ -26,6 +26,10 @@ namespace randomizer::logic::hints { requiredDungeonText += dungeonColors.at(dungeonName) + getTextObject(dungeonName) + "\n"; } } + + if (requiredDungeonText.empty()) { + requiredDungeonText += getTextObject("No Required Dungeons Text"); + } } } diff --git a/src/dusk/randomizer/generator/utility/text.cpp b/src/dusk/randomizer/generator/utility/text.cpp index 161cc468c7..83c59f89b2 100644 --- a/src/dusk/randomizer/generator/utility/text.cpp +++ b/src/dusk/randomizer/generator/utility/text.cpp @@ -185,6 +185,15 @@ namespace randomizer { } } + bool Text::empty() const { + for (auto& text : mText) { + if (!text.empty()) { + return false; + } + } + return true; + } + Text& Text::operator+=(const Text& rhs) { for (size_t i = 0; i < mText.size(); ++i) { mText[i] += rhs.mText[i]; diff --git a/src/dusk/randomizer/generator/utility/text.hpp b/src/dusk/randomizer/generator/utility/text.hpp index 7231c97061..9f40794f5b 100644 --- a/src/dusk/randomizer/generator/utility/text.hpp +++ b/src/dusk/randomizer/generator/utility/text.hpp @@ -68,10 +68,11 @@ namespace randomizer { * * @param oldStr the string to replace * @param replacementText the Text object to replace the old string - * @param count the number of occurences to replace + * @param count the number of occurrences to replace */ void Replace(const std::string& oldStr, const Text& replacementText, int count = 1); void Replace(const std::string& oldStr, const std::string& replacementText, int count = 1); + bool empty() const; Text& operator+=(const Text& rhs); Text& operator+=(const std::string& rhs); friend Text operator+(Text lhs, Text& rhs);