diff --git a/src/plugins/simulator/fs9/fs9_client.cpp b/src/plugins/simulator/fs9/fs9_client.cpp index 263baee25..5935b534b 100644 --- a/src/plugins/simulator/fs9/fs9_client.cpp +++ b/src/plugins/simulator/fs9/fs9_client.cpp @@ -257,5 +257,31 @@ namespace BlackSimPlugin emit statusChanged(m_callsign, m_clientStatus); return hr; } + + void CFs9Client::sendMultiplayerPosition(const CAircraftSituation &situation) + { + MPPositionSlewMode positionSlewMode = aircraftSituationToFS9(situation); + + QByteArray positionMessage; + MultiPlayerPacketParser::writeType(positionMessage, CFs9Sdk::MULTIPLAYER_PACKET_ID_POSITION_SLEWMODE); + MultiPlayerPacketParser::writeSize(positionMessage, positionSlewMode.size()); + positionSlewMode.packet_index = m_packetIndex; + ++m_packetIndex; + positionMessage = MultiPlayerPacketParser::writeMessage(positionMessage, positionSlewMode); + + sendMessage(positionMessage); + } + + void CFs9Client::sendMultiplayerParamaters() + { + QByteArray paramMessage; + MPParam param; + MultiPlayerPacketParser::writeType(paramMessage, CFs9Sdk::MULTIPLAYER_PACKET_ID_PARAMS); + MultiPlayerPacketParser::writeSize(paramMessage, param.size()); + param.packet_index = m_packetIndex; + ++m_packetIndex; + paramMessage = MultiPlayerPacketParser::writeMessage(paramMessage, param); + sendMessage(paramMessage); + } } } diff --git a/src/plugins/simulator/fs9/fs9_client.h b/src/plugins/simulator/fs9/fs9_client.h index 3c77e6d40..e4abd8571 100644 --- a/src/plugins/simulator/fs9/fs9_client.h +++ b/src/plugins/simulator/fs9/fs9_client.h @@ -83,7 +83,9 @@ namespace BlackSimPlugin HRESULT closeConnection(); - BlackMisc::Aviation::CAircraftSituation m_lastAircraftSituation; + void sendMultiplayerPosition(const BlackMisc::Aviation::CAircraftSituation &situation); + void sendMultiplayerParamaters(); + BlackMisc::PhysicalQuantities::CTime m_updateInterval; BlackCore::IInterpolator *m_interpolator = nullptr; int m_timerId = 0;