refs #865, FSX: use onGround from CAircraftSituation

This commit is contained in:
Klaus Basan
2017-01-22 19:52:38 +01:00
committed by Mathew Sutcliffe
parent 336fda23c9
commit 7ddb69825a
2 changed files with 10 additions and 6 deletions

View File

@@ -157,7 +157,7 @@ namespace BlackSimPlugin
setInitialAircraftSituation(addedAircraft); // set interpolated data/parts if available setInitialAircraftSituation(addedAircraft); // set interpolated data/parts if available
const DWORD requestId = obtainRequestId(); const DWORD requestId = obtainRequestId();
SIMCONNECT_DATA_INITPOSITION initialPosition = aircraftSituationToFsxPosition(addedAircraft.getSituation(), CInterpolationHints()); SIMCONNECT_DATA_INITPOSITION initialPosition = aircraftSituationToFsxPosition(addedAircraft.getSituation());
const QString modelString(addedAircraft.getModelString()); const QString modelString(addedAircraft.getModelString());
if (m_interpolationRenderingSetup.showSimulatorDebugMessages()) if (m_interpolationRenderingSetup.showSimulatorDebugMessages())
@@ -881,7 +881,7 @@ namespace BlackSimPlugin
if (interpolatorStatus.allTrue()) if (interpolatorStatus.allTrue())
{ {
// update situation // update situation
SIMCONNECT_DATA_INITPOSITION position = aircraftSituationToFsxPosition(interpolatedSituation, hints); SIMCONNECT_DATA_INITPOSITION position = this->aircraftSituationToFsxPosition(interpolatedSituation);
HRESULT hr = S_OK; HRESULT hr = S_OK;
hr += SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDefinitions::DataRemoteAircraftPosition, hr += SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDefinitions::DataRemoteAircraftPosition,
static_cast<SIMCONNECT_OBJECT_ID>(simObj.getObjectId()), 0, 0, static_cast<SIMCONNECT_OBJECT_ID>(simObj.getObjectId()), 0, 0,
@@ -995,7 +995,7 @@ namespace BlackSimPlugin
return hr == S_OK; return hr == S_OK;
} }
SIMCONNECT_DATA_INITPOSITION CSimulatorFsx::aircraftSituationToFsxPosition(const CAircraftSituation &situation, const CInterpolationHints &hints) SIMCONNECT_DATA_INITPOSITION CSimulatorFsx::aircraftSituationToFsxPosition(const CAircraftSituation &situation)
{ {
SIMCONNECT_DATA_INITPOSITION position; SIMCONNECT_DATA_INITPOSITION position;
position.Latitude = situation.latitude().value(CAngleUnit::deg()); position.Latitude = situation.latitude().value(CAngleUnit::deg());
@@ -1007,9 +1007,13 @@ namespace BlackSimPlugin
// MSFS has inverted pitch and bank angles // MSFS has inverted pitch and bank angles
position.Pitch = -situation.getPitch().value(CAngleUnit::deg()); position.Pitch = -situation.getPitch().value(CAngleUnit::deg());
position.Bank = -situation.getBank().value(CAngleUnit::deg()); position.Bank = -situation.getBank().value(CAngleUnit::deg());
position.OnGround = 0U;
const bool onGround = situation.isOnGroundGuessed(hints.getCGAboveGround()); if (situation.isOnGroundInfoAvailable())
{
const bool onGround = situation.isOnGround() == CAircraftSituation::OnGround;
position.OnGround = onGround ? 1U : 0U; position.OnGround = onGround ? 1U : 0U;
}
return position; return position;
} }

View File

@@ -196,7 +196,7 @@ namespace BlackSimPlugin
const CSimConnectObjects &getSimConnectObjects() const { return m_simConnectObjects; } const CSimConnectObjects &getSimConnectObjects() const { return m_simConnectObjects; }
//! Format conversion //! Format conversion
SIMCONNECT_DATA_INITPOSITION aircraftSituationToFsxPosition(const BlackMisc::Aviation::CAircraftSituation &situation, const BlackMisc::Simulation::CInterpolationHints &hints); SIMCONNECT_DATA_INITPOSITION aircraftSituationToFsxPosition(const BlackMisc::Aviation::CAircraftSituation &situation);
//! Sync time with user's computer //! Sync time with user's computer
void synchronizeTime(const BlackMisc::PhysicalQuantities::CTime &zuluTimeSim, const BlackMisc::PhysicalQuantities::CTime &localTimeSim); void synchronizeTime(const BlackMisc::PhysicalQuantities::CTime &zuluTimeSim, const BlackMisc::PhysicalQuantities::CTime &localTimeSim);