From: ehofman Date: Sat, 13 Sep 2003 11:45:47 +0000 (+0000) Subject: Frederic Bouvier: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=6f4fd2dc6e1a034bd7781cc6a80fa64ad93adaae;p=simgear.git Frederic Bouvier: 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. --- diff --git a/simgear/scene/model/model.cxx b/simgear/scene/model/model.cxx index 0b699ee0..311ee707 100644 --- a/simgear/scene/model/model.cxx +++ b/simgear/scene/model/model.cxx @@ -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");