Core/PacketIO: Use new packet writing utilities in a bunch of files

This commit is contained in:
Shauren
2025-03-01 00:43:08 +01:00
parent 464d8e39e0
commit 76352cb391
21 changed files with 351 additions and 391 deletions
+81 -82
View File
@@ -48,7 +48,7 @@ WorldPacket const* SendKnownSpells::Write()
{
_worldPacket.reserve(1 + 4 * KnownSpells.size() + 4 * FavoriteSpells.size());
_worldPacket.WriteBit(InitialLogin);
_worldPacket << Bits<1>(InitialLogin);
_worldPacket << uint32(KnownSpells.size());
_worldPacket << uint32(FavoriteSpells.size());
@@ -140,7 +140,7 @@ ByteBuffer& operator<<(ByteBuffer& data, AuraInfo const& aura)
WorldPacket const* AuraUpdate::Write()
{
_worldPacket.WriteBit(UpdateAll);
_worldPacket << Bits<1>(UpdateAll);
_worldPacket << BitsSize<9>(Auras);
for (AuraInfo const& aura : Auras)
_worldPacket << aura;
@@ -161,30 +161,29 @@ ByteBuffer& operator>>(ByteBuffer& buffer, SpellTargetData& targetData)
{
buffer.ResetBitPos();
targetData.Flags = buffer.ReadBits(28);
bool hasSrcLocation = buffer.ReadBit();
bool hasDstLocation = buffer.ReadBit();
bool hasOrientation = buffer.ReadBit();
bool hasMapID = buffer.ReadBit();
uint32 nameLength = buffer.ReadBits(7);
buffer >> Bits<28>(targetData.Flags);
buffer >> OptionalInit(targetData.SrcLocation);
buffer >> OptionalInit(targetData.DstLocation);
buffer >> OptionalInit(targetData.Orientation);
buffer >> OptionalInit(targetData.MapID);
buffer >> SizedString::BitsSize<7>(targetData.Name);
buffer >> targetData.Unit;
buffer >> targetData.Item;
if (hasSrcLocation)
buffer >> targetData.SrcLocation.emplace();
if (targetData.SrcLocation)
buffer >> *targetData.SrcLocation;
if (hasDstLocation)
buffer >> targetData.DstLocation.emplace();
if (targetData.DstLocation)
buffer >> *targetData.DstLocation;
if (hasOrientation)
targetData.Orientation = buffer.read<float>();
if (targetData.Orientation)
buffer >> *targetData.Orientation;
if (hasMapID)
targetData.MapID = buffer.read<int32>();
targetData.Name = buffer.ReadString(nameLength);
if (targetData.MapID)
buffer >> *targetData.MapID;
buffer >> SizedString::Data(targetData.Name);
return buffer;
}
@@ -200,8 +199,9 @@ ByteBuffer& operator>>(ByteBuffer& data, SpellCraftingReagent& optionalReagent)
data >> optionalReagent.ItemID;
data >> optionalReagent.DataSlotIndex;
data >> optionalReagent.Quantity;
if (data.ReadBit())
optionalReagent.Source = data.read<uint8>();
data >> OptionalInit(optionalReagent.Source);
if (optionalReagent.Source)
data >> *optionalReagent.Source;
return data;
}
@@ -230,14 +230,14 @@ ByteBuffer& operator>>(ByteBuffer& buffer, SpellCastRequest& request)
for (SpellExtraCurrencyCost& optionalCurrency : request.OptionalCurrencies)
buffer >> optionalCurrency;
request.SendCastFlags = buffer.ReadBits(5);
bool hasMoveUpdate = buffer.ReadBit();
request.Weight.resize(buffer.ReadBits(2));
bool hasCraftingOrderID = buffer.ReadBit();
buffer >> Bits<5>(request.SendCastFlags);
buffer >> OptionalInit(request.MoveUpdate);
buffer >> BitsSize<2>(request.Weight);
buffer >> OptionalInit(request.CraftingOrderID);
buffer >> request.Target;
if (hasCraftingOrderID)
request.CraftingOrderID = buffer.read<uint64>();
if (request.CraftingOrderID)
buffer >> *request.CraftingOrderID;
for (SpellCraftingReagent& optionalReagent : request.OptionalReagents)
buffer >> optionalReagent;
@@ -245,13 +245,13 @@ ByteBuffer& operator>>(ByteBuffer& buffer, SpellCastRequest& request)
for (SpellCraftingReagent& optionalReagent : request.RemovedModifications)
buffer >> optionalReagent;
if (hasMoveUpdate)
buffer >> request.MoveUpdate.emplace();
if (request.MoveUpdate)
buffer >> *request.MoveUpdate;
for (SpellWeight& weight : request.Weight)
{
buffer.ResetBitPos();
weight.Type = buffer.ReadBits(2);
buffer >> Bits<2>(weight.Type);
buffer >> weight.ID;
buffer >> weight.Quantity;
}
@@ -295,12 +295,12 @@ ByteBuffer& operator<<(ByteBuffer& data, TargetLocation const& targetLocation)
ByteBuffer& operator<<(ByteBuffer& data, SpellTargetData const& spellTargetData)
{
data.WriteBits(spellTargetData.Flags, 28);
data.WriteBit(spellTargetData.SrcLocation.has_value());
data.WriteBit(spellTargetData.DstLocation.has_value());
data.WriteBit(spellTargetData.Orientation.has_value());
data.WriteBit(spellTargetData.MapID.has_value());
data.WriteBits(spellTargetData.Name.size(), 7);
data << Bits<28>(spellTargetData.Flags);
data << OptionalInit(spellTargetData.SrcLocation);
data << OptionalInit(spellTargetData.DstLocation);
data << OptionalInit(spellTargetData.Orientation);
data << OptionalInit(spellTargetData.MapID);
data << SizedString::BitsSize<7>(spellTargetData.Name);
data.FlushBits();
data << spellTargetData.Unit;
@@ -313,13 +313,12 @@ ByteBuffer& operator<<(ByteBuffer& data, SpellTargetData const& spellTargetData)
data << *spellTargetData.DstLocation;
if (spellTargetData.Orientation)
data << *spellTargetData.Orientation;
data << float(*spellTargetData.Orientation);
if (spellTargetData.MapID)
data << *spellTargetData.MapID;
data.WriteString(spellTargetData.Name);
data << int32(*spellTargetData.MapID);
data << SizedString::Data(spellTargetData.Name);
return data;
}
@@ -394,13 +393,13 @@ ByteBuffer& operator<<(ByteBuffer& data, SpellCastData const& spellCastData)
data << uint8(spellCastData.DestLocSpellCastIndex);
data << spellCastData.Immunities;
data << spellCastData.Predict;
data.WriteBits(spellCastData.HitTargets.size(), 16);
data.WriteBits(spellCastData.MissTargets.size(), 16);
data.WriteBits(spellCastData.HitStatus.size(), 16);
data.WriteBits(spellCastData.MissStatus.size(), 16);
data.WriteBits(spellCastData.RemainingPower.size(), 9);
data.WriteBit(spellCastData.RemainingRunes.has_value());
data.WriteBits(spellCastData.TargetPoints.size(), 16);
data << BitsSize<16>(spellCastData.HitTargets);
data << BitsSize<16>(spellCastData.MissTargets);
data << BitsSize<16>(spellCastData.HitStatus);
data << BitsSize<16>(spellCastData.MissStatus);
data << BitsSize<9>(spellCastData.RemainingPower);
data << OptionalInit(spellCastData.RemainingRunes);
data << BitsSize<16>(spellCastData.TargetPoints);
data.FlushBits();
data << spellCastData.Target;
@@ -451,10 +450,10 @@ WorldPacket const* SpellGo::Write()
ByteBuffer& operator<<(ByteBuffer& data, LearnedSpellInfo const& learnedSpellInfo)
{
data << int32(learnedSpellInfo.SpellID);
data.WriteBit(learnedSpellInfo.Favorite);
data.WriteBit(learnedSpellInfo.EquipableSpellInvSlot.has_value());
data.WriteBit(learnedSpellInfo.Superceded.has_value());
data.WriteBit(learnedSpellInfo.TraitDefinitionID.has_value());
data << Bits<1>(learnedSpellInfo.Favorite);
data << OptionalInit(learnedSpellInfo.EquipableSpellInvSlot);
data << OptionalInit(learnedSpellInfo.Superceded);
data << OptionalInit(learnedSpellInfo.TraitDefinitionID);
data.FlushBits();
if (learnedSpellInfo.EquipableSpellInvSlot)
@@ -473,7 +472,7 @@ WorldPacket const* LearnedSpells::Write()
{
_worldPacket << uint32(ClientLearnedSpellData.size());
_worldPacket << uint32(SpecializationID);
_worldPacket.WriteBit(SuppressMessaging);
_worldPacket << Bits<1>(SuppressMessaging);
_worldPacket.FlushBits();
for (LearnedSpellInfo const& spell : ClientLearnedSpellData)
@@ -570,7 +569,7 @@ WorldPacket const* UnlearnedSpells::Write()
for (uint32 spellId : SpellID)
_worldPacket << uint32(spellId);
_worldPacket.WriteBit(SuppressMessaging);
_worldPacket << Bits<1>(SuppressMessaging);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -579,7 +578,7 @@ WorldPacket const* UnlearnedSpells::Write()
WorldPacket const* CooldownEvent::Write()
{
_worldPacket << int32(SpellID);
_worldPacket.WriteBit(IsPet);
_worldPacket << Bits<1>(IsPet);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -591,7 +590,7 @@ WorldPacket const* ClearCooldowns::Write()
if (!SpellID.empty())
_worldPacket.append(SpellID.data(), SpellID.size());
_worldPacket.WriteBit(IsPet);
_worldPacket << Bits<1>(IsPet);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -600,8 +599,8 @@ WorldPacket const* ClearCooldowns::Write()
WorldPacket const* ClearCooldown::Write()
{
_worldPacket << uint32(SpellID);
_worldPacket.WriteBit(ClearOnHold);
_worldPacket.WriteBit(IsPet);
_worldPacket << Bits<1>(ClearOnHold);
_worldPacket << Bits<1>(IsPet);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -611,8 +610,8 @@ WorldPacket const* ModifyCooldown::Write()
{
_worldPacket << int32(SpellID);
_worldPacket << int32(DeltaTime);
_worldPacket.WriteBit(IsPet);
_worldPacket.WriteBit(WithoutCategoryCooldown);
_worldPacket << Bits<1>(IsPet);
_worldPacket << Bits<1>(WithoutCategoryCooldown);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -645,9 +644,9 @@ ByteBuffer& operator<<(ByteBuffer& data, SpellHistoryEntry const& historyEntry)
data << int32(historyEntry.RecoveryTime);
data << int32(historyEntry.CategoryRecoveryTime);
data << float(historyEntry.ModRate);
data.WriteBit(historyEntry.RecoveryTimeStartOffset.has_value());
data.WriteBit(historyEntry.CategoryRecoveryTimeStartOffset.has_value());
data.WriteBit(historyEntry.OnHold);
data << OptionalInit(historyEntry.RecoveryTimeStartOffset);
data << OptionalInit(historyEntry.CategoryRecoveryTimeStartOffset);
data << Bits<1>(historyEntry.OnHold);
if (historyEntry.RecoveryTimeStartOffset)
data << uint32(*historyEntry.RecoveryTimeStartOffset);
if (historyEntry.CategoryRecoveryTimeStartOffset)
@@ -668,7 +667,7 @@ WorldPacket const* SendSpellHistory::Write()
WorldPacket const* ClearAllSpellCharges::Write()
{
_worldPacket.WriteBit(IsPet);
_worldPacket << Bits<1>(IsPet);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -677,7 +676,7 @@ WorldPacket const* ClearAllSpellCharges::Write()
WorldPacket const* ClearSpellCharges::Write()
{
_worldPacket << int32(Category);
_worldPacket.WriteBit(IsPet);
_worldPacket << Bits<1>(IsPet);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -689,7 +688,7 @@ WorldPacket const* SetSpellCharges::Write()
_worldPacket << uint32(NextRecoveryTime);
_worldPacket << uint8(ConsumedCharges);
_worldPacket << float(ChargeModRate);
_worldPacket.WriteBit(IsPet);
_worldPacket << Bits<1>(IsPet);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -739,7 +738,7 @@ WorldPacket const* CancelSpellVisualKit::Write()
{
_worldPacket << Source;
_worldPacket << int32(SpellVisualKitID);
_worldPacket.WriteBit(MountedVisual);
_worldPacket << Bits<1>(MountedVisual);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -756,7 +755,7 @@ WorldPacket const* PlayOrphanSpellVisual::Write()
_worldPacket << float(TravelSpeed);
_worldPacket << float(LaunchDelay);
_worldPacket << float(MinDuration);
_worldPacket.WriteBit(SpeedAsTime);
_worldPacket << Bits<1>(SpeedAsTime);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -775,7 +774,7 @@ WorldPacket const* PlaySpellVisual::Write()
_worldPacket << uint16(ReflectStatus);
_worldPacket << float(LaunchDelay);
_worldPacket << float(MinDuration);
_worldPacket.WriteBit(SpeedAsTime);
_worldPacket << Bits<1>(SpeedAsTime);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -787,7 +786,7 @@ WorldPacket const* PlaySpellVisualKit::Write()
_worldPacket << int32(KitRecID);
_worldPacket << int32(KitType);
_worldPacket << uint32(Duration);
_worldPacket.WriteBit(MountedVisual);
_worldPacket << Bits<1>(MountedVisual);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -833,8 +832,8 @@ WorldPacket const* SpellChannelStart::Write()
_worldPacket << int32(SpellID);
_worldPacket << Visual;
_worldPacket << uint32(ChannelDuration);
_worldPacket.WriteBit(InterruptImmunities.has_value());
_worldPacket.WriteBit(HealPrediction.has_value());
_worldPacket << OptionalInit(InterruptImmunities);
_worldPacket << OptionalInit(HealPrediction);
_worldPacket.FlushBits();
if (InterruptImmunities)
@@ -871,8 +870,8 @@ WorldPacket const* SpellEmpowerStart::Write()
for (Duration<Milliseconds, uint32> stageDuration : StageDurations)
_worldPacket << stageDuration;
_worldPacket.WriteBit(InterruptImmunities.has_value());
_worldPacket.WriteBit(HealPrediction.has_value());
_worldPacket << OptionalInit(InterruptImmunities);
_worldPacket << OptionalInit(HealPrediction);
_worldPacket.FlushBits();
if (InterruptImmunities)
@@ -929,12 +928,12 @@ WorldPacket const* ResurrectRequest::Write()
_worldPacket << uint32(ResurrectOffererVirtualRealmAddress);
_worldPacket << uint32(PetNumber);
_worldPacket << int32(SpellID);
_worldPacket.WriteBits(Name.length(), 11);
_worldPacket.WriteBit(UseTimer);
_worldPacket.WriteBit(Sickness);
_worldPacket << SizedString::BitsSize<11>(Name);
_worldPacket << Bits<1>(UseTimer);
_worldPacket << Bits<1>(Sickness);
_worldPacket.FlushBits();
_worldPacket.WriteString(Name);
_worldPacket << SizedString::Data(Name);
return &_worldPacket;
}
@@ -994,7 +993,7 @@ WorldPacket const* MirrorImageCreatureData::Write()
void SpellClick::Read()
{
_worldPacket >> SpellClickUnitGuid;
TryAutoDismount = _worldPacket.ReadBit();
_worldPacket >> Bits<1>(TryAutoDismount);
}
WorldPacket const* ResyncRunes::Write()
@@ -1038,11 +1037,11 @@ void UpdateMissileTrajectory::Read()
_worldPacket >> Speed;
_worldPacket >> FirePos;
_worldPacket >> ImpactPos;
bool hasStatus = _worldPacket.ReadBit();
_worldPacket >> OptionalInit(Status);
_worldPacket.ResetBitPos();
if (hasStatus)
_worldPacket >> Status.emplace();
if (Status)
_worldPacket >> *Status;
}
WorldPacket const* SpellDelayed::Write()
@@ -1093,7 +1092,7 @@ WorldPacket const* MissileCancel::Write()
{
_worldPacket << OwnerGUID;
_worldPacket << int32(SpellID);
_worldPacket.WriteBit(Reverse);
_worldPacket << Bits<1>(Reverse);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -1102,7 +1101,7 @@ WorldPacket const* MissileCancel::Write()
void TradeSkillSetFavorite::Read()
{
_worldPacket >> RecipeID;
IsFavorite = _worldPacket.ReadBit();
_worldPacket >> Bits<1>(IsFavorite);
}
void KeyboundOverride::Read()