diff --git a/src/blackcore/context/contextsimulatorimpl.cpp b/src/blackcore/context/contextsimulatorimpl.cpp index b26ee6176..d7f92f8bd 100644 --- a/src/blackcore/context/contextsimulatorimpl.cpp +++ b/src/blackcore/context/contextsimulatorimpl.cpp @@ -221,7 +221,7 @@ namespace BlackCore CAircraftModelList CContextSimulator::getModelSet() const { if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } - const CSimulatorInfo simulator = m_modelSetSimulator.get(); + const CSimulatorInfo simulator = this->getModelSetLoaderSimulator(); if (!simulator.isSingleSimulator()) { return CAircraftModelList(); } CCentralMultiSimulatorModelSetCachesProvider::modelCachesInstance().synchronizeCache(simulator); @@ -231,6 +231,18 @@ namespace BlackCore CSimulatorInfo CContextSimulator::getModelSetLoaderSimulator() const { if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } + if (m_simulatorPlugin.second) + { + if (m_simulatorPlugin.second->isConnected()) + { + if (m_simulatorPlugin.second->isEmulatedDriver()) + { + // specialized version returning the "emulated info" + return this->getSimulatorPluginInfo().getSimulatorInfo(); + } + return m_simulatorPlugin.first.getSimulatorInfo(); + } + } return m_modelSetSimulator.get(); } @@ -238,7 +250,7 @@ namespace BlackCore { Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } - if (this->isSimulatorAvailable()) { return; } + if (this->isSimulatorAvailable()) { return; } // if a plugin is loaded, do ignore this m_modelSetSimulator.set(simulator); const CAircraftModelList models = this->getModelSet(); // cache synced m_aircraftMatcher.setModelSet(models, simulator, false); diff --git a/src/plugins/simulator/emulated/simulatoremulated.cpp b/src/plugins/simulator/emulated/simulatoremulated.cpp index 4c550b7a7..b368bbcbe 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.cpp +++ b/src/plugins/simulator/emulated/simulatoremulated.cpp @@ -211,6 +211,11 @@ namespace BlackSimPlugin this->emitSimulatorCombinedStatus(); } + CSimulatorInfo CSimulatorEmulated::getEmulatedSimulator() const + { + return m_pluginSettings.get().getEmulatedSimulator(); + } + bool CSimulatorEmulated::changeInternalCom(const CSimulatedAircraft &aircraft) { bool changed = false; diff --git a/src/plugins/simulator/emulated/simulatoremulated.h b/src/plugins/simulator/emulated/simulatoremulated.h index 2ec8abfbf..1e560a43c 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.h +++ b/src/plugins/simulator/emulated/simulatoremulated.h @@ -90,6 +90,9 @@ namespace BlackSimPlugin //! UI setter void setCombinedStatus(bool connected, bool simulating, bool paused); + //! The emulated simulated simulator + BlackMisc::Simulation::CSimulatorInfo getEmulatedSimulator() const; + //! Internal own aircraft //! \remark normally used by corresponding BlackSimPlugin::Emulated::CSimulatorEmulatedMonitorDialog const BlackMisc::Simulation::CSimulatedAircraft &getInternalOwnAircraft() const { return m_myAircraft; }