diff options
Diffstat (limited to 'sigtools/PluginLoader.cpp')
-rw-r--r-- | sigtools/PluginLoader.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sigtools/PluginLoader.cpp b/sigtools/PluginLoader.cpp index 6b08efdb..9d36b100 100644 --- a/sigtools/PluginLoader.cpp +++ b/sigtools/PluginLoader.cpp @@ -22,6 +22,7 @@ // Sigencore plugin includes #include <sigencore/plugins/ArenaPlugin.h> #include <sigencore/plugins/CanvasPlugin.h> +#include <sigencore/plugins/PlayerPlugin.h> #include <sigencore/plugins/PluginBase.h> // Sigmod includes @@ -93,6 +94,14 @@ Canvas* PluginLoader::canvas(const QString& name, GameWrapper* game, Config* par return NULL; } +Player* PluginLoader::player(const QString& name, GameWrapper* game, Config* parent) +{ + PlayerPlugin* plugin = qobject_cast<PlayerPlugin*>(loader->factory("Player", name)); + if (plugin) + return plugin->getPlayer(name, game, parent); + return NULL; +} + PluginLoader::Private::Private() { if (!KGlobal::dirs()->resourceDirs("sigmod").size()) @@ -168,6 +177,8 @@ void PluginLoader::Private::refresh(const QString& type) plugin = factory->create<ArenaPlugin>(this); else if (type == "Canvas") plugin = factory->create<CanvasPlugin>(this); + else if (type == "Player") + plugin = factory->create<PlayerPlugin>(this); else KMessageBox::information(NULL, QString("The plugin type \"Sigen/%1\" is not supported.").arg(type), "Unsupported plugin type"); if (plugin) |