]> git.mxchange.org Git - flightgear.git/blobdiff - src/Instrumentation/transponder.cxx
Support for multiple data dirs.
[flightgear.git] / src / Instrumentation / transponder.cxx
index 3ff7f77c13f2ffa391a436c050dd813c02454e30..b95e9404d54c93a778b062c842f0c97680e00da2 100644 (file)
@@ -48,6 +48,7 @@ const int INVALID_ID = -9999;
 
 Transponder::Transponder(SGPropertyNode *node)
     :
+    _identMode(false),
     _name(node->getStringValue("name", "transponder")),
     _num(node->getIntValue("number", 0)),
     _mode((Mode) node->getIntValue("mode", 1)),
@@ -191,7 +192,7 @@ void Transponder::update(double dt)
             }
         }
         
-        if (_knob > KNOB_ON) {
+        if (_knob >= KNOB_ON) {
             _transmittedId_node->setIntValue(_idCode_node->getIntValue());
         } else {
             _transmittedId_node->setIntValue(INVALID_ID);
@@ -224,10 +225,14 @@ static int modifyCodeDigit(int code, int index, int digitValue)
 void Transponder::valueChanged(SGPropertyNode *prop)
 {
     // Ident button pressed
-    if ((prop == _identBtn_node) && prop->getBoolValue()) {
-        _identTime = 0.0;
-        _ident_node->setBoolValue(true);
-        _identMode = true;
+    if (prop == _identBtn_node) {
+        if (prop->getBoolValue()) {
+            _identTime = 0.0;
+            _ident_node->setBoolValue(true);
+            _identMode = true;
+        } else {
+            // don't cancel state on release
+        }
         return;
     }