From 3a19b08078d42837126cc585d2a9b6f5f61b2c2b Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 26 Jan 2016 21:40:24 +0300 Subject: Add quick shortcuts for add selected item to each craft inventory slot. Add craft tab with shortcuts in input tab. --- src/gui/windows/inventorywindow.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/gui/windows/inventorywindow.cpp') diff --git a/src/gui/windows/inventorywindow.cpp b/src/gui/windows/inventorywindow.cpp index eac1b692d..76dfef268 100644 --- a/src/gui/windows/inventorywindow.cpp +++ b/src/gui/windows/inventorywindow.cpp @@ -41,6 +41,7 @@ #include "gui/windows/confirmdialog.h" #include "gui/windows/itemamountwindow.h" +#include "gui/windows/npcdialog.h" #include "gui/windows/setupwindow.h" #include "gui/windows/tradewindow.h" @@ -59,6 +60,8 @@ #include "listeners/insertcardlistener.h" +#include "net/npchandler.h" + #include "resources/iteminfo.h" #include "resources/item/item.h" @@ -1056,4 +1059,33 @@ void InventoryWindow::combineItems(const int index1, insertCardListener.cardIndex = item1->getInvIndex(); confirmDlg->addActionListener(&insertCardListener); } + +void InventoryWindow::moveItemToCraft(const int craftSlot) +{ + if (!npcHandler) + return; + + Item *const item = mItems->getSelectedItem(); + if (!item) + return; + + NpcDialog *const dialog = npcHandler->getCurrentNpcDialog(); + if (dialog && + dialog->getInputState() == NpcDialog::NPC_INPUT_ITEM_CRAFT) + { + if (item->getQuantity() > 1 + && !inputManager.isActionActive(InputAction::STOP_ATTACK)) + { + ItemAmountWindow::showWindow(ItemAmountWindow::CraftAdd, + npcHandler->getCurrentNpcDialog(), + item, + 0, + craftSlot); + } + else + { + dialog->addCraftItem(item, 1, craftSlot); + } + } +} #endif -- cgit v1.2.3-70-g09d2