From fe86f1a2dbf54a8f301c8cc3637da19246ce4c6c Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 13 Sep 2018 02:04:54 +0200 Subject: [PATCH] Ref T348, "verify model" functions moved to FSX common Related: Ref T317 Ref T247 Ref T335 --- .../simulator/fsxcommon/simconnectobject.cpp | 5 ----- .../simulator/fsxcommon/simconnectobject.h | 3 --- .../fsxcommon/simulatorfsxcommon.cpp | 19 +++++++++++++++++-- .../simulator/fsxcommon/simulatorfsxcommon.h | 3 +++ 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/plugins/simulator/fsxcommon/simconnectobject.cpp b/src/plugins/simulator/fsxcommon/simconnectobject.cpp index 7a4aced04..aca6293b3 100644 --- a/src/plugins/simulator/fsxcommon/simconnectobject.cpp +++ b/src/plugins/simulator/fsxcommon/simconnectobject.cpp @@ -229,11 +229,6 @@ namespace BlackSimPlugin return s.arg(this->getCallsign().asString()). arg(m_objectId).arg(m_requestId).arg(boolToYesNo(m_confirmedAdded), boolToYesNo(m_pendingRemoved), boolToYesNo(m_removedWhileAdding), boolToYesNo(m_addedWhileRemoving)).arg(m_addingExceptions).arg(m_addingDirectlyRemoved); } - CStatusMessageList CSimConnectObject::addingVerificationMessages() - { - return this->getAircraftModel().verifyModelData(); - } - CSimConnectObject::SimObjectType CSimConnectObject::requestIdToType(DWORD requestId) { if (CSimulatorFsxCommon::isRequestForSimObjTerrainProbe(requestId)) { return TerrainProbe; } diff --git a/src/plugins/simulator/fsxcommon/simconnectobject.h b/src/plugins/simulator/fsxcommon/simconnectobject.h index 8f06f586d..3e41a2d2b 100644 --- a/src/plugins/simulator/fsxcommon/simconnectobject.h +++ b/src/plugins/simulator/fsxcommon/simconnectobject.h @@ -257,9 +257,6 @@ namespace BlackSimPlugin //! SimObject as string QString toQString() const; - //! Verification message when adding failed - BlackMisc::CStatusMessageList addingVerificationMessages(); - //! Type of id static SimObjectType requestIdToType(DWORD requestId); diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index 54a7d2cc2..092d0cb43 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -15,6 +15,7 @@ #include "blackmisc/simulation/fsx/simconnectutilities.h" #include "blackmisc/simulation/fscommon/bcdconversions.h" #include "blackmisc/simulation/fscommon/fscommonutil.h" +#include "blackmisc/simulation/settings/simulatorsettings.h" #include "blackmisc/simulation/aircraftmodel.h" #include "blackmisc/simulation/interpolatormulti.h" #include "blackmisc/simulation/simulatorplugininfo.h" @@ -43,6 +44,7 @@ using namespace BlackMisc::Math; using namespace BlackMisc::Simulation; using namespace BlackMisc::Simulation::FsCommon; using namespace BlackMisc::Simulation::Fsx; +using namespace BlackMisc::Simulation::Settings; using namespace BlackMisc::Weather; using namespace BlackCore; @@ -864,7 +866,7 @@ namespace BlackSimPlugin if (!simObject.isAircraft()) { return; } CLogMessage(this).warning("Model failed to be added: '%1' details: %2") << simObject.getAircraftModelString() << simObject.getAircraft().toQString(true); - CLogMessage::preformatted(simObject.getAircraftModel().verifyModelData()); + CLogMessage::preformatted(this->verifyFailedAircraftInfo(simObject)); m_simConnectObjects.removeByOtherSimObject(simObject); if (simObject.getAddingExceptions() >= ThresholdAddException) @@ -889,6 +891,19 @@ namespace BlackSimPlugin } } + CStatusMessage CSimulatorFsxCommon::verifyFailedAircraftInfo(const CSimConnectObject &simObject) + { + CAircraftModel model = simObject.getAircraftModel(); + + const CSpecializedSimulatorSettings settings = this->getSimulatorSettings(); + const QStringList modelDirectories = settings.getModelDirectoriesFromSimulatorDirectoryOrDefault(); + const bool exists = CFsCommonUtil::adjustFileDirectory(model, settings.getModelDirectoriesOrDefault()); + Q_UNUSED(exists); + + const CStatusMessageList messages = model.verifyModelData(); + return messages.toSingleMessage(); + } + void CSimulatorFsxCommon::verifyAddedTerrainProbe(const CSimulatedAircraft &remoteAircraftIn) { CSimConnectObject &simObject = m_simConnectObjects[remoteAircraftIn.getCallsign()]; @@ -1017,7 +1032,7 @@ namespace BlackSimPlugin } // in all cases add verification details - CLogMessage::preformatted(simObject.addingVerificationMessages()); + CLogMessage::preformatted(this->verifyFailedAircraftInfo(simObject)); // relay messages if (!msg.isEmpty()) { emit this->driverMessages(msg); } diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h index 7e863649f..aa818be4c 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h @@ -301,6 +301,9 @@ namespace BlackSimPlugin //! Adding an aircraft failed void addingAircraftFailed(const CSimConnectObject &simObject); + //! Create a detailed info about the failed aircraft + BlackMisc::CStatusMessage verifyFailedAircraftInfo(const CSimConnectObject &simObject); + //! Verify the probe void verifyAddedTerrainProbe(const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraftIn);