From 931e753ddb5f565f807784f036698d7ce2e79007 Mon Sep 17 00:00:00 2001
From: Joshua Davidson <joshuadavidson2000@gmail.com>
Date: Fri, 7 Dec 2018 16:01:01 -0500
Subject: [PATCH 1/7] System: Fix AP Master logic

---
 Nasal/FMGC-b.nas | 131 ++++++++++++++++++++++++++++++++++++-----------
 revision.txt     |   2 +-
 2 files changed, 103 insertions(+), 30 deletions(-)

diff --git a/Nasal/FMGC-b.nas b/Nasal/FMGC-b.nas
index 5b0fb82d..8d5e0de4 100644
--- a/Nasal/FMGC-b.nas
+++ b/Nasal/FMGC-b.nas
@@ -95,6 +95,14 @@ var APinit = func {
 
 # AP 1 Master System
 setlistener("/it-autoflight/input/ap1", func {
+	var apmas = getprop("/it-autoflight/input/ap1");
+	var apout = getprop("/it-autoflight/output/ap1");
+	if (apmas != apout) {
+		AP1Master();
+	}
+});
+
+var AP1Master = func {
 	var apmas = getprop("/it-autoflight/input/ap1");
 	var ac_ess = getprop("/systems/electrical/bus/ac-ess");
 	var law = getprop("/it-fbw/law");
@@ -127,10 +135,24 @@ setlistener("/it-autoflight/input/ap1", func {
 			fmabox();
 		}
 	}
-});
+	
+	var apout = getprop("/it-autoflight/output/ap1");
+	if (apmas != apout) {
+		setprop("/it-autoflight/input/ap1", apout);
+	}
+}
 
 # AP 2 Master System
 setlistener("/it-autoflight/input/ap2", func {
+	var apmas = getprop("/it-autoflight/input/ap2");
+	var apout = getprop("/it-autoflight/output/ap2");
+	
+	if (apmas != apout) {
+		AP2Master();
+	}
+});
+
+var AP2Master = func {
 	var apmas = getprop("/it-autoflight/input/ap2");
 	var ac_ess = getprop("/systems/electrical/bus/ac-ess");
 	var law = getprop("/it-fbw/law");
@@ -163,44 +185,95 @@ setlistener("/it-autoflight/input/ap2", func {
 			fmabox();
 		}
 	}
+	
+	var apout = getprop("/it-autoflight/output/ap2");
+	if (apmas != apout) {
+		setprop("/it-autoflight/input/ap2", apout);
+	}
+}
+
+# ATHR Master System
+setlistener("/it-autoflight/input/athr", func {
+	var athrmas = getprop("/it-autoflight/input/athr");
+	var athrout = getprop("/it-autoflight/output/athr");
+	
+	if (athrmas != athrout) {
+		ATHRMaster();
+	}
 });
 
-# AT Master System
-setlistener("/it-autoflight/input/athr", func {
-	var atmas = getprop("/it-autoflight/input/athr");
-	if (atmas == 0) {
+var ATHRMaster = func {
+	var athrmas = getprop("/it-autoflight/input/athr");
+	if (athrmas == 0) {
 		setprop("/it-autoflight/output/athr", 0);
-	} else if (atmas == 1) {
+	} else if (athrmas == 1) {
 		thrustmode();
 		setprop("/it-autoflight/output/athr", 1);
 	}
-});
+	
+	var athrout = getprop("/it-autoflight/output/athr");
+	if (athrmas != athrout) {
+		setprop("/it-autoflight/input/athr", athrout);
+	}
+}
 
 # Flight Director 1 Master System
 setlistener("/it-autoflight/input/fd1", func {
+	var fdmas = getprop("/it-autoflight/input/fd1");
+	var fdout = getprop("/it-autoflight/output/fd1");
+	
+	if (fdmas != fdout) {
+		FD1Master();
+	}
+});
+
+var FD1Master = func {
 	var fdmas = getprop("/it-autoflight/input/fd1");
 	if (fdmas == 0) {
 		setprop("/it-autoflight/output/fd1", 0);
-		fmabox();
+		if (getprop("/it-autoflight/output/fd1") == 0 and getprop("/it-autoflight/output/fd2") == 0) {
+			fmabox();
+		}
 		updateTimers();
 	} else if (fdmas == 1) {
 		setprop("/it-autoflight/output/fd1", 1);
 		fmabox();
 	}
-});
+	
+	var fdout = getprop("/it-autoflight/output/fd1");
+	if (fdmas != fdout) {
+		setprop("/it-autoflight/input/fd1", fdout);
+	}
+}
 
 # Flight Director 2 Master System
 setlistener("/it-autoflight/input/fd2", func {
+	var fdmas = getprop("/it-autoflight/input/fd2");
+	var fdout = getprop("/it-autoflight/output/fd2");
+	
+	if (fdmas != fdout) {
+		FD2Master();
+	}
+});
+
+var FD2Master = func {
 	var fdmas = getprop("/it-autoflight/input/fd2");
 	if (fdmas == 0) {
 		setprop("/it-autoflight/output/fd2", 0);
-		fmabox();
+		if (getprop("/it-autoflight/output/fd1") == 0 and getprop("/it-autoflight/output/fd2") == 0) {
+			fmabox();
+		}
 		updateTimers();
 	} else if (fdmas == 1) {
 		setprop("/it-autoflight/output/fd2", 1);
 		fmabox();
 	}
-});
+	
+	var fdout = getprop("/it-autoflight/output/fd2");
+	if (fdmas != fdout) {
+		setprop("/it-autoflight/input/fd2", fdout);
+	}
+}
 
 # FMA Boxes and Mode
 var fmabox = func {
@@ -415,7 +488,7 @@ var vertical = func {
 		alandt.stop();
 		alandt1.stop();
 		mng_sys_stop();
-		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 		var alt = getprop("/it-autoflight/internal/alt");
 		var dif = calt - alt;
 		vsnow = getprop("/it-autoflight/internal/vert-speed-fpm");
@@ -435,7 +508,7 @@ var vertical = func {
 		setprop("/it-autoflight/output/appr-armed", 0);
 		var altinput = getprop("/it-autoflight/input/alt");
 		setprop("/it-autoflight/internal/alt", altinput);
-		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 		var alt = getprop("/it-autoflight/internal/alt");
 		var dif = calt - alt;
 		if (dif < 250 and dif > -250) {
@@ -689,7 +762,7 @@ setlistener("/it-autoflight/input/toga", func {
 
 var togasel = func {
 	if ((getprop("/gear/gear[1]/wow") == 0) and (getprop("/gear/gear[2]/wow") == 0)) {
-		var iasnow = math.round(getprop("/instrumentation/airspeed-indicator/indicated-speed-kt"));
+		var iasnow = math.round(getprop("/instrumentation/airspeed-indicator[0]/indicated-speed-kt"));
 		setprop("/it-autoflight/input/spd-kts", iasnow);
 		setprop("/it-autoflight/input/kts-mach", 0);
 		setprop("/it-autoflight/mode/vert", "G/A CLB");
@@ -712,7 +785,7 @@ setlistener("/it-autoflight/mode/vert", func {
 });
 
 var toga_reduc = func {
-	if (getprop("/instrumentation/altimeter/indicated-altitude-ft") >= getprop("/it-autoflight/settings/reduc-agl-ft") and getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0) {
+	if (getprop("/instrumentation/altimeter[0]/indicated-altitude-ft") >= getprop("/it-autoflight/settings/reduc-agl-ft") and getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0) {
 		setprop("/it-autoflight/input/vert", 4);
 	}
 }
@@ -751,7 +824,7 @@ var altcapt = func {
 	setprop("/it-autoflight/internal/captvs", math.round(abs(vsnow) / 5, 100));
 	setprop("/it-autoflight/internal/captvsneg", -1 * math.round(abs(vsnow) / 5, 100));
 	if ((getprop("/it-autoflight/output/fd1") == 1 or getprop("/it-autoflight/output/fd2") == 1 or getprop("/it-autoflight/output/ap1") == 1 or getprop("/it-autoflight/output/ap2") == 1) and getprop("/it-autoflight/output/vert") != 9) {
-		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 		var alt = getprop("/it-autoflight/internal/alt");
 		var dif = calt - alt;
 		if (dif < getprop("/it-autoflight/internal/captvs") and dif > getprop("/it-autoflight/internal/captvsneg")) {
@@ -772,7 +845,7 @@ var altcapt = func {
 
 # Min and Max Pitch Reset
 var minmax = func {
-	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 	var alt = getprop("/it-autoflight/internal/alt");
 	var dif = calt - alt;
 	if (dif < 50 and dif > -50) {
@@ -790,7 +863,7 @@ var minmax = func {
 
 # Thrust Mode Selector
 var thrustmode = func {
-	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 	var alt = getprop("/it-autoflight/internal/alt");
 	if (getprop("/it-autoflight/output/vert") == 4) {
 		if (calt < alt) {
@@ -997,7 +1070,7 @@ var mng_run = func {
 		var mng_alt_wp = getprop("/autopilot/route-manager/route/wp",wp_curr,"altitude-ft");
 		if ((wptnum - 1) < getprop("/autopilot/route-manager/route/num")) {
 			var mng_alt_wp_prev = getprop("/autopilot/route-manager/route/wp",wp_curr - 1,"altitude-ft");
-			var altcurr = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+			var altcurr = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 			if (mng_alt_wp_prev >= 100) {
 				if (mng_alt_wp_prev > mng_alt_wp) {
 					mng_des_todt.start();
@@ -1031,7 +1104,7 @@ var mng_run = func {
 		}
 		if (mng_alt_wp >= 100) {
 			if (getprop("/it-autoflight/internal/mng-mode") == "CLB") {
-				var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+				var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 				var valt = getprop("/it-autoflight/internal/mng-alt");
 				var vdif = calt - valt;
 				if (vdif > 250 or vdif < -250) {
@@ -1040,7 +1113,7 @@ var mng_run = func {
 					mng_alt_sel();
 				}
 			} else if (getprop("/it-autoflight/internal/mng-mode") == "DES") {
-				var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+				var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 				var valt = getprop("/it-autoflight/internal/mng-alt");
 				var vdif = calt - valt;
 				if (vdif > 250 or vdif < -250) {
@@ -1064,7 +1137,7 @@ var mng_des_tod = func {
 	if (getprop("/autopilot/route-manager/route/num") > 0 and getprop("/autopilot/route-manager/active") == 1) {
 		var wp_curr = getprop("/autopilot/route-manager/current-wp");
 		var mng_alt_wp = getprop("/autopilot/route-manager/route/wp",wp_curr,"altitude-ft");
-		var alt_curr = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+		var alt_curr = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 		var dist = getprop("/autopilot/route-manager/wp/dist");
 		var vdist = dist + 1;
 		var alttl = abs(alt_curr - mng_alt_wp);
@@ -1073,7 +1146,7 @@ var mng_des_tod = func {
 			mng_des_todt.stop();
 			var salt = getprop("/it-autoflight/internal/alt");
 			var valt = getprop("/it-autoflight/internal/alt-const");
-			var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+			var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 			var sdif = abs(calt - salt);
 			var vdif = abs(calt - valt);
 			if (sdif <= vdif) {
@@ -1081,7 +1154,7 @@ var mng_des_tod = func {
 			} else if (sdif > vdif) {
 				setprop("/it-autoflight/internal/mng-alt", getprop("/it-autoflight/internal/alt-const"));
 			}
-			var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+			var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 			var valt = getprop("/it-autoflight/internal/mng-alt");
 			var vdif = calt - valt;
 			if (vdif > 550 or vdif < -550) {
@@ -1097,7 +1170,7 @@ var mng_des_tod = func {
 var mng_alt_selector = func {
 	var salt = getprop("/it-autoflight/internal/alt");
 	var valt = getprop("/it-autoflight/internal/alt-const");
-	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 	var sdif = abs(calt - salt);
 	var vdif = abs(calt - valt);
 	if (getprop("/it-autoflight/internal/mng-mode") == "CLB") {
@@ -1174,7 +1247,7 @@ var mng_altcapt = func {
 	var MCPalt = getprop("/it-autoflight/internal/alt");
 	var MNGdif = abs(MNGalt - MCPalt);
 	if (MNGdif <= 20) {
-		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 		var alt = getprop("/it-autoflight/internal/alt");
 		var dif = calt - alt;
 		if (dif < getprop("/it-autoflight/internal/captvs") and dif > getprop("/it-autoflight/internal/captvsneg")) {
@@ -1187,7 +1260,7 @@ var mng_altcapt = func {
 			}
 		}
 	} else {
-		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 		var valt = getprop("/it-autoflight/internal/mng-alt");
 		var vdif = calt - valt;
 		if (vdif < getprop("/it-autoflight/internal/captvs") and vdif > getprop("/it-autoflight/internal/captvsneg")) {
@@ -1205,7 +1278,7 @@ var mng_capture_alt = func {
 	vsnow = getprop("/it-autoflight/internal/vert-speed-fpm");
 	mng_altcaptt.stop();
 	mng_des_fpmt.stop();
-	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 	var alt = getprop("/it-autoflight/internal/alt");
 	var valt = getprop("/it-autoflight/internal/mng-alt");
 	if (calt < valt) {
@@ -1222,7 +1295,7 @@ var mng_capture_alt = func {
 
 # Managed Min and Max Pitch Reset
 var mng_minmax = func {
-	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
 	var valt = getprop("/it-autoflight/internal/mng-alt");
 	var vdif = calt - valt;
 	if (vdif < 50 and vdif > -50) {
diff --git a/revision.txt b/revision.txt
index 0a3a8672..30f6c639 100644
--- a/revision.txt
+++ b/revision.txt
@@ -1 +1 @@
-4705
\ No newline at end of file
+4707
\ No newline at end of file

From 6a62730ab4e84d1203ef8ddf90e88b5895fe9aed Mon Sep 17 00:00:00 2001
From: Joshua Davidson <joshuadavidson2000@gmail.com>
Date: Fri, 7 Dec 2018 16:02:20 -0500
Subject: [PATCH 2/7] System: ???

---
 Nasal/FMGC-b.nas | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/Nasal/FMGC-b.nas b/Nasal/FMGC-b.nas
index 8d5e0de4..1a2fa056 100644
--- a/Nasal/FMGC-b.nas
+++ b/Nasal/FMGC-b.nas
@@ -488,7 +488,7 @@ var vertical = func {
 		alandt.stop();
 		alandt1.stop();
 		mng_sys_stop();
-		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 		var alt = getprop("/it-autoflight/internal/alt");
 		var dif = calt - alt;
 		vsnow = getprop("/it-autoflight/internal/vert-speed-fpm");
@@ -508,7 +508,7 @@ var vertical = func {
 		setprop("/it-autoflight/output/appr-armed", 0);
 		var altinput = getprop("/it-autoflight/input/alt");
 		setprop("/it-autoflight/internal/alt", altinput);
-		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 		var alt = getprop("/it-autoflight/internal/alt");
 		var dif = calt - alt;
 		if (dif < 250 and dif > -250) {
@@ -762,7 +762,7 @@ setlistener("/it-autoflight/input/toga", func {
 
 var togasel = func {
 	if ((getprop("/gear/gear[1]/wow") == 0) and (getprop("/gear/gear[2]/wow") == 0)) {
-		var iasnow = math.round(getprop("/instrumentation/airspeed-indicator[0]/indicated-speed-kt"));
+		var iasnow = math.round(getprop("/instrumentation/airspeed-indicator/indicated-speed-kt"));
 		setprop("/it-autoflight/input/spd-kts", iasnow);
 		setprop("/it-autoflight/input/kts-mach", 0);
 		setprop("/it-autoflight/mode/vert", "G/A CLB");
@@ -785,7 +785,7 @@ setlistener("/it-autoflight/mode/vert", func {
 });
 
 var toga_reduc = func {
-	if (getprop("/instrumentation/altimeter[0]/indicated-altitude-ft") >= getprop("/it-autoflight/settings/reduc-agl-ft") and getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0) {
+	if (getprop("/instrumentation/altimeter/indicated-altitude-ft") >= getprop("/it-autoflight/settings/reduc-agl-ft") and getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0) {
 		setprop("/it-autoflight/input/vert", 4);
 	}
 }
@@ -824,7 +824,7 @@ var altcapt = func {
 	setprop("/it-autoflight/internal/captvs", math.round(abs(vsnow) / 5, 100));
 	setprop("/it-autoflight/internal/captvsneg", -1 * math.round(abs(vsnow) / 5, 100));
 	if ((getprop("/it-autoflight/output/fd1") == 1 or getprop("/it-autoflight/output/fd2") == 1 or getprop("/it-autoflight/output/ap1") == 1 or getprop("/it-autoflight/output/ap2") == 1) and getprop("/it-autoflight/output/vert") != 9) {
-		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 		var alt = getprop("/it-autoflight/internal/alt");
 		var dif = calt - alt;
 		if (dif < getprop("/it-autoflight/internal/captvs") and dif > getprop("/it-autoflight/internal/captvsneg")) {
@@ -845,7 +845,7 @@ var altcapt = func {
 
 # Min and Max Pitch Reset
 var minmax = func {
-	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 	var alt = getprop("/it-autoflight/internal/alt");
 	var dif = calt - alt;
 	if (dif < 50 and dif > -50) {
@@ -863,7 +863,7 @@ var minmax = func {
 
 # Thrust Mode Selector
 var thrustmode = func {
-	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 	var alt = getprop("/it-autoflight/internal/alt");
 	if (getprop("/it-autoflight/output/vert") == 4) {
 		if (calt < alt) {
@@ -1070,7 +1070,7 @@ var mng_run = func {
 		var mng_alt_wp = getprop("/autopilot/route-manager/route/wp",wp_curr,"altitude-ft");
 		if ((wptnum - 1) < getprop("/autopilot/route-manager/route/num")) {
 			var mng_alt_wp_prev = getprop("/autopilot/route-manager/route/wp",wp_curr - 1,"altitude-ft");
-			var altcurr = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+			var altcurr = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 			if (mng_alt_wp_prev >= 100) {
 				if (mng_alt_wp_prev > mng_alt_wp) {
 					mng_des_todt.start();
@@ -1104,7 +1104,7 @@ var mng_run = func {
 		}
 		if (mng_alt_wp >= 100) {
 			if (getprop("/it-autoflight/internal/mng-mode") == "CLB") {
-				var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+				var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 				var valt = getprop("/it-autoflight/internal/mng-alt");
 				var vdif = calt - valt;
 				if (vdif > 250 or vdif < -250) {
@@ -1113,7 +1113,7 @@ var mng_run = func {
 					mng_alt_sel();
 				}
 			} else if (getprop("/it-autoflight/internal/mng-mode") == "DES") {
-				var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+				var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 				var valt = getprop("/it-autoflight/internal/mng-alt");
 				var vdif = calt - valt;
 				if (vdif > 250 or vdif < -250) {
@@ -1137,7 +1137,7 @@ var mng_des_tod = func {
 	if (getprop("/autopilot/route-manager/route/num") > 0 and getprop("/autopilot/route-manager/active") == 1) {
 		var wp_curr = getprop("/autopilot/route-manager/current-wp");
 		var mng_alt_wp = getprop("/autopilot/route-manager/route/wp",wp_curr,"altitude-ft");
-		var alt_curr = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+		var alt_curr = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 		var dist = getprop("/autopilot/route-manager/wp/dist");
 		var vdist = dist + 1;
 		var alttl = abs(alt_curr - mng_alt_wp);
@@ -1146,7 +1146,7 @@ var mng_des_tod = func {
 			mng_des_todt.stop();
 			var salt = getprop("/it-autoflight/internal/alt");
 			var valt = getprop("/it-autoflight/internal/alt-const");
-			var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+			var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 			var sdif = abs(calt - salt);
 			var vdif = abs(calt - valt);
 			if (sdif <= vdif) {
@@ -1154,7 +1154,7 @@ var mng_des_tod = func {
 			} else if (sdif > vdif) {
 				setprop("/it-autoflight/internal/mng-alt", getprop("/it-autoflight/internal/alt-const"));
 			}
-			var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+			var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 			var valt = getprop("/it-autoflight/internal/mng-alt");
 			var vdif = calt - valt;
 			if (vdif > 550 or vdif < -550) {
@@ -1170,7 +1170,7 @@ var mng_des_tod = func {
 var mng_alt_selector = func {
 	var salt = getprop("/it-autoflight/internal/alt");
 	var valt = getprop("/it-autoflight/internal/alt-const");
-	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 	var sdif = abs(calt - salt);
 	var vdif = abs(calt - valt);
 	if (getprop("/it-autoflight/internal/mng-mode") == "CLB") {
@@ -1247,7 +1247,7 @@ var mng_altcapt = func {
 	var MCPalt = getprop("/it-autoflight/internal/alt");
 	var MNGdif = abs(MNGalt - MCPalt);
 	if (MNGdif <= 20) {
-		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 		var alt = getprop("/it-autoflight/internal/alt");
 		var dif = calt - alt;
 		if (dif < getprop("/it-autoflight/internal/captvs") and dif > getprop("/it-autoflight/internal/captvsneg")) {
@@ -1260,7 +1260,7 @@ var mng_altcapt = func {
 			}
 		}
 	} else {
-		var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+		var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 		var valt = getprop("/it-autoflight/internal/mng-alt");
 		var vdif = calt - valt;
 		if (vdif < getprop("/it-autoflight/internal/captvs") and vdif > getprop("/it-autoflight/internal/captvsneg")) {
@@ -1278,7 +1278,7 @@ var mng_capture_alt = func {
 	vsnow = getprop("/it-autoflight/internal/vert-speed-fpm");
 	mng_altcaptt.stop();
 	mng_des_fpmt.stop();
-	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 	var alt = getprop("/it-autoflight/internal/alt");
 	var valt = getprop("/it-autoflight/internal/mng-alt");
 	if (calt < valt) {
@@ -1295,7 +1295,7 @@ var mng_capture_alt = func {
 
 # Managed Min and Max Pitch Reset
 var mng_minmax = func {
-	var calt = getprop("/instrumentation/altimeter[0]/indicated-altitude-ft");
+	var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
 	var valt = getprop("/it-autoflight/internal/mng-alt");
 	var vdif = calt - valt;
 	if (vdif < 50 and vdif > -50) {

From 1078feba46a33f416780509963c482af49119e3d Mon Sep 17 00:00:00 2001
From: Joshua Davidson <joshuadavidson2000@gmail.com>
Date: Sat, 8 Dec 2018 21:06:22 -0500
Subject: [PATCH 3/7] Sim: Fix f***ed up seatbelt switch

---
 Models/Instruments/OHpanel/OHpanel.xml | 16 ++++++++--------
 revision.txt                           |  2 +-
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/Models/Instruments/OHpanel/OHpanel.xml b/Models/Instruments/OHpanel/OHpanel.xml
index 2403517f..4bf0ea11 100644
--- a/Models/Instruments/OHpanel/OHpanel.xml
+++ b/Models/Instruments/OHpanel/OHpanel.xml
@@ -5634,11 +5634,11 @@
 			<button>3</button>
 			<repeatable>false</repeatable>
 			<binding>
-				<command>property-adjust</command>
+				<command>property-cycle</command>
 				<property>controls/switches/seatbelt-sign</property>
-				<step>1</step>
-				<min>0</min>
-				<max>1</max>
+				<value>0.0</value>
+				<!--value>0.5</value-->
+				<value>1.0</value>
 			</binding>
 			<binding>
 				<command>nasal</command>
@@ -5650,11 +5650,11 @@
 			<button>4</button>
 			<repeatable>false</repeatable>
 			<binding>
-				<command>property-adjust</command>
+				<command>property-cycle</command>
 				<property>controls/switches/seatbelt-sign</property>
-				<step>-1</step>
-				<min>0</min>
-				<max>1</max>
+				<value>1.0</value>
+				<!--value>0.5</value-->
+				<value>0.0</value>
 			</binding>
 			<binding>
 				<command>nasal</command>
diff --git a/revision.txt b/revision.txt
index 30f6c639..7fceb08a 100644
--- a/revision.txt
+++ b/revision.txt
@@ -1 +1 @@
-4707
\ No newline at end of file
+4708
\ No newline at end of file

From aecba237c516ccc22456aa5e0db38c4368a734e4 Mon Sep 17 00:00:00 2001
From: Joshua Davidson <joshuadavidson2000@gmail.com>
Date: Sat, 8 Dec 2018 21:09:06 -0500
Subject: [PATCH 4/7] GIT: Nothing

---
 Models/Instruments/OHpanel/OHpanel.xml | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/Models/Instruments/OHpanel/OHpanel.xml b/Models/Instruments/OHpanel/OHpanel.xml
index 4bf0ea11..5684b78e 100644
--- a/Models/Instruments/OHpanel/OHpanel.xml
+++ b/Models/Instruments/OHpanel/OHpanel.xml
@@ -5608,9 +5608,9 @@
 		<object-name>AnnunciatorLtSwtch</object-name>
 		<property>controls/switches/annun-test</property>
 		<interpolation>
-			<entry><ind>-1</ind><dep>35</dep></entry>
-			<entry><ind>0</ind><dep>0</dep></entry>
-			<entry><ind>1</ind><dep>-35</dep></entry>
+			<entry><ind>-1</ind><dep> 35</dep></entry>
+			<entry><ind> 0</ind><dep>  0</dep></entry>
+			<entry><ind> 1</ind><dep>-35</dep></entry>
 		</interpolation>
 		<axis>
 			<x>0</x>
@@ -5669,9 +5669,9 @@
 		<object-name>SeatBeltSwtch</object-name>
 		<property>controls/switches/seatbelt-sign</property>
 		<interpolation>
-			<entry><ind>0</ind><dep>35</dep></entry>
-			<entry><ind>0.5</ind><dep>0</dep></entry>
-			<entry><ind>1</ind><dep>-35</dep></entry>
+			<entry><ind>0.0</ind><dep> 35</dep></entry>
+			<entry><ind>0.5</ind><dep>  0</dep></entry>
+			<entry><ind>1.0</ind><dep>-35</dep></entry>
 		</interpolation>
 		<axis>
 			<x>0</x>
@@ -5728,9 +5728,9 @@
 		<object-name>NoSmokingSwtch</object-name>
 		<property>controls/switches/no-smoking-sign</property>
 		<interpolation>
-			<entry><ind>0</ind><dep>35</dep></entry>
-			<entry><ind>0.5</ind><dep>0</dep></entry>
-			<entry><ind>1</ind><dep>-35</dep></entry>
+			<entry><ind>0.0</ind><dep> 35</dep></entry>
+			<entry><ind>0.5</ind><dep>  0</dep></entry>
+			<entry><ind>1.0</ind><dep>-35</dep></entry>
 		</interpolation>
 		<axis>
 			<x>0</x>

From d2fb461792d937949f4181511452b1c7d23b40cd Mon Sep 17 00:00:00 2001
From: Joshua Davidson <joshuadavidson2000@gmail.com>
Date: Mon, 10 Dec 2018 15:31:42 -0500
Subject: [PATCH 5/7] Sim: GUI updates, now 2018.3.1 compliant

---
 A320-main.xml                                 |  2 +-
 Models/Instruments/MCDU/MCDU.nas              |  6 +-
 Nasal/libraries.nas                           |  1 -
 .../dialogs/a3xx-autoflight-dlg.xml           |  0
 {Systems => gui/dialogs}/mcdu1-dlg.xml        |  0
 {Systems => gui/dialogs}/mcdu2-dlg.xml        |  0
 {Systems => gui}/it-gui.xml                   | 60 +++++++++----------
 revision.txt                                  |  2 +-
 8 files changed, 34 insertions(+), 37 deletions(-)
 rename Systems/autopilot-dlg.xml => gui/dialogs/a3xx-autoflight-dlg.xml (100%)
 rename {Systems => gui/dialogs}/mcdu1-dlg.xml (100%)
 rename {Systems => gui/dialogs}/mcdu2-dlg.xml (100%)
 rename {Systems => gui}/it-gui.xml (83%)

diff --git a/A320-main.xml b/A320-main.xml
index d0b6112f..0f1c1f67 100644
--- a/A320-main.xml
+++ b/A320-main.xml
@@ -408,7 +408,7 @@
 		
 		<flight-recorder include="Systems/flight-recorder.xml"/>
 		
-		<gui n="0" include="Systems/it-gui.xml"/>
+		<gui n="0" include="gui/it-gui.xml"/>
 		
 		<current-view>
 			<z-offset-default type="float">80.0</z-offset-default>
diff --git a/Models/Instruments/MCDU/MCDU.nas b/Models/Instruments/MCDU/MCDU.nas
index 6a55b92f..302088cf 100644
--- a/Models/Instruments/MCDU/MCDU.nas
+++ b/Models/Instruments/MCDU/MCDU.nas
@@ -1741,13 +1741,11 @@ var MCDU_update_fast = maketimer(0.125, func {
 });
 
 var showMCDU1 = func {
-	var mcdu1_dlg = gui.Dialog.new("sim/gui/dialogs/mcdu1/dialog", "Aircraft/IDG-A32X/Systems/mcdu1-dlg.xml");
-	mcdu1_dlg.open();
+	gui.showDialog("mcdu1");
 }
 
 var showMCDU2 = func {
-	var mcdu2_dlg = gui.Dialog.new("sim/gui/dialogs/mcdu2/dialog", "Aircraft/IDG-A32X/Systems/mcdu2-dlg.xml");
-	mcdu2_dlg.open();
+	gui.showDialog("mcdu2");
 }
 
 setlistener("/MCDU[0]/page", func {
diff --git a/Nasal/libraries.nas b/Nasal/libraries.nas
index 1c821ad5..cfeed0d0 100644
--- a/Nasal/libraries.nas
+++ b/Nasal/libraries.nas
@@ -186,7 +186,6 @@ var systemsInit = func {
 	systemsLoop.start();
 	icing.icingInit();
 	lightsLoop.start();
-	var autopilot = gui.Dialog.new("sim/gui/dialogs/autopilot/dialog", "Aircraft/IDG-A32X/Systems/autopilot-dlg.xml");
 	setprop("/it-autoflight/input/fd1", 1);
 	setprop("/it-autoflight/input/fd2", 1);
 	libraries.ECAM.init();
diff --git a/Systems/autopilot-dlg.xml b/gui/dialogs/a3xx-autoflight-dlg.xml
similarity index 100%
rename from Systems/autopilot-dlg.xml
rename to gui/dialogs/a3xx-autoflight-dlg.xml
diff --git a/Systems/mcdu1-dlg.xml b/gui/dialogs/mcdu1-dlg.xml
similarity index 100%
rename from Systems/mcdu1-dlg.xml
rename to gui/dialogs/mcdu1-dlg.xml
diff --git a/Systems/mcdu2-dlg.xml b/gui/dialogs/mcdu2-dlg.xml
similarity index 100%
rename from Systems/mcdu2-dlg.xml
rename to gui/dialogs/mcdu2-dlg.xml
diff --git a/Systems/it-gui.xml b/gui/it-gui.xml
similarity index 83%
rename from Systems/it-gui.xml
rename to gui/it-gui.xml
index 3ac4217c..79131e30 100644
--- a/Systems/it-gui.xml
+++ b/gui/it-gui.xml
@@ -13,79 +13,79 @@
 	<style n="0">
 		<colors n="0">
 			<background n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.05</blue>
 				<green>0.05</green>
 				<red>0.05</red>
 			</background>
 			<button n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
 			</button>
 			<checkbox-foreground n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.05</blue>
 				<green>0.05</green>
 				<red>0.05</red>
 			</checkbox-foreground>
 			<checkbox-highlight n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</checkbox-highlight>
 			<checkbox-misc n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</checkbox-misc>
 			<combo-editfield n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
 			</combo-editfield>
 			<dial-misc n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</dial-misc>
 			<hrule n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>1.0</blue>
 				<green>0.0</green>
 				<red>1.0</red>
 			</hrule>
 			<input n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
 			</input>
 			<input-legend n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</input-legend>
 			<input-misc n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</input-misc>
 			<radio-foreground n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.0</blue>
 				<green>0.0</green>
 				<red>0.0</red>
 			</radio-foreground>
 			<select-editfield n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
@@ -97,13 +97,13 @@
 				<red>0.4</red>
 			</slider>
 			<textbox-editable n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
 			</textbox-editable>
 			<vrule n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>1.0</blue>
 				<green>0.0</green>
 				<red>1.0</red>
@@ -114,79 +114,79 @@
 	<style n="1">
 		<colors n="0">
 			<background n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.05</blue>
 				<green>0.05</green>
 				<red>0.05</red>
 			</background>
 			<button n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
 			</button>
 			<checkbox-foreground n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.05</blue>
 				<green>0.05</green>
 				<red>0.05</red>
 			</checkbox-foreground>
 			<checkbox-highlight n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</checkbox-highlight>
 			<checkbox-misc n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</checkbox-misc>
 			<combo-editfield n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
 			</combo-editfield>
 			<dial-misc n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</dial-misc>
 			<hrule n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>1.0</blue>
 				<green>0.0</green>
 				<red>1.0</red>
 			</hrule>
 			<input n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
 			</input>
 			<input-legend n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</input-legend>
 			<input-misc n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.9</blue>
 				<green>0.9</green>
 				<red>0.9</red>
 			</input-misc>
 			<radio-foreground n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.0</blue>
 				<green>0.0</green>
 				<red>0.0</red>
 			</radio-foreground>
 			<select-editfield n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
@@ -198,13 +198,13 @@
 				<red>0.4</red>
 			</slider>
 			<textbox-editable n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>0.2</blue>
 				<green>0.2</green>
 				<red>0.2</red>
 			</textbox-editable>
 			<vrule n="0">
-				<alpha>0.9</alpha>
+				<alpha>0.95</alpha>
 				<blue>1.0</blue>
 				<green>0.0</green>
 				<red>1.0</red>
diff --git a/revision.txt b/revision.txt
index 7fceb08a..09b480c2 100644
--- a/revision.txt
+++ b/revision.txt
@@ -1 +1 @@
-4708
\ No newline at end of file
+4709
\ No newline at end of file

From a74ddee098b35ed014b688412d009949bdaf26a0 Mon Sep 17 00:00:00 2001
From: Joshua Davidson <joshuadavidson2000@gmail.com>
Date: Mon, 10 Dec 2018 15:41:09 -0500
Subject: [PATCH 6/7] GIT: Formatting

---
 Models/Effects/contrail-eng1.xml | 296 +++++++++++++++----------------
 Models/Effects/contrail-eng2.xml | 296 +++++++++++++++----------------
 2 files changed, 286 insertions(+), 306 deletions(-)

diff --git a/Models/Effects/contrail-eng1.xml b/Models/Effects/contrail-eng1.xml
index 42937853..5ba44afa 100644
--- a/Models/Effects/contrail-eng1.xml
+++ b/Models/Effects/contrail-eng1.xml
@@ -1,161 +1,151 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-##############################################
-# Copyright (c) Joshua Davidson (it0uchpods) #
-##############################################
--->
+<?xml version="1.0" encoding="UTF-8"?>
 
 <PropertyList>
- <particlesystem>
-   <name>smoke</name>
-   <texture>res/smoke.png</texture>
-   <offsets>
-		<x-m>30</x-m>
-		<y-m>0.00</y-m>
-		<z-m>2</z-m>
-		<pitch-deg>90</pitch-deg>
-    </offsets>
+	
+	<particlesystem>
+		<name>contrail-eng1</name>
+		<texture>contrail.rgb</texture>
+		<emissive type="bool">false</emissive>
+		<lighting type="bool">false</lighting>
+		<condition>
+			<and>
+				<greater-than>
+					<property>engines/engine[0]/n2-actual</property>
+					<value>50</value>
+				</greater-than>
+				<greater-than>
+					<property>/position/altitude-ft</property>
+					<value>19000</value>
+				</greater-than>
+				<less-than>
+					<property>environment/temperature-degc</property>
+					<value>-30</value>
+				</less-than>
+				<equals>
+					<property>engines/engine[0]/state</property>
+					<value>3</value>
+				</equals>
+			</and>
+		</condition>
+		
+		<attach>world</attach>
+		
+		<placer>
+			<type>point</type> 
+		</placer>
+		
+		<shooter>
+			<theta-min-deg>-1.5</theta-min-deg>
+			<theta-max-deg>1.5</theta-max-deg>
+			<phi-min-deg>-1.5</phi-min-deg>
+			<phi-max-deg>1.5</phi-max-deg>
+			<speed-mps>
+				<value>0</value>
+				<spread>0</spread>
+			</speed-mps>
+			<rotation-speed>
+				<x-min-deg-sec>0</x-min-deg-sec>
+				<y-min-deg-sec>0</y-min-deg-sec>
+				<z-min-deg-sec>0</z-min-deg-sec>
+				<x-max-deg-sec>0</x-max-deg-sec>
+				<y-max-deg-sec>0</y-max-deg-sec>
+				<z-max-deg-sec>0</z-max-deg-sec>
+			</rotation-speed>
+		</shooter>
+		
+		<counter>
+			<particles-per-sec>
+			<value>50</value>
+			<spread>0</spread>
+			</particles-per-sec>
+		</counter>
+		
+		<align>billboard</align>
+		
+		<particle>
+			<start>
+				<color>
+					<red>
+						<expression>
+							<product>
+								<value>0.7</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</red>
+					<green>
+						<expression>
+							<product>
+								<value>0.7</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</green>
+					<blue>
+						<expression>
+							<product>
+								<value>0.7</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</blue>
+					<alpha>
+						<value>0.3</value>
+					</alpha>
+				</color>
+				<size>
+					<value>2</value>
+				</size>
+			</start>
 
-   <emissive type="bool">false</emissive>
-   <lighting type="bool">false</lighting>
+			<end>
+				<color>
+					<red>
+						<expression>
+							<product>
+								<value>1.0</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</red>
+					<green>
+						<expression>
+							<product>
+								<value>1.0</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</green>
+					<blue>
+						<expression>
+							<product>
+								<value>1.0</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</blue>
+					<alpha>
+						<value>0.00000001</value>
+					</alpha>
+				</color>
+				<size>
+					<value>6</value>
+				</size>
+			</end>
 
-   <condition>
-     <and>
-       <greater-than>
-         <property>engines/engine[0]/n2</property>
-         <value>50</value>
-       </greater-than>
-       <greater-than>
-         <property>position/altitude-ft</property>
-         <value>19000</value>
-       </greater-than>
-       <less-than>
-         <property>environment/temperature-degc</property>
-         <value>-40</value>
-       </less-than>
-     </and>
-   </condition>
+			<life-sec>
+				<value>10</value>
+			</life-sec>
 
-   <attach>world</attach>
+			<mass-kg>0.5</mass-kg>
+			<radius-m>0.5</radius-m>
+		</particle>
 
-   <placer>
-     <type>point</type> 
-   </placer>
-
-   <shooter>
-     <theta-min-deg>-1.5</theta-min-deg>
-     <theta-max-deg>1.5</theta-max-deg>
-     <phi-min-deg>-1.5</phi-min-deg>
-     <phi-max-deg>1.5</phi-max-deg>
-     <speed-mps>
-       <value>0</value>
-       <spread>0</spread>
-     </speed-mps>
-     <rotation-speed>
-       <x-min-deg-sec>0</x-min-deg-sec>
-       <y-min-deg-sec>0</y-min-deg-sec>
-       <z-min-deg-sec>0</z-min-deg-sec>
-       <x-max-deg-sec>0</x-max-deg-sec>
-       <y-max-deg-sec>0</y-max-deg-sec>
-       <z-max-deg-sec>0</z-max-deg-sec>
-     </rotation-speed>
-   </shooter>
-
-   <counter>
-     <particles-per-sec>
-       <value>35</value>
-       <spread>0</spread>
-     </particles-per-sec>
-   </counter>
-      
-   <align>billboard</align>
-
-   <particle>
-     <start>
-		<color>
-			<red>
-				<expression>
-					<product>
-						<value>0.7</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</red>
-			<green>
-				<expression>
-					<product>
-						<value>0.7</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</green>
-			<blue>
-				<expression>
-					<product>
-						<value>0.7</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</blue>
-			<alpha>
-				<value>0.3</value>
-			</alpha>
-		</color>
-       <size>
-         <value>2</value>
-       </size>
-     </start>
-
-     <end>
-		<color>
-			<red>
-				<expression>
-					<product>
-						<value>1.0</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</red>
-			<green>
-				<expression>
-					<product>
-						<value>1.0</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</green>
-			<blue>
-				<expression>
-					<product>
-						<value>1.0</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</blue>
-			<alpha>
-				<value>0.00000001</value>
-			</alpha>
-		</color>
-		<size>
-			<value>6</value>
-		</size>
-	</end>
-
-     <life-sec>
-       <value>10</value>
-     </life-sec>
-        
-     <mass-kg>  0.5 </mass-kg>
-     <radius-m> 0.5 </radius-m>
-   </particle>
-
-   <program>
-     <fluid>               air  </fluid>
-     <gravity type="bool"> true </gravity>
-     <wind typ="bool">     true </wind>
-   </program>
-
- </particlesystem>
+		<program>
+			<fluid>air</fluid>
+			<gravity type="bool">true</gravity>
+			<wind typ="bool">true</wind>
+		</program>
+	</particlesystem>
 
 </PropertyList>
diff --git a/Models/Effects/contrail-eng2.xml b/Models/Effects/contrail-eng2.xml
index b032572a..3040eb44 100644
--- a/Models/Effects/contrail-eng2.xml
+++ b/Models/Effects/contrail-eng2.xml
@@ -1,161 +1,151 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-##############################################
-# Copyright (c) Joshua Davidson (it0uchpods) #
-##############################################
--->
+<?xml version="1.0" encoding="UTF-8"?>
 
 <PropertyList>
- <particlesystem>
-   <name>smoke</name>
-   <texture>res/smoke.png</texture>
-   <offsets>
-		<x-m>30</x-m>
-		<y-m>0.00</y-m>
-		<z-m>2</z-m>
-		<pitch-deg>90</pitch-deg>
-    </offsets>
+	
+	<particlesystem>
+		<name>contrail-eng2</name>
+		<texture>contrail.rgb</texture>
+		<emissive type="bool">false</emissive>
+		<lighting type="bool">false</lighting>
+		<condition>
+			<and>
+				<greater-than>
+					<property>engines/engine[1]/n2-actual</property>
+					<value>50</value>
+				</greater-than>
+				<greater-than>
+					<property>/position/altitude-ft</property>
+					<value>19000</value>
+				</greater-than>
+				<less-than>
+					<property>environment/temperature-degc</property>
+					<value>-30</value>
+				</less-than>
+				<equals>
+					<property>engines/engine[1]/state</property>
+					<value>3</value>
+				</equals>
+			</and>
+		</condition>
+		
+		<attach>world</attach>
+		
+		<placer>
+			<type>point</type> 
+		</placer>
+		
+		<shooter>
+			<theta-min-deg>-1.5</theta-min-deg>
+			<theta-max-deg>1.5</theta-max-deg>
+			<phi-min-deg>-1.5</phi-min-deg>
+			<phi-max-deg>1.5</phi-max-deg>
+			<speed-mps>
+				<value>0</value>
+				<spread>0</spread>
+			</speed-mps>
+			<rotation-speed>
+				<x-min-deg-sec>0</x-min-deg-sec>
+				<y-min-deg-sec>0</y-min-deg-sec>
+				<z-min-deg-sec>0</z-min-deg-sec>
+				<x-max-deg-sec>0</x-max-deg-sec>
+				<y-max-deg-sec>0</y-max-deg-sec>
+				<z-max-deg-sec>0</z-max-deg-sec>
+			</rotation-speed>
+		</shooter>
+		
+		<counter>
+			<particles-per-sec>
+			<value>50</value>
+			<spread>0</spread>
+			</particles-per-sec>
+		</counter>
+		
+		<align>billboard</align>
+		
+		<particle>
+			<start>
+				<color>
+					<red>
+						<expression>
+							<product>
+								<value>0.7</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</red>
+					<green>
+						<expression>
+							<product>
+								<value>0.7</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</green>
+					<blue>
+						<expression>
+							<product>
+								<value>0.7</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</blue>
+					<alpha>
+						<value>0.3</value>
+					</alpha>
+				</color>
+				<size>
+					<value>2</value>
+				</size>
+			</start>
 
-   <emissive type="bool">false</emissive>
-   <lighting type="bool">false</lighting>
+			<end>
+				<color>
+					<red>
+						<expression>
+							<product>
+								<value>1.0</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</red>
+					<green>
+						<expression>
+							<product>
+								<value>1.0</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</green>
+					<blue>
+						<expression>
+							<product>
+								<value>1.0</value>
+								<property>rendering/scene/diffuse/red</property>
+							</product>
+						</expression>
+					</blue>
+					<alpha>
+						<value>0.00000001</value>
+					</alpha>
+				</color>
+				<size>
+					<value>6</value>
+				</size>
+			</end>
 
-   <condition>
-     <and>
-       <greater-than>
-         <property>engines/engine[1]/n2</property>
-         <value>50</value>
-       </greater-than>
-       <greater-than>
-         <property>position/altitude-ft</property>
-         <value>19000</value>
-       </greater-than>
-       <less-than>
-         <property>environment/temperature-degc</property>
-         <value>-40</value>
-       </less-than>
-     </and>
-   </condition>
+			<life-sec>
+				<value>10</value>
+			</life-sec>
 
-   <attach>world</attach>
+			<mass-kg>0.5</mass-kg>
+			<radius-m>0.5</radius-m>
+		</particle>
 
-   <placer>
-     <type>point</type> 
-   </placer>
-
-   <shooter>
-     <theta-min-deg>-1.5</theta-min-deg>
-     <theta-max-deg>1.5</theta-max-deg>
-     <phi-min-deg>-1.5</phi-min-deg>
-     <phi-max-deg>1.5</phi-max-deg>
-     <speed-mps>
-       <value>0</value>
-       <spread>0</spread>
-     </speed-mps>
-     <rotation-speed>
-       <x-min-deg-sec>0</x-min-deg-sec>
-       <y-min-deg-sec>0</y-min-deg-sec>
-       <z-min-deg-sec>0</z-min-deg-sec>
-       <x-max-deg-sec>0</x-max-deg-sec>
-       <y-max-deg-sec>0</y-max-deg-sec>
-       <z-max-deg-sec>0</z-max-deg-sec>
-     </rotation-speed>
-   </shooter>
-
-   <counter>
-     <particles-per-sec>
-       <value>35</value>
-       <spread>0</spread>
-     </particles-per-sec>
-   </counter>
-      
-   <align>billboard</align>
-
-    <particle>
-     <start>
-		<color>
-			<red>
-				<expression>
-					<product>
-						<value>0.7</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</red>
-			<green>
-				<expression>
-					<product>
-						<value>0.7</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</green>
-			<blue>
-				<expression>
-					<product>
-						<value>0.7</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</blue>
-			<alpha>
-				<value>0.3</value>
-			</alpha>
-		</color>
-       <size>
-         <value>2</value>
-       </size>
-     </start>
-
-     <end>
-		<color>
-			<red>
-				<expression>
-					<product>
-						<value>1.0</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</red>
-			<green>
-				<expression>
-					<product>
-						<value>1.0</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</green>
-			<blue>
-				<expression>
-					<product>
-						<value>1.0</value>
-						<property>rendering/scene/diffuse/red</property>
-					</product>
-				</expression>
-			</blue>
-			<alpha>
-				<value>0.00000001</value>
-			</alpha>
-		</color>
-		<size>
-			<value>6</value>
-		</size>
-	</end>
-
-     <life-sec>
-       <value>10</value>
-     </life-sec>
-        
-     <mass-kg>  0.5 </mass-kg>
-     <radius-m> 0.5 </radius-m>
-   </particle>
-
-   <program>
-     <fluid>               air  </fluid>
-     <gravity type="bool"> true </gravity>
-     <wind typ="bool">     true </wind>
-   </program>
-
- </particlesystem>
+		<program>
+			<fluid>air</fluid>
+			<gravity type="bool">true</gravity>
+			<wind typ="bool">true</wind>
+		</program>
+	</particlesystem>
 
 </PropertyList>

From d80536c07003f5062a128a1a664ee0205ad2fb28 Mon Sep 17 00:00:00 2001
From: Joshua Davidson <joshuadavidson2000@gmail.com>
Date: Fri, 14 Dec 2018 20:53:10 -0500
Subject: [PATCH 7/7] Sim: Ground reactions update

---
 Systems/a320-ground-reactions.xml | 32 +++++++++++++++----------------
 revision.txt                      |  2 +-
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/Systems/a320-ground-reactions.xml b/Systems/a320-ground-reactions.xml
index 65aeae80..e87dc473 100644
--- a/Systems/a320-ground-reactions.xml
+++ b/Systems/a320-ground-reactions.xml
@@ -20,8 +20,8 @@
 		<spring_coeff unit="LBS/FT"> 30935.5 </spring_coeff>
 		<damping_coeff unit="LBS/FT/SEC"> 16978.5 </damping_coeff>
 		<max_steer unit="DEG"> 70 </max_steer>
-		<brake_group> NOSE </brake_group>
-		<retractable>1</retractable>
+		<brake_group> NONE </brake_group>
+		<retractable> 1 </retractable>
 	</contact>
 	<contact type="BOGEY" name="LEFT_MLG">
 		<location unit="M">
@@ -36,7 +36,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 23957 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> LEFT </brake_group>
-		<retractable>1</retractable>
+		<retractable> 1 </retractable>
 	</contact>
 	<contact type="BOGEY" name="RIGHT_MLG">
 		<location unit="M">
@@ -51,7 +51,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 23957 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> RIGHT </brake_group>
-		<retractable>1</retractable>
+		<retractable> 1 </retractable>
 	</contact>
 	
 	<contact type="STRUCTURE" name="NOSE_1">
@@ -67,7 +67,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	<contact type="STRUCTURE" name="NOSE_2">
 		<location unit="M">
@@ -82,7 +82,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	
 	<contact type="STRUCTURE" name="BOTTOM_1">
@@ -98,7 +98,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	<contact type="STRUCTURE" name="BOTTOM_2">
 		<location unit="M">
@@ -113,7 +113,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	
 	<contact type="STRUCTURE" name="TOP_1">
@@ -129,7 +129,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	<contact type="STRUCTURE" name="TOP_2">
 		<location unit="M">
@@ -144,7 +144,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	
 	<contact type="STRUCTURE" name="ENG_1">
@@ -160,7 +160,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	<contact type="STRUCTURE" name="ENG_2">
 		<location unit="M">
@@ -175,7 +175,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	
 	<contact type="STRUCTURE" name="TAIL_1">
@@ -191,7 +191,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	<contact type="STRUCTURE" name="TAIL_2">
 		<location unit="M">
@@ -206,7 +206,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	
 	<contact type="STRUCTURE" name="WING_TIP_1">
@@ -222,7 +222,7 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 	<contact type="STRUCTURE" name="WING_TIP_2">
 		<location unit="M">
@@ -237,6 +237,6 @@
 		<damping_coeff unit="LBS/FT/SEC"> 50000 </damping_coeff>
 		<max_steer unit="DEG"> 0.0 </max_steer>
 		<brake_group> NONE </brake_group>
-		<retractable>0</retractable>
+		<retractable> 0 </retractable>
 	</contact>
 </ground_reactions>
diff --git a/revision.txt b/revision.txt
index 09b480c2..49bf383f 100644
--- a/revision.txt
+++ b/revision.txt
@@ -1 +1 @@
-4709
\ No newline at end of file
+4710
\ No newline at end of file