From 01b55f97c4c6254ec8f8be46c181661ca43ee903 Mon Sep 17 00:00:00 2001 From: Jason Watkins Date: Tue, 5 May 2015 10:23:03 -0700 Subject: [PATCH] Fixed bug in handling of CTRL command Several of the values were not checked for the "don't change" sentinel value. --- xpcPlugin/MessageHandlers.cpp | 37 +++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/xpcPlugin/MessageHandlers.cpp b/xpcPlugin/MessageHandlers.cpp index 85f295b..17e5cb0 100644 --- a/xpcPlugin/MessageHandlers.cpp +++ b/xpcPlugin/MessageHandlers.cpp @@ -195,20 +195,33 @@ namespace XPC spdbrk = *((float*)(buffer + 27)); } - float thrArray[8]; - for (int i = 0; i < 8; ++i) - { - thrArray[i] = thr; - } - DataManager::Set(DREF_YokePitch, pitch, aircraft); - DataManager::Set(DREF_YokeRoll, roll, aircraft); - DataManager::Set(DREF_YokeHeading, yaw, aircraft); - DataManager::Set(DREF_ThrottleSet, thrArray, 8, aircraft); - DataManager::Set(DREF_ThrottleActual, thrArray, 8, aircraft); - if (aircraft == 0) + if (pitch < -999.5 || pitch > -997.5) { - DataManager::Set("sim/flightmodel/engine/ENGN_thro_override", thrArray, 1); + DataManager::Set(DREF_YokePitch, pitch, aircraft); + } + if (roll < -999.5 || roll > -997.5) + { + DataManager::Set(DREF_YokeRoll, roll, aircraft); + } + if (yaw < -999.5 || yaw > -997.5) + { + DataManager::Set(DREF_YokeHeading, yaw, aircraft); + } + if (thr < -999.5 || thr > -997.5) + { + + float thrArray[8]; + for (int i = 0; i < 8; ++i) + { + thrArray[i] = thr; + } + DataManager::Set(DREF_ThrottleSet, thrArray, 8, aircraft); + DataManager::Set(DREF_ThrottleActual, thrArray, 8, aircraft); + if (aircraft == 0) + { + DataManager::Set("sim/flightmodel/engine/ENGN_thro_override", thrArray, 1); + } } if (gear != -1) {