From bb0b9dbea888cd621b6da3465da19f0794073cc1 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sat, 13 Dec 2014 16:50:14 +0300
Subject: Add chat command for add item to trade.

New chat command: /addtrade INDEX AMOUNT.
Alias: /tradeadd

This command have same patameters like /inttostorage.
---
 src/actions/actions.cpp    | 18 ++++++++++++++++++
 src/actions/actions.h      |  1 +
 src/input/inputaction.h    |  1 +
 src/input/inputactionmap.h |  9 +++++++++
 4 files changed, 29 insertions(+)

diff --git a/src/actions/actions.cpp b/src/actions/actions.cpp
index a7c0466d2..c29d90a50 100644
--- a/src/actions/actions.cpp
+++ b/src/actions/actions.cpp
@@ -1438,7 +1438,25 @@ impHandler(invToStorage)
     {
         ItemAmountWindow::showWindow(ItemAmountWindow::StoreAdd,
             inventoryWindow, item);
+    }
+    return true;
+}
+
+impHandler(tradeAdd)
+{
+    Item *item = nullptr;
+    const int amount = getAmountFromEvent(event, item);
+    if (!item || PlayerInfo::isItemProtected(item->getId()))
         return true;
+
+    if (amount)
+    {
+        tradeWindow->tradeItem(item, amount, true);
+    }
+    else
+    {
+        ItemAmountWindow::showWindow(ItemAmountWindow::TradeAdd,
+            tradeWindow, item);
     }
     return true;
 }
diff --git a/src/actions/actions.h b/src/actions/actions.h
index eaf900fbe..0fd1f71c5 100644
--- a/src/actions/actions.h
+++ b/src/actions/actions.h
@@ -99,6 +99,7 @@ namespace Actions
     decHandler(useItem);
     decHandler(useItemInv);
     decHandler(invToStorage);
+    decHandler(tradeAdd);
 }  // namespace Actions
 
 #undef decHandler
diff --git a/src/input/inputaction.h b/src/input/inputaction.h
index dc63508d3..60bbeab61 100644
--- a/src/input/inputaction.h
+++ b/src/input/inputaction.h
@@ -506,6 +506,7 @@ namespace InputAction
         DROP_INV_ALL,
         USE_INV,
         INV_TO_STORAGE,
+        TRADE_ADD,
         TOTAL
     };
 }  // namespace InputAction
diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h
index b23032728..26b77a03b 100644
--- a/src/input/inputactionmap.h
+++ b/src/input/inputactionmap.h
@@ -4297,6 +4297,15 @@ static const InputActionData inputActionData[InputAction::TOTAL] = {
         InputCondition::INGAME,
         "invtostorage|invstorage",
         true},
+    {"keyTradeAdd",
+        InputType::UNKNOWN, InputAction::NO_VALUE,
+        InputType::UNKNOWN, InputAction::NO_VALUE,
+        Input::GRP_DEFAULT,
+        &Actions::tradeAdd,
+        InputAction::NO_VALUE, 50,
+        InputCondition::INGAME,
+        "tradeadd|addtrade",
+        true},
 };
 
 #endif  // INPUT_INPUTACTIONMAP_H
-- 
cgit v1.2.3-70-g09d2