diff --git a/src/plugins/simulator/emulated/simulatoremulated.cpp b/src/plugins/simulator/emulated/simulatoremulated.cpp index 86806b22e..a86be3249 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.cpp +++ b/src/plugins/simulator/emulated/simulatoremulated.cpp @@ -337,8 +337,7 @@ namespace BlackSimPlugin calculateGreatCircleDistance(m_lastWeatherPosition, currentPosition).value(CLengthUnit::mi()) > 20) { m_lastWeatherPosition = currentPosition; - const auto weatherGrid = CWeatherGrid { { "GLOB", currentPosition } }; - requestWeatherGrid(weatherGrid, { this, &CSimulatorEmulated::injectWeatherGrid }); + requestWeatherGrid(currentPosition, this->identifier()); } } } @@ -579,15 +578,15 @@ namespace BlackSimPlugin this->finishUpdateRemoteAircraftAndSetStatistics(now); } - void CSimulatorEmulated::requestWeather() + bool CSimulatorEmulated::requestWeather() { - if (!m_isWeatherActivated) { return; } + if (!m_isWeatherActivated) { return false; } const CWeatherScenario s = m_weatherScenarioSettings.get(); this->getOwnAircraftPosition(); const CCoordinateGeodetic currentPosition = this->getOwnAircraftPosition(); - const auto weatherGrid = CWeatherGrid { { "GLOB", currentPosition } }; - this->requestWeatherGrid(weatherGrid, { this, &CSimulatorEmulated::injectWeatherGrid }); + this->requestWeatherGrid(currentPosition, this->identifier()); + return true; } CSimulatorEmulatedListener::CSimulatorEmulatedListener(const CSimulatorPluginInfo &info) diff --git a/src/plugins/simulator/emulated/simulatoremulated.h b/src/plugins/simulator/emulated/simulatoremulated.h index dec3b72e0..b4ba46233 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.h +++ b/src/plugins/simulator/emulated/simulatoremulated.h @@ -74,13 +74,13 @@ namespace BlackSimPlugin virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual bool testSendSituationAndParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftSituation &situation, const BlackMisc::Aviation::CAircraftParts &parts) override; virtual bool requestElevation(const BlackMisc::Geo::ICoordinateGeodetic &reference, const BlackMisc::Aviation::CCallsign &callsign) override; + virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override; // ----- functions just logged ------- virtual void highlightAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraftToHighlight, bool enableHighlight, const BlackMisc::PhysicalQuantities::CTime &displayTime) override; virtual bool logicallyAddRemoteAircraft(const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraft) override; virtual bool logicallyRemoveRemoteAircraft(const BlackMisc::Aviation::CCallsign &callsign) override; virtual int physicallyRemoveMultipleRemoteAircraft(const BlackMisc::Aviation::CCallsignSet &callsigns) override; - virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override; // functions logged and used //! \addtogroup swiftdotcommands @@ -171,7 +171,7 @@ namespace BlackSimPlugin void updateRemoteAircraft(); //! Request weather - void requestWeather(); + bool requestWeather(); bool m_log = false; //!< from settings bool m_paused = false; diff --git a/src/plugins/simulator/fs9/simulatorfs9.cpp b/src/plugins/simulator/fs9/simulatorfs9.cpp index 457176ea1..af53acfe6 100644 --- a/src/plugins/simulator/fs9/simulatorfs9.cpp +++ b/src/plugins/simulator/fs9/simulatorfs9.cpp @@ -406,8 +406,7 @@ namespace BlackSimPlugin calculateGreatCircleDistance(m_lastWeatherPosition, aircraftSituation).value(CLengthUnit::mi()) > 20) { m_lastWeatherPosition = aircraftSituation; - const auto weatherGrid = CWeatherGrid { { "GLOB", aircraftSituation } }; - requestWeatherGrid(weatherGrid, { this, &CSimulatorFs9::injectWeatherGrid }); + requestWeatherGrid(aircraftSituation, this->identifier()); } } } // weather diff --git a/src/plugins/simulator/fs9/simulatorfs9.h b/src/plugins/simulator/fs9/simulatorfs9.h index 8ecd696f5..d237a62c2 100644 --- a/src/plugins/simulator/fs9/simulatorfs9.h +++ b/src/plugins/simulator/fs9/simulatorfs9.h @@ -65,6 +65,7 @@ namespace BlackSimPlugin virtual void displayTextMessage(const BlackMisc::Network::CTextMessage &message) const override; virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual bool testSendSituationAndParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftSituation &situation, const BlackMisc::Aviation::CAircraftParts &parts) override; + virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override; //! \@} protected: @@ -79,11 +80,6 @@ namespace BlackSimPlugin //! \sa CSimulatorFsxCommon::dispatch virtual void timerEvent(QTimerEvent *event) override; - //! \name Base class overrides - //! @{ - virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override; - //! @} - // remark: in FS9 there is no central updateRemoteAircraft() function, each FS9 client updates itself // updateRemoteAircraft() diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index 27fa08a0b..cd5bbdba7 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -779,8 +779,7 @@ namespace BlackSimPlugin calculateGreatCircleDistance(m_lastWeatherPosition, currentPosition).value(CLengthUnit::mi()) > 20) { m_lastWeatherPosition = currentPosition; - const auto weatherGrid = CWeatherGrid { { "GLOB", currentPosition } }; - requestWeatherGrid(weatherGrid, { this, &CSimulatorFsxCommon::injectWeatherGrid }); + requestWeatherGrid(currentPosition, this->identifier()); } } } diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h index 35136dcd0..ba05620b3 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h @@ -156,6 +156,7 @@ namespace BlackSimPlugin virtual void setFlightNetworkConnected(bool connected) override; virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual bool testSendSituationAndParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftSituation &situation, const BlackMisc::Aviation::CAircraftParts &parts) override; + virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override; //! @} //! \copydoc BlackMisc::Simulation::ISimulationEnvironmentProvider::requestElevation @@ -232,7 +233,6 @@ namespace BlackSimPlugin //! @{ virtual void reset() override; virtual void initSimulatorInternals() override; - virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override; virtual void clearAllRemoteAircraftData() override; virtual void onOwnModelChanged(const BlackMisc::Simulation::CAircraftModel &newModel) override; //! @} diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index c697a7754..0e6c0e661 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -370,8 +370,7 @@ namespace BlackSimPlugin calculateGreatCircleDistance(m_lastWeatherPosition, situation).value(CLengthUnit::mi()) > 20) { m_lastWeatherPosition = situation; - const auto weatherGrid = CWeatherGrid { { "GLOB", situation } }; - this->requestWeatherGrid(weatherGrid, { this, &CSimulatorXPlane::injectWeatherGrid }); + requestWeatherGrid(situation, this->identifier()); } } } // weather diff --git a/src/plugins/simulator/xplane/simulatorxplane.h b/src/plugins/simulator/xplane/simulatorxplane.h index f75a10f53..92654b26f 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.h +++ b/src/plugins/simulator/xplane/simulatorxplane.h @@ -144,6 +144,7 @@ namespace BlackSimPlugin virtual void resetAircraftStatistics() override; virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual bool testSendSituationAndParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftSituation &situation, const BlackMisc::Aviation::CAircraftParts &parts) override; + virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override; virtual void callbackReceivedRequestedElevation(const BlackMisc::Geo::CElevationPlane &plane, const BlackMisc::Aviation::CCallsign &callsign, bool isWater) override; //! @} @@ -158,7 +159,6 @@ namespace BlackSimPlugin virtual bool physicallyRemoveRemoteAircraft(const BlackMisc::Aviation::CCallsign &callsign) override; virtual int physicallyRemoveAllRemoteAircraft() override; virtual void clearAllRemoteAircraftData() override; - virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override; virtual bool isPaused() const override { //! \todo XP: provide correct pause state