diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 28ea99528..7c14c6b9c 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -768,6 +768,7 @@ namespace BlackSimPlugin PlanesPositions planesPositions; PlanesSurfaces planesSurfaces; + PlanesTransponders planesTransponders; int aircraftNumber = 0; for (const CXPlaneMPAircraft &xplaneAircraft : xplaneAircraftList) @@ -775,6 +776,12 @@ namespace BlackSimPlugin const CCallsign callsign(xplaneAircraft.getCallsign()); Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "missing callsign"); + planesTransponders.callsigns.push_back(callsign.asString()); + planesTransponders.codes.push_back(xplaneAircraft.getAircraft().getTransponderCode()); + CTransponder::TransponderMode transponderMode = xplaneAircraft.getAircraft().getTransponderMode(); + planesTransponders.idents.push_back(transponderMode == CTransponder::StateIdent); + planesTransponders.modeCs.push_back(transponderMode == CTransponder::ModeC); + // setup const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupConsolidated(callsign); @@ -830,6 +837,11 @@ namespace BlackSimPlugin } // all callsigns + if (!planesTransponders.isEmpty()) + { + m_trafficProxy->setPlanesTransponders(planesTransponders); + } + if (!planesPositions.isEmpty()) { if (CBuildConfig::isLocalDeveloperDebugBuild()) diff --git a/src/plugins/simulator/xplane/xswiftbustrafficproxy.h b/src/plugins/simulator/xplane/xswiftbustrafficproxy.h index 50377e8a6..58e8a428a 100644 --- a/src/plugins/simulator/xplane/xswiftbustrafficproxy.h +++ b/src/plugins/simulator/xplane/xswiftbustrafficproxy.h @@ -93,10 +93,10 @@ namespace BlackSimPlugin //! Is empty? bool isEmpty() const { return callsigns.isEmpty(); } - QStringList callsigns; - QList codes; - QList modeCs; - QList idents; + QStringList callsigns; //!< List of callsigns + QList codes; //!< List of transponder codes + QList modeCs; //!< List of active mode C's + QList idents; //!< List of active idents }; /*!