[FSD] Check attributes of full JSON parts

This commit is contained in:
Klaus Basan
2020-04-16 23:52:36 +02:00
committed by Mat Sutcliffe
parent 70c88f0982
commit 4d7468f913
3 changed files with 13 additions and 1 deletions

View File

@@ -170,6 +170,7 @@ namespace BlackCore
m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode(); m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode();
/* use setLiveryAndModelString /* use setLiveryAndModelString
No longer do it here, use setLiveryAndModelString
m_ownLivery = ownAircraft.getModel().getSwiftLiveryString(m_simTypeInfo); m_ownLivery = ownAircraft.getModel().getSwiftLiveryString(m_simTypeInfo);
m_ownModelString = ownAircraft.getModelString(); m_ownModelString = ownAircraft.getModelString();
m_sendLiveryString = true; m_sendLiveryString = true;
@@ -1207,6 +1208,7 @@ namespace BlackCore
if (packet == JsonPackets::aircraftConfigRequest()) if (packet == JsonPackets::aircraftConfigRequest())
{ {
// this MUST work for NOT IN RANGE aircraft as well // this MUST work for NOT IN RANGE aircraft as well
// Here we send our OWN parts
QJsonObject config = this->getOwnAircraftParts().toJson(); QJsonObject config = this->getOwnAircraftParts().toJson();
config.insert(CAircraftParts::attributeNameIsFullJson(), true); config.insert(CAircraftParts::attributeNameIsFullJson(), true);
QString data = QJsonDocument(QJsonObject { { "config", config } }).toJson(QJsonDocument::Compact); QString data = QJsonDocument(QJsonObject { { "config", config } }).toJson(QJsonDocument::Compact);
@@ -1253,7 +1255,7 @@ namespace BlackCore
Capabilities capabilities = Capabilities::None; Capabilities capabilities = Capabilities::None;
for (int i = 0; i < clientResponse.m_responseData.size(); ++i) for (int i = 0; i < clientResponse.m_responseData.size(); ++i)
{ {
QString keyValuePair = clientResponse.m_responseData.at(i); const QString keyValuePair = clientResponse.m_responseData.at(i);
if (keyValuePair.count('=') != 1) { continue; } if (keyValuePair.count('=') != 1) { continue; }
const QStringList split = keyValuePair.split('='); const QStringList split = keyValuePair.split('=');

View File

@@ -191,6 +191,9 @@ namespace BlackMisc
//! Attribute name //! Attribute name
static const QString &attributeNameIsFullJson(); static const QString &attributeNameIsFullJson();
//! Number of attributes for full JSON
static constexpr int attributesCountFullJson = 7;
private: private:
CAircraftLights m_lights; CAircraftLights m_lights;
CAircraftEngineList m_engines; CAircraftEngineList m_engines;

View File

@@ -422,6 +422,13 @@ namespace BlackMisc
{ {
if (isFull) if (isFull)
{ {
if (CBuildConfig::isLocalDeveloperDebugBuild())
{
// validation in dev.env.
const int attributes = jsonObject.size();
const bool correctCount = (attributes == CAircraftParts::attributesCountFullJson);
BLACK_VERIFY_X(correctCount, Q_FUNC_INFO, "Wrong full aircraft parts");
}
parts.convertFromJson(jsonObject); parts.convertFromJson(jsonObject);
} }
else else