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;