]> git.mxchange.org Git - simgear.git/commitdiff
Frederic Bouvier:
authorehofman <ehofman>
Sat, 13 Sep 2003 11:45:47 +0000 (11:45 +0000)
committerehofman <ehofman>
Sat, 13 Sep 2003 11:45:47 +0000 (11:45 +0000)
This patch is there to correct a problem that prevent to load static objects when specifying a relative fg-root or a different, relative, fg-scenery. It appears that there is a mix between fg-root, fg-scenery and PLIB's model-dir.
It has been reported on the list that users are not able to see the buildings, especially those running the win32 builds because they run 'runfgfs.bat' that set FG_ROOT=./DATA.

I decided not to use model-dir because it just add confusion and to build a valid path earlier.

simgear/scene/model/model.cxx

index 0b699ee091f57b4754d1763494eec3607dd100de..311ee707a5fced443e92a619857e0d8f74edfefe 100644 (file)
@@ -189,19 +189,16 @@ sgLoad3DModel( const string &fg_root, const string &path,
   SGPropertyNode props;
 
                                 // Load the 3D aircraft object itself
-  SGPath xmlpath;
   SGPath modelpath = path;
-  if ( ulIsAbsolutePathName( path.c_str() ) ) {
-    xmlpath = modelpath;
-  }
-  else {
-    xmlpath = fg_root;
-    xmlpath.append(modelpath.str());
+  if ( !ulIsAbsolutePathName( path.c_str() ) ) {
+    SGPath tmp = fg_root;
+    tmp.append(modelpath.str());
+    modelpath = tmp;
   }
 
                                 // Check for an XML wrapper
-  if (xmlpath.str().substr(xmlpath.str().size() - 4, 4) == ".xml") {
-    readProperties(xmlpath.str(), &props);
+  if (modelpath.str().substr(modelpath.str().size() - 4, 4) == ".xml") {
+    readProperties(modelpath.str(), &props);
     if (props.hasValue("/path")) {
       modelpath = modelpath.dir();
       modelpath.append(props.getStringValue("/path"));
@@ -214,7 +211,7 @@ sgLoad3DModel( const string &fg_root, const string &path,
                                 // Assume that textures are in
                                 // the same location as the XML file.
   if (model == 0) {
-    ssgTexturePath((char *)xmlpath.dir().c_str());
+    ssgTexturePath((char *)modelpath.dir().c_str());
     model = (ssgBranch *)ssgLoad((char *)modelpath.c_str());
     if (model == 0)
       throw sg_exception("Failed to load 3D model");