From 374be69d8a03ea509073529ef618ddad55e62185 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Sat, 27 Sep 2014 23:14:39 +0200 Subject: [PATCH] refs #331 Add FS9 animation param packet --- src/plugins/simulator/fs9/fs9.h | 37 +++++++++++++++++++ .../simulator/fs9/multiplayer_packets.h | 35 ++++++++++++++++++ src/plugins/simulator/fs9/simulator_fs9.cpp | 4 ++ 3 files changed, 76 insertions(+) diff --git a/src/plugins/simulator/fs9/fs9.h b/src/plugins/simulator/fs9/fs9.h index f404f6980..67720c231 100644 --- a/src/plugins/simulator/fs9/fs9.h +++ b/src/plugins/simulator/fs9/fs9.h @@ -85,6 +85,43 @@ namespace BlackSimPlugin quint32 data_size = 0; //!< Message size }; + /*! + * Multiplayer packet aircraft parameter + * + * Most of the data is still unknown and needs to be further + * reverse enginered. + * + * Data most likely to be part of it: + * \li Wing animation + * + * Max value for fully extended gear seems to be 0xA1 + */ + struct MULTIPLAYER_PACKET_PARAMS + { + quint32 application_time = 0; //!< Application time - ignored + quint32 packet_index = 0; //!< Packet index + quint8 unknown8 = 0; //!< Unknown data + quint8 unknown9 = 0; //!< Unknown data + quint8 flaps_left = 0xDF; //!< Flaps left + quint8 flaps_right = 0xDF; //!< Flaps right + quint8 unknown12 = 0; //!< Unknown data + quint8 unknown13 = 0; //!< Unknown data + quint8 unknown14 = 0xFF; //!< Unknown data + quint8 unknown15 = 0; //!< Unknown data + quint8 unknown16 = 0; //!< Unknown data + quint8 unknown17 = 0; //!< Unknown data + quint8 unknown18 = 0; //!< Unknown data + quint8 unknown19 = 0; //!< Unknown data + quint8 gear_center = 0xA1; //!< Gear center + quint8 gear_left = 0xA1; //!< Gear left + quint8 gear_right = 0xA1; //!< Gear right + quint8 engine_1 = 0xFF; //!< Engine 1 N1 in % + quint8 engine_2 = 0xFF; //!< Engine 2 N1 in % + quint8 unknown25 = 0; //!< Unknown data + quint8 unknown26 = 0; //!< Unknown data + quint8 unknown27 = 0; //!< Unknown data + }; + //! Multiplayer chat message struct MULTIPLAYER_PACKET_CHAT_TEXT { diff --git a/src/plugins/simulator/fs9/multiplayer_packets.h b/src/plugins/simulator/fs9/multiplayer_packets.h index 85b9f2fda..992c58333 100644 --- a/src/plugins/simulator/fs9/multiplayer_packets.h +++ b/src/plugins/simulator/fs9/multiplayer_packets.h @@ -21,6 +21,41 @@ namespace BlackSimPlugin { namespace Fs9 { + //! Multiplayer param packet - aircraft configuration + struct MPParam : public MULTIPLAYER_PACKET_PARAMS + { + //! Return tuple of member variables + std::tuple getTuple() + { + return std::tie(application_time, packet_index, + unknown8, unknown9, flaps_left, flaps_right, unknown12, unknown13, unknown14, unknown15, + unknown16, unknown17, unknown18, unknown19, gear_center, gear_left, gear_right, + engine_1, engine_2, unknown25, unknown26, unknown27); + } + + //! Return const tuple of member variables + std::tuple + getTuple() const + { + return std::tie(application_time, packet_index, + unknown8, unknown9, flaps_left, flaps_right, unknown12, unknown13, unknown14, unknown15, + unknown16, unknown17, unknown18, unknown19, gear_center, gear_left, gear_right, + engine_1, engine_2, unknown25, unknown26, unknown27); + } + + qint32 size() { return 28; } + }; + //! Multiplayer packet - change player plane struct MPChangePlayerPlane : public MULTIPLAYER_PACKET_CHANGE_PLAYER_PLANE { diff --git a/src/plugins/simulator/fs9/simulator_fs9.cpp b/src/plugins/simulator/fs9/simulator_fs9.cpp index 65fbdc15f..8396d49d1 100644 --- a/src/plugins/simulator/fs9/simulator_fs9.cpp +++ b/src/plugins/simulator/fs9/simulator_fs9.cpp @@ -252,6 +252,10 @@ namespace BlackSimPlugin switch (messageType) { + case CFs9Sdk::MULTIPLAYER_PACKET_ID_PARAMS: + { + break; + } case CFs9Sdk::MULTIPLAYER_PACKET_ID_CHANGE_PLAYER_PLANE: { MPChangePlayerPlane mpChangePlayerPlane;