diff options
author | Nay <dnpd.dd@gmail.com> | 2012-07-26 02:17:03 +0100 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2012-07-26 02:17:03 +0100 |
commit | fc938ac21ea321aed3a6183bd6795bbd7f743f42 (patch) | |
tree | 0e15ed8cb0cd5575455954b81631ce64c3768155 | |
parent | c6352171d7fce7908739e7d2b007d618126c840d (diff) |
Core/PacketIO: Few updates and typo corrections for SendUpdateTrade
-rwxr-xr-x | src/server/game/Handlers/TradeHandler.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp index b20b7e1730a..c3009507a28 100755 --- a/src/server/game/Handlers/TradeHandler.cpp +++ b/src/server/game/Handlers/TradeHandler.cpp @@ -80,19 +80,8 @@ void WorldSession::SendUpdateTrade(bool trader_data /*= true*/) { TradeData* view_trade = trader_data ? _player->GetTradeData()->GetTraderData() : _player->GetTradeData(); - WorldPacket data(SMSG_TRADE_STATUS_EXTENDED, 1+4+4+4+4+4+7*(1+4+4+4+4+8+4+4+4+4+8+4+4+4+4+4+4)); - - data << uint32(0); // this value must be equal to value from TRADE_STATUS_OPEN_WINDOW status packet (different value for different players to block multiple trades?) - data << uint32(0); // unk 2 - data << uint32(view_trade->GetMoney()); // trader gold - data << uint32(view_trade->GetSpell()); // spell casted on lowest slot item - data << uint32(TRADE_SLOT_COUNT); // trade slots count/number?, = next field in most cases - data << uint32(0); // unk 5 - data << uint8(trader_data); // 1 means traders data, 0 means own - data << uint32(TRADE_SLOT_COUNT); // trade slots count/number?, = prev field in most cases - - ByteBuffer itemData; - ByteBuffer bitData; + ByteBuffer itemData(7*2 + 7*4 + 3*4 + 3*4 + 1); + ByteBuffer bitData(3); uint8 count = 0; for (uint8 i = 0; i < TRADE_SLOT_COUNT; ++i) @@ -175,6 +164,17 @@ void WorldSession::SendUpdateTrade(bool trader_data /*= true*/) itemData.WriteByteSeq(giftCreatorGuid[3]); } + WorldPacket data(SMSG_TRADE_STATUS_EXTENDED, 4*6 + 8 + 1 + 3 + bitData.size() + itemData.size()); + + data << uint32(0); // this value must be equal to value from TRADE_STATUS_OPEN_WINDOW status packet (different value for different players to block multiple trades?) + data << uint32(0); // unk 2 + data << uint64(view_trade->GetMoney()); // trader gold + data << uint32(view_trade->GetSpell()); // spell casted on lowest slot item + data << uint32(TRADE_SLOT_COUNT); // trade slots count/number?, = next field in most cases + data << uint32(0); // unk 5 + data << uint8(trader_data); // 1 means traders data, 0 means own + data << uint32(TRADE_SLOT_COUNT); // trade slots count/number?, = prev field in most cases + data.WriteBits(count, 22); data.FlushBits(); data.append(bitData); |