From 45c8fa9f193e521bf13e36252454704f7e44d470 Mon Sep 17 00:00:00 2001 From: gymnast86 Date: Sat, 6 Jun 2026 11:11:17 -0700 Subject: [PATCH] update seed generation modal when generation finishes --- .../randomizer/game/randomizer_context.cpp | 14 +++--- .../randomizer/game/randomizer_context.hpp | 6 ++- src/dusk/ui/modal.cpp | 31 ++++++++---- src/dusk/ui/modal.hpp | 3 ++ src/dusk/ui/rando_config.cpp | 47 ++++++++++++++----- src/dusk/ui/rando_config.hpp | 17 +++++-- src/dusk/ui/ui.hpp | 5 ++ 7 files changed, 92 insertions(+), 31 deletions(-) diff --git a/src/dusk/randomizer/game/randomizer_context.cpp b/src/dusk/randomizer/game/randomizer_context.cpp index 200ce68aa0..64ae7d7402 100644 --- a/src/dusk/randomizer/game/randomizer_context.cpp +++ b/src/dusk/randomizer/game/randomizer_context.cpp @@ -1303,17 +1303,14 @@ static void DeleteFailedGenerationFiles(randomizer::Randomizer& rando) { } } -/* - * Generates a seed and writes the necessary seed files to the players seed directory - */ -void GenerateAndWriteSeed(std::string& generationStatusMsg) { +bool GenerateAndWriteSeed(std::string& generationStatusMsg) { auto r = randomizer::Randomizer{dusk::ui::GetRandomizerPath()}; auto generationResult = r.Generate(); if (generationResult.has_value()) { - generationStatusMsg = fmt::format("Seed Generation failed. Reason:\n{}", generationResult.value()); + generationStatusMsg = fmt::format("Failed to generate seed. Reason:\n{}", generationResult.value()); DeleteFailedGenerationFiles(r); - return; + return false; } const auto world = r.GetWorld(); @@ -1324,7 +1321,7 @@ void GenerateAndWriteSeed(std::string& generationStatusMsg) { generationStatusMsg = fmt::format("Failed to write seed data. Reason:\n{}", e.what()); DeleteFailedGenerationFiles(r); - return; + return false; } randoData.mHash = r.GetConfig().GetHash(); @@ -1333,8 +1330,9 @@ void GenerateAndWriteSeed(std::string& generationStatusMsg) { generationStatusMsg = fmt::format("Failed to write seed data to file. Reason:\n{}", writeToFileResult.value()); DeleteFailedGenerationFiles(r); - return; + return false; } generationStatusMsg = fmt::format("Seed generated! Hash: {}", randoData.mHash); + return true; } \ No newline at end of file diff --git a/src/dusk/randomizer/game/randomizer_context.hpp b/src/dusk/randomizer/game/randomizer_context.hpp index 8a198b6b70..c36d9b73bb 100644 --- a/src/dusk/randomizer/game/randomizer_context.hpp +++ b/src/dusk/randomizer/game/randomizer_context.hpp @@ -255,6 +255,10 @@ u32 getActorPatchesCurrentStageKey(u8 roomNo); */ u32 getStageObjCRC32(u8* data, size_t size); -void GenerateAndWriteSeed(std::string& generationStatusMsg); +/* + * Generates a seed and writes the necessary seed files to the players seed directory + * Returns true if generation was successful, false otherwise. + */ +bool GenerateAndWriteSeed(std::string& generationStatusMsg); #endif //DUSK_RANDOMIZER_CONTEXT_HPP diff --git a/src/dusk/ui/modal.cpp b/src/dusk/ui/modal.cpp index b08a333163..31cc098bf1 100644 --- a/src/dusk/ui/modal.cpp +++ b/src/dusk/ui/modal.cpp @@ -27,14 +27,7 @@ Modal::Modal(Props props) : WindowSmall("modal", "modal-dialog"), mProps(std::mo actions->SetClass("modal-actions", true); for (auto& action : mProps.actions) { - auto btn = std::make_unique