]> git.mxchange.org Git - flightgear.git/commitdiff
Permit a single nasal module to reference any number of files which are all
authorcurt <curt>
Wed, 16 Mar 2005 21:36:55 +0000 (21:36 +0000)
committercurt <curt>
Wed, 16 Mar 2005 21:36:55 +0000 (21:36 +0000)
loaded into that single nasal name space.

src/Scripting/NasalSys.cxx

index c7063647ca889966cde8d2002d9c02795631e3b2..1a894415bcc071624588374404013709aed542f5 100644 (file)
@@ -355,6 +355,22 @@ void FGNasalSys::loadPropertyScripts()
         if(n->hasChild("module"))
             module = n->getStringValue("module");
 
+        // allow multiple files to be specified within in a single
+        // Nasal module tag
+        int j = 0;
+        SGPropertyNode *fn;
+        bool file_specified = false;
+        while ( (fn = n->getChild("file", j)) != NULL ) {
+            file_specified = true;
+            const char* file = fn->getStringValue();
+            SGPath p(globals->get_fg_root());
+            p.append(file);
+            readScriptFile(p, module);
+            j++;
+        }
+
+        // Old code which only allowed a single file to be specified per module
+        /*
         const char* file = n->getStringValue("file");
         if(!n->hasChild("file")) file = 0; // Hrm...
         if(file) {
@@ -362,13 +378,14 @@ void FGNasalSys::loadPropertyScripts()
             p.append(file);
             readScriptFile(p, module);
         }
+        */
         
         const char* src = n->getStringValue("script");
         if(!n->hasChild("script")) src = 0; // Hrm...
         if(src)
             initModule(module, n->getPath(), src, strlen(src));
 
-        if(!file && !src)
+        if(!file_specified && !src)
             SG_LOG(SG_NASAL, SG_ALERT, "Nasal error: " <<
                    "no <file> or <script> defined in " <<
                    "/nasal/" << module);