diff options
Diffstat (limited to 'base')
-rw-r--r-- | base/plugins.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/base/plugins.cpp b/base/plugins.cpp index 9e2c2599ce..aa813297fc 100644 --- a/base/plugins.cpp +++ b/base/plugins.cpp @@ -26,6 +26,10 @@ #include "base/plugins.h" #include "common/util.h" +#ifdef DYNAMIC_MODULES +#include "common/config-manager.h" +#endif + int pluginTypeVersions[PLUGIN_TYPE_MAX] = { PLUGIN_TYPE_ENGINE_VERSION, }; @@ -168,13 +172,21 @@ PluginList FilePluginProvider::getPlugins() { // Prepare the list of directories to search Common::StringList pluginDirs; - // TODO: Add the user specified directory (via config file) + + // Add the default directories pluginDirs.push_back("."); pluginDirs.push_back("plugins"); // Add the provider's custom directories addCustomDirectories(pluginDirs); + // Add the user specified directory + Common::String pluginsPath(ConfMan.get("pluginspath")); + if (!pluginsPath.empty()) { + FilesystemNode dir(pluginsPath); + pluginDirs.push_back(dir.getPath()); + } + Common::StringList::const_iterator d; for (d = pluginDirs.begin(); d != pluginDirs.end(); d++) { // Load all plugins. |