#858: Fix loading issue with aircraft models in "--fg-aircraft" directories
Something after FG 2.8.0 has broken loading aircraft models from --fg-aircraft directories. Issue is fixed by resolving the aircraft path in FGAircraftModel (though this module itself hasn't changed and things were working before...).
This commit is contained in:
parent
7c01632b00
commit
6745d27691
1 changed files with 25 additions and 10 deletions
|
@ -63,19 +63,34 @@ FGAircraftModel::~FGAircraftModel ()
|
|||
void
|
||||
FGAircraftModel::init ()
|
||||
{
|
||||
osg::Node *model = NULL;
|
||||
|
||||
_aircraft = new SGModelPlacement;
|
||||
string path = fgGetString("/sim/model/path", "Models/Geometry/glider.ac");
|
||||
try {
|
||||
osg::Node *model = fgLoad3DModelPanel( path, globals->get_props());
|
||||
_aircraft->init( model );
|
||||
} catch (const sg_exception &ex) {
|
||||
SG_LOG(SG_AIRCRAFT, SG_ALERT, "Failed to load aircraft from " << path << ':');
|
||||
SG_LOG(SG_AIRCRAFT, SG_ALERT, " " << ex.getFormattedMessage());
|
||||
SG_LOG(SG_AIRCRAFT, SG_ALERT, "(Falling back to glider.ac.)");
|
||||
osg::Node *model = fgLoad3DModelPanel( "Models/Geometry/glider.ac",
|
||||
globals->get_props());
|
||||
_aircraft->init( model );
|
||||
|
||||
SGPath resolvedPath = globals->resolve_aircraft_path(path);
|
||||
if (resolvedPath.isNull())
|
||||
{
|
||||
SG_LOG(SG_AIRCRAFT, SG_ALERT, "Failed to load aircraft from " << path << ':');
|
||||
}
|
||||
else
|
||||
{
|
||||
try {
|
||||
model = fgLoad3DModelPanel( resolvedPath.str(), globals->get_props());
|
||||
} catch (const sg_exception &ex) {
|
||||
SG_LOG(SG_AIRCRAFT, SG_ALERT, "Failed to load aircraft from " << path << ':');
|
||||
SG_LOG(SG_AIRCRAFT, SG_ALERT, " " << ex.getFormattedMessage());
|
||||
SG_LOG(SG_AIRCRAFT, SG_ALERT, "(Falling back to glider.ac.)");
|
||||
}
|
||||
}
|
||||
|
||||
if (!model)
|
||||
{
|
||||
model = fgLoad3DModelPanel( "Models/Geometry/glider.ac",
|
||||
globals->get_props());
|
||||
}
|
||||
_aircraft->init( model );
|
||||
|
||||
osg::Node* node = _aircraft->getSceneGraph();
|
||||
// Do not do altitude computations with that model
|
||||
node->setNodeMask(~SG_NODEMASK_TERRAIN_BIT);
|
||||
|
|
Loading…
Add table
Reference in a new issue