From 8673aefdfd509e7d8e1c3585fee996a90d543068 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 2 Apr 2016 22:07:02 +0300 Subject: Sort more packets. Add version checks inside packets. --- src/net/eathena/packetsin.inc | 1 + src/net/eathena/traderecv.cpp | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src/net') diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc index fd6f2bb53..55cdf49e5 100644 --- a/src/net/eathena/packetsin.inc +++ b/src/net/eathena/packetsin.inc @@ -26,6 +26,7 @@ packet(SMSG_WHISPER, 0x0097, -1, &ChatRecv::processWhispe packet(SMSG_WHISPER_RESPONSE, 0x0098, 3, &ChatRecv::processWhisperResponse, 1); packet(SMSG_BEING_CHANGE_LOOKS_OUTDATED, 0x00c3, 8, nullptr, 1); packet(SMSG_TRADE_REQUEST, 0x00e5, 26, &TradeRecv::processTradeRequest, 1); +packet(SMSG_TRADE_ITEM_ADD, 0x00e9, 19, &TradeRecv::processTradeItemAdd, 1); packet(SMSG_TRADE_RESPONSE_OUTDATED, 0x00e7, 3, nullptr, 0); packet(SMSG_PLAYER_STORAGE_ADD, 0x00f4, 21, &InventoryRecv::processPlayerStorageAdd, 1); packet(SMSG_PLAYER_STATUS_CHANGE, 0x0119, 13, &BeingRecv::processPlayerStatusChange, 1); diff --git a/src/net/eathena/traderecv.cpp b/src/net/eathena/traderecv.cpp index 37f2b0dbc..6c09b05e6 100644 --- a/src/net/eathena/traderecv.cpp +++ b/src/net/eathena/traderecv.cpp @@ -74,8 +74,12 @@ void TradeRecv::processTradeResponse(Net::MessageIn &msg) void TradeRecv::processTradeItemAdd(Net::MessageIn &msg) { const int type = msg.readInt16("type"); - const ItemTypeT itemType = static_cast( - msg.readUInt8("item type")); + ItemTypeT itemType = ItemType::Unknown; + if (msg.getVersion() >= 20100223) + { + itemType = static_cast( + msg.readUInt8("item type")); + } const int amount = msg.readInt32("amount"); const uint8_t identify = msg.readUInt8("identify"); const Damaged damaged = fromBool(msg.readUInt8("attribute"), Damaged); -- cgit v1.2.3-60-g2f50