Tweaks to fg-aircraft handling.
Warn (but do not require, since people would probably complain) when added paths do not contain an Aircraft subdir. When people specify a path which ends in /Aircraft, use the parent directory.
This commit is contained in:
parent
d8a3f160ef
commit
2b55acd3eb
2 changed files with 25 additions and 2 deletions
|
@ -46,7 +46,16 @@ protected:
|
|||
const string_list& paths(globals->get_aircraft_paths());
|
||||
string_list::const_iterator it = paths.begin();
|
||||
for (; it != paths.end(); ++it) {
|
||||
VisitResult vr = visitDir(simgear::Dir(*it), 0);
|
||||
SGPath p(*it);
|
||||
// additional aircraft-paths are supposed to specify the directory
|
||||
// containing the 'Aircraft' dir (same structure as fg-root, so cross-
|
||||
// aircraft resource paths can be resolved correctly). Some users omit
|
||||
// this, so check for both.
|
||||
p.append("Aircraft");
|
||||
if (!p.exists())
|
||||
p = SGPath(*it);
|
||||
|
||||
VisitResult vr = visitDir(p, 0);
|
||||
if (vr != VISIT_CONTINUE) {
|
||||
return vr;
|
||||
}
|
||||
|
|
|
@ -401,9 +401,23 @@ void FGGlobals::append_aircraft_path(const std::string& path)
|
|||
{
|
||||
SGPath dirPath(path);
|
||||
if (!dirPath.exists()) {
|
||||
SG_LOG(SG_GENERAL, SG_WARN, "aircraft path not found:" << path);
|
||||
SG_LOG(SG_GENERAL, SG_ALERT, "aircraft path not found:" << path);
|
||||
return;
|
||||
}
|
||||
|
||||
SGPath acSubdir(dirPath);
|
||||
acSubdir.append("Aircraft");
|
||||
if (!acSubdir.exists()) {
|
||||
if (dirPath.file() == "Aircraft") {
|
||||
dirPath = dirPath.dir();
|
||||
SG_LOG(SG_GENERAL, SG_WARN, "Specified an aircraft-dir path ending in 'Aircraft':" << path
|
||||
<< ", will instead use parent directory:" << dirPath);
|
||||
} else {
|
||||
SG_LOG(SG_GENERAL, SG_ALERT, "Aircraft-dir path '" << path <<
|
||||
"' does not contain an 'Aircraft' subdirectory, cross-aircraft paths will not resolve correctly.");
|
||||
}
|
||||
}
|
||||
|
||||
std::string abspath = dirPath.realpath();
|
||||
|
||||
unsigned int index = fg_aircraft_dirs.size();
|
||||
|
|
Loading…
Add table
Reference in a new issue