diff --git a/src/Main/main.cxx b/src/Main/main.cxx index 947f495a0..4f2947fbd 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -1676,9 +1676,6 @@ bool fgMainInit( int argc, char **argv ) { exit(-1); } - SGPath modelpath( globals->get_fg_root() ); - ssgModelPath( (char *)modelpath.c_str() ); - //////////////////////////////////////////////////////////////////// // Initialize the property-based built-in commands //////////////////////////////////////////////////////////////////// diff --git a/src/Model/model_panel.cxx b/src/Model/model_panel.cxx index 3c197f661..492b39d29 100644 --- a/src/Model/model_panel.cxx +++ b/src/Model/model_panel.cxx @@ -49,19 +49,16 @@ fgLoad3DModelPanel( 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")); @@ -74,7 +71,7 @@ fgLoad3DModelPanel( 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"); diff --git a/src/Scenery/tileentry.cxx b/src/Scenery/tileentry.cxx index a22102219..c9371972e 100644 --- a/src/Scenery/tileentry.cxx +++ b/src/Scenery/tileentry.cxx @@ -676,6 +676,8 @@ FGTileEntry::load( const string &base_path, bool is_base ) SGPath custom_path; if ( token == "OBJECT_STATIC" ) { custom_path= tile_path; + } else { + custom_path = globals->get_fg_root(); } custom_path.append( name ); diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index f6306678e..f1046c552 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -280,7 +280,7 @@ void FGTileMgr::update_queues() try { ssgEntity *obj_model = - globals->get_model_lib()->load_model( globals->get_fg_root(), + globals->get_model_lib()->load_model( ".", dm->get_model_path(), globals->get_props(), globals->get_sim_time_sec() );