mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/PacketIO: Updated client packet structures to 7.2.0
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user