diff --git a/Fonts/HoneywellMCDU.ttf b/Fonts/HoneywellMCDU.ttf
index f4ed812c..f5c7916c 100644
Binary files a/Fonts/HoneywellMCDU.ttf and b/Fonts/HoneywellMCDU.ttf differ
diff --git a/Models/Instruments/MCDU/MCDU1.xml b/Models/Instruments/MCDU/MCDU1.xml
index 1b7c9182..2133e61a 100644
--- a/Models/Instruments/MCDU/MCDU1.xml
+++ b/Models/Instruments/MCDU/MCDU1.xml
@@ -1673,7 +1673,7 @@
-
+
pick
clr
diff --git a/Models/Instruments/MCDU/MCDU2.xml b/Models/Instruments/MCDU/MCDU2.xml
index 78516b3e..d49c0a8d 100644
--- a/Models/Instruments/MCDU/MCDU2.xml
+++ b/Models/Instruments/MCDU/MCDU2.xml
@@ -1673,7 +1673,7 @@
-
+
pick
clr
diff --git a/Nasal/FMGC/FMGC-b.nas b/Nasal/FMGC/FMGC-b.nas
index bdd332cb..950c99a8 100644
--- a/Nasal/FMGC/FMGC-b.nas
+++ b/Nasal/FMGC/FMGC-b.nas
@@ -432,16 +432,11 @@ var ITAF = {
}
Internal.lnavAdvanceNm.setValue(FPLN.turnDist);
- # Advance logic done by flightplan controller
- if (FPLN.wp0Dist.getValue() <= FPLN.turnDist and !Gear.wow1.getBoolValue()) {
+ if (FPLN.wp0Dist.getValue() <= FPLN.turnDist and !Gear.wow1.getBoolValue() and fmgc.flightPlanController.flightplans[2].getWP(FPLN.currentWpTemp).fly_type == "flyBy") {
+ flightPlanController.autoSequencing();
+ } elsif (FPLN.wp0Dist.getValue() <= 0.15) {
flightPlanController.autoSequencing();
}
-
- #if (FPLN.wp0Dist.getValue() <= FPLN.turnDist and !Gear.wow1.getBoolValue() and fmgc.flightPlanController.flightplans[2].getWP(FPLN.currentWpTemp).fly_type == "flyBy") {
- # flightPlanController.autoSequencing();
- #} elsif (FPLN.wp0Dist.getValue() <= 0.1) {
- # flightPlanController.autoSequencing();
- #}
}
}
},
diff --git a/Nasal/FMGC/flightplan.nas b/Nasal/FMGC/flightplan.nas
index b072de4e..426457a0 100644
--- a/Nasal/FMGC/flightplan.nas
+++ b/Nasal/FMGC/flightplan.nas
@@ -245,6 +245,19 @@ var flightPlanController = {
}
},
+ # changeOverflyType - toggle flyby type of passed waypoint
+ # args: index, plan, computer
+ # index: index to toggle
+ # plan: plan on which operation is performed
+ # If the passed waypoint exists, toggle its flyover attribute
+ changeOverFlyType: func(index, plan) {
+ wp = me.flightplans[plan].getWP(index);
+ if (wp == nil or wp.wp_name == "DISCONTINUITY" or wp.wp_name == "VECTORS") { return 1; };
+
+ wp.fly_type = (wp.fly_type == "flyBy") ? "flyOver" : "flyBy";
+ return 2;
+ },
+
# for these two remember to call flightPlanChanged. We are assuming this is called from a function which will all flightPlanChanged itself.
# addDiscontinuity - insert discontinuity at passed index
@@ -730,6 +743,8 @@ var flightPlanController = {
if (size(split("/", text)) == 3) {
return me.getWPforPBD(text, index, thePlan);
+ } elsif (text == "@") {
+ return me.changeOverFlyType(index, thePlan);
} elsif (text == "CLR") {
return me.deleteWP(index, thePlan, 0);
} elsif (size(text) > 12) {
diff --git a/Nasal/MCDU/F-PLN.nas b/Nasal/MCDU/F-PLN.nas
index a83f7c0f..92c00b52 100644
--- a/Nasal/MCDU/F-PLN.nas
+++ b/Nasal/MCDU/F-PLN.nas
@@ -20,9 +20,9 @@ var fplnItem = {
return ["MANUAL", me.getSubText(), me.colour];
} else {
if (size(wptName) == 2) {
- return[wptName[0] ~ wptName[1], me.getSubText(), me.colour];
+ return[wptName[0] ~ wptName[1 ~ (me.wp.fly_type == "flyOver" ? "@" : "")], me.getSubText(), me.colour];
} else {
- return [me.wp.wp_name, me.getSubText(), me.colour];
+ return [me.wp.wp_name ~ (me.wp.fly_type == "flyOver" ? "@" : ""), me.getSubText(), me.colour];
}
}
} else {
diff --git a/Nasal/MCDU/MCDU.nas b/Nasal/MCDU/MCDU.nas
index 60d363d8..55c0df44 100644
--- a/Nasal/MCDU/MCDU.nas
+++ b/Nasal/MCDU/MCDU.nas
@@ -1531,6 +1531,8 @@ var button = func(btn, i, event = "") {
} else {
mcdu_scratchpad.scratchpads[i].addChar("-");
}
+ } else if (btn == "OVFY") {
+ mcdu_scratchpad.scratchpads[i].addChar("@");
} else {
mcdu_scratchpad.scratchpads[i].addChar(btn);
}
diff --git a/gui/dialogs/mcdu1-dlg.xml b/gui/dialogs/mcdu1-dlg.xml
index b2abfed9..c3377802 100644
--- a/gui/dialogs/mcdu1-dlg.xml
+++ b/gui/dialogs/mcdu1-dlg.xml
@@ -1255,7 +1255,7 @@
25
25
-
+