Merge remote-tracking branch 'upstream/dev' into terrain
This commit is contained in:
commit
cb54074596
4 changed files with 84 additions and 8 deletions
|
@ -5188,6 +5188,8 @@ var canvas_MCDU_base = {
|
|||
|
||||
me.dynamicPageArrowFunc(myVertRev[i]);
|
||||
me.colorLeftArrow(myVertRev[i].arrowsColour[0][0],myVertRev[i].arrowsColour[0][1],myVertRev[i].arrowsColour[0][2],myVertRev[i].arrowsColour[0][3],myVertRev[i].arrowsColour[0][4],myVertRev[i].arrowsColour[0][5]);
|
||||
me.colorRightArrow(myVertRev[i].arrowsColour[1][0],myVertRev[i].arrowsColour[1][1],myVertRev[i].arrowsColour[1][2],myVertRev[i].arrowsColour[1][3],myVertRev[i].arrowsColour[1][4],myVertRev[i].arrowsColour[1][5]);
|
||||
|
||||
|
||||
me.dynamicPageFontFunc(myVertRev[i]);
|
||||
|
||||
|
|
|
@ -117,15 +117,15 @@ var fplnItem = {
|
|||
},
|
||||
getAlt: func() {
|
||||
if (me.index == 0 and left(me.wp.wp_name, 4) == fmgc.FMGCInternal.depApt and fmgc.flightPlanController.flightplans[me.plan].departure != nil) {
|
||||
return [" " ~ sprintf("%5.0f", math.round(fmgc.flightPlanController.flightplans[me.plan].departure.elevation * M2FT)), "grn"]; #fixed - aligned to right
|
||||
return [" " ~ sprintf("%5.0f", math.round(fmgc.flightPlanController.flightplans[me.plan].departure.elevation * M2FT)), "grn"];
|
||||
} elsif (me.index == (fmgc.flightPlanController.currentToWptIndex.getValue() - 1) and fmgc.flightPlanController.fromWptAlt != nil) {
|
||||
return [" " ~ fmgc.flightPlanController.fromWptAlt, "mag"];
|
||||
} elsif (me.wp.alt_cstr != nil and me.wp.alt_cstr > 0) {
|
||||
var tcol = (me.wp.alt_cstr_type == "computed" or me.wp.alt_cstr_type == "computed_mach") ? "grn" : "mag"; # TODO - check if only computed
|
||||
if (me.wp.alt_cstr > fmgc.FMGCInternal.transAlt) {
|
||||
return [" " ~ sprintf("%5s", "FL" ~ math.round(num(me.wp.alt_cstr) / 100)), tcol]; #fixed - aligned to right
|
||||
return [" " ~ sprintf("%5s", "FL" ~ math.round(num(me.wp.alt_cstr) / 100)), tcol];
|
||||
} else {
|
||||
return [" " ~ sprintf("%5.0f", me.wp.alt_cstr), tcol]; #fixed - aligned to right
|
||||
return [" " ~ sprintf("%5.0f", me.wp.alt_cstr), tcol];
|
||||
}
|
||||
} else {
|
||||
return ["------", "wht"];
|
||||
|
|
|
@ -636,6 +636,8 @@ var lskbutton = func(btn, i) {
|
|||
mcdu_scratchpad.scratchpads[i].empty();
|
||||
}
|
||||
}
|
||||
} else if (page == "VERTREV") {
|
||||
canvas_mcdu.myVertRev[i].pushButtonLeft(3);
|
||||
} else if (page == "MCDUTEXT") {
|
||||
atsu.freeTexts[i].selection = 2;
|
||||
atsu.freeTexts[i].changed = 1;
|
||||
|
@ -1085,6 +1087,8 @@ var rskbutton = func(btn, i) {
|
|||
atsu.freeTexts[i].changed = 1;
|
||||
} else if (page == "ATCMENU") {
|
||||
pageNode[i].setValue("MCDUTEXT");
|
||||
} else if (page == "VERTREV") {
|
||||
canvas_mcdu.myVertRev[i].pushButtonRight(3);
|
||||
} else {
|
||||
mcdu_message(i, "NOT ALLOWED");
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
var scratchpadStore = nil;
|
||||
|
||||
var vertRev = {
|
||||
title: [nil, nil, nil],
|
||||
subtitle: [nil, nil],
|
||||
|
@ -42,6 +44,28 @@ var vertRev = {
|
|||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
}
|
||||
},
|
||||
getSpd: func() {
|
||||
if (me.wp.speed_cstr != nil and me.wp.speed_cstr > 0) {
|
||||
var tcol = (me.wp.speed_cstr_type == "computed" or me.wp.speed_cstr_type == "computed_mach") ? "grn" : "mag"; # TODO - check if only computed
|
||||
return [" " ~ sprintf("%3.0f", me.wp.speed_cstr), tcol];
|
||||
} else {
|
||||
return [nil,nil];
|
||||
}
|
||||
},
|
||||
getAlt: func() {
|
||||
if (me.wp.alt_cstr != nil and me.wp.alt_cstr > 0) {
|
||||
var tcol = (me.wp.alt_cstr_type == "computed" or me.wp.alt_cstr_type == "computed_mach") ? "grn" : "mag"; # TODO - check if only computed
|
||||
if (me.wp.alt_cstr > fmgc.FMGCInternal.transAlt) {
|
||||
return [sprintf("%5s", "FL" ~ math.round(num(me.wp.alt_cstr) / 100)) ~ " ", tcol];
|
||||
} else {
|
||||
return [sprintf("%5.0f", me.wp.alt_cstr) ~ " ", tcol];
|
||||
}
|
||||
} else {
|
||||
return [nil,nil];
|
||||
}
|
||||
},
|
||||
alt: nil,
|
||||
speed: nil,
|
||||
_setupPageWithData: func() {
|
||||
if (me.type == 3) {
|
||||
me.title = ["VERT REV", " AT ", "PPOS"];
|
||||
|
@ -57,15 +81,30 @@ var vertRev = {
|
|||
me.fontMatrix = [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]];
|
||||
} elsif (me.type == 2) {
|
||||
me.title = ["VERT REV", " AT ", me.id];
|
||||
me.fontMatrix = [[0, 0, 1, 0, 0, 0], [0, 0, 1, 0, 0, 0]];
|
||||
me.L1 = ["", " EFOB ---.-", "wht"];
|
||||
me.R1 = ["", "EXTRA ---.- ", "wht"];
|
||||
me.L2 = ["250/10000", " CLB SPD LIM", "mag"];
|
||||
me.L3 = [" [ ]", " SPD CSTR", "blu"];
|
||||
me.speed = me.getSpd();
|
||||
if (me.speed[0] == nil) {
|
||||
me.L3 = [" [ ]", " SPD CSTR", "blu"];
|
||||
me.fontMatrix[0][2] = 1;
|
||||
} else {
|
||||
me.L3 = [me.speed[0], " SPD CSTR", me.speed[1]];
|
||||
me.fontMatrix[0][2] = 0;
|
||||
}
|
||||
me.L4 = [" CONSTANT MACH", nil, "wht"];
|
||||
me.L5 = [" WIND DATA", nil, "wht"];
|
||||
me.L6 = [" CLB", nil, "amb"];
|
||||
me.R2 = ["RTA ", nil, "wht"];
|
||||
me.R3 = ["[ ] ", "ALT CSTR ", "blu"];
|
||||
me.alt = me.getAlt();
|
||||
if (me.alt[0] == nil) {
|
||||
me.R3 = ["[ ] ", "ALT CSTR ", "blu"];
|
||||
me.fontMatrix[1][2] = 1;
|
||||
} else {
|
||||
me.R3 = [me.alt[0], "ALT CSTR ", me.alt[1]];
|
||||
me.fontMatrix[1][2] = 0;
|
||||
}
|
||||
me.R6 = ["DES ", nil, "amb"];
|
||||
# When the system does vertical planning, L6 should be RETURN and R6 not used if the MCDU knows the waypoint is during climb or descent.
|
||||
# The CLB or DES prompts should only be shown for a vertical revision in the cruise phase.
|
||||
|
@ -74,7 +113,6 @@ var vertRev = {
|
|||
# The 'arrows' for CLB/DES should actually be asterisks.
|
||||
me.arrowsMatrix = [[0, 0, 0, 1, 1, 1], [0, 1, 0, 0, 0, 1]];
|
||||
me.arrowsColour = [["ack", "ack", "ack", "wht", "wht", "amb"], ["ack", "wht", "ack", "ack", "wht", "amb"]];
|
||||
me.fontMatrix = [[0, 0, 1, 0, 0, 0], [0, 0, 1, 0, 0, 0]];
|
||||
} else {
|
||||
me.title = ["VERT REV", " AT ", me.id];
|
||||
|
||||
|
@ -135,8 +173,22 @@ var vertRev = {
|
|||
}
|
||||
},
|
||||
pushButtonLeft: func(index) {
|
||||
if (index == 5) {
|
||||
#print("role: ", me.wp.wp_role, ", type: ", me.wp.wp_type);
|
||||
scratchpadStore = mcdu_scratchpad.scratchpads[me.computer].scratchpad;
|
||||
if (index == 3 and me.type == 2) {
|
||||
if (scratchpadStore == "CLR") {
|
||||
me.wp.setSpeed("delete");
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
me._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
} elsif (num(scratchpadStore) != nil and size(scratchpadStore) == 3 and scratchpadStore >= 100 and scratchpadStore <= 350) {
|
||||
me.wp.setSpeed(scratchpadStore, "at");
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
me._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
} else {
|
||||
mcdu_message(me.computer, "FORMAT ERROR");
|
||||
}
|
||||
} elsif (index == 5) {
|
||||
if (me.wp.wp_role == "sid") {
|
||||
if (canvas_mcdu.myCLBWIND[me.computer] == nil) {
|
||||
canvas_mcdu.myCLBWIND[me.computer] = windCLBPage.new(me.computer);
|
||||
|
@ -182,6 +234,24 @@ var vertRev = {
|
|||
mcdu_message(me.computer, "NOT ALLOWED");
|
||||
}
|
||||
},
|
||||
pushButtonRight: func(index) {
|
||||
scratchpadStore = mcdu_scratchpad.scratchpads[me.computer].scratchpad;
|
||||
if (index == 3 and me.type == 2) {
|
||||
if (scratchpadStore == "CLR") {
|
||||
me.wp.setAltitude("delete");
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
me._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
} elsif (num(scratchpadStore) != nil and (size(scratchpadStore) == 4 or size(scratchpadStore) == 5) and scratchpadStore >= 0 and scratchpadStore <= 39000) {
|
||||
me.wp.setAltitude(math.round(scratchpadStore, 10), "at");
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
me._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
} else {
|
||||
mcdu_message(me.computer, "FORMAT ERROR");
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
var updateCrzLvlCallback = func () {
|
||||
|
|
Loading…
Add table
Reference in a new issue