From 9d0beaa8fc0056416938865a4a7b91f8bd4b892e Mon Sep 17 00:00:00 2001 From: Jan Date: Sun, 31 Dec 2023 13:45:17 +0100 Subject: [PATCH] Communicate to the asset loader when parsing localize file failed --- src/ObjLoading/Localize/LocalizeCommonAssetLoader.cpp | 5 ++++- src/ObjLoading/Localize/Parsing/LocalizeFileReader.cpp | 9 ++++++--- src/ObjLoading/Localize/Parsing/LocalizeFileReader.h | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/ObjLoading/Localize/LocalizeCommonAssetLoader.cpp b/src/ObjLoading/Localize/LocalizeCommonAssetLoader.cpp index b4153dd1f..bbfd8bd35 100644 --- a/src/ObjLoading/Localize/LocalizeCommonAssetLoader.cpp +++ b/src/ObjLoading/Localize/LocalizeCommonAssetLoader.cpp @@ -28,7 +28,10 @@ bool LocalizeCommonAssetLoader::LoadLocalizeAsset(const std::string& assetName, auto* zoneState = manager->GetAssetLoadingContext()->GetZoneAssetLoaderState(); LocalizeFileReader reader(*file.m_stream, assetName, zone->m_language, zoneState); - const auto localizeEntries = reader.ReadLocalizeFile(); + + std::vector localizeEntries; + if (!reader.ReadLocalizeFile(localizeEntries)) + return false; for (const auto& entry : localizeEntries) { diff --git a/src/ObjLoading/Localize/Parsing/LocalizeFileReader.cpp b/src/ObjLoading/Localize/Parsing/LocalizeFileReader.cpp index 5621bc88e..fbe1ff23b 100644 --- a/src/ObjLoading/Localize/Parsing/LocalizeFileReader.cpp +++ b/src/ObjLoading/Localize/Parsing/LocalizeFileReader.cpp @@ -28,7 +28,7 @@ void LocalizeFileReader::SetupStreamProxies() m_stream = m_open_streams.back().get(); } -std::vector LocalizeFileReader::ReadLocalizeFile() +bool LocalizeFileReader::ReadLocalizeFile(std::vector& entries) { SimpleLexer::Config lexerConfig; lexerConfig.m_emit_new_line_tokens = true; @@ -41,8 +41,11 @@ std::vector LocalizeFileReader::ReadLocalizeFile() const auto parser = std::make_unique(lexer.get(), m_language, m_zone_state); if (parser->Parse()) - return parser->GetParsedValues(); + { + entries = parser->GetParsedValues(); + return true; + } std::cerr << "Parsing localization file failed!" << std::endl; - return std::vector(); + return false; } diff --git a/src/ObjLoading/Localize/Parsing/LocalizeFileReader.h b/src/ObjLoading/Localize/Parsing/LocalizeFileReader.h index da0ac2f2d..1abb4d600 100644 --- a/src/ObjLoading/Localize/Parsing/LocalizeFileReader.h +++ b/src/ObjLoading/Localize/Parsing/LocalizeFileReader.h @@ -24,5 +24,5 @@ class LocalizeFileReader public: LocalizeFileReader(std::istream& stream, std::string fileName, GameLanguage language, LocalizeReadingZoneState* zoneState); - std::vector ReadLocalizeFile(); + bool ReadLocalizeFile(std::vector& entries); };