diff --git a/components/vfs/registerarchives.cpp b/components/vfs/registerarchives.cpp index b361e3f42..a22e785cd 100644 --- a/components/vfs/registerarchives.cpp +++ b/components/vfs/registerarchives.cpp @@ -1,5 +1,6 @@ #include "registerarchives.hpp" +#include #include #include @@ -33,12 +34,20 @@ namespace VFS } if (useLooseFiles) + { + std::set seen; for (Files::PathContainer::const_iterator iter = dataDirs.begin(); iter != dataDirs.end(); ++iter) { - std::cout << "Adding data directory " << iter->string() << std::endl; - // Last data dir has the highest priority - vfs->addArchive(new FileSystemArchive(iter->string())); + if (seen.insert(*iter).second) + { + std::cout << "Adding data directory " << iter->string() << std::endl; + // Last data dir has the highest priority + vfs->addArchive(new FileSystemArchive(iter->string())); + } + else + std::cerr << "Ignoring duplicate data directory " << iter->string() << std::endl; } + } vfs->buildIndex(); }