mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-26 10:45:37 +08:00
refs #865, FSX: use onGround from CAircraftSituation
This commit is contained in:
committed by
Mathew Sutcliffe
parent
336fda23c9
commit
7ddb69825a
@@ -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())
|
||||||
position.OnGround = onGround ? 1U : 0U;
|
{
|
||||||
|
const bool onGround = situation.isOnGround() == CAircraftSituation::OnGround;
|
||||||
|
position.OnGround = onGround ? 1U : 0U;
|
||||||
|
}
|
||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user