summaryrefslogtreecommitdiffstats
path: root/sigtools
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-03-28 00:26:44 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-03-28 00:26:44 -0400
commit20199970b277dd4cec75420a6e6c4396e29361cd (patch)
tree2f40f71c93f5b1bd768745b15e795e9dd02a3736 /sigtools
parentec082b14f5ba413df4c9fafae2cec994bb7843fe (diff)
downloadsigen-20199970b277dd4cec75420a6e6c4396e29361cd.tar.gz
sigen-20199970b277dd4cec75420a6e6c4396e29361cd.tar.xz
sigen-20199970b277dd4cec75420a6e6c4396e29361cd.zip
Add support for PlayerPlugin in PluginLoader
Diffstat (limited to 'sigtools')
-rw-r--r--sigtools/PluginLoader.cpp11
-rw-r--r--sigtools/PluginLoader.h2
2 files changed, 13 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)
diff --git a/sigtools/PluginLoader.h b/sigtools/PluginLoader.h
index 5e0158ef..62fe27ef 100644
--- a/sigtools/PluginLoader.h
+++ b/sigtools/PluginLoader.h
@@ -33,6 +33,7 @@ namespace Sigencore
{
class Arena;
class Canvas;
+class Player;
}
namespace Sigscript
{
@@ -57,6 +58,7 @@ namespace PluginLoader
SIGTOOLS_EXPORT QSharedPointer<Sigmod::Game> game(const QString& name);
SIGTOOLS_EXPORT Sigencore::Arena* arena(const QString& arena, Sigscript::GameWrapper* game, Sigscript::Config* parent);
SIGTOOLS_EXPORT Sigencore::Canvas* canvas(const QString& canvas, Sigscript::GameWrapper* game, Sigscript::Config* parent);
+ SIGTOOLS_EXPORT Sigencore::Player* player(const QString& canvas, Sigscript::GameWrapper* game, Sigscript::Config* parent);
}
}