diff options
author | Carbenium <keresztesschmidt@gmail.com> | 2015-02-07 20:26:36 +0100 |
---|---|---|
committer | Carbenium <keresztesschmidt@gmail.com> | 2015-02-07 23:23:03 +0100 |
commit | 5a9e23779b6cb91c7c8b7b503c848ccaab3783d1 (patch) | |
tree | 79746d5795c6a3ca68150fd735d74a724041b51f /src | |
parent | 9d25e8970b4e5c266a5cafbf0a7d7ff0e2dd223f (diff) |
Core/Packets: Fix MailListEntry structure
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Server/Packets/MailPackets.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/MailPackets.cpp b/src/server/game/Server/Packets/MailPackets.cpp index c712fe0d5b0..d558b4682c1 100644 --- a/src/server/game/Server/Packets/MailPackets.cpp +++ b/src/server/game/Server/Packets/MailPackets.cpp @@ -24,6 +24,7 @@ WorldPackets::Mail::MailAttachedItem::MailAttachedItem(::Item const* item, uint8 { Position = pos; AttachID = item->GetGUID().GetCounter(); + Item.Initalize(item); Count = item->GetCount(); Charges = item->GetSpellCharges(); MaxDurability = item->GetUInt32Value(ITEM_FIELD_MAXDURABILITY); @@ -42,7 +43,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Mail::MailAttachedItem co { data << uint8(att.Position); data << uint32(att.AttachID); - data << WorldPackets::Item::ItemInstance(att.Item); + data << att.Item; for (auto const& en : att.Enchants) { @@ -120,10 +121,20 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Mail::MailListEntry const data.WriteBit(entry.SenderCharacter.HasValue); data.WriteBit(entry.AltSenderID.HasValue); + data.WriteBits(entry.Subject.size(), 8); data.WriteBits(entry.Body.size(), 13); data.FlushBits(); + if (entry.SenderCharacter.HasValue) + data << entry.SenderCharacter.Value; + + if (entry.AltSenderID.HasValue) + data << int32(entry.AltSenderID.Value); + + data.WriteString(entry.Subject); + data.WriteString(entry.Body); + return data; } |