]> git.mxchange.org Git - flightgear.git/commitdiff
loadxml: if argument "targetnode" isn't defined, return the file data in
authormfranz <mfranz>
Mon, 4 Jun 2007 10:07:31 +0000 (10:07 +0000)
committermfranz <mfranz>
Mon, 4 Jun 2007 10:07:31 +0000 (10:07 +0000)
the argument tree under "data". This is useful in cases where the file
data are only needed temporarily and shouldn't remain in the main tree.

src/Main/fg_commands.cxx

index 2c0f7c23dabdec17843594a277ad759811352915..3ecb7591c437d8aa501317f76eceb29510888e36 100644 (file)
@@ -1312,22 +1312,25 @@ do_hud_init2(const SGPropertyNode *)
 /**
  * An fgcommand to allow loading of xml files via nasal,
  * the xml file's structure will be made available within
- * a (definable) property tree node
+ * a property tree node defined under argument "targetnode",
+ * or in the given argument tree under "data" otherwise.
  *
  * @param filename a string to hold the complete path & filename of a XML file
  * @param targetnode a string pointing to a location within the property tree
  * where to store the parsed XML file
  */
 
-static bool 
-do_load_xml_to_proptree(const SGPropertyNode * node)
+static bool
+do_load_xml_to_proptree(const SGPropertyNode * arg)
 {
-    // SG_LOG(SG_GENERAL, SG_ALERT, "fgcommand loadxml executed");
+    SGPropertyNode *a = const_cast<SGPropertyNode *>(arg);
+    SGPropertyNode *targetnode;
+    if (a->hasValue("targetnode"))
+        targetnode = fgGetNode(a->getStringValue("targetnode"), true);
+    else
+        targetnode = a->getNode("data", true);
 
-    SGPropertyNode * targetnode;
-    targetnode = fgGetNode(node->getNode("targetnode")->getStringValue(),true);
-               
-    const char *filename = node->getNode("filename")->getStringValue();
+    const char *filename = a->getNode("filename")->getStringValue();
     try {
         fgLoadProps(filename, targetnode);
     } catch (const sg_exception &e) {
@@ -1484,7 +1487,7 @@ static struct {
     { "hud-init", do_hud_init },
     { "hud-init2", do_hud_init2 },
     { "loadxml", do_load_xml_to_proptree},
-    { "savexml", do_save_xml_from_proptree },    
+    { "savexml", do_save_xml_from_proptree },
     { "press-cockpit-button", do_press_cockpit_button },
     { "release-cockpit-button", do_release_cockpit_button },
     { "dump-scenegraph", do_dump_scene_graph },