From 2ec1aab0ae9232610549c270c4cc6c3ddbe51eb7 Mon Sep 17 00:00:00 2001
From: Joshua Davidson <joshuadavidson2000@gmail.com>
Date: Thu, 21 Dec 2017 09:20:33 -0500
Subject: [PATCH] A3XX: Minor FMGC optimization

---
 Nasal/FMGC-b.nas | 41 ++++++++++++++---------------------------
 1 file changed, 14 insertions(+), 27 deletions(-)

diff --git a/Nasal/FMGC-b.nas b/Nasal/FMGC-b.nas
index 4ce975ea..9113f966 100644
--- a/Nasal/FMGC-b.nas
+++ b/Nasal/FMGC-b.nas
@@ -245,15 +245,7 @@ var lateral = func {
 		setprop("/it-autoflight/mode/arm", " ");
 	} else if (latset == 1) {
 		if (getprop("/autopilot/route-manager/route/num") > 0 and getprop("/autopilot/route-manager/active") == 1 and getprop("/position/gear-agl-ft") >= 30) {
-			alandt.stop();
-			alandt1.stop();
-			setprop("/it-autoflight/input/lat-arm", 0);
-			setprop("/it-autoflight/output/loc-armed", 0);
-			setprop("/it-autoflight/output/appr-armed", 0);
-			setprop("/it-autoflight/output/lat", 1);
-			setprop("/it-autoflight/mode/lat", "LNAV");
-			setprop("/it-autoflight/mode/arm", " ");
-			setprop("/it-autoflight/custom/show-hdg", 0);
+			make_lnav_active();
 		} else {
 			setprop("/it-autoflight/input/lat-arm", 1);
 			setprop("/it-autoflight/mode/arm", "LNV");
@@ -674,15 +666,6 @@ setlistener("/it-autoflight/input/kts-mach", func {
 
 # Takeoff Modes
 # Lat Active
-var latarms = func {
-	if () {
-		if (getprop("/it-autoflight/input/lat-arm") == 1) {
-			setprop("/it-autoflight/input/lat", getprop("/it-autoflight/input/lat-arm"));
-			setprop("/it-autoflight/input/lat-arm", 0);
-		}
-	}
-}
-
 # TOGA
 setlistener("/it-autoflight/input/toga", func {
 	if (getprop("/it-autoflight/input/toga") == 1) {
@@ -880,15 +863,7 @@ var check_arms = func {
 
 var update_arms = func {
 	if (getprop("/it-autoflight/input/lat-arm") == 1 and getprop("/autopilot/route-manager/route/num") > 0 and getprop("/autopilot/route-manager/active") == 1 and getprop("/position/gear-agl-ft") >= 30) {
-		alandt.stop();
-		alandt1.stop();
-		setprop("/it-autoflight/input/lat-arm", 0);
-		setprop("/it-autoflight/output/loc-armed", 0);
-		setprop("/it-autoflight/output/appr-armed", 0);
-		setprop("/it-autoflight/output/lat", 1);
-		setprop("/it-autoflight/mode/lat", "LNAV");
-		setprop("/it-autoflight/mode/arm", " ");
-		setprop("/it-autoflight/custom/show-hdg", 0);
+		make_lnav_active();
 	}
 	if (getprop("/instrumentation/nav[0]/in-range") == 1) {
 		if (getprop("/it-autoflight/output/loc-armed")) {
@@ -910,6 +885,18 @@ var update_arms = func {
 	}
 }
 
+var make_lnav_active = func {
+	alandt.stop();
+	alandt1.stop();
+	setprop("/it-autoflight/input/lat-arm", 0);
+	setprop("/it-autoflight/output/loc-armed", 0);
+	setprop("/it-autoflight/output/appr-armed", 0);
+	setprop("/it-autoflight/output/lat", 1);
+	setprop("/it-autoflight/mode/lat", "LNAV");
+	setprop("/it-autoflight/mode/arm", " ");
+	setprop("/it-autoflight/custom/show-hdg", 0);
+}
+
 var make_loc_active = func {
 	setprop("/it-autoflight/output/loc-armed", 0);
 	setprop("/it-autoflight/output/lat", 2);