Push new logic to climb page, make work on both mcdus
This commit is contained in:
parent
79f8c543a1
commit
331baf014b
4 changed files with 204 additions and 116 deletions
|
@ -92,8 +92,8 @@ var flightPlanController = {
|
|||
if (canvas_mcdu.myAirways[n] != nil) {
|
||||
canvas_mcdu.myAirways[n].updateTmpy();
|
||||
}
|
||||
me.flightPlanChanged(n);
|
||||
fmgc.windController.createTemporaryWinds(n);
|
||||
me.flightPlanChanged(n);
|
||||
},
|
||||
|
||||
loadFlightPlan: func(path) {
|
||||
|
@ -122,6 +122,7 @@ var flightPlanController = {
|
|||
canvas_mcdu.myDirTo[n].updateTmpy();
|
||||
}
|
||||
fmgc.windController.destroyTemporaryWinds(n, a);
|
||||
me.flightPlanChanged(n);
|
||||
},
|
||||
|
||||
updateAirports: func(dep, arr, plan) {
|
||||
|
|
|
@ -1,34 +1,31 @@
|
|||
# A3XX FMGC Wind Driver
|
||||
# Copyright (c) 2020 Matthew Maring (mattmaring)
|
||||
|
||||
var wpDep = nil;
|
||||
var wpArr = nil;
|
||||
var pos = nil;
|
||||
var geoPosPrev = geo.Coord.new();
|
||||
var currentLegCourseDist = nil;
|
||||
var courseDistanceFrom = nil;
|
||||
var courseDistanceFromPrev = nil;
|
||||
var sizeWP = nil;
|
||||
var magTrueError = 0;
|
||||
var storeCourse = nil;
|
||||
|
||||
var DEBUG_DISCONT = 0;
|
||||
|
||||
# Props.getNode
|
||||
var magHDG = props.globals.getNode("/orientation/heading-magnetic-deg", 1);
|
||||
var trueHDG = props.globals.getNode("/orientation/heading-deg", 1);
|
||||
var FMGCdep = props.globals.getNode("/FMGC/internal/dep-arpt", 1);
|
||||
var FMGCarr = props.globals.getNode("/FMGC/internal/arr-arpt", 1);
|
||||
var toFromSet = props.globals.getNode("/FMGC/internal/tofrom-set", 1);
|
||||
|
||||
var wind = {
|
||||
heading: 0,
|
||||
magnitude: 0,
|
||||
altitude: "",
|
||||
|
||||
new: func() {
|
||||
return {
|
||||
parents: [wind],
|
||||
heading: 0,
|
||||
magnitude: 0,
|
||||
altitude: 0
|
||||
altitude: ""
|
||||
};
|
||||
},
|
||||
|
||||
newcopy: func(heading, magnitude, altitude) {
|
||||
me.heading = heading;
|
||||
me.magnitude = magnitude;
|
||||
me.altitude = altitude;
|
||||
|
||||
return {
|
||||
parents: [wind],
|
||||
heading: me.heading,
|
||||
magnitude: me.magnitude,
|
||||
altitude: me.altitude
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -45,6 +42,7 @@ var waypoint_winds = {
|
|||
me.id = id;
|
||||
me.type = type;
|
||||
me.includeWind = includeWind;
|
||||
|
||||
return {
|
||||
id: me.id,
|
||||
type: me.type, #departure, waypoint, arrival
|
||||
|
@ -55,23 +53,45 @@ var waypoint_winds = {
|
|||
wind4: wind.new(),
|
||||
wind5: wind.new()
|
||||
};
|
||||
},
|
||||
|
||||
newcopy: func(id, type, includeWind, wind1, wind2, wind3, wind4, wind5) {
|
||||
me.id = id;
|
||||
me.type = type;
|
||||
me.includeWind = includeWind;
|
||||
me.wind1 = wind1;
|
||||
me.wind2 = wind2;
|
||||
me.wind3 = wind3;
|
||||
me.wind4 = wind4;
|
||||
me.wind5 = wind5;
|
||||
|
||||
return {
|
||||
id: me.id,
|
||||
type: me.type, #departure, waypoint, arrival
|
||||
includeWind: me.includeWind,
|
||||
wind1: me.wind1,
|
||||
wind2: me.wind2,
|
||||
wind3: me.wind3,
|
||||
wind4: me.wind4,
|
||||
wind5: me.wind5
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
var windController = {
|
||||
winds: [[], [], []],
|
||||
clb_winds: [0, 0, 0],
|
||||
crz_winds: [0, 0, 0],
|
||||
des_winds: [0, 0, 0],
|
||||
winds: [[], [], []], #waypoint winds used if route includes navaids
|
||||
nav_indicies: [[], [], []],
|
||||
windSizes: [0, 0, 0],
|
||||
#temporaryFlag: [0, 0],
|
||||
|
||||
init: func() {
|
||||
me.resetWind(2);
|
||||
#me.insertWind(2, 0, 1);
|
||||
#me.insertWind(2, 1, 0);
|
||||
# temp = waypoint_winds.new("KCVG", "waypoint", 1);
|
||||
# print(temp.wind2.magnitude);
|
||||
# temp.wind2.magnitude = 200;
|
||||
# print(temp.wind2.magnitude);
|
||||
me.clb_winds[2] = waypoint_winds.new("climb", "waypoint", 1);
|
||||
me.crz_winds[2] = waypoint_winds.new("cruize", "waypoint", 1);
|
||||
me.des_winds[2] = waypoint_winds.new("descent", "waypoint", 1);
|
||||
},
|
||||
|
||||
reset: func() {
|
||||
|
@ -83,13 +103,31 @@ var windController = {
|
|||
},
|
||||
|
||||
resetWind: func(n) {
|
||||
me.clb_winds[n] = 0;
|
||||
me.crz_winds[n] = 0;
|
||||
me.des_winds[n] = 0;
|
||||
me.winds[n] = [];
|
||||
me.nav_indicies[n] = [];
|
||||
me.windSizes[n] = 0;
|
||||
},
|
||||
|
||||
copyClbWind: func(n) {
|
||||
var id = me.clb_winds[n].id;
|
||||
var type = me.clb_winds[n].type;
|
||||
var includeWind = me.clb_winds[n].includeWind;
|
||||
var wind1 = wind.newcopy(me.clb_winds[n].wind1.heading, me.clb_winds[n].wind1.magnitude, me.clb_winds[n].wind1.altitude);
|
||||
var wind2 = wind.newcopy(me.clb_winds[n].wind2.heading, me.clb_winds[n].wind2.magnitude, me.clb_winds[n].wind2.altitude);
|
||||
var wind3 = wind.newcopy(me.clb_winds[n].wind3.heading, me.clb_winds[n].wind3.magnitude, me.clb_winds[n].wind3.altitude);
|
||||
var wind4 = wind.newcopy(me.clb_winds[n].wind4.heading, me.clb_winds[n].wind4.magnitude, me.clb_winds[n].wind4.altitude);
|
||||
var wind5 = wind.newcopy(me.clb_winds[n].wind5.heading, me.clb_winds[n].wind5.magnitude, me.clb_winds[n].wind5.altitude);
|
||||
return waypoint_winds.newcopy(id, type, includeWind, wind1, wind2, wind3, wind4, wind5);
|
||||
},
|
||||
|
||||
createTemporaryWinds: func(n) {
|
||||
me.resetWind(n);
|
||||
me.clb_winds[n] = me.copyClbWind(2);
|
||||
me.crz_winds[n] = me.crz_winds[2];
|
||||
me.des_winds[n] = me.des_winds[2];
|
||||
me.winds[n] = me.winds[2];
|
||||
me.nav_indicies[n] = me.nav_indicies[2];
|
||||
me.windSizes[n] = me.windSizes[2];
|
||||
|
@ -97,15 +135,19 @@ var windController = {
|
|||
},
|
||||
|
||||
destroyTemporaryWinds: func(n, a) { # a = 1 activate, a = 0 erase
|
||||
me.updatePlans();
|
||||
print("destroying temporary ", n);
|
||||
if (a == 1) {
|
||||
me.resetWind(2);
|
||||
me.clb_winds[2] = me.copyClbWind(n);
|
||||
me.crz_winds[2] = me.crz_winds[n];
|
||||
me.des_winds[2] = me.des_winds[n];
|
||||
me.winds[2] = me.winds[n];
|
||||
me.nav_indicies[2] = me.nav_indicies[n];
|
||||
me.windSizes[2] = me.windSizes[n];
|
||||
}
|
||||
if (n == 3) { return; }
|
||||
me.resetWind(n);
|
||||
#me.updatePlans();
|
||||
#me.temporaryFlag[n] = 0;
|
||||
},
|
||||
|
||||
|
@ -174,6 +216,7 @@ var windController = {
|
|||
me.winds = [[], [], []];
|
||||
me.nav_indicies = [[], [], []];
|
||||
me.windSizes = [0, 0, 0];
|
||||
|
||||
# loop through waypoints
|
||||
for (plan = 0; plan <= 2; plan += 1) {
|
||||
for (i = 0; i < fmgc.flightPlanController.flightplans[plan].getPlanSize(); i += 1) {
|
||||
|
@ -190,7 +233,7 @@ var windController = {
|
|||
for (index = 0; index < windSizes_copy[plan]; index += 1) {
|
||||
print(waypoint.id, " : ", winds_copy[plan][index].id);
|
||||
if (waypoint.id == winds_copy[plan][index].id) {
|
||||
append(me.winds[plan], waypoint_winds.new(waypoint.id, "waypoint", 1));
|
||||
append(me.winds[plan], winds_copy[plan][index]);
|
||||
append(me.nav_indicies[plan], i);
|
||||
me.windSizes[plan] += 1;
|
||||
found = 1;
|
||||
|
@ -211,72 +254,73 @@ var windController = {
|
|||
}
|
||||
}
|
||||
|
||||
me.updateWind(0);
|
||||
me.updateWind(1);
|
||||
me.updateWind(2);
|
||||
if (canvas_mcdu.myCLBWIND[1] != nil) {
|
||||
canvas_mcdu.myCLBWIND[1]._setupPageWithData();
|
||||
}
|
||||
if (canvas_mcdu.myCLBWIND[0] != nil) {
|
||||
canvas_mcdu.myCLBWIND[0]._setupPageWithData();
|
||||
}
|
||||
},
|
||||
|
||||
updateWind: func(n) {
|
||||
if (n == 0) {
|
||||
if (canvas_mcdu.myCLBWIND[0] != nil and canvas_mcdu.myCLBWIND[1] != nil) {
|
||||
canvas_mcdu.myCLBWIND[1].windList = canvas_mcdu.myCLBWIND[0].windList;
|
||||
canvas_mcdu.myCLBWIND[1]._setupPageWithData();
|
||||
}
|
||||
|
||||
if (canvas_mcdu.myCRZWIND[0] != nil and canvas_mcdu.myCRZWIND[1] != nil) {
|
||||
if (!getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(0)) == 0) {
|
||||
canvas_mcdu.myCRZWIND[1].windList = canvas_mcdu.myCRZWIND[0].windList;
|
||||
} else {
|
||||
canvas_mcdu.myCRZWIND[1].del();
|
||||
canvas_mcdu.myCRZWIND[1] = nil;
|
||||
canvas_mcdu.myCRZWIND[1] = mcdu.windCRZPage.new(1, me.getWaypointList(2)[0], 0);
|
||||
}
|
||||
canvas_mcdu.myCRZWIND[1]._setupPageWithData();
|
||||
} else if (canvas_mcdu.myCRZWIND[1] != nil and getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(0)) > 0) {
|
||||
canvas_mcdu.myCRZWIND[1].del();
|
||||
canvas_mcdu.myCRZWIND[1] = nil;
|
||||
canvas_mcdu.myCRZWIND[1] = mcdu.windCRZPage.new(1, me.getWaypointList(2)[0], 0);
|
||||
canvas_mcdu.myCRZWIND[1]._setupPageWithData();
|
||||
}
|
||||
|
||||
if (canvas_mcdu.myDESWIND[0] != nil and canvas_mcdu.myDESWIND[1] != nil) {
|
||||
canvas_mcdu.myDESWIND[1].windList = canvas_mcdu.myDESWIND[0].windList;
|
||||
canvas_mcdu.myDESWIND[1]._setupPageWithData();
|
||||
}
|
||||
|
||||
if (canvas_mcdu.myHISTWIND[1] != nil) {
|
||||
canvas_mcdu.myHISTWIND[1]._setupPageWithData();
|
||||
}
|
||||
|
||||
# if (canvas_mcdu.myCRZWIND[0] != nil and canvas_mcdu.myCRZWIND[1] != nil) {
|
||||
# if (!getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(0)) == 0) {
|
||||
# canvas_mcdu.myCRZWIND[1].windList = canvas_mcdu.myCRZWIND[0].windList;
|
||||
# } else {
|
||||
# canvas_mcdu.myCRZWIND[1].del();
|
||||
# canvas_mcdu.myCRZWIND[1] = nil;
|
||||
# canvas_mcdu.myCRZWIND[1] = mcdu.windCRZPage.new(1, me.getWaypointList(2)[0], 0);
|
||||
# }
|
||||
# canvas_mcdu.myCRZWIND[1]._setupPageWithData();
|
||||
# } else if (canvas_mcdu.myCRZWIND[1] != nil and getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(0)) > 0) {
|
||||
# canvas_mcdu.myCRZWIND[1].del();
|
||||
# canvas_mcdu.myCRZWIND[1] = nil;
|
||||
# canvas_mcdu.myCRZWIND[1] = mcdu.windCRZPage.new(1, me.getWaypointList(2)[0], 0);
|
||||
# canvas_mcdu.myCRZWIND[1]._setupPageWithData();
|
||||
# }
|
||||
#
|
||||
# if (canvas_mcdu.myDESWIND[0] != nil and canvas_mcdu.myDESWIND[1] != nil) {
|
||||
# canvas_mcdu.myDESWIND[1].windList = canvas_mcdu.myDESWIND[0].windList;
|
||||
# canvas_mcdu.myDESWIND[1]._setupPageWithData();
|
||||
# }
|
||||
#
|
||||
# if (canvas_mcdu.myHISTWIND[1] != nil) {
|
||||
# canvas_mcdu.myHISTWIND[1]._setupPageWithData();
|
||||
# }
|
||||
} else {
|
||||
if (canvas_mcdu.myCLBWIND[0] != nil and canvas_mcdu.myCLBWIND[1] != nil) {
|
||||
canvas_mcdu.myCLBWIND[0].windList = canvas_mcdu.myCLBWIND[1].windList;
|
||||
canvas_mcdu.myCLBWIND[0]._setupPageWithData();
|
||||
}
|
||||
|
||||
if (canvas_mcdu.myCRZWIND[0] != nil and canvas_mcdu.myCRZWIND[1] != nil) {
|
||||
if (!getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(1)) == 0) {
|
||||
canvas_mcdu.myCRZWIND[0].windList = canvas_mcdu.myCRZWIND[1].windList;
|
||||
} else {
|
||||
canvas_mcdu.myCRZWIND[0].del();
|
||||
canvas_mcdu.myCRZWIND[0] = nil;
|
||||
canvas_mcdu.myCRZWIND[0] = mcdu.windCRZPage.new(0, me.getWaypointList(2)[0], 0);
|
||||
}
|
||||
canvas_mcdu.myCRZWIND[0]._setupPageWithData();
|
||||
} else if (canvas_mcdu.myCRZWIND[0] != nil and getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(1)) > 0) {
|
||||
canvas_mcdu.myCRZWIND[0].del();
|
||||
canvas_mcdu.myCRZWIND[0] = nil;
|
||||
canvas_mcdu.myCRZWIND[0] = mcdu.windCRZPage.new(0, me.getWaypointList(2)[0], 0);
|
||||
canvas_mcdu.myCRZWIND[0]._setupPageWithData();
|
||||
}
|
||||
|
||||
if (canvas_mcdu.myDESWIND[0] != nil and canvas_mcdu.myDESWIND[1] != nil) {
|
||||
canvas_mcdu.myDESWIND[0].windList = canvas_mcdu.myDESWIND[1].windList;
|
||||
canvas_mcdu.myDESWIND[0]._setupPageWithData();
|
||||
}
|
||||
|
||||
if (canvas_mcdu.myHISTWIND[0] != nil) {
|
||||
canvas_mcdu.myHISTWIND[0]._setupPageWithData();
|
||||
}
|
||||
|
||||
# if (canvas_mcdu.myCRZWIND[0] != nil and canvas_mcdu.myCRZWIND[1] != nil) {
|
||||
# if (!getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(1)) == 0) {
|
||||
# canvas_mcdu.myCRZWIND[0].windList = canvas_mcdu.myCRZWIND[1].windList;
|
||||
# } else {
|
||||
# canvas_mcdu.myCRZWIND[0].del();
|
||||
# canvas_mcdu.myCRZWIND[0] = nil;
|
||||
# canvas_mcdu.myCRZWIND[0] = mcdu.windCRZPage.new(0, me.getWaypointList(2)[0], 0);
|
||||
# }
|
||||
# canvas_mcdu.myCRZWIND[0]._setupPageWithData();
|
||||
# } else if (canvas_mcdu.myCRZWIND[0] != nil and getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(1)) > 0) {
|
||||
# canvas_mcdu.myCRZWIND[0].del();
|
||||
# canvas_mcdu.myCRZWIND[0] = nil;
|
||||
# canvas_mcdu.myCRZWIND[0] = mcdu.windCRZPage.new(0, me.getWaypointList(2)[0], 0);
|
||||
# canvas_mcdu.myCRZWIND[0]._setupPageWithData();
|
||||
# }
|
||||
#
|
||||
# if (canvas_mcdu.myDESWIND[0] != nil and canvas_mcdu.myDESWIND[1] != nil) {
|
||||
# canvas_mcdu.myDESWIND[0].windList = canvas_mcdu.myDESWIND[1].windList;
|
||||
# canvas_mcdu.myDESWIND[0]._setupPageWithData();
|
||||
# }
|
||||
#
|
||||
# if (canvas_mcdu.myHISTWIND[0] != nil) {
|
||||
# canvas_mcdu.myHISTWIND[0]._setupPageWithData();
|
||||
# }
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -29,19 +29,11 @@ var windCLBPage = {
|
|||
vector: [],
|
||||
index: nil,
|
||||
computer: nil,
|
||||
windList: [],
|
||||
items: 0,
|
||||
new: func(computer) {
|
||||
var wcp = {parents:[windCLBPage]};
|
||||
wcp.computer = computer;
|
||||
if (computer == 0 and canvas_mcdu.myCLBWIND[1] != nil) {
|
||||
wcp.windList = canvas_mcdu.myCLBWIND[1].windList;
|
||||
} else if (computer == 1 and canvas_mcdu.myCLBWIND[0] != nil) {
|
||||
wcp.windList = canvas_mcdu.myCLBWIND[0].windList;
|
||||
} else {
|
||||
wcp.windList = [nil];
|
||||
}
|
||||
wcp._setupPageWithData();
|
||||
wcp.updateTmpy();
|
||||
return wcp;
|
||||
},
|
||||
del: func() {
|
||||
|
@ -55,9 +47,32 @@ var windCLBPage = {
|
|||
me.arrowsColour = [["ack", "ack", "ack", "ack", "ack", "ack"], ["wht", "ack", "ack", "ack", "wht", "ack"]];
|
||||
me.fontMatrix = [[1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0]];
|
||||
|
||||
if (size(me.windList) >= 5) {
|
||||
if (me.windList[4] != nil) {
|
||||
me.L5 = [me.windList[4][0] ~ "/" ~ me.windList[4][1] ~ "/" ~ me.windList[4][2], nil, "blu"];
|
||||
var computer_temp = 2;
|
||||
if (fmgc.flightPlanController.temporaryFlag[me.computer]) {
|
||||
computer_temp = me.computer;
|
||||
}
|
||||
|
||||
debug.dump(fmgc.windController.clb_winds[0]);
|
||||
debug.dump(fmgc.windController.clb_winds[1]);
|
||||
debug.dump(fmgc.windController.clb_winds[2]);
|
||||
|
||||
if (fmgc.windController.clb_winds[computer_temp] == 0 or fmgc.windController.clb_winds[computer_temp].wind1.altitude == "") {
|
||||
me.items = 1;
|
||||
} else if (fmgc.windController.clb_winds[computer_temp].wind2.altitude == "") {
|
||||
me.items = 2;
|
||||
} else if (fmgc.windController.clb_winds[computer_temp].wind3.altitude == "") {
|
||||
me.items = 3;
|
||||
} else if (fmgc.windController.clb_winds[computer_temp].wind4.altitude == "") {
|
||||
me.items = 4;
|
||||
} else {
|
||||
me.items = 5;
|
||||
}
|
||||
|
||||
if (me.items >= 5) {
|
||||
var wind = 0;
|
||||
wind = fmgc.windController.clb_winds[computer_temp].wind5;
|
||||
if (wind.altitude != "") {
|
||||
me.L5 = [wind.heading ~ "/" ~ wind.magnitude ~ "/" ~ wind.altitude, nil, "blu"];
|
||||
me.fontMatrix[0][4] = 0;
|
||||
} else {
|
||||
me.L5 = ["[ ]/[ ]/[ ]", nil, "blu"];
|
||||
|
@ -67,9 +82,10 @@ var windCLBPage = {
|
|||
me.L5 = [nil, nil, "ack"];
|
||||
}
|
||||
|
||||
if (size(me.windList) >= 4) {
|
||||
if (me.windList[3] != nil) {
|
||||
me.L4 = [me.windList[3][0] ~ "/" ~ me.windList[3][1] ~ "/" ~ me.windList[3][2], nil, "blu"];
|
||||
if (me.items >= 4) {
|
||||
wind = fmgc.windController.clb_winds[computer_temp].wind4;
|
||||
if (wind.altitude != "") {
|
||||
me.L4 = [wind.heading ~ "/" ~ wind.magnitude ~ "/" ~ wind.altitude, nil, "blu"];
|
||||
me.fontMatrix[0][3] = 0;
|
||||
} else {
|
||||
me.L4 = ["[ ]/[ ]/[ ]", nil, "blu"];
|
||||
|
@ -79,9 +95,10 @@ var windCLBPage = {
|
|||
me.L4 = [nil, nil, "ack"];
|
||||
}
|
||||
|
||||
if (size(me.windList) >= 3) {
|
||||
if (me.windList[2] != nil) {
|
||||
me.L3 = [me.windList[2][0] ~ "/" ~ me.windList[2][1] ~ "/" ~ me.windList[2][2], nil, "blu"];
|
||||
if (me.items >= 3) {
|
||||
wind = fmgc.windController.clb_winds[computer_temp].wind3;
|
||||
if (wind.altitude != "") {
|
||||
me.L3 = [wind.heading ~ "/" ~ wind.magnitude ~ "/" ~ wind.altitude, nil, "blu"];
|
||||
me.fontMatrix[0][2] = 0;
|
||||
} else {
|
||||
me.L3 = ["[ ]/[ ]/[ ]", nil, "blu"];
|
||||
|
@ -91,9 +108,10 @@ var windCLBPage = {
|
|||
me.L3 = [nil, nil, "ack"];
|
||||
}
|
||||
|
||||
if (size(me.windList) >= 2) {
|
||||
if (me.windList[1] != nil) {
|
||||
me.L2 = [me.windList[1][0] ~ "/" ~ me.windList[1][1] ~ "/" ~ me.windList[1][2], nil, "blu"];
|
||||
if (me.items >= 2) {
|
||||
wind = fmgc.windController.clb_winds[computer_temp].wind2;
|
||||
if (wind.altitude != "") {
|
||||
me.L2 = [wind.heading ~ "/" ~ wind.magnitude ~ "/" ~ wind.altitude, nil, "blu"];
|
||||
me.fontMatrix[0][1] = 0;
|
||||
} else {
|
||||
me.L2 = ["[ ]/[ ]/[ ]", nil, "blu"];
|
||||
|
@ -103,9 +121,10 @@ var windCLBPage = {
|
|||
me.L2 = [nil, nil, "ack"];
|
||||
}
|
||||
|
||||
if (size(me.windList) >= 1) {
|
||||
if (me.windList[0] != nil) {
|
||||
me.L1 = [me.windList[0][0] ~ "/" ~ me.windList[0][1] ~ "/" ~ me.windList[0][2], "TRU WIND/ALT", "blu"];
|
||||
if (me.items >= 1) {
|
||||
wind = fmgc.windController.clb_winds[computer_temp].wind1;
|
||||
if (wind.altitude != "") {
|
||||
me.L1 = [wind.heading ~ "/" ~ wind.magnitude ~ "/" ~ wind.altitude, "TRU WIND/ALT", "blu"];
|
||||
me.fontMatrix[0][0] = 0;
|
||||
} else {
|
||||
me.L1 = ["[ ]/[ ]/[ ]", "TRU WIND/ALT", "blu"];
|
||||
|
@ -154,20 +173,45 @@ var windCLBPage = {
|
|||
me.updateTmpy();
|
||||
},
|
||||
pushButtonLeft: func(index) {
|
||||
if (size(me.windList) >= index) {
|
||||
if (me.items >= index) {
|
||||
if (size(mcdu_scratchpad.scratchpads[me.computer].scratchpad) == 13) {
|
||||
var winds = split("/", mcdu_scratchpad.scratchpads[me.computer].scratchpad);
|
||||
if (size(winds[0]) == 3 and num(winds[0]) != nil and winds[0] >= 0 and winds[0] <= 360 and
|
||||
size(winds[1]) == 3 and num(winds[1]) != nil and winds[1] >= 0 and winds[1] <= 200 and
|
||||
size(winds[2]) == 5 and ((num(winds[2]) != nil and winds[2] >= 1000 and winds[2] <= 39000) or
|
||||
(num(split("FL", winds[2])[1]) != nil and split("FL", winds[2])[1] >= 10 and split("FL", winds[2])[1] <= 390))) {
|
||||
me.windList[index - 1] = [winds[0], winds[1], winds[2]];
|
||||
me.makeTmpy();
|
||||
var computer_temp = 2;
|
||||
if (fmgc.flightPlanController.temporaryFlag[me.computer]) {
|
||||
computer_temp = me.computer;
|
||||
}
|
||||
#print(computer_temp);
|
||||
if (index == 5) {
|
||||
fmgc.windController.clb_winds[computer_temp].wind5.heading = winds[0];
|
||||
fmgc.windController.clb_winds[computer_temp].wind5.magnitude = winds[1];
|
||||
fmgc.windController.clb_winds[computer_temp].wind5.altitude = winds[2];
|
||||
} else if (index == 4) {
|
||||
fmgc.windController.clb_winds[computer_temp].wind4.heading = winds[0];
|
||||
fmgc.windController.clb_winds[computer_temp].wind4.magnitude = winds[1];
|
||||
fmgc.windController.clb_winds[computer_temp].wind4.altitude = winds[2];
|
||||
} else if (index == 3) {
|
||||
fmgc.windController.clb_winds[computer_temp].wind3.heading = winds[0];
|
||||
fmgc.windController.clb_winds[computer_temp].wind3.magnitude = winds[1];
|
||||
fmgc.windController.clb_winds[computer_temp].wind3.altitude = winds[2];
|
||||
} else if (index == 2) {
|
||||
fmgc.windController.clb_winds[computer_temp].wind2.heading = winds[0];
|
||||
fmgc.windController.clb_winds[computer_temp].wind2.magnitude = winds[1];
|
||||
fmgc.windController.clb_winds[computer_temp].wind2.altitude = winds[2];
|
||||
} else if (index == 1) {
|
||||
fmgc.windController.clb_winds[computer_temp].wind1.heading = winds[0];
|
||||
fmgc.windController.clb_winds[computer_temp].wind1.magnitude = winds[1];
|
||||
fmgc.windController.clb_winds[computer_temp].wind1.altitude = winds[2];
|
||||
}
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
if (index != 5) {
|
||||
append(me.windList, nil);
|
||||
if (me.items == index and index != 5) {
|
||||
me.items += 1;
|
||||
}
|
||||
me._setupPageWithData();
|
||||
me.makeTmpy();
|
||||
me.updateTmpy();
|
||||
} else {
|
||||
mcdu_message(me.computer, "NOT ALLOWED");
|
||||
|
|
|
@ -198,7 +198,6 @@ var windCRZPage = {
|
|||
me.updateTmpy();
|
||||
},
|
||||
pushButtonLeft: func(index) {
|
||||
#destroyTemporaryFlightPlan
|
||||
if (size(me.windList) >= index) {
|
||||
if (size(mcdu_scratchpad.scratchpads[me.computer].scratchpad) == 13) {
|
||||
var winds = split("/", mcdu_scratchpad.scratchpads[me.computer].scratchpad);
|
||||
|
|
Loading…
Add table
Reference in a new issue