diff --git a/src/blackcore/simulator.cpp b/src/blackcore/simulator.cpp index e6106ea6f..8e7a5ba31 100644 --- a/src/blackcore/simulator.cpp +++ b/src/blackcore/simulator.cpp @@ -656,7 +656,8 @@ namespace BlackCore Q_ASSERT_X(compare.hasCallsign(), Q_FUNC_INFO, "Need callsign"); if (!m_lastSentSituations.contains(compare.getCallsign())) { return false; } if (compare.isNull()) { return false; } - return compare.equalPbhVectorAltitude(m_lastSentSituations.value(compare.getCallsign())); + return compare.equalPbhVectorAltitudeElevation(m_lastSentSituations.value(compare.getCallsign())); + // return compare.equalPbhVectorAltitude(m_lastSentSituations.value(compare.getCallsign())); } bool ISimulator::isEqualLastSent(const CAircraftParts &compare, const CCallsign &callsign) const diff --git a/src/blackmisc/aviation/aircraftsituation.cpp b/src/blackmisc/aviation/aircraftsituation.cpp index 966e641df..340e224a3 100644 --- a/src/blackmisc/aviation/aircraftsituation.cpp +++ b/src/blackmisc/aviation/aircraftsituation.cpp @@ -467,6 +467,13 @@ namespace BlackMisc return c == 0; } + bool CAircraftSituation::equalPbhVectorAltitudeElevation(const CAircraftSituation &other) const + { + if (!this->equalPbhVectorAltitude(other)) { return false; } + const int c = this->getGroundElevation().compare(other.getGroundElevation()); + return c == 0; + } + void CAircraftSituation::setNull() { m_position.setNull(); diff --git a/src/blackmisc/aviation/aircraftsituation.h b/src/blackmisc/aviation/aircraftsituation.h index 178537300..1958d0db2 100644 --- a/src/blackmisc/aviation/aircraftsituation.h +++ b/src/blackmisc/aviation/aircraftsituation.h @@ -190,6 +190,10 @@ namespace BlackMisc //! \sa Geo::ICoordinateGeodetic::equalNormalVectorDouble bool equalPbhVectorAltitude(const CAircraftSituation &other) const; + //! Equal PBH and vecto, plus altitude/elevation + //! \sa Geo::ICoordinateGeodetic::equalNormalVectorDouble + bool equalPbhVectorAltitudeElevation(const CAircraftSituation &other) const; + //! Set to null void setNull();