diff --git a/src/plugins/simulator/emulated/simulatoremulated.cpp b/src/plugins/simulator/emulated/simulatoremulated.cpp index fa1180e6f..a59058560 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.cpp +++ b/src/plugins/simulator/emulated/simulatoremulated.cpp @@ -424,7 +424,7 @@ namespace BlackSimPlugin CPartsStatus statusParts; Q_ASSERT_X(im, Q_FUNC_INFO, "interpolator missing"); const CAircraftSituation s = im->getInterpolatedSituation(now, setup, statusInterpolation); - const CAircraftParts p = im->getInterpolatedParts(now, setup, statusParts, log); + const CAircraftParts p = im->getInterpolatedOrGuessedParts(now, setup, statusParts, log); m_countInterpolatedParts++; m_countInterpolatedSituations++; Q_UNUSED(s); diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index 97b444892..849fb4675 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -1108,18 +1108,20 @@ namespace BlackSimPlugin Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "missing callsign"); Q_ASSERT_X(simObject.hasValidRequestAndObjectId(), Q_FUNC_INFO, "Missing ids"); - // fetch parts + // setup const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupPerCallsignOrDefault(callsign); const bool useAircraftParts = setup.isAircraftPartsEnabled() && aircraftWithParts.contains(callsign); const bool logInterpolationAndParts = setup.logInterpolation(); const bool sendGround = setup.sendGndFlagToSimulator(); CPartsStatus partsStatus(useAircraftParts); - const CAircraftParts parts = useAircraftParts ? simObject.getInterpolatedParts(currentTimestamp, setup, partsStatus, logInterpolationAndParts) : CAircraftParts(); - // get interpolated situation + // Interpolated situation CInterpolationStatus interpolatorStatus; const CAircraftSituation interpolatedSituation = simObject.getInterpolatedSituation(currentTimestamp, setup, interpolatorStatus); + // Interpolated parts + const CAircraftParts parts = useAircraftParts ? simObject.getInterpolatedOrGuessedParts(currentTimestamp, setup, partsStatus, logInterpolationAndParts) : CAircraftParts::guessedParts(interpolatedSituation, simObject.isVtol(), simObject.getEngineCount()); + if (interpolatorStatus.hasValidSituation()) { // update situation @@ -1152,14 +1154,6 @@ namespace BlackSimPlugin { this->updateRemoteAircraftParts(simObject, parts, partsStatus); } - else - { - // guess on position, but not every frame - if (m_interpolationRequest % GuessRemoteAircraftPartsCycle == 0) - { - this->guessAndUpdateRemoteAircraftParts(simObject, interpolatedSituation, interpolatorStatus); - } - } } // all callsigns const qint64 dt = QDateTime::currentMSecsSinceEpoch() - currentTimestamp; @@ -1168,16 +1162,6 @@ namespace BlackSimPlugin m_statsUpdateAircraftTimeAvgMs = m_statsUpdateAircraftTimeTotalMs / m_statsUpdateAircraftCountMs; } - bool CSimulatorFsxCommon::guessAndUpdateRemoteAircraftParts(const CSimConnectObject &simObj, const CAircraftSituation &interpolatedSituation, const CInterpolationStatus &interpolationStatus) - { - if (!simObj.hasValidRequestAndObjectId()) { return false; } - if (!interpolationStatus.isInterpolated()) { return false; } - - const CAircraftParts parts = CAircraftParts::guessedParts(interpolatedSituation, simObj.isVtol(), 4); - DataDefinitionRemoteAircraftPartsWithoutLights ddRemoteAircraftPartsWithoutLights(parts); - return this->sendRemoteAircraftPartsToSimulator(simObj, ddRemoteAircraftPartsWithoutLights, parts.getAdjustedLights()); - } - bool CSimulatorFsxCommon::updateRemoteAircraftParts(const CSimConnectObject &simObj, const CAircraftParts &parts, const CPartsStatus &partsStatus) { if (!simObj.hasValidRequestAndObjectId()) { return false; } diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h index 73b0725bc..f0546cfbc 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h @@ -244,10 +244,6 @@ namespace BlackSimPlugin bool updateRemoteAircraftParts(const CSimConnectObject &simObj, const BlackMisc::Aviation::CAircraftParts &parts, const BlackMisc::Simulation::CPartsStatus &partsStatus); - //! Update remote aircraft parts by guessing (send to FSX) - bool guessAndUpdateRemoteAircraftParts(const CSimConnectObject &simObject, - const BlackMisc::Aviation::CAircraftSituation &interpolatedSituation, const BlackMisc::Simulation::CInterpolationStatus &interpolationStatus); - //! Send parts to simulator bool sendRemoteAircraftPartsToSimulator(const CSimConnectObject &simObject, DataDefinitionRemoteAircraftPartsWithoutLights &ddRemoteAircraftParts, const BlackMisc::Aviation::CAircraftLights &lights);