From 94a334ad75baefe320b1e7890502227c0d8951b4 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 13 Apr 2018 22:45:20 +0200 Subject: [PATCH] Ref T259, Ref T243 use "getInterpolatedOrGuessedParts" in XPlane --- src/plugins/simulator/xplane/simulatorxplane.cpp | 12 ++++-------- src/plugins/simulator/xplane/xplanempaircraft.cpp | 9 +++++++++ src/plugins/simulator/xplane/xplanempaircraft.h | 6 ++++++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 333b861f0..4e726d385 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -693,17 +693,16 @@ namespace BlackSimPlugin Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "missing callsign"); // setup - const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupPerCallsignOrDefault(callsign); - const bool useAircraftParts = aircraftWithParts.contains(callsign) && setup.isAircraftPartsEnabled(); + const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupConsolidated(callsign); const bool logInterpolationAndParts = setup.logInterpolation(); - CPartsStatus partsStatus(useAircraftParts); // interpolated situation CInterpolationStatus interpolatorStatus; const CAircraftSituation interpolatedSituation = xplaneAircraft.getInterpolatedSituation(currentTimestamp, setup, interpolatorStatus); // perts - const CAircraftParts parts = useAircraftParts ? xplaneAircraft.getInterpolatedParts(currentTimestamp, setup, partsStatus, logInterpolationAndParts) : CAircraftParts::guessedParts(interpolatedSituation, xplaneAircraft.isVtol(), xplaneAircraft.getEngineCount()); + CPartsStatus partsStatus; + const CAircraftParts parts = xplaneAircraft.getInterpolatedOrGuessedParts(currentTimestamp, setup, partsStatus, logInterpolationAndParts); if (interpolatorStatus.hasValidSituation()) { @@ -727,10 +726,7 @@ namespace BlackSimPlugin << interpolatorStatus.toQString(); } - if (useAircraftParts) - { - this->updateRemoteAircraftParts(xplaneAircraft, parts, partsStatus); - } + this->updateRemoteAircraftParts(xplaneAircraft, parts, partsStatus); } // all callsigns const qint64 dt = QDateTime::currentMSecsSinceEpoch() - currentTimestamp; diff --git a/src/plugins/simulator/xplane/xplanempaircraft.cpp b/src/plugins/simulator/xplane/xplanempaircraft.cpp index 15c888887..ee06991dc 100644 --- a/src/plugins/simulator/xplane/xplanempaircraft.cpp +++ b/src/plugins/simulator/xplane/xplanempaircraft.cpp @@ -78,6 +78,15 @@ namespace BlackSimPlugin return m_interpolator->getInterpolatedParts(currentTimeSinceEpoc, setup, partsStatus, log); } + CAircraftParts CXPlaneMPAircraft::getInterpolatedOrGuessedParts( + qint64 currentTimeSinceEpoc, + const CInterpolationAndRenderingSetupPerCallsign &setup, + CPartsStatus &partsStatus, bool log) const + { + Q_ASSERT(m_interpolator); + return m_interpolator->getInterpolatedOrGuessedParts(currentTimeSinceEpoc, setup, partsStatus, log); + } + CCallsignSet CXPlaneMPAircraftObjects::getAllCallsigns() const { return CCallsignSet(this->keys()); diff --git a/src/plugins/simulator/xplane/xplanempaircraft.h b/src/plugins/simulator/xplane/xplanempaircraft.h index 0efc48007..8fc958810 100644 --- a/src/plugins/simulator/xplane/xplanempaircraft.h +++ b/src/plugins/simulator/xplane/xplanempaircraft.h @@ -94,6 +94,12 @@ namespace BlackSimPlugin const BlackMisc::Simulation::CInterpolationAndRenderingSetupPerCallsign &setup, BlackMisc::Simulation::CPartsStatus &partsStatus, bool log) const; + //! \copydoc BlackMisc::Simulation::CInterpolator::getInterpolatedOrGuessedParts + BlackMisc::Aviation::CAircraftParts getInterpolatedOrGuessedParts( + qint64 currentTimeSinceEpoc, + const BlackMisc::Simulation::CInterpolationAndRenderingSetupPerCallsign &setup, + BlackMisc::Simulation::CPartsStatus &partsStatus, bool log) const; + //! Interpolator BlackMisc::Simulation::CInterpolatorMulti *getInterpolator() const { return m_interpolator.data(); }