From b960dd461658150cf6281888b630bbc5dfd39a69 Mon Sep 17 00:00:00 2001
From: sydadams <sydadams>
Date: Thu, 12 Apr 2007 01:38:40 +0000
Subject: [PATCH] Fixed errors caused by KNS80 properties not initialized in
 time...

---
 Aircraft/Instruments-3d/kns80/KNS80.nas | 27 ++++++++++++++++---------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/Aircraft/Instruments-3d/kns80/KNS80.nas b/Aircraft/Instruments-3d/kns80/KNS80.nas
index 945bfe5a4..18ec9815f 100644
--- a/Aircraft/Instruments-3d/kns80/KNS80.nas
+++ b/Aircraft/Instruments-3d/kns80/KNS80.nas
@@ -11,7 +11,7 @@ NAV1 = props.globals.getNode("/instrumentation/nav/frequencies/selected-mhz",1);
 NAV1_RADIAL = props.globals.getNode("/instrumentation/nav/radials/selected-deg",1);
 FDM_ON = 0;
 
-setlistener("/sim/signals/fdm-initialized", func {
+_setlistener("/sim/signals/fdm-initialized", func {
 	KNS80.getNode("serviceable",1).setBoolValue(1);
 	KNS80.getNode("volume-adjust",1).setValue(0);
 	KNS80.getNode("data-adjust",1).setValue(0);
@@ -38,22 +38,24 @@ setlistener("/sim/signals/fdm-initialized", func {
 	KNS80.getNode("wpt[3]/distance",1).setValue(0.0);
 	FDM_ON = 1;
 	print("KNS-80 Nav System ... OK");
-	});
+	},1);
 	
 setlistener("/instrumentation/kns-80/volume-adjust", func {
-	if(FDM_ON == 0){return;}
-	var setting = cmdarg().getValue() * 0.05;
+	if(FDM_ON != 0){
+	var amnt = cmdarg().getValue() * 0.05;
 	cmdarg().setValue(0);
-	var vol = KNS80.getNode("volume").getValue() + setting;
+	var vol = KNS80.getChild("volume").getValue();
+	vol+= amnt;
 	if(vol > 1.0){vol = 1.0;}
 	if(vol < 0.0){vol = 0.0;KNS80.getNode("serviceable").setBoolValue(0);}
 	if(vol > 0.0){KNS80.getNode("serviceable").setBoolValue(1);}
 	KNS80.getNode("volume").setValue(vol);
 	KNS80.getNode("volume-adjust").setValue(0);
+		}
 	});
 	
 setlistener("/instrumentation/kns-80/data-adjust", func {
-	if(FDM_ON == 0){return;}
+	if(FDM_ON != 0){
 	var dmode = KNS80.getNode("data-mode").getValue();
 	var num = cmdarg().getValue();
 	 cmdarg().setValue(0);
@@ -82,30 +84,34 @@ setlistener("/instrumentation/kns-80/data-adjust", func {
 		KNS80.getNode("displayed-distance").setValue(newdist);
 		return;
 		}
+		}
 	});
 
 setlistener("/instrumentation/kns-80/displayed-frequency", func {
-	if(FDM_ON == 0){return;}
+	if(FDM_ON != 0){
 	var freq = cmdarg().getValue();
 	var num = KNS80.getNode("display").getValue();
 	var use = KNS80.getNode("use").getValue();
 	KNS80.getNode("wpt[" ~ num ~ "]/frequency").setValue(freq);
 	NAV1.setValue(KNS80.getNode("wpt[" ~ use ~ "]/frequency").getValue() * 0.01);
+		}
 	});
 
 setlistener("/instrumentation/kns-80/displayed-radial", func {
-	if(FDM_ON == 0){return;}
+	if(FDM_ON != 0){
 	var rad = cmdarg().getValue();
 	var num = KNS80.getNode("display").getValue();
 	var radial = KNS80.getNode("use").getValue();
 	KNS80.getNode("wpt[" ~ num ~ "]/radial").setValue(rad);
 	NAV1_RADIAL.setValue(KNS80.getNode("wpt[" ~ radial ~ "]/radial").getValue());
+		}
 	});
 
 setlistener("/instrumentation/kns-80/serviceable", func {
-	if(FDM_ON == 0){return;}
+	if(FDM_ON != 0){
 	setprop("/instrumentation/nav/serviceable",cmdarg().getValue());
 	setprop("/instrumentation/dme/serviceable",cmdarg().getValue());
+		}
 	});
 
 setlistener("/instrumentation/kns-80/volume", func {
@@ -124,7 +130,8 @@ setlistener("/instrumentation/kns-80/use", func {
 setlistener("/instrumentation/kns-80/display", func {
 	if(FDM_ON == 0){return;}
 	var freq = cmdarg().getValue();
-	KNS80.getNode("displayed-frequency").setValue(KNS80.getNode("wpt[" ~ freq ~ "]/frequency").getValue());
+	var wpt = KNS80.getNode("wpt[" ~ freq ~ "]/frequency").getValue();
+	KNS80.getNode("displayed-frequency").setValue(wpt);
 	KNS80.getNode("displayed-radial").setValue(KNS80.getNode("wpt[" ~ freq ~ "]/radial").getValue());
 	});