diff --git a/src/blackmisc/simulation/interpolator.cpp b/src/blackmisc/simulation/interpolator.cpp index 716dfe032..c774df76e 100644 --- a/src/blackmisc/simulation/interpolator.cpp +++ b/src/blackmisc/simulation/interpolator.cpp @@ -321,9 +321,9 @@ namespace BlackMisc this->m_interpolationLogs.clear(); } - void IInterpolator::setGroundElevationFromHint(const CInterpolationHints &hints, CAircraftSituation &situation) + void IInterpolator::setGroundElevationFromHint(const CInterpolationHints &hints, CAircraftSituation &situation, bool override) { - if (situation.hasGroundElevation()) { return; } + if (!override && situation.hasGroundElevation()) { return; } const CAltitude elevation = hints.getGroundElevation(situation); if (elevation.isNull()) { return; } situation.setGroundElevation(elevation); diff --git a/src/blackmisc/simulation/interpolator.h b/src/blackmisc/simulation/interpolator.h index 551d0c36c..b51056f70 100644 --- a/src/blackmisc/simulation/interpolator.h +++ b/src/blackmisc/simulation/interpolator.h @@ -193,8 +193,8 @@ namespace BlackMisc //! \threadsafe static QString getHtmlPartsLog(const QList &logs); - //! Set the ground elevation from hints, if possible and not already set - static void setGroundElevationFromHint(const CInterpolationHints &hints, BlackMisc::Aviation::CAircraftSituation &situation); + //! Set the ground elevation from hints + static void setGroundElevationFromHint(const CInterpolationHints &hints, BlackMisc::Aviation::CAircraftSituation &situation, bool override = true); //! Set on ground flag static void setGroundFlagFromInterpolator(const CInterpolationHints &hints, double groundFactor, BlackMisc::Aviation::CAircraftSituation &situation);