1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-29 23:07:48 +02:00

Handle corrupted H3 data - show message box instead of silent crash

This commit is contained in:
Ivan Savenko
2024-05-13 15:41:47 +00:00
parent 0aa7362adf
commit 95d761bbb8
4 changed files with 48 additions and 10 deletions

View File

@@ -12,6 +12,7 @@
#include "ArtifactUtils.h"
#include "CGeneralTextHandler.h"
#include "ExceptionsCommon.h"
#include "GameSettings.h"
#include "mapObjects/MapObjects.h"
#include "constants/StringConstants.h"
@@ -354,7 +355,13 @@ std::vector<JsonNode> CArtHandler::loadLegacyData()
artData["slot"].Vector().emplace_back(artSlot);
}
}
artData["class"].String() = classes.at(parser.readString()[0]);
std::string artClass = parser.readString();
if (classes.count(artClass[0]))
artData["class"].String() = classes.at(artClass[0]);
else
throw DataLoadingException("File ARTRAITS.TXT is invalid or corrupted! Please reinstall Heroes III data files");
artData["text"]["description"].String() = parser.readString();
parser.endLine();