[FS9] Preparation for sending parts

* function sendMultiplayerPositionAndPartsFromInterpolation sending parts and positions
* bogus function MPParam aircraftPartsToFS9 (needs to be implemented)
* changed to sendMultiplayerParts(const CAircraftParts &parts) - like for positions
* fixed some smaller bugs
This commit is contained in:
Klaus Basan
2020-04-13 15:53:45 +02:00
committed by Mat Sutcliffe
parent e91b88691a
commit 8f5e24fe0b
2 changed files with 18 additions and 16 deletions

View File

@@ -194,9 +194,7 @@ namespace BlackSimPlugin
void CFs9Client::timerEvent(QTimerEvent *event) void CFs9Client::timerEvent(QTimerEvent *event)
{ {
Q_UNUSED(event) Q_UNUSED(event)
sendMultiplayerPositionAndPartsFromInterpolation();
sendMultiplayerPosition();
sendMultiplayerParamaters();
} }
HRESULT CFs9Client::enumDirectPlayHosts() HRESULT CFs9Client::enumDirectPlayHosts()
@@ -325,7 +323,7 @@ namespace BlackSimPlugin
return hr; return hr;
} }
void CFs9Client::sendMultiplayerPosition() void CFs9Client::sendMultiplayerPositionAndPartsFromInterpolation()
{ {
// remark: in FS9 there is no central updateRemoteAircraft() function, each FS9 client updates itself // remark: in FS9 there is no central updateRemoteAircraft() function, each FS9 client updates itself
if (m_clientStatus == Disconnected) { return; } if (m_clientStatus == Disconnected) { return; }
@@ -336,6 +334,7 @@ namespace BlackSimPlugin
// Test only for successful position. FS9 requires constant positions // Test only for successful position. FS9 requires constant positions
if (!result.getInterpolationStatus().hasValidSituation()) { return; } if (!result.getInterpolationStatus().hasValidSituation()) { return; }
this->sendMultiplayerPosition(result.getInterpolatedSituation()); this->sendMultiplayerPosition(result.getInterpolatedSituation());
this->sendMultiplayerParts(result.getInterpolatedParts());
} }
void CFs9Client::sendMultiplayerPosition(const CAircraftSituation &situation) void CFs9Client::sendMultiplayerPosition(const CAircraftSituation &situation)
@@ -352,15 +351,20 @@ namespace BlackSimPlugin
sendMessage(positionMessage); sendMessage(positionMessage);
} }
MPParam aircraftPartsToFS9(const CAircraftParts &parts)
{
//! todo THAT PART IS MISSING HERE, see https://discordapp.com/channels/539048679160676382/539925070550794240/699234172849618975
Q_UNUSED(parts)
MPParam param;
return param;
}
void CFs9Client::sendMultiplayerParts(const CAircraftParts &parts) void CFs9Client::sendMultiplayerParts(const CAircraftParts &parts)
{ {
Q_UNUSED(parts) Q_UNUSED(parts)
}
void CFs9Client::sendMultiplayerParamaters()
{
QByteArray paramMessage; QByteArray paramMessage;
MPParam param; MPParam param = aircraftPartsToFS9(parts);
MultiPlayerPacketParser::writeType(paramMessage, CFs9Sdk::MULTIPLAYER_PACKET_ID_PARAMS); MultiPlayerPacketParser::writeType(paramMessage, CFs9Sdk::MULTIPLAYER_PACKET_ID_PARAMS);
MultiPlayerPacketParser::writeSize(paramMessage, param.size()); MultiPlayerPacketParser::writeSize(paramMessage, param.size());
param.packet_index = m_packetIndex; param.packet_index = m_packetIndex;
@@ -397,12 +401,11 @@ namespace BlackSimPlugin
void CFs9Client::handleConnectionCompleted() void CFs9Client::handleConnectionCompleted()
{ {
CLogMessage(this).info(u"Callsign '%1' connected to session.") << m_callsign; CLogMessage(this).info(u"Callsign '%1' connected to session.") << m_callsign;
sendMultiplayerChangePlayerPlane();
sendMultiplayerPosition();
sendMultiplayerParamaters();
m_timerId = startTimer(m_updateInterval.valueInteger(CTimeUnit::ms()));
m_clientStatus = Connected; m_clientStatus = Connected; // will not send position in disconnected mode
sendMultiplayerChangePlayerPlane();
sendMultiplayerPositionAndPartsFromInterpolation();
emit statusChanged(m_remoteAircraft, m_clientStatus); emit statusChanged(m_remoteAircraft, m_clientStatus);
} }

View File

@@ -92,8 +92,7 @@ namespace BlackSimPlugin
//! Send functions //! Send functions
//! @{ //! @{
void sendMultiplayerPosition(); void sendMultiplayerPositionAndPartsFromInterpolation();
void sendMultiplayerParamaters();
void sendMultiplayerChangePlayerPlane(); void sendMultiplayerChangePlayerPlane();
//! @} //! @}