diff options
Diffstat (limited to 'src/net/eathena')
-rw-r--r-- | src/net/eathena/tradehandler.cpp | 25 | ||||
-rw-r--r-- | src/net/eathena/tradehandler.h | 2 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/net/eathena/tradehandler.cpp b/src/net/eathena/tradehandler.cpp index f73584deb..4de0ee779 100644 --- a/src/net/eathena/tradehandler.cpp +++ b/src/net/eathena/tradehandler.cpp @@ -26,6 +26,8 @@ #include "being/playerinfo.h" +#include "gui/windows/tradewindow.h" + #include "net/eathena/messageout.h" #include "net/eathena/protocol.h" @@ -166,4 +168,27 @@ void TradeHandler::processTradeResponse2(Net::MessageIn &msg) const msg.readInt16("base level"); } +void TradeHandler::processTradeItemAdd(Net::MessageIn &msg) +{ + const int amount = msg.readInt32(); + const int type = msg.readInt16(); + const uint8_t identify = msg.readUInt8(); // identified flag + msg.readUInt8(); // attribute + const uint8_t refine = msg.readUInt8(); // refine + msg.skip(8); // card (4 shorts) + + if (tradeWindow) + { + if (type == 0) + { + tradeWindow->setMoney(amount); + } + else + { + tradeWindow->addItem2(type, false, amount, + refine, identify, false); + } + } +} + } // namespace EAthena diff --git a/src/net/eathena/tradehandler.h b/src/net/eathena/tradehandler.h index f112c8426..929b48ced 100644 --- a/src/net/eathena/tradehandler.h +++ b/src/net/eathena/tradehandler.h @@ -58,6 +58,8 @@ class TradeHandler final : public MessageHandler, public Ea::TradeHandler void processTradeRequest(Net::MessageIn &msg) const; void processTradeResponse2(Net::MessageIn &msg) const; + + static void processTradeItemAdd(Net::MessageIn &msg); }; } // namespace EAthena |