diff --git a/src/Nazara/Core/PluginManager.cpp b/src/Nazara/Core/PluginManager.cpp index b6e705d7c..388a261a1 100644 --- a/src/Nazara/Core/PluginManager.cpp +++ b/src/Nazara/Core/PluginManager.cpp @@ -7,8 +7,8 @@ #include #include #include -#include #include +#include #include #include @@ -17,7 +17,7 @@ namespace using PluginLoad = int (*)(); using PluginUnload = void (*)(); - std::list s_directories; + std::set s_directories; std::unordered_map s_plugins; NzString s_pluginFiles[] = @@ -29,26 +29,15 @@ namespace bool NzPluginManager::AddDirectory(const NzString& directoryPath) { - NzString path = NzFile::AbsolutePath(directoryPath); - - if (!NzDirectory::Exists(path)) - { - NazaraWarning("Directory not existing: " + directoryPath); - return false; - } - - s_directories.push_back(path); + s_directories.insert(NzFile::AbsolutePath(directoryPath)); return true; } bool NzPluginManager::Initialize() { - s_directories.push_back(NzFile::AbsolutePath(".")); - - NzString libDir = NzFile::AbsolutePath("plugins"); - if (NzDirectory::Exists(libDir)) - s_directories.push_back(libDir); + AddDirectory("."); + AddDirectory("plugins"); return true; } @@ -120,7 +109,7 @@ bool NzPluginManager::Mount(const NzString& pluginPath, bool appendExtension) void NzPluginManager::RemoveDirectory(const NzString& directoryPath) { - s_directories.remove(directoryPath); + s_directories.erase(NzFile::AbsolutePath(directoryPath)); } void NzPluginManager::Unmount(nzPlugin plugin)