From 2417e4599d5fecf0cd19f528435b9a0196745344 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Sat, 27 Sep 2014 23:16:52 +0200 Subject: [PATCH] refs #331 Add size methods to all FS9 packets Not all methods could be static, hence they are all non-static for consistency. --- src/plugins/simulator/fs9/fs9_client.cpp | 6 +++--- src/plugins/simulator/fs9/multiplayer_packets.h | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/plugins/simulator/fs9/fs9_client.cpp b/src/plugins/simulator/fs9/fs9_client.cpp index 7d952c818..7eb795ffe 100644 --- a/src/plugins/simulator/fs9/fs9_client.cpp +++ b/src/plugins/simulator/fs9/fs9_client.cpp @@ -51,7 +51,7 @@ namespace BlackSimPlugin mpChatText.chat_data = textMessage; QByteArray message; MultiPlayerPacketParser::writeType(message, CFs9Sdk::MPCHAT_PACKET_ID_CHAT_TEXT_SEND); - MultiPlayerPacketParser::writeSize(message, mpChatText.chat_data.size() + 1); + MultiPlayerPacketParser::writeSize(message, mpChatText.size()); message = MultiPlayerPacketParser::writeMessage(message, mpChatText); sendMessage(message); } @@ -103,7 +103,7 @@ namespace BlackSimPlugin QByteArray positionMessage; MultiPlayerPacketParser::writeType(positionMessage, CFs9Sdk::MULTIPLAYER_PACKET_ID_POSITION_VELOCITY); - MultiPlayerPacketParser::writeSize(positionMessage, 52); + MultiPlayerPacketParser::writeSize(positionMessage, positionVelocity.size()); positioneVelocity.packet_index = m_packetIndex; ++m_packetIndex; positionMessage = MultiPlayerPacketParser::writeMessage(positionMessage, positioneVelocity); @@ -252,7 +252,7 @@ namespace BlackSimPlugin mpChangePlayerPlane.aircraft_name = "Boeing 737-400"; QByteArray message; MultiPlayerPacketParser::writeType(message, CFs9Sdk::MULTIPLAYER_PACKET_ID_CHANGE_PLAYER_PLANE); - MultiPlayerPacketParser::writeSize(message, mpChangePlayerPlane.aircraft_name.size() + 1); + MultiPlayerPacketParser::writeSize(message, mpChangePlayerPlane.size()); message = MultiPlayerPacketParser::writeMessage(message, mpChangePlayerPlane); sendMessage(message); diff --git a/src/plugins/simulator/fs9/multiplayer_packets.h b/src/plugins/simulator/fs9/multiplayer_packets.h index 992c58333..ced86aeef 100644 --- a/src/plugins/simulator/fs9/multiplayer_packets.h +++ b/src/plugins/simulator/fs9/multiplayer_packets.h @@ -53,6 +53,7 @@ namespace BlackSimPlugin engine_1, engine_2, unknown25, unknown26, unknown27); } + //! Struct size qint32 size() { return 28; } }; @@ -70,6 +71,9 @@ namespace BlackSimPlugin { return std::tie(engine, aircraft_name); } + + //! Struct size + qint32 size() { return sizeof(CFs9Sdk::EngineType) + aircraft_name.size() + 1; } }; //! Multiplayer packet - chat text @@ -86,6 +90,9 @@ namespace BlackSimPlugin { return std::tie(chat_data); } + + //! Struct size + qint32 size() { return chat_data.size() + 1; } }; //! Multiplayer packet - position and velocity @@ -116,6 +123,9 @@ namespace BlackSimPlugin reserved[0], reserved[1], reserved[2], reserved[3], pbh, lat_i, lon_hi, alt_i, lat_f, lon_lo, alt_f); } + + //! Struct size + qint32 size() { return 52; } }; } }