diff --git a/Aircraft/ufo/ufo-set.xml b/Aircraft/ufo/ufo-set.xml index 9f53e0c04..845b5f82b 100644 --- a/Aircraft/ufo/ufo-set.xml +++ b/Aircraft/ufo/ufo-set.xml @@ -87,6 +87,10 @@ m toggle marker for active (= last selected) object + + n + export flightplan + P toggle radar panel (see Ctrl-C for the control areas) @@ -181,6 +185,15 @@ + + n + Export FlightPlan + + nasal + + + + PageUp Increase throttle or autopilot autothrottle. @@ -374,6 +387,7 @@ on 40 2 + 180 WX true diff --git a/Aircraft/ufo/ufo.nas b/Aircraft/ufo/ufo.nas index c8c45a934..5371404e1 100644 --- a/Aircraft/ufo/ufo.nas +++ b/Aircraft/ufo/ufo.nas @@ -633,6 +633,27 @@ var export_data = func { } +var export_flightplan = func { + var path = getprop("/sim/fg-home") ~ "/ufo-flightplan-export.xml"; + var args = props.Node.new({ filename : path }); + var export = args.getNode("data/flightplan", 1); + var waypoints = modelmgr.get_data().getChildren("model"); + forindex (var i; waypoints) { + var from = waypoints[i]; + var to = export.getChild("wpt", i, 1); + to.getNode("name", 1).setValue("#" ~ i); + to.getNode("lat", 1).setDoubleValue(from.getNode("latitude-deg").getValue()); + to.getNode("lon", 1).setDoubleValue(from.getNode("longitude-deg").getValue()); + to.getNode("crossat", 1).setDoubleValue(from.getNode("elevation-ft").getValue()); + to.getNode("on-ground", 1).setBoolValue(1); + to.getNode("ktas", 1).setDoubleValue(100); + } + export.getChild("wpt", i, 1).getNode("name", 1).setValue("END"); + + fgcommand("savexml", args); + print("flightplan exported to ", path); +} + var file_selector = nil;