again
Some checks failed
Build / Build Game (push) Has been cancelled

This commit is contained in:
2026-02-28 22:19:24 -05:00
parent acb1505308
commit 3817f1cc39
3 changed files with 22 additions and 13 deletions

View File

@@ -156,7 +156,12 @@ namespace game::resource::xml
} }
} }
int Dialogue::Pool::get() const { return this->at(math::random_max(this->size())); } int Dialogue::Pool::get() const
{
if (this->empty()) return -1;
auto index = rand() % this->size();
return this->at(index);
}
Dialogue::Entry* Dialogue::get(int id) { return &entries.at(id); } Dialogue::Entry* Dialogue::get(int id) { return &entries.at(id); }
Dialogue::Entry* Dialogue::get(Dialogue::EntryReference& entry) { return &entries.at(entry.id); } Dialogue::Entry* Dialogue::get(Dialogue::EntryReference& entry) { return &entries.at(entry.id); }
Dialogue::Entry* Dialogue::get(const std::string& string) { return &entries.at(entryIDMap.at(string)); } Dialogue::Entry* Dialogue::get(const std::string& string) { return &entries.at(entryIDMap.at(string)); }

View File

@@ -18,16 +18,17 @@ namespace game::resource::xml
Save::Save(const std::filesystem::path& path) Save::Save(const std::filesystem::path& path)
{ {
XMLDocument document; XMLDocument document;
auto pathString = path.string();
// Fail silently if there's no save. // Fail silently if there's no save.
auto result = document.LoadFile(path.c_str()); auto result = document.LoadFile(pathString.c_str());
if (result == XML_ERROR_FILE_NOT_FOUND || result == XML_ERROR_FILE_COULD_NOT_BE_OPENED) return; if (result == XML_ERROR_FILE_NOT_FOUND || result == XML_ERROR_FILE_COULD_NOT_BE_OPENED) return;
if (result != XML_SUCCESS) if (result != XML_SUCCESS)
{ {
logger.error( logger.error(
std::format("Could not initialize character save file: {} ({})", path.string(), document.ErrorStr())); std::format("Could not initialize character save file: {} ({})", pathString, document.ErrorStr()));
return; return;
} }
@@ -99,7 +100,7 @@ namespace game::resource::xml
} }
} }
logger.info(std::format("Initialized character save file: {}", path.string())); logger.info(std::format("Initialized character save file: {}", pathString));
isValid = true; isValid = true;
} }
@@ -109,6 +110,7 @@ namespace game::resource::xml
void Save::serialize(const std::filesystem::path& path) void Save::serialize(const std::filesystem::path& path)
{ {
XMLDocument document; XMLDocument document;
auto pathString = path.string();
auto element = document.NewElement("Save"); auto element = document.NewElement("Save");
element->SetAttribute("IsPostgame", isPostgame ? "true" : "false"); element->SetAttribute("IsPostgame", isPostgame ? "true" : "false");
@@ -168,13 +170,13 @@ namespace game::resource::xml
document.InsertFirstChild(element); document.InsertFirstChild(element);
if (document.SaveFile(path.c_str()) != XML_SUCCESS) if (document.SaveFile(pathString.c_str()) != XML_SUCCESS)
{ {
logger.error(std::format("Failed to save character save file: {} ({})", path.string(), document.ErrorStr())); logger.error(std::format("Failed to save character save file: {} ({})", pathString, document.ErrorStr()));
return; return;
} }
logger.info(std::format("Saved character save file: {}", path.string())); logger.info(std::format("Saved character save file: {}", pathString));
#ifdef __EMSCRIPTEN__ #ifdef __EMSCRIPTEN__
web_filesystem::flush_async(); web_filesystem::flush_async();

View File

@@ -17,11 +17,12 @@ namespace game::resource::xml
Settings::Settings(const std::filesystem::path& path) Settings::Settings(const std::filesystem::path& path)
{ {
XMLDocument document; XMLDocument document;
auto pathString = path.string();
if (document.LoadFile(path.c_str()) != XML_SUCCESS) if (document.LoadFile(pathString.c_str()) != XML_SUCCESS)
{ {
logger.error( logger.error(
std::format("Could not initialize character save file: {} ({})", path.string(), document.ErrorStr())); std::format("Could not initialize character save file: {} ({})", pathString, document.ErrorStr()));
return; return;
} }
@@ -40,7 +41,7 @@ namespace game::resource::xml
root->QueryIntAttribute("WindowH", &windowSize.y); root->QueryIntAttribute("WindowH", &windowSize.y);
} }
logger.info(std::format("Initialized settings: {}", path.string())); logger.info(std::format("Initialized settings: {}", pathString));
isValid = true; isValid = true;
} }
@@ -50,6 +51,7 @@ namespace game::resource::xml
void Settings::serialize(const std::filesystem::path& path) void Settings::serialize(const std::filesystem::path& path)
{ {
XMLDocument document; XMLDocument document;
auto pathString = path.string();
auto element = document.NewElement("Settings"); auto element = document.NewElement("Settings");
@@ -65,13 +67,13 @@ namespace game::resource::xml
document.InsertFirstChild(element); document.InsertFirstChild(element);
if (document.SaveFile(path.c_str()) != XML_SUCCESS) if (document.SaveFile(pathString.c_str()) != XML_SUCCESS)
{ {
logger.info(std::format("Failed to initialize settings: {} ({})", path.string(), document.ErrorStr())); logger.info(std::format("Failed to initialize settings: {} ({})", pathString, document.ErrorStr()));
return; return;
} }
logger.info(std::format("Saved settings: {}", path.string())); logger.info(std::format("Saved settings: {}", pathString));
#ifdef __EMSCRIPTEN__ #ifdef __EMSCRIPTEN__
web_filesystem::flush_async(); web_filesystem::flush_async();