111 lines
2.8 KiB
Text
111 lines
2.8 KiB
Text
var screenTaskSelect = {
|
|
page : 0,
|
|
pointer: 0,
|
|
n: 0,
|
|
loaded: 0,
|
|
right : func {
|
|
me.loaded = 0;
|
|
blocked = 1;
|
|
var t = browse(size(routes), me.pointer, me.page, arg[0]);
|
|
me.pointer = t[0];
|
|
me.page = t[1];
|
|
},
|
|
load : func {
|
|
screenWaypointsList.n = 0;
|
|
gps_data.getNode("route",1).removeChildren("Waypoint");
|
|
fgcommand("loadxml", props.Node.new({
|
|
"filename": getprop("/sim/fg-home") ~ "/Routes/" ~ routes[(me.page * 5) + me.pointer],
|
|
"targetnode": "/instrumentation/gps/route"
|
|
}));
|
|
foreach (var c; gps_data.getNode("route").getChildren("Waypoint"))
|
|
screenWaypointsList.n += 1;
|
|
gps_wp.getNode("wp/latitude-deg",1).setValue(gps_data.getNode("indicated-latitude-deg",1).getValue());
|
|
gps_wp.getNode("wp/longitude-deg",1).setValue(gps_data.getNode("indicated-longitude-deg",1).getValue());
|
|
gps_wp.getNode("wp/altitude-ft",1).setValue(gps_data.getNode("indicated-altitude-ft",1).getValue());
|
|
gps_wp.getNode("wp/ID").setValue("startpos");
|
|
|
|
gps_wp.getNode("wp[1]/latitude-deg",1).setValue(gps_data.getNode("route/Waypoint/latitude-deg",1).getValue());
|
|
gps_wp.getNode("wp[1]/longitude-deg",1).setValue(gps_data.getNode("route/Waypoint/longitude-deg",1).getValue());
|
|
gps_wp.getNode("wp[1]/altitude-ft",1).setValue(gps_data.getNode("route/Waypoint/altitude-ft",1).getValue());
|
|
gps_wp.getNode("wp[1]/ID").setValue(gps_data.getNode("route/Waypoint/ID",1).getValue());
|
|
|
|
waypointindex = 0;
|
|
me.loaded = 1;
|
|
},
|
|
enter : func {
|
|
},
|
|
escape : func {
|
|
},
|
|
start : func {
|
|
me.n > 0 or return;
|
|
me.load();
|
|
blocked = 0;
|
|
left_knob(1);
|
|
},
|
|
lines : func {
|
|
if (me.loaded != 1) blocked = 1;
|
|
if (me.n == 0) {
|
|
display([
|
|
"",
|
|
"",
|
|
"NO ROUTE FOUND",
|
|
"",
|
|
""
|
|
]);
|
|
}
|
|
else for (var l = 0; l < 5; l += 1) {
|
|
if ((me.page * 5 + l) < me.n) {
|
|
name = routes[me.page * 5 + l];
|
|
if (substr(name, -4) == ".xml") name = substr(name, 0, size(name) - 4);
|
|
name = string.uc(name);
|
|
line[l].setValue(sprintf("%s %s",me.pointer == l ? ">" : " ", name));
|
|
}
|
|
else
|
|
line[l].setValue("");
|
|
}
|
|
}
|
|
};
|
|
|
|
var screenWaypointsList = {
|
|
n: 0,
|
|
page: 0,
|
|
pointer: 0,
|
|
right : func {
|
|
var t = browse(me.n, me.pointer, me.page, arg[0]);
|
|
me.pointer = t[0];
|
|
me.page = t[1];
|
|
},
|
|
enter : func {
|
|
},
|
|
escape : func {
|
|
},
|
|
start : func {
|
|
},
|
|
lines : func {
|
|
for (var l = 0; l < 5; l += 1) {
|
|
if ((me.page * 5 + l) < me.n) {
|
|
name = gps_data.getNode("route/Waypoint["~((me.page*5) + l)~"]/ID").getValue();
|
|
line[l].setValue(sprintf("%s %s",me.pointer == l ? ">" : " ", name));
|
|
}
|
|
else
|
|
line[l].setValue("");
|
|
}
|
|
}
|
|
};
|
|
|
|
var screenWaypointInfos = {
|
|
right : func {
|
|
},
|
|
enter : func {
|
|
},
|
|
escape : func {
|
|
},
|
|
start : func {
|
|
},
|
|
lines : func {
|
|
display(NOT_YET_IMPLEMENTED);
|
|
}
|
|
};
|
|
|
|
|
|
|