diff --git a/src/client/GameSave.cpp b/src/client/GameSave.cpp index d83097cec..880d859d8 100644 --- a/src/client/GameSave.cpp +++ b/src/client/GameSave.cpp @@ -67,6 +67,7 @@ void GameSave::MapPalette() auto &sd = SimulationData::CRef(); auto &elements = sd.elements; + std::map missingElementIdentifiers; if(palette.size()) { if (version >= Version(98, 0)) @@ -94,7 +95,7 @@ void GameSave::MapPalette() } else { - missingElements.identifiers.insert(pi); + missingElementIdentifiers.insert(pi); } } } @@ -137,6 +138,13 @@ void GameSave::MapPalette() } } } + for (const auto &pi : missingElementIdentifiers) + { + if (missingElements.ids.find(pi.second) != missingElements.ids.end()) + { + missingElements.identifiers.insert(pi); + } + } } void GameSave::Expand(const std::vector &data)