summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-04-02 22:07:02 +0300
committerAndrei Karas <akaras@inbox.ru>2016-04-02 22:07:02 +0300
commit8673aefdfd509e7d8e1c3585fee996a90d543068 (patch)
tree34319fb6723966864659feef9f4c574502ffbd7e
parent76aa4b3d24b188a979416ab157a0fe5e1718f502 (diff)
downloadmv-8673aefdfd509e7d8e1c3585fee996a90d543068.tar.gz
mv-8673aefdfd509e7d8e1c3585fee996a90d543068.tar.bz2
mv-8673aefdfd509e7d8e1c3585fee996a90d543068.tar.xz
mv-8673aefdfd509e7d8e1c3585fee996a90d543068.zip
Sort more packets. Add version checks inside packets.
-rw-r--r--src/net/eathena/packetsin.inc1
-rw-r--r--src/net/eathena/traderecv.cpp8
2 files changed, 7 insertions, 2 deletions
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<ItemTypeT>(
- msg.readUInt8("item type"));
+ ItemTypeT itemType = ItemType::Unknown;
+ if (msg.getVersion() >= 20100223)
+ {
+ itemType = static_cast<ItemTypeT>(
+ 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);