From 4d64a04f3dc37461344d83b972094b3d35e59ca8 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 23 Mar 2016 02:31:54 +0300 Subject: Add packet SMSG_MERGE_ITEM 0x096d. --- src/net/eathena/inventoryrecv.cpp | 9 +++++++++ src/net/eathena/inventoryrecv.h | 1 + src/net/eathena/packetsin.inc | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/net/eathena/inventoryrecv.cpp b/src/net/eathena/inventoryrecv.cpp index d282af05e..b67300fa2 100644 --- a/src/net/eathena/inventoryrecv.cpp +++ b/src/net/eathena/inventoryrecv.cpp @@ -1180,4 +1180,13 @@ int InventoryRecv::getSlot(const int eAthenaSlot) return CAST_S32(EQUIP_POINTS[position]); } +void InventoryRecv::processMergeItem(Net::MessageIn &msg) +{ + UNIMPLIMENTEDPACKET; + + const int count = (msg.readInt16("len") - 4) / 2; + for (int f = 0; f < count; f ++) + msg.readInt16("inv index"); +} + } // namespace EAthena diff --git a/src/net/eathena/inventoryrecv.h b/src/net/eathena/inventoryrecv.h index d024c8362..6f45bc1b7 100644 --- a/src/net/eathena/inventoryrecv.h +++ b/src/net/eathena/inventoryrecv.h @@ -71,6 +71,7 @@ namespace EAthena void processBindItem(Net::MessageIn &msg); void processPlayerInventoryRemove(Net::MessageIn &msg); void processSelectCart(Net::MessageIn &msg); + void processMergeItem(Net::MessageIn &msg); int getSlot(const int eAthenaSlot) A_WARN_UNUSED; } // namespace InventoryRecv diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc index e0a365019..1cba2a987 100644 --- a/src/net/eathena/packetsin.inc +++ b/src/net/eathena/packetsin.inc @@ -481,7 +481,7 @@ else packet(SMSG_SELECT_CART, 0x0000, 0, nullptr); } -packet(SMSG_MERGE_ITEM, 0x096d, -1, nullptr); +packet(SMSG_MERGE_ITEM, 0x096d, -1, &InventoryRecv::processMergeItem); packet(SMSG_ACK_MERGE_ITEMS, 0x096f, 7, nullptr); // unused or not implimented packets -- cgit v1.2.3-70-g09d2