From 8d19c3ed8e0c03f162e022dd0f09fff53f2bc055 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 6 Apr 2016 00:04:10 +0300 Subject: Impliment packet CMSG_MERGE_ITEM_ACK 0x096e. --- src/net/eathena/inventoryhandler.cpp | 13 +++++++++++++ src/net/eathena/inventoryhandler.h | 2 ++ src/net/eathena/packetsout.inc | 2 ++ src/net/inventoryhandler.h | 4 ++++ src/net/tmwa/inventoryhandler.cpp | 5 +++++ src/net/tmwa/inventoryhandler.h | 2 ++ 6 files changed, 28 insertions(+) (limited to 'src/net') diff --git a/src/net/eathena/inventoryhandler.cpp b/src/net/eathena/inventoryhandler.cpp index 49a0b39fb..4ad6e409e 100644 --- a/src/net/eathena/inventoryhandler.cpp +++ b/src/net/eathena/inventoryhandler.cpp @@ -231,4 +231,17 @@ void InventoryHandler::identifyItem(const Item *const item) const "item index"); } +void InventoryHandler::mergeItemsAck(const std::vector &items) const +{ + createOutPacket(CMSG_MERGE_ITEM_ACK); + const size_t sz = items.size(); + outMsg.writeInt16(CAST_S16(sz * 2 + 4), + "len"); + FOR_EACH (std::vector::const_iterator, it, items) + { + outMsg.writeInt16((*it)->getInvIndex() + 2, + "item index"); + } +} + } // namespace EAthena diff --git a/src/net/eathena/inventoryhandler.h b/src/net/eathena/inventoryhandler.h index e54704cfb..53e801934 100644 --- a/src/net/eathena/inventoryhandler.h +++ b/src/net/eathena/inventoryhandler.h @@ -71,6 +71,8 @@ class InventoryHandler final : public Ea::InventoryHandler void identifyItem(const Item *const item) const override final; + void mergeItemsAck(const std::vector &items) const override final; + int getProjectileSlot() const override final { return 23; } diff --git a/src/net/eathena/packetsout.inc b/src/net/eathena/packetsout.inc index 5a9fdd4c6..44ea8785f 100644 --- a/src/net/eathena/packetsout.inc +++ b/src/net/eathena/packetsout.inc @@ -264,6 +264,8 @@ packet(CMSG_SEARCHSTORE_NEXT_PAGE, 0x0940); packet(CMSG_SEARCHSTORE_CLOSE, 0x083b); packet(CMSG_SEARCHSTORE_CLICK, 0x0835); +packet(CMSG_MERGE_ITEM_ACK, 0x096e); + packet(CMSG_SET_STATUS, 0x0b0e); packet(CMSG_ONLINE_LIST, 0x0b0f); diff --git a/src/net/inventoryhandler.h b/src/net/inventoryhandler.h index d47b32097..851f0ba84 100644 --- a/src/net/inventoryhandler.h +++ b/src/net/inventoryhandler.h @@ -27,6 +27,8 @@ #include "resources/inventory/inventory.h" +#include + namespace Net { @@ -91,6 +93,8 @@ class InventoryHandler notfinal const int type) const = 0; virtual void identifyItem(const Item *const item) const = 0; + + virtual void mergeItemsAck(const std::vector &items) const = 0; }; } // namespace Net diff --git a/src/net/tmwa/inventoryhandler.cpp b/src/net/tmwa/inventoryhandler.cpp index fa71484e6..6fa3b9b5c 100644 --- a/src/net/tmwa/inventoryhandler.cpp +++ b/src/net/tmwa/inventoryhandler.cpp @@ -173,4 +173,9 @@ void InventoryHandler::identifyItem(const Item *const item A_UNUSED) const { } +void InventoryHandler::mergeItemsAck(const std::vector &items A_UNUSED) + const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/inventoryhandler.h b/src/net/tmwa/inventoryhandler.h index f818a875b..435e87805 100644 --- a/src/net/tmwa/inventoryhandler.h +++ b/src/net/tmwa/inventoryhandler.h @@ -71,6 +71,8 @@ class InventoryHandler final : public Ea::InventoryHandler void identifyItem(const Item *const item) const override final; + void mergeItemsAck(const std::vector &items) const override final; + int getProjectileSlot() const override final { return 10; } -- cgit v1.2.3-60-g2f50