diff --git a/src/blackcore/context/contextnetwork.h b/src/blackcore/context/contextnetwork.h index f4bdcad8c..5d66a57c0 100644 --- a/src/blackcore/context/contextnetwork.h +++ b/src/blackcore/context/contextnetwork.h @@ -172,10 +172,10 @@ namespace BlackCore virtual void requestAtcBookingsUpdate() const = 0; //! The ATC list with online ATC controllers - virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline() const = 0; + virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const = 0; //! ATC list, with booked controllers - virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked() const = 0; + virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const = 0; //! Aircraft list virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const = 0; diff --git a/src/blackcore/context/contextnetworkempty.h b/src/blackcore/context/contextnetworkempty.h index e7f6d24ab..5d3e22575 100644 --- a/src/blackcore/context/contextnetworkempty.h +++ b/src/blackcore/context/contextnetworkempty.h @@ -37,15 +37,17 @@ namespace BlackCore } //! \copydoc IContextNetwork::getAtcStationsOnline() - virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline() const override + virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override { + Q_UNUSED(recalculateDistance); logEmptyContextWarning(Q_FUNC_INFO); return BlackMisc::Aviation::CAtcStationList(); } //! \copydoc IContextNetwork::getAtcStationsBooked() - virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked() const override + virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override { + Q_UNUSED(recalculateDistance); logEmptyContextWarning(Q_FUNC_INFO); return BlackMisc::Aviation::CAtcStationList(); } diff --git a/src/blackcore/context/contextnetworkimpl.cpp b/src/blackcore/context/contextnetworkimpl.cpp index debb19291..ad4164333 100644 --- a/src/blackcore/context/contextnetworkimpl.cpp +++ b/src/blackcore/context/contextnetworkimpl.cpp @@ -384,7 +384,7 @@ namespace BlackCore if (parser.countParts() < 2) { return false; } const bool watchdog = parser.toBool(1, true); - m_airspace->enableWatchdog(watchdog); + m_airspace->enableAnalyzer(watchdog); CLogMessage(this).info("Enabled watchdog: %1") << boolToYesNo(watchdog); } else if (parser.matchesCommand(".reinit", ".reinitialize")) @@ -595,16 +595,22 @@ namespace BlackCore return this->getRuntime()->getCContextOwnAircraft()->getOwnAircraft(); } - CAtcStationList CContextNetwork::getAtcStationsOnline() const + CAtcStationList CContextNetwork::getAtcStationsOnline(bool recalculateDistance) const { if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } - return m_airspace->getAtcStationsOnline(); + CAtcStationList stations = m_airspace->getAtcStationsOnline(); + if (!recalculateDistance || !this->getIContextOwnAircraft()) { return stations; } + stations.calculcateAndUpdateRelativeDistanceAndBearing(this->getIContextOwnAircraft()->getOwnAircraftSituation()); + return stations; } - CAtcStationList CContextNetwork::getAtcStationsBooked() const + CAtcStationList CContextNetwork::getAtcStationsBooked(bool recalculateDistance) const { if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } - return m_airspace->getAtcStationsBooked(); + CAtcStationList stations = m_airspace->getAtcStationsBooked(); + if (!recalculateDistance || !this->getIContextOwnAircraft()) { return stations; } + stations.calculcateAndUpdateRelativeDistanceAndBearing(this->getIContextOwnAircraft()->getOwnAircraftSituation()); + return stations; } CSimulatedAircraftList CContextNetwork::getAircraftInRange() const diff --git a/src/blackcore/context/contextnetworkimpl.h b/src/blackcore/context/contextnetworkimpl.h index 3456d009d..815ebba9a 100644 --- a/src/blackcore/context/contextnetworkimpl.h +++ b/src/blackcore/context/contextnetworkimpl.h @@ -220,9 +220,9 @@ namespace BlackCore //! \publicsection //! @{ - virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked() const override; virtual void requestAtcBookingsUpdate() const override; - virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline() const override; + virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override; + virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override; virtual BlackMisc::Aviation::CAtcStation getOnlineStationForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual BlackMisc::CStatusMessage connectToNetwork(const BlackMisc::Network::CServer &server, BlackCore::INetwork::LoginMode mode) override; virtual BlackMisc::Network::CServer getConnectedServer() const override; diff --git a/src/blackcore/context/contextnetworkproxy.cpp b/src/blackcore/context/contextnetworkproxy.cpp index f9d314720..5eb3b9f0e 100644 --- a/src/blackcore/context/contextnetworkproxy.cpp +++ b/src/blackcore/context/contextnetworkproxy.cpp @@ -108,14 +108,14 @@ namespace BlackCore m_dBusInterface->callDBus(QLatin1String("requestAtcBookingsUpdate")); } - BlackMisc::Aviation::CAtcStationList CContextNetworkProxy::getAtcStationsOnline() const + BlackMisc::Aviation::CAtcStationList CContextNetworkProxy::getAtcStationsOnline(bool recalculateDistance) const { - return m_dBusInterface->callDBusRet(QLatin1String("getAtcStationsOnline")); + return m_dBusInterface->callDBusRet(QLatin1String("getAtcStationsOnline"), recalculateDistance); } - CAtcStationList CContextNetworkProxy::getAtcStationsBooked() const + CAtcStationList CContextNetworkProxy::getAtcStationsBooked(bool recalculateDistance) const { - return m_dBusInterface->callDBusRet(QLatin1String("getAtcStationsBooked")); + return m_dBusInterface->callDBusRet(QLatin1String("getAtcStationsBooked"), recalculateDistance); } CSimulatedAircraftList CContextNetworkProxy::getAircraftInRange() const diff --git a/src/blackcore/context/contextnetworkproxy.h b/src/blackcore/context/contextnetworkproxy.h index 9ff6f9e4d..3fe3689fe 100644 --- a/src/blackcore/context/contextnetworkproxy.h +++ b/src/blackcore/context/contextnetworkproxy.h @@ -66,7 +66,7 @@ namespace BlackCore public: //! Destructor - virtual ~CContextNetworkProxy() {} + virtual ~CContextNetworkProxy() override {} //! Unit test relay signals //! \private @@ -76,8 +76,8 @@ namespace BlackCore //! \name Interface overrides //! @{ virtual void requestAtcBookingsUpdate() const override; - virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline() const override; - virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked() const override; + virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override; + virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override; virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const override; virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const override; virtual int getAircraftInRangeCount() const override;