1
0
Fork 0

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.
This commit is contained in:
ehofman 2003-09-13 11:47:30 +00:00
parent 2be37c04fe
commit 7249aaea33
4 changed files with 10 additions and 14 deletions

View file

@ -1676,9 +1676,6 @@ bool fgMainInit( int argc, char **argv ) {
exit(-1); exit(-1);
} }
SGPath modelpath( globals->get_fg_root() );
ssgModelPath( (char *)modelpath.c_str() );
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Initialize the property-based built-in commands // Initialize the property-based built-in commands
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////

View file

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

View file

@ -676,6 +676,8 @@ FGTileEntry::load( const string &base_path, bool is_base )
SGPath custom_path; SGPath custom_path;
if ( token == "OBJECT_STATIC" ) { if ( token == "OBJECT_STATIC" ) {
custom_path= tile_path; custom_path= tile_path;
} else {
custom_path = globals->get_fg_root();
} }
custom_path.append( name ); custom_path.append( name );

View file

@ -280,7 +280,7 @@ void FGTileMgr::update_queues()
try try
{ {
ssgEntity *obj_model = ssgEntity *obj_model =
globals->get_model_lib()->load_model( globals->get_fg_root(), globals->get_model_lib()->load_model( ".",
dm->get_model_path(), dm->get_model_path(),
globals->get_props(), globals->get_props(),
globals->get_sim_time_sec() ); globals->get_sim_time_sec() );