diff --git a/src/ObjCommon/Localize/LocalizeFile.cpp b/src/ObjCommon/Localize/LocalizeFile.cpp deleted file mode 100644 index 3cd6e3d0..00000000 --- a/src/ObjCommon/Localize/LocalizeFile.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "LocalizeFile.h" - -LocalizeFileEntry::LocalizeFileEntry() = default; - -LocalizeFileEntry::LocalizeFileEntry(std::string key, std::string value) - : m_key(std::move(key)), - m_value(std::move(value)) -{ -} diff --git a/src/ObjCommon/Localize/LocalizeFile.h b/src/ObjCommon/Localize/LocalizeFile.h deleted file mode 100644 index 73ac2dad..00000000 --- a/src/ObjCommon/Localize/LocalizeFile.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once -#include - -class LocalizeFileEntry -{ -public: - std::string m_key; - std::string m_value; - - LocalizeFileEntry(); - LocalizeFileEntry(std::string key, std::string value); -}; diff --git a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderLocalizeEntry.cpp b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderLocalizeEntry.cpp index d4d89ff3..71aa22ff 100644 --- a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderLocalizeEntry.cpp +++ b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderLocalizeEntry.cpp @@ -39,13 +39,13 @@ bool AssetLoaderLocalizeEntry::LoadFromRaw( LocalizeFileReader reader(*file.m_stream, assetName, zone->m_language); const auto localizeEntries = reader.ReadLocalizeFile(); - for (const auto& entry : localizeEntries) + for (const auto& [key, value] : localizeEntries) { auto* localizeEntry = memory->Create(); - localizeEntry->name = memory->Dup(entry.m_key.c_str()); - localizeEntry->value = memory->Dup(entry.m_value.c_str()); + localizeEntry->name = memory->Dup(key.c_str()); + localizeEntry->value = memory->Dup(value.c_str()); - manager->AddAsset(ASSET_TYPE_LOCALIZE_ENTRY, entry.m_key, localizeEntry); + manager->AddAsset(ASSET_TYPE_LOCALIZE_ENTRY, key, localizeEntry); } return true; diff --git a/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderLocalizeEntry.cpp b/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderLocalizeEntry.cpp index d3b94c75..fbbc84cd 100644 --- a/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderLocalizeEntry.cpp +++ b/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderLocalizeEntry.cpp @@ -39,13 +39,13 @@ bool AssetLoaderLocalizeEntry::LoadFromRaw( LocalizeFileReader reader(*file.m_stream, assetName, zone->m_language); const auto localizeEntries = reader.ReadLocalizeFile(); - for (const auto& entry : localizeEntries) + for (const auto& [key, value] : localizeEntries) { auto* localizeEntry = memory->Create(); - localizeEntry->name = memory->Dup(entry.m_key.c_str()); - localizeEntry->value = memory->Dup(entry.m_value.c_str()); + localizeEntry->name = memory->Dup(key.c_str()); + localizeEntry->value = memory->Dup(value.c_str()); - manager->AddAsset(ASSET_TYPE_LOCALIZE_ENTRY, entry.m_key, localizeEntry); + manager->AddAsset(ASSET_TYPE_LOCALIZE_ENTRY, key, localizeEntry); } return true; diff --git a/src/ObjLoading/Game/T5/AssetLoaders/AssetLoaderLocalizeEntry.cpp b/src/ObjLoading/Game/T5/AssetLoaders/AssetLoaderLocalizeEntry.cpp index 33f67faf..03360e60 100644 --- a/src/ObjLoading/Game/T5/AssetLoaders/AssetLoaderLocalizeEntry.cpp +++ b/src/ObjLoading/Game/T5/AssetLoaders/AssetLoaderLocalizeEntry.cpp @@ -39,13 +39,13 @@ bool AssetLoaderLocalizeEntry::LoadFromRaw( LocalizeFileReader reader(*file.m_stream, assetName, zone->m_language); const auto localizeEntries = reader.ReadLocalizeFile(); - for (const auto& entry : localizeEntries) + for (const auto& [key, value] : localizeEntries) { auto* localizeEntry = memory->Create(); - localizeEntry->name = memory->Dup(entry.m_key.c_str()); - localizeEntry->value = memory->Dup(entry.m_value.c_str()); + localizeEntry->name = memory->Dup(key.c_str()); + localizeEntry->value = memory->Dup(value.c_str()); - manager->AddAsset(ASSET_TYPE_LOCALIZE_ENTRY, entry.m_key, localizeEntry); + manager->AddAsset(ASSET_TYPE_LOCALIZE_ENTRY, key, localizeEntry); } return true; diff --git a/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderLocalizeEntry.cpp b/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderLocalizeEntry.cpp index 1a2265f7..98917478 100644 --- a/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderLocalizeEntry.cpp +++ b/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderLocalizeEntry.cpp @@ -39,13 +39,13 @@ bool AssetLoaderLocalizeEntry::LoadFromRaw( LocalizeFileReader reader(*file.m_stream, assetName, zone->m_language); const auto localizeEntries = reader.ReadLocalizeFile(); - for (const auto& entry : localizeEntries) + for (const auto& [key, value] : localizeEntries) { auto* localizeEntry = memory->Create(); - localizeEntry->name = memory->Dup(entry.m_key.c_str()); - localizeEntry->value = memory->Dup(entry.m_value.c_str()); + localizeEntry->name = memory->Dup(key.c_str()); + localizeEntry->value = memory->Dup(value.c_str()); - manager->AddAsset(ASSET_TYPE_LOCALIZE_ENTRY, entry.m_key, localizeEntry); + manager->AddAsset(ASSET_TYPE_LOCALIZE_ENTRY, key, localizeEntry); } return true; diff --git a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParser.cpp b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParser.cpp index c2a46338..796f3dd5 100644 --- a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParser.cpp +++ b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParser.cpp @@ -32,7 +32,7 @@ const std::vector::se return !m_state->m_end ? tests : noTests; } -std::vector LocalizeFileParser::GetParsedValues() +std::map LocalizeFileParser::GetParsedValues() { return std::move(m_state->m_entries); } diff --git a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParser.h b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParser.h index 348e2a9e..4740a8b7 100644 --- a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParser.h +++ b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParser.h @@ -13,5 +13,5 @@ protected: public: LocalizeFileParser(SimpleLexer* lexer, GameLanguage language); - std::vector GetParsedValues(); + std::map GetParsedValues(); }; diff --git a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParserState.h b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParserState.h index 9a01bf60..d34d5d09 100644 --- a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParserState.h +++ b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileParserState.h @@ -1,16 +1,15 @@ #pragma once #include "Game/GameLanguage.h" -#include "Localize/LocalizeFile.h" +#include #include -#include class LocalizeFileParserState { public: bool m_end; - std::vector m_entries; + std::map m_entries; GameLanguage m_language; std::string m_language_name_caps; diff --git a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileReader.cpp b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileReader.cpp index d9a28df5..3297a8f2 100644 --- a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileReader.cpp +++ b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileReader.cpp @@ -27,7 +27,7 @@ void LocalizeFileReader::SetupStreamProxies() m_stream = m_open_streams.back().get(); } -std::vector LocalizeFileReader::ReadLocalizeFile() +std::map LocalizeFileReader::ReadLocalizeFile() { SimpleLexer::Config lexerConfig; lexerConfig.m_emit_new_line_tokens = true; @@ -43,5 +43,5 @@ std::vector LocalizeFileReader::ReadLocalizeFile() return parser->GetParsedValues(); std::cout << "Parsing localization file failed!" << std::endl; - return std::vector(); + return std::map(); } diff --git a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileReader.h b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileReader.h index 34130c96..79bd59d2 100644 --- a/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileReader.h +++ b/src/ObjLoading/Parsing/LocalizeFile/LocalizeFileReader.h @@ -1,9 +1,9 @@ #pragma once #include "Game/GameLanguage.h" -#include "Localize/LocalizeFile.h" #include "Parsing/IParserLineStream.h" +#include #include #include #include @@ -21,5 +21,5 @@ class LocalizeFileReader public: LocalizeFileReader(std::istream& stream, std::string fileName, GameLanguage language); - std::vector ReadLocalizeFile(); + std::map ReadLocalizeFile(); }; diff --git a/src/ObjLoading/Parsing/LocalizeFile/Sequence/SequenceLocalizeFileLanguageValue.cpp b/src/ObjLoading/Parsing/LocalizeFile/Sequence/SequenceLocalizeFileLanguageValue.cpp index 81ce8b4a..e858e94e 100644 --- a/src/ObjLoading/Parsing/LocalizeFile/Sequence/SequenceLocalizeFileLanguageValue.cpp +++ b/src/ObjLoading/Parsing/LocalizeFile/Sequence/SequenceLocalizeFileLanguageValue.cpp @@ -31,5 +31,13 @@ void SequenceLocalizeFileLanguageValue::ProcessMatch(LocalizeFileParserState* st state->m_current_reference_languages.emplace(langName); if (langName == state->m_language_name_caps) - state->m_entries.emplace_back(state->m_current_reference, valueToken.StringValue()); + { + const auto& currentReference = state->m_current_reference; + if (const auto i = state->m_entries.find(currentReference); i != state->m_entries.end()) + { + std::cout << "Localize: a value for reference \"" << currentReference << "\" was already defined\n"; + } + + state->m_entries[currentReference] = valueToken.StringValue(); + } }