From: durk Date: Sun, 4 Oct 2009 07:59:07 +0000 (+0000) Subject: New feature: Allow the loading of shared models that are not located inside X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=b40321380d65b69e4080d3a89f0cfa2483d11694;p=flightgear.git New feature: Allow the loading of shared models that are not located inside the base package, but are maintained in the SVN repository of the custom scenery project. --- diff --git a/src/Airports/xmlloader.cxx b/src/Airports/xmlloader.cxx index 7579e8cc4..9487144c9 100644 --- a/src/Airports/xmlloader.cxx +++ b/src/Airports/xmlloader.cxx @@ -34,7 +34,7 @@ XMLLoader::~XMLLoader() {} void XMLLoader::load(FGAirportDynamics* d) { FGAirportDynamicsXMLLoader visitor(d); - if (fgGetBool("/sim/traffic-manager/use-custom-scenery-data") == false) { + if (fgGetBool("/sim/paths/use-custom-scenery-data") == false) { SGPath parkpath( globals->get_fg_root() ); parkpath.append( "/AI/Airports/" ); parkpath.append( d->getId() ); @@ -57,7 +57,7 @@ void XMLLoader::load(FGAirportDynamics* d) { void XMLLoader::load(FGRunwayPreference* p) { FGRunwayPreferenceXMLLoader visitor(p); - if (fgGetBool("/sim/traffic-manager/use-custom-scenery-data") == false) { + if (fgGetBool("/sim/paths/use-custom-scenery-data") == false) { SGPath rwyPrefPath( globals->get_fg_root() ); rwyPrefPath.append( "AI/Airports/" ); rwyPrefPath.append( p->getId() ); diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index f44fb8b7c..a7bbb388b 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -236,13 +236,27 @@ void FGTileMgr::initialize_queue() osg::Node* FGTileMgr::loadTileModel(const string& modelPath, bool cacheModel) { + SGPath fullPath; + if (fgGetBool("/sim/paths/use-custom-scenery-data") == true) { + string_list sc = globals->get_fg_scenery(); + + for (string_list_iterator it = sc.begin(); it != sc.end(); ++it) { + SGPath tmpPath(*it); + tmpPath.append(modelPath); + if (tmpPath.exists()) { + fullPath = tmpPath; + break; + } + } + } else { + fullPath.append(modelPath); + } osg::Node* result = 0; try { if(cacheModel) result = - SGModelLib::loadModel(modelPath, globals->get_props(), + SGModelLib::loadModel(fullPath.str(), globals->get_props(), new FGNasalModelData); - else result= SGModelLib::loadPagedModel(modelPath, globals->get_props(),