diff --git a/src/blackcore/airspacemonitor.cpp b/src/blackcore/airspacemonitor.cpp index 22f605112..ef479d827 100644 --- a/src/blackcore/airspacemonitor.cpp +++ b/src/blackcore/airspacemonitor.cpp @@ -938,7 +938,7 @@ namespace BlackCore else if (client.hasCapability(CClient::FsdWithAircraftConfig)) { const CAircraftPartsList parts = this->remoteAircraftParts(callsign); - if (!parts.isEmpty()) { correctedSituation.adjustGroundFlag(parts); } + if (!parts.isEmpty()) { correctedSituation.adjustGroundFlag(parts, true); } } } diff --git a/src/blackmisc/simulation/remoteaircraftprovider.cpp b/src/blackmisc/simulation/remoteaircraftprovider.cpp index 4fe52b99f..f2d319644 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.cpp +++ b/src/blackmisc/simulation/remoteaircraftprovider.cpp @@ -181,6 +181,12 @@ namespace BlackMisc situationList.push_frontKeepLatestFirstAdjustOffset(situation, IRemoteAircraftProvider::MaxSituationsPerCallsign); } + // unify all inbound ground information + if (situation.hasInboundGroundInformation()) + { + situationList.setOnGroundDetails(situation.getOnGroundDetails()); + } + // check sort order Q_ASSERT_X(situationList.isSortedAdjustedLatestFirst(), Q_FUNC_INFO, "wrong sort order"); Q_ASSERT_X(situationList.size() <= IRemoteAircraftProvider::MaxSituationsPerCallsign, Q_FUNC_INFO, "Wrong size"); diff --git a/tests/blackmisc/testinterpolatorparts.cpp b/tests/blackmisc/testinterpolatorparts.cpp index 7e4cd0200..83b5b505c 100644 --- a/tests/blackmisc/testinterpolatorparts.cpp +++ b/tests/blackmisc/testinterpolatorparts.cpp @@ -117,11 +117,11 @@ namespace BlackMiscTest } CAircraftSituation s0 = situations[0]; - s0.adjustGroundFlag(partsOnGround); + s0.adjustGroundFlag(partsOnGround, true); QVERIFY2(s0.getOnGround(), "Supposed to be on ground"); s0 = situations[0]; - s0.adjustGroundFlag(partsNotOnGround); + s0.adjustGroundFlag(partsNotOnGround, true); QVERIFY2(!s0.getOnGround(), "Supposed to be not on ground"); qint64 distanceMs = -1;