diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-10-26 19:17:04 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-10-26 19:18:17 +0300 |
commit | f8b39b10698870111df67af3645b17d8d15a7685 (patch) | |
tree | 05146e7a9f7a45321237e3be629dff7af7e733a7 /src/gui/windows/skilldialog.cpp | |
parent | ea6a5a78b7bed5fc47cfc4d81dac78c71d6289b3 (diff) | |
download | manaplus-f8b39b10698870111df67af3645b17d8d15a7685.tar.gz manaplus-f8b39b10698870111df67af3645b17d8d15a7685.tar.bz2 manaplus-f8b39b10698870111df67af3645b17d8d15a7685.tar.xz manaplus-f8b39b10698870111df67af3645b17d8d15a7685.zip |
Allow invoke chat command from invoking skill.
New skill attribute: invokeCmd.
Diffstat (limited to 'src/gui/windows/skilldialog.cpp')
-rw-r--r-- | src/gui/windows/skilldialog.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
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) |