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:
parent
2be37c04fe
commit
7249aaea33
4 changed files with 10 additions and 14 deletions
|
@ -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
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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 );
|
||||||
|
|
||||||
|
|
|
@ -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() );
|
||||||
|
|
Loading…
Add table
Reference in a new issue