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 - +