summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-10-26 19:17:04 +0300
committerAndrei Karas <akaras@inbox.ru>2014-10-26 19:18:17 +0300
commitf8b39b10698870111df67af3645b17d8d15a7685 (patch)
tree05146e7a9f7a45321237e3be629dff7af7e733a7 /src/gui
parentea6a5a78b7bed5fc47cfc4d81dac78c71d6289b3 (diff)
downloadmanaverse-f8b39b10698870111df67af3645b17d8d15a7685.tar.gz
manaverse-f8b39b10698870111df67af3645b17d8d15a7685.tar.bz2
manaverse-f8b39b10698870111df67af3645b17d8d15a7685.tar.xz
manaverse-f8b39b10698870111df67af3645b17d8d15a7685.zip
Allow invoke chat command from invoking skill.
New skill attribute: invokeCmd.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/widgets/skilldata.cpp1
-rw-r--r--src/gui/widgets/skilldata.h1
-rw-r--r--src/gui/windows/skilldialog.cpp10
3 files changed, 12 insertions, 0 deletions
diff --git a/src/gui/widgets/skilldata.cpp b/src/gui/widgets/skilldata.cpp
index 0d8b2b7a9..66c0da2fe 100644
--- a/src/gui/widgets/skilldata.cpp
+++ b/src/gui/widgets/skilldata.cpp
@@ -38,6 +38,7 @@ SkillData::SkillData() :
description(),
icon(nullptr),
particle(),
+ invokeCmd(),
soundHit(std::string(), 0),
soundMiss(std::string(), 0)
{
diff --git a/src/gui/widgets/skilldata.h b/src/gui/widgets/skilldata.h
index eb8de62f6..6839a427a 100644
--- a/src/gui/widgets/skilldata.h
+++ b/src/gui/widgets/skilldata.h
@@ -36,6 +36,7 @@ struct SkillData final
Image *icon;
std::string particle;
+ std::string invokeCmd;
SoundInfo soundHit;
SoundInfo soundMiss;
diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp
index 5ae89301a..bceb8645c 100644
--- a/src/gui/windows/skilldialog.cpp
+++ b/src/gui/windows/skilldialog.cpp
@@ -25,6 +25,7 @@
#include "configuration.h"
#include "effectmanager.h"
#include "itemshortcut.h"
+#include "spellmanager.h"
#include "being/attributes.h"
#include "being/localplayer.h"
@@ -361,6 +362,8 @@ void SkillDialog::loadXmlFile(const std::string &fileName)
node, "soundMiss", "");
data->soundMiss.delay = XML::getProperty(
node, "soundMissDelay", 0);
+ data->invokeCmd = XML::getProperty(
+ node, "invokeCmd", "");
skill->addData(level, data);
}
@@ -565,6 +568,13 @@ void SkillDialog::playUpdateEffect(const int id) const
void SkillDialog::useSkill(const SkillInfo *const info)
{
+ const SkillData *const data = info->data;
+ if (data)
+ {
+ const std::string cmd = data->invokeCmd;
+ if (!cmd.empty())
+ SpellManager::invokeCommand(cmd, localPlayer->getTarget());
+ }
if (info && localPlayer)
{
switch (info->type)