From b3aacf8731f4c21c50d1d844cfd436e0f52795c5 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Thu, 26 May 2016 13:33:39 +0200 Subject: [PATCH] More error messages for playerdatadef parsing --- src/Components/Modules/StructuredData.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Components/Modules/StructuredData.cpp b/src/Components/Modules/StructuredData.cpp index 0fb5cae9..dbe00701 100644 --- a/src/Components/Modules/StructuredData.cpp +++ b/src/Components/Modules/StructuredData.cpp @@ -130,6 +130,18 @@ namespace Components std::string errors; json11::Json defData = json11::Json::parse(definition.GetBuffer(), errors); + if (!errors.empty()) + { + Logger::Error("Parsing patch file '%s' for PlayerDataDef version %d failed: %s", definition.GetName().data(), i, errors.data()); + return; + } + + if (!defData.is_object()) + { + Logger::Error("PlayerDataDef patch for version %d is invalid!", i); + return; + } + for (unsigned int pType = 0; pType < StructuredData::PlayerDataType::ENUM_MAX; ++pType) { auto enumData = defData[StructuredData::EnumTranslation[pType]]; @@ -187,7 +199,11 @@ namespace Components auto patchData = patchDefinitions[newData[i].version]; // Invalid patch data - if (patchData.size() != StructuredData::PlayerDataType::ENUM_MAX) continue; + if (patchData.size() != StructuredData::PlayerDataType::ENUM_MAX) + { + Logger::Error("PlayerDataDef patch for version %d wasn't parsed correctly!", newData[i].version); + continue; + } // Apply the patch data for (unsigned int pType = 0; pType < StructuredData::PlayerDataType::ENUM_MAX; ++pType)