summaryrefslogtreecommitdiff
path: root/src/actions/actions.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-12-12 13:40:11 +0300
committerAndrei Karas <akaras@inbox.ru>2014-12-12 13:40:11 +0300
commit91160e197b1a1f85f21cfad874e80fa286d9294f (patch)
tree69fe35efe151cac178ed45eb46600aee6c2b4fc9 /src/actions/actions.cpp
parent99b516c9b20e696ddf3897bff9bc6686debf0f5a (diff)
downloadmanaplus-91160e197b1a1f85f21cfad874e80fa286d9294f.tar.gz
manaplus-91160e197b1a1f85f21cfad874e80fa286d9294f.tar.bz2
manaplus-91160e197b1a1f85f21cfad874e80fa286d9294f.tar.xz
manaplus-91160e197b1a1f85f21cfad874e80fa286d9294f.zip
Add chat command for use item by id.
New chat command: /use ITEMID Alias: /useitem ITEMID
Diffstat (limited to 'src/actions/actions.cpp')
-rw-r--r--src/actions/actions.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/actions/actions.cpp b/src/actions/actions.cpp
index 93e160750..4cd863dc9 100644
--- a/src/actions/actions.cpp
+++ b/src/actions/actions.cpp
@@ -26,7 +26,9 @@
#include "emoteshortcut.h"
#include "game.h"
#include "graphicsmanager.h"
+#include "inventory.h"
#include "itemshortcut.h"
+#include "spellmanager.h"
#include "actions/actiondef.h"
@@ -53,6 +55,7 @@
#include "gui/windows/setupwindow.h"
#include "gui/windows/shopwindow.h"
#include "gui/windows/shortcutwindow.h"
+#include "gui/windows/skilldialog.h"
#include "gui/widgets/tabs/chat/chattab.h"
@@ -76,6 +79,7 @@
#include "resources/iteminfo.h"
#include "resources/resourcemanager.h"
+#include "resources/skillconsts.h"
#include "resources/db/itemdb.h"
@@ -1287,4 +1291,28 @@ impHandler0(mercenaryFire)
return true;
}
+impHandler(useItem)
+{
+ const int itemId = atoi(event.args.c_str());
+
+ if (itemId < SPELL_MIN_ID)
+ {
+ const Inventory *const inv = PlayerInfo::getInventory();
+ if (inv)
+ {
+ // +++ ignoring item color for now
+ const Item *const item = inv->findItem(itemId, 1);
+ PlayerInfo::useEquipItem(item, true);
+ }
+ }
+ else if (itemId < SKILL_MIN_ID && spellManager)
+ {
+ spellManager->useItem(itemId);
+ }
+ else if (skillDialog)
+ {
+ skillDialog->useItem(itemId);
+ }
+}
+
} // namespace Actions