From 657aea9323ce85eecb26beeac83925f24903b3da Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 20 Nov 2018 01:47:32 +0100 Subject: [PATCH] Ref T437, copy the client area byte array instead of just casting it --- .../simulator/fsxcommon/simulatorfsxsimconnectproc.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp index 48671dc2c..37e9b666c 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp @@ -380,8 +380,9 @@ namespace BlackSimPlugin if (clientData->dwRequestID == CSimConnectDefinitions::RequestSbData) { //! \fixme FSUIPC vs SimConnect why is offset 19 ident 2/0? In FSUIPC it is 0/1, according to documentation it is 0/1 but I receive 2/0 here. Whoever knows, add comment or fix if wrong - const DataDefinitionClientAreaSb *sbData = reinterpret_cast(&clientData->dwData); - simulatorFsxP3D->updateOwnAircraftFromSimulator(*sbData); + DataDefinitionClientAreaSb sbData; + std::memcpy(&sbData.data, &clientData->dwData, 128); + simulatorFsxP3D->updateOwnAircraftFromSimulator(sbData); } break; // SIMCONNECT_RECV_ID_CLIENT_DATA }