aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2017-04-13 19:36:53 +0200
committerShauren <shauren.trinity@gmail.com>2017-04-13 19:36:53 +0200
commite253bb5a1757103a7f47d4c05c5bacf09ec9f4e6 (patch)
tree564a44f7c0f6e6ad948104323fe04d2c67ff97b2 /src
parent3c28435511584ec3ddea63bcc24830ed8d5dbc7b (diff)
Core/PacketIO: Updated client packet structures to 7.2.0
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.h1
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp2
-rw-r--r--src/server/game/Server/Packets/BattlePetPackets.cpp3
-rw-r--r--src/server/game/Server/Packets/BlackMarketPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/ChatPackets.cpp18
-rw-r--r--src/server/game/Server/Packets/EquipmentSetPackets.cpp11
-rw-r--r--src/server/game/Server/Packets/EquipmentSetPackets.h1
-rw-r--r--src/server/game/Server/Packets/ItemPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/MovementPackets.cpp30
-rw-r--r--src/server/game/Server/Packets/MovementPackets.h20
-rw-r--r--src/server/game/Server/Packets/TicketPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/TicketPackets.h5
-rw-r--r--src/server/game/Server/WorldSession.h3
13 files changed, 78 insertions, 22 deletions
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 28772041422..697b76ca157 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -838,6 +838,7 @@ struct EquipmentSetInfo
uint64 Guid = 0; ///< Set Identifier
uint32 SetID = 0; ///< Index
uint32 IgnoreMask = 0; ///< Mask of EquipmentSlot
+ int32 AssignedSpecIndex = -1; ///< Index of character specialization that this set is automatically equipped for
std::string SetName;
std::string SetIcon;
std::array<ObjectGuid, EQUIPMENT_SLOT_END> Pieces;
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index 0487122011c..e06ef0f97a1 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -522,7 +522,7 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPackets::Movement::SetActiveM
TC_LOG_DEBUG("network", "HandleSetActiveMoverOpcode: incorrect mover guid: mover is %s and should be %s" , packet.ActiveMover.ToString().c_str(), _player->m_unitMovedByMe->GetGUID().ToString().c_str());
}
-void WorldSession::HandleMoveKnockBackAck(WorldPackets::Movement::MovementAckMessage& movementAck)
+void WorldSession::HandleMoveKnockBackAck(WorldPackets::Movement::MoveKnockBackAck& movementAck)
{
GetPlayer()->ValidateMovementInfo(&movementAck.Ack.movementInfo);
diff --git a/src/server/game/Server/Packets/BattlePetPackets.cpp b/src/server/game/Server/Packets/BattlePetPackets.cpp
index 5ad974c0325..8b7141b3a22 100644
--- a/src/server/game/Server/Packets/BattlePetPackets.cpp
+++ b/src/server/game/Server/Packets/BattlePetPackets.cpp
@@ -115,7 +115,6 @@ void WorldPackets::BattlePet::BattlePetModifyName::Read()
_worldPacket >> PetGuid;
uint32 nameLength = _worldPacket.ReadBits(7);
bool hasDeclinedNames = _worldPacket.ReadBit();
- Name = _worldPacket.ReadString(nameLength);
if (hasDeclinedNames)
{
@@ -127,6 +126,8 @@ void WorldPackets::BattlePet::BattlePetModifyName::Read()
for (uint8 i = 0; i < 5; ++i)
Declined.name[i] = _worldPacket.ReadString(declinedNameLengths[i]);
}
+
+ Name = _worldPacket.ReadString(nameLength);
}
void WorldPackets::BattlePet::BattlePetDeletePet::Read()
diff --git a/src/server/game/Server/Packets/BlackMarketPackets.cpp b/src/server/game/Server/Packets/BlackMarketPackets.cpp
index 932bb1e960b..9f95582b4ae 100644
--- a/src/server/game/Server/Packets/BlackMarketPackets.cpp
+++ b/src/server/game/Server/Packets/BlackMarketPackets.cpp
@@ -114,8 +114,8 @@ void WorldPackets::BlackMarket::BlackMarketBidOnItem::Read()
{
_worldPacket >> Guid;
_worldPacket >> MarketID;
- _worldPacket >> Item;
_worldPacket >> BidAmount;
+ _worldPacket >> Item;
}
WorldPacket const* WorldPackets::BlackMarket::BlackMarketBidOnItemResult::Write()
diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp
index a026b3c71c1..6cc86a8a013 100644
--- a/src/server/game/Server/Packets/ChatPackets.cpp
+++ b/src/server/game/Server/Packets/ChatPackets.cpp
@@ -24,7 +24,7 @@
void WorldPackets::Chat::ChatMessage::Read()
{
_worldPacket >> Language;
- uint32 len = _worldPacket.ReadBits(8);
+ uint32 len = _worldPacket.ReadBits(9);
Text = _worldPacket.ReadString(len);
}
@@ -32,7 +32,7 @@ void WorldPackets::Chat::ChatMessageWhisper::Read()
{
_worldPacket >> Language;
uint32 targetLen = _worldPacket.ReadBits(9);
- uint32 textLen = _worldPacket.ReadBits(8);
+ uint32 textLen = _worldPacket.ReadBits(9);
Target = _worldPacket.ReadString(targetLen);
Text = _worldPacket.ReadString(textLen);
}
@@ -41,7 +41,7 @@ void WorldPackets::Chat::ChatMessageChannel::Read()
{
_worldPacket >> Language;
uint32 targetLen = _worldPacket.ReadBits(9);
- uint32 textLen = _worldPacket.ReadBits(8);
+ uint32 textLen = _worldPacket.ReadBits(9);
Target = _worldPacket.ReadString(targetLen);
Text = _worldPacket.ReadString(textLen);
}
@@ -49,7 +49,7 @@ void WorldPackets::Chat::ChatMessageChannel::Read()
void WorldPackets::Chat::ChatAddonMessage::Read()
{
uint32 prefixLen = _worldPacket.ReadBits(5);
- uint32 textLen = _worldPacket.ReadBits(8);
+ uint32 textLen = _worldPacket.ReadBits(9);
Prefix = _worldPacket.ReadString(prefixLen);
Text = _worldPacket.ReadString(textLen);
}
@@ -58,7 +58,7 @@ void WorldPackets::Chat::ChatAddonMessageWhisper::Read()
{
uint32 targetLen = _worldPacket.ReadBits(9);
uint32 prefixLen = _worldPacket.ReadBits(5);
- uint32 textLen = _worldPacket.ReadBits(8);
+ uint32 textLen = _worldPacket.ReadBits(9);
Target = _worldPacket.ReadString(targetLen);
Prefix = _worldPacket.ReadString(prefixLen);
Text = _worldPacket.ReadString(textLen);
@@ -68,7 +68,7 @@ void WorldPackets::Chat::ChatAddonMessageChannel::Read()
{
uint32 targetLen = _worldPacket.ReadBits(9);
uint32 prefixLen = _worldPacket.ReadBits(5);
- uint32 textLen = _worldPacket.ReadBits(8);
+ uint32 textLen = _worldPacket.ReadBits(9);
Target = _worldPacket.ReadString(targetLen);
Prefix = _worldPacket.ReadString(prefixLen);
Text = _worldPacket.ReadString(textLen);
@@ -76,19 +76,19 @@ void WorldPackets::Chat::ChatAddonMessageChannel::Read()
void WorldPackets::Chat::ChatMessageDND::Read()
{
- uint32 len = _worldPacket.ReadBits(8);
+ uint32 len = _worldPacket.ReadBits(9);
Text = _worldPacket.ReadString(len);
}
void WorldPackets::Chat::ChatMessageAFK::Read()
{
- uint32 len = _worldPacket.ReadBits(8);
+ uint32 len = _worldPacket.ReadBits(9);
Text = _worldPacket.ReadString(len);
}
void WorldPackets::Chat::ChatMessageEmote::Read()
{
- uint32 len = _worldPacket.ReadBits(8);
+ uint32 len = _worldPacket.ReadBits(9);
Text = _worldPacket.ReadString(len);
}
diff --git a/src/server/game/Server/Packets/EquipmentSetPackets.cpp b/src/server/game/Server/Packets/EquipmentSetPackets.cpp
index c86851b479c..2e0b7e6dc09 100644
--- a/src/server/game/Server/Packets/EquipmentSetPackets.cpp
+++ b/src/server/game/Server/Packets/EquipmentSetPackets.cpp
@@ -45,10 +45,14 @@ WorldPacket const* WorldPackets::EquipmentSet::LoadEquipmentSet::Write()
_worldPacket.append(equipSet->Enchants.data(), equipSet->Enchants.size());
+ _worldPacket.WriteBit(equipSet->AssignedSpecIndex != -1);
_worldPacket.WriteBits(equipSet->SetName.length(), 8);
_worldPacket.WriteBits(equipSet->SetIcon.length(), 9);
_worldPacket.FlushBits();
+ if (equipSet->AssignedSpecIndex != -1)
+ _worldPacket << int32(equipSet->AssignedSpecIndex);
+
_worldPacket.WriteString(equipSet->SetName);
_worldPacket.WriteString(equipSet->SetIcon);
}
@@ -72,9 +76,14 @@ void WorldPackets::EquipmentSet::SaveEquipmentSet::Read()
_worldPacket >> Set.Enchants[0];
_worldPacket >> Set.Enchants[1];
+ bool hasSpecIndex = _worldPacket.ReadBit();
+
uint32 setNameLength = _worldPacket.ReadBits(8);
uint32 setIconLength = _worldPacket.ReadBits(9);
+ if (hasSpecIndex)
+ _worldPacket >> Set.AssignedSpecIndex;
+
Set.SetName = _worldPacket.ReadString(setNameLength);
Set.SetIcon = _worldPacket.ReadString(setIconLength);
}
@@ -94,6 +103,8 @@ void WorldPackets::EquipmentSet::UseEquipmentSet::Read()
_worldPacket >> Items[i].ContainerSlot;
_worldPacket >> Items[i].Slot;
}
+
+ _worldPacket >> GUID;
}
WorldPacket const* WorldPackets::EquipmentSet::UseEquipmentSetResult::Write()
diff --git a/src/server/game/Server/Packets/EquipmentSetPackets.h b/src/server/game/Server/Packets/EquipmentSetPackets.h
index 31d689475fd..432b470a4fc 100644
--- a/src/server/game/Server/Packets/EquipmentSetPackets.h
+++ b/src/server/game/Server/Packets/EquipmentSetPackets.h
@@ -83,6 +83,7 @@ namespace WorldPackets
WorldPackets::Item::InvUpdate Inv;
EquipmentSetItem Items[EQUIPMENT_SLOT_END];
+ uint64 GUID = 0; ///< Set Identifier
};
class UseEquipmentSetResult final : public ServerPacket
diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp
index d251a26b8ba..fc16de424d7 100644
--- a/src/server/game/Server/Packets/ItemPackets.cpp
+++ b/src/server/game/Server/Packets/ItemPackets.cpp
@@ -39,10 +39,10 @@ void WorldPackets::Item::BuyItem::Read()
{
_worldPacket >> VendorGUID;
_worldPacket >> ContainerGUID;
- _worldPacket >> Item;
_worldPacket >> Quantity;
_worldPacket >> Muid;
_worldPacket >> Slot;
+ _worldPacket >> Item;
ItemType = static_cast<ItemVendorType>(_worldPacket.ReadBits(2));
}
diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp
index 5ca682148ca..e1a73d5378b 100644
--- a/src/server/game/Server/Packets/MovementPackets.cpp
+++ b/src/server/game/Server/Packets/MovementPackets.cpp
@@ -641,13 +641,28 @@ WorldPacket const* WorldPackets::Movement::MoveSetActiveMover::Write()
return &_worldPacket;
}
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MoveKnockBackSpeeds const& speeds)
+{
+ data << float(speeds.HorzSpeed);
+ data << float(speeds.VertSpeed);
+
+ return data;
+}
+
+ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Movement::MoveKnockBackSpeeds const& speeds)
+{
+ data >> speeds.HorzSpeed;
+ data >> speeds.VertSpeed;
+
+ return data;
+}
+
WorldPacket const* WorldPackets::Movement::MoveKnockBack::Write()
{
_worldPacket << MoverGUID;
_worldPacket << uint32(SequenceIndex);
_worldPacket << Direction;
- _worldPacket << float(HorzSpeed);
- _worldPacket << float(VertSpeed);
+ _worldPacket << Speeds;
return &_worldPacket;
}
@@ -659,6 +674,17 @@ WorldPacket const* WorldPackets::Movement::MoveUpdateKnockBack::Write()
return &_worldPacket;
}
+void WorldPackets::Movement::MoveKnockBackAck::Read()
+{
+ _worldPacket >> Ack;
+ bool hasSpeeds = _worldPacket.ReadBit();
+ if (hasSpeeds)
+ {
+ Speeds = boost::in_place();
+ _worldPacket >> *Speeds;
+ }
+}
+
WorldPacket const* WorldPackets::Movement::MoveSetCollisionHeight::Write()
{
_worldPacket << MoverGUID;
diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h
index a86f392c0ed..2695db47e4b 100644
--- a/src/server/game/Server/Packets/MovementPackets.h
+++ b/src/server/game/Server/Packets/MovementPackets.h
@@ -369,6 +369,12 @@ namespace WorldPackets
ObjectGuid MoverGUID;
};
+ struct MoveKnockBackSpeeds
+ {
+ float HorzSpeed = 0.0f;
+ float VertSpeed = 0.0f;
+ };
+
class MoveKnockBack final : public ServerPacket
{
public:
@@ -378,9 +384,8 @@ namespace WorldPackets
ObjectGuid MoverGUID;
G3D::Vector2 Direction;
- float HorzSpeed = 0.0f;
+ MoveKnockBackSpeeds Speeds;
uint32 SequenceIndex = 0;
- float VertSpeed = 0.0f;
};
class MoveUpdateKnockBack final : public ServerPacket
@@ -393,6 +398,17 @@ namespace WorldPackets
MovementInfo* movementInfo = nullptr;
};
+ class MoveKnockBackAck final : public ClientPacket
+ {
+ public:
+ MoveKnockBackAck(WorldPacket&& packet) : ClientPacket(CMSG_MOVE_KNOCK_BACK_ACK, std::move(packet)) { }
+
+ void Read() override;
+
+ MovementAck Ack;
+ Optional<MoveKnockBackSpeeds> Speeds;
+ };
+
enum UpdateCollisionHeightReason : uint8
{
UPDATE_COLLISION_HEIGHT_SCALE = 0,
diff --git a/src/server/game/Server/Packets/TicketPackets.cpp b/src/server/game/Server/Packets/TicketPackets.cpp
index 9f76498905a..9f1197b97df 100644
--- a/src/server/game/Server/Packets/TicketPackets.cpp
+++ b/src/server/game/Server/Packets/TicketPackets.cpp
@@ -191,8 +191,8 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT
void WorldPackets::Ticket::SupportTicketSubmitComplaint::Read()
{
_worldPacket >> Header;
- _worldPacket >> ChatLog;
_worldPacket >> TargetCharacterGUID;
+ _worldPacket >> ChatLog;
ComplaintType = _worldPacket.ReadBits(5);
uint32 noteLength = _worldPacket.ReadBits(10);
diff --git a/src/server/game/Server/Packets/TicketPackets.h b/src/server/game/Server/Packets/TicketPackets.h
index 73655bb756d..7d4771d2625 100644
--- a/src/server/game/Server/Packets/TicketPackets.h
+++ b/src/server/game/Server/Packets/TicketPackets.h
@@ -218,9 +218,8 @@ namespace WorldPackets
ComplaintOffender Offender;
uint32 MailID = 0;
ComplaintChat Chat;
- ObjectGuid EventGuid;
- ObjectGuid InviteGuid;
-
+ uint64 EventGuid;
+ uint64 InviteGuid;
};
class ComplaintResult final : public ServerPacket
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 3e61af5c8bd..ed91e8ca38e 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -453,6 +453,7 @@ namespace WorldPackets
class MoveTeleportAck;
class MovementAckMessage;
class MovementSpeedAck;
+ class MoveKnockBackAck;
class SetActiveMover;
class MoveSetCollisionHeightAck;
class MoveTimeSkipped;
@@ -1184,7 +1185,7 @@ class TC_GAME_API WorldSession
void HandleRepairItemOpcode(WorldPackets::Item::RepairItem& packet);
// Knockback
- void HandleMoveKnockBackAck(WorldPackets::Movement::MovementAckMessage& movementAck);
+ void HandleMoveKnockBackAck(WorldPackets::Movement::MoveKnockBackAck& movementAck);
void HandleMoveTeleportAck(WorldPackets::Movement::MoveTeleportAck& packet);
void HandleForceSpeedChangeAck(WorldPackets::Movement::MovementSpeedAck& packet);