Ref T180, update situation of pending aircraft

This commit is contained in:
Klaus Basan
2017-11-06 22:09:39 +01:00
parent 46a7b67ae5
commit 6273892b84
3 changed files with 34 additions and 5 deletions

View File

@@ -149,6 +149,18 @@ namespace BlackMisc
return c; return c;
} }
int CSimulatedAircraftList::setAircraftSituation(const CCallsign &callsign, const CAircraftSituation &situation, bool onlyFirst)
{
int c = 0;
for (CSimulatedAircraft &aircraft : (*this))
{
if (aircraft.getCallsign() != callsign) { continue; }
aircraft.setSituation(situation);
if (onlyFirst) break;
}
return c;
}
int CSimulatedAircraftList::setGroundElevation(const CCallsign &callsign, const CAltitude &elevation, bool onlyFirst) int CSimulatedAircraftList::setGroundElevation(const CCallsign &callsign, const CAltitude &elevation, bool onlyFirst)
{ {
int c = 0; int c = 0;

View File

@@ -89,6 +89,9 @@ namespace BlackMisc
//! Set aircraft parts //! Set aircraft parts
int setAircraftParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftParts &parts, bool onlyFirst = true); int setAircraftParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftParts &parts, bool onlyFirst = true);
//! Set aircraft parts
int setAircraftSituation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftSituation &situation, bool onlyFirst = true);
//! Set ground elevation //! Set ground elevation
int setGroundElevation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAltitude &elevation, bool onlyFirst = true); int setGroundElevation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAltitude &elevation, bool onlyFirst = true);

View File

@@ -1485,15 +1485,29 @@ namespace BlackSimPlugin
void CSimulatorFsxCommon::onRemoteProviderAddedAircraftSituation(const CAircraftSituation &situation) void CSimulatorFsxCommon::onRemoteProviderAddedAircraftSituation(const CAircraftSituation &situation)
{ {
if (!m_simConnectObjects.contains(situation.getCallsign())) { return; } if (m_simConnectObjects.contains(situation.getCallsign()))
{
m_simConnectObjects[situation.getCallsign()].addAircraftSituation(situation); m_simConnectObjects[situation.getCallsign()].addAircraftSituation(situation);
} }
else
void CSimulatorFsxCommon::onRemoteProviderAddedAircraftParts(const BlackMisc::Aviation::CCallsign &callsign, const CAircraftParts &parts) {
// update if in pending
m_addPendingAircraft.setAircraftSituation(situation.getCallsign(), situation);
}
}
void CSimulatorFsxCommon::onRemoteProviderAddedAircraftParts(const CCallsign &callsign, const CAircraftParts &parts)
{
if (m_simConnectObjects.contains(callsign))
{ {
if (!m_simConnectObjects.contains(callsign)) { return; }
m_simConnectObjects[callsign].addAircraftParts(parts); m_simConnectObjects[callsign].addAircraftParts(parts);
} }
else
{
// update if in pending
m_addPendingAircraft.setAircraftParts(callsign, parts);
}
}
QString CSimulatorFsxCommon::fsxPositionToString(const SIMCONNECT_DATA_INITPOSITION &position) QString CSimulatorFsxCommon::fsxPositionToString(const SIMCONNECT_DATA_INITPOSITION &position)
{ {