aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarbenium <keresztesschmidt@gmail.com>2015-02-07 20:26:36 +0100
committerCarbenium <keresztesschmidt@gmail.com>2015-02-07 23:23:03 +0100
commit5a9e23779b6cb91c7c8b7b503c848ccaab3783d1 (patch)
tree79746d5795c6a3ca68150fd735d74a724041b51f /src
parent9d25e8970b4e5c266a5cafbf0a7d7ff0e2dd223f (diff)
Core/Packets: Fix MailListEntry structure
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Server/Packets/MailPackets.cpp13
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;
}