aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Server/Packets/AuctionHousePackets.cpp4
-rw-r--r--src/server/game/Server/Packets/AuthenticationPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/CalendarPackets.cpp6
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.cpp51
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.h2
-rw-r--r--src/server/game/Server/Packets/CombatLogPacketsCommon.cpp6
-rw-r--r--src/server/game/Server/Packets/CraftingPacketsCommon.cpp8
-rw-r--r--src/server/game/Server/Packets/EquipmentSetPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/GarrisonPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/GuildPackets.cpp3
-rw-r--r--src/server/game/Server/Packets/InstancePackets.cpp5
-rw-r--r--src/server/game/Server/Packets/ItemPackets.cpp16
-rw-r--r--src/server/game/Server/Packets/ItemPacketsCommon.cpp21
-rw-r--r--src/server/game/Server/Packets/NPCPackets.cpp23
-rw-r--r--src/server/game/Server/Packets/NPCPackets.h10
-rw-r--r--src/server/game/Server/Packets/PartyPackets.cpp8
-rw-r--r--src/server/game/Server/Packets/QueryPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/QuestPackets.cpp74
-rw-r--r--src/server/game/Server/Packets/QuestPackets.h12
-rw-r--r--src/server/game/Server/Packets/ReputationPackets.cpp1
-rw-r--r--src/server/game/Server/Packets/ScenePackets.cpp5
-rw-r--r--src/server/game/Server/Packets/ScenePackets.h5
-rw-r--r--src/server/game/Server/Packets/SpellPackets.cpp18
-rw-r--r--src/server/game/Server/Packets/SystemPackets.cpp188
-rw-r--r--src/server/game/Server/Packets/TradePackets.h1
-rw-r--r--src/server/game/Spells/Spell.cpp2
-rw-r--r--src/server/game/Spells/Spell.h4
27 files changed, 236 insertions, 245 deletions
diff --git a/src/server/game/Server/Packets/AuctionHousePackets.cpp b/src/server/game/Server/Packets/AuctionHousePackets.cpp
index e30031c22f7..ed6aea45f77 100644
--- a/src/server/game/Server/Packets/AuctionHousePackets.cpp
+++ b/src/server/game/Server/Packets/AuctionHousePackets.cpp
@@ -99,8 +99,8 @@ ByteBuffer& operator>>(ByteBuffer& data, AuctionListFilterClass& filterClass)
ByteBuffer& operator>>(ByteBuffer& data, AuctionSortDef& sortDef)
{
data.ResetBitPos();
- sortDef.SortOrder = static_cast<AuctionHouseSortOrder>(data.ReadBits(4));
- sortDef.ReverseSort = data.ReadBit();
+ data >> Bits<4>(sortDef.SortOrder);
+ data >> Bits<1>(sortDef.ReverseSort);
return data;
}
diff --git a/src/server/game/Server/Packets/AuthenticationPackets.cpp b/src/server/game/Server/Packets/AuthenticationPackets.cpp
index 8dace8d9a40..5ae68849569 100644
--- a/src/server/game/Server/Packets/AuthenticationPackets.cpp
+++ b/src/server/game/Server/Packets/AuthenticationPackets.cpp
@@ -327,7 +327,7 @@ void WorldPackets::Auth::AuthContinuedSession::Read()
void WorldPackets::Auth::ConnectToFailed::Read()
{
- Serial = _worldPacket.read<ConnectToSerial>();
+ _worldPacket >> As<uint32>(Serial);
_worldPacket >> Con;
}
diff --git a/src/server/game/Server/Packets/CalendarPackets.cpp b/src/server/game/Server/Packets/CalendarPackets.cpp
index 7bd73d0fc45..07cb5393c06 100644
--- a/src/server/game/Server/Packets/CalendarPackets.cpp
+++ b/src/server/game/Server/Packets/CalendarPackets.cpp
@@ -290,8 +290,8 @@ WorldPacket const* WorldPackets::Calendar::CalendarSendEvent::Write()
_worldPacket << LockDate;
_worldPacket << uint64(EventClubID);
_worldPacket << uint32(Invites.size());
- _worldPacket.WriteBits(EventName.size(), 8);
- _worldPacket.WriteBits(Description.size(), 11);
+ _worldPacket << BitsSize<8>(EventName);
+ _worldPacket << BitsSize<11>(Description);
_worldPacket.FlushBits();
for (auto const& invite : Invites)
@@ -319,7 +319,7 @@ WorldPacket const* WorldPackets::Calendar::CalendarInviteAlert::Write()
_worldPacket << InvitedByGuid;
_worldPacket << OwnerGuid;
- _worldPacket.WriteBits(EventName.size(), 8);
+ _worldPacket << BitsSize<8>(EventName);
_worldPacket.FlushBits();
_worldPacket.WriteString(EventName);
diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp
index 075d404cc05..5dd7ba275cf 100644
--- a/src/server/game/Server/Packets/CharacterPackets.cpp
+++ b/src/server/game/Server/Packets/CharacterPackets.cpp
@@ -49,16 +49,7 @@ namespace Character
{
void SortCustomizations(Array<ChrCustomizationChoice, 250>& customizations)
{
- auto first = customizations.begin();
- auto last = customizations.end();
- for (auto itr = first; itr != last; ++itr)
- {
- auto insertion = std::upper_bound(first, itr, *itr, [](ChrCustomizationChoice const& left, ChrCustomizationChoice const& right)
- {
- return left.ChrCustomizationOptionID < right.ChrCustomizationOptionID;
- });
- std::rotate(insertion, itr, std::next(itr));
- }
+ std::ranges::sort(customizations, std::ranges::less(), &ChrCustomizationChoice::ChrCustomizationOptionID);
}
ByteBuffer& operator<<(ByteBuffer& data, CustomTabardInfo const& customTabardInfo)
@@ -88,7 +79,7 @@ EnumCharacters::EnumCharacters(WorldPacket&& packet) : ClientPacket(std::move(pa
ASSERT(GetOpcode() == CMSG_ENUM_CHARACTERS || GetOpcode() == CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT);
}
-EnumCharactersResult::CharacterInfo::CharacterInfo(Field* fields)
+EnumCharactersResult::CharacterInfo::CharacterInfo(Field const* fields)
{
// 0 1 2 3 4 5
// "SELECT characters.guid, characters.name, characters.race, characters.class, characters.gender, characters.level, "
@@ -248,15 +239,15 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfo con
if (!charInfo.MailSenderTypes.empty())
data.append(charInfo.MailSenderTypes.data(), charInfo.MailSenderTypes.size());
- data.WriteBits(charInfo.Name.length(), 6);
- data.WriteBit(charInfo.FirstLogin);
- data.WriteBit(charInfo.BoostInProgress);
- data.WriteBits(charInfo.unkWod61x, 5);
- data.WriteBit(charInfo.RpeResetAvailable);
- data.WriteBit(charInfo.RpeResetQuestClearAvailable);
+ data << BitsSize<6>(charInfo.Name);
+ data << Bits<1>(charInfo.FirstLogin);
+ data << Bits<1>(charInfo.BoostInProgress);
+ data << Bits<5>(charInfo.unkWod61x);
+ data << Bits<1>(charInfo.RpeResetAvailable);
+ data << Bits<1>(charInfo.RpeResetQuestClearAvailable);
for (std::string const& str : charInfo.MailSenders)
- data.WriteBits(str.length() + 1, 6);
+ data << Bits<6>(str.length() + 1);
data.FlushBits();
@@ -272,11 +263,11 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfo con
ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::RaceUnlock const& raceUnlock)
{
data << int32(raceUnlock.RaceID);
- data.WriteBit(raceUnlock.HasExpansion);
- data.WriteBit(raceUnlock.HasAchievement);
- data.WriteBit(raceUnlock.HasHeritageArmor);
- data.WriteBit(raceUnlock.IsLocked);
- data.WriteBit(raceUnlock.Unused1027);
+ data << Bits<1>(raceUnlock.HasExpansion);
+ data << Bits<1>(raceUnlock.HasAchievement);
+ data << Bits<1>(raceUnlock.HasHeritageArmor);
+ data << Bits<1>(raceUnlock.IsLocked);
+ data << Bits<1>(raceUnlock.Unused1027);
data.FlushBits();
return data;
@@ -302,13 +293,13 @@ WorldPacket const* EnumCharactersResult::Write()
{
_worldPacket.reserve(9 + Characters.size() * sizeof(CharacterInfo) + RaceUnlockData.size() * sizeof(RaceUnlock));
- _worldPacket.WriteBit(Success);
- _worldPacket.WriteBit(IsDeletedCharacters);
- _worldPacket.WriteBit(IsNewPlayerRestrictionSkipped);
- _worldPacket.WriteBit(IsNewPlayerRestricted);
- _worldPacket.WriteBit(IsNewPlayer);
- _worldPacket.WriteBit(IsTrialAccountRestricted);
- _worldPacket.WriteBit(DisabledClassesMask.has_value());
+ _worldPacket << Bits<1>(Success);
+ _worldPacket << Bits<1>(IsDeletedCharacters);
+ _worldPacket << Bits<1>(IsNewPlayerRestrictionSkipped);
+ _worldPacket << Bits<1>(IsNewPlayerRestricted);
+ _worldPacket << Bits<1>(IsNewPlayer);
+ _worldPacket << Bits<1>(IsTrialAccountRestricted);
+ _worldPacket << OptionalInit(DisabledClassesMask);
_worldPacket << uint32(Characters.size());
_worldPacket << int32(MaxCharacterLevel);
_worldPacket << uint32(RaceUnlockData.size());
diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h
index 572ce9761f3..89d4312a6fc 100644
--- a/src/server/game/Server/Packets/CharacterPackets.h
+++ b/src/server/game/Server/Packets/CharacterPackets.h
@@ -128,7 +128,7 @@ namespace WorldPackets
*
* @param fields Field set of CharacterDatabaseStatements::CHAR_SEL_ENUM
*/
- CharacterInfo(Field* fields);
+ CharacterInfo(Field const* fields);
ObjectGuid Guid;
uint64 GuildClubMemberID = 0; ///< same as bgs.protocol.club.v1.MemberId.unique_id, guessed basing on SMSG_QUERY_PLAYER_NAME_RESPONSE (that one is known)
diff --git a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp
index a19ec0502f8..11b66971073 100644
--- a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp
+++ b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp
@@ -55,7 +55,7 @@ void SpellCastLogData::Initialize(Spell const* spell)
}
if (!primaryPowerAdded)
- PowerData.insert(PowerData.begin(), SpellLogPowerData(int32(primaryPowerType), unitCaster->GetPower(primaryPowerType), 0));
+ PowerData.emplace(PowerData.begin(), int32(primaryPowerType), unitCaster->GetPower(primaryPowerType), 0);
}
}
@@ -160,10 +160,10 @@ ByteBuffer& operator<<(ByteBuffer& data, SpellCastLogData const& spellCastLogDat
data << int32(spellCastLogData.AttackPower);
data << int32(spellCastLogData.SpellPower);
data << int32(spellCastLogData.Armor);
- data.WriteBits(spellCastLogData.PowerData.size(), 9);
+ data << BitsSize<9>(spellCastLogData.PowerData);
data.FlushBits();
- for (WorldPackets::Spells::SpellLogPowerData const& powerData : spellCastLogData.PowerData)
+ for (SpellLogPowerData const& powerData : spellCastLogData.PowerData)
{
data << int32(powerData.PowerType);
data << int32(powerData.Amount);
diff --git a/src/server/game/Server/Packets/CraftingPacketsCommon.cpp b/src/server/game/Server/Packets/CraftingPacketsCommon.cpp
index de5189183e5..d5518dda79e 100644
--- a/src/server/game/Server/Packets/CraftingPacketsCommon.cpp
+++ b/src/server/game/Server/Packets/CraftingPacketsCommon.cpp
@@ -48,10 +48,10 @@ ByteBuffer& operator<<(ByteBuffer& data, CraftingData const& craftingData)
for (SpellReducedReagent const& spellReducedReagent : craftingData.ResourcesReturned)
data << spellReducedReagent;
- data.WriteBit(craftingData.IsCrit);
- data.WriteBit(craftingData.field_29);
- data.WriteBit(craftingData.field_2A);
- data.WriteBit(craftingData.BonusCraft);
+ data << Bits<1>(craftingData.IsCrit);
+ data << Bits<1>(craftingData.field_29);
+ data << Bits<1>(craftingData.field_2A);
+ data << Bits<1>(craftingData.BonusCraft);
data.FlushBits();
data << craftingData.OldItem;
diff --git a/src/server/game/Server/Packets/EquipmentSetPackets.cpp b/src/server/game/Server/Packets/EquipmentSetPackets.cpp
index 45442f9db31..7d7fa640b9a 100644
--- a/src/server/game/Server/Packets/EquipmentSetPackets.cpp
+++ b/src/server/game/Server/Packets/EquipmentSetPackets.cpp
@@ -67,7 +67,7 @@ WorldPacket const* WorldPackets::EquipmentSet::LoadEquipmentSet::Write()
void WorldPackets::EquipmentSet::SaveEquipmentSet::Read()
{
- Set.Type = _worldPacket.read<EquipmentSetInfo::EquipmentSetType, int32>();
+ _worldPacket >> As<int32>(Set.Type);
_worldPacket >> Set.Guid;
_worldPacket >> Set.SetID;
_worldPacket >> Set.IgnoreMask;
diff --git a/src/server/game/Server/Packets/GarrisonPackets.cpp b/src/server/game/Server/Packets/GarrisonPackets.cpp
index 0796748d877..c3212ea899c 100644
--- a/src/server/game/Server/Packets/GarrisonPackets.cpp
+++ b/src/server/game/Server/Packets/GarrisonPackets.cpp
@@ -253,7 +253,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonInfo const& garrison)
data << uint32(garrison.NumMissionsStartedToday);
data << int32(garrison.MinAutoTroopLevel);
- for (GarrisonPlotInfo* plot : garrison.Plots)
+ for (GarrisonPlotInfo const* plot : garrison.Plots)
data << *plot;
for (std::vector<GarrisonMissionReward> const& missionReward : garrison.MissionRewards)
diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp
index fe80b31595d..88c971c8ae7 100644
--- a/src/server/game/Server/Packets/GuildPackets.cpp
+++ b/src/server/game/Server/Packets/GuildPackets.cpp
@@ -906,8 +906,7 @@ void WorldPackets::Guild::GuildNewsUpdateSticky::Read()
{
_worldPacket >> GuildGUID;
_worldPacket >> NewsID;
-
- NewsID = _worldPacket.ReadBit();
+ _worldPacket >> Bits<1>(Sticky);
}
void WorldPackets::Guild::GuildSetGuildMaster::Read()
diff --git a/src/server/game/Server/Packets/InstancePackets.cpp b/src/server/game/Server/Packets/InstancePackets.cpp
index bea2ce488c9..41e73128573 100644
--- a/src/server/game/Server/Packets/InstancePackets.cpp
+++ b/src/server/game/Server/Packets/InstancePackets.cpp
@@ -16,6 +16,7 @@
*/
#include "InstancePackets.h"
+#include "PacketUtilities.h"
WorldPacket const* WorldPackets::Instance::UpdateLastInstance::Write()
{
@@ -110,8 +111,8 @@ WorldPacket const* WorldPackets::Instance::RaidInstanceMessage::Write()
_worldPacket << uint8(Type);
_worldPacket << uint32(MapID);
_worldPacket << uint32(DifficultyID);
- _worldPacket.WriteBit(Locked);
- _worldPacket.WriteBit(Extended);
+ _worldPacket << Bits<1>(Locked);
+ _worldPacket << Bits<1>(Extended);
_worldPacket.FlushBits();
return &_worldPacket;
diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp
index 04c446ff3ae..7dc3dc23138 100644
--- a/src/server/game/Server/Packets/ItemPackets.cpp
+++ b/src/server/game/Server/Packets/ItemPackets.cpp
@@ -264,14 +264,14 @@ WorldPacket const* WorldPackets::Item::ItemPushResult::Write()
for (UiEventToast const& uiEventToast : Toasts)
_worldPacket << uiEventToast;
- _worldPacket.WriteBit(Pushed);
- _worldPacket.WriteBit(Created);
- _worldPacket.WriteBit(Unused_1017);
- _worldPacket.WriteBits(DisplayText, 3);
- _worldPacket.WriteBit(IsBonusRoll);
- _worldPacket.WriteBit(IsEncounterLoot);
- _worldPacket.WriteBit(CraftingData.has_value());
- _worldPacket.WriteBit(FirstCraftOperationID.has_value());
+ _worldPacket << Bits<1>(Pushed);
+ _worldPacket << Bits<1>(Created);
+ _worldPacket << Bits<1>(Unused_1017);
+ _worldPacket << Bits<3>(DisplayText);
+ _worldPacket << Bits<1>(IsBonusRoll);
+ _worldPacket << Bits<1>(IsEncounterLoot);
+ _worldPacket << OptionalInit(CraftingData);
+ _worldPacket << OptionalInit(FirstCraftOperationID);
_worldPacket.FlushBits();
_worldPacket << Item;
diff --git a/src/server/game/Server/Packets/ItemPacketsCommon.cpp b/src/server/game/Server/Packets/ItemPacketsCommon.cpp
index 5078787c245..e68a6f35dca 100644
--- a/src/server/game/Server/Packets/ItemPacketsCommon.cpp
+++ b/src/server/game/Server/Packets/ItemPacketsCommon.cpp
@@ -147,17 +147,16 @@ ByteBuffer& operator<<(ByteBuffer& data, ItemBonuses const& itemBonusInstanceDat
ByteBuffer& operator>>(ByteBuffer& data, ItemBonuses& itemBonusInstanceData)
{
- uint32 bonusListIdSize;
-
itemBonusInstanceData.Context = data.read<ItemContext>();
+ uint32 bonusListIdSize;
data >> bonusListIdSize;
+ if (bonusListIdSize > 32)
+ throw PacketArrayMaxCapacityException(bonusListIdSize, 32);
- for (uint32 i = 0u; i < bonusListIdSize; ++i)
- {
- uint32 bonusId;
- data >> bonusId;
- itemBonusInstanceData.BonusListIDs.push_back(bonusId);
- }
+ itemBonusInstanceData.BonusListIDs.resize(bonusListIdSize);
+
+ for (int32& bonusListID : itemBonusInstanceData.BonusListIDs)
+ data >> bonusListID;
return data;
}
@@ -173,14 +172,14 @@ ByteBuffer& operator<<(ByteBuffer& data, ItemMod const& itemMod)
ByteBuffer& operator>>(ByteBuffer& data, ItemMod& itemMod)
{
data >> itemMod.Value;
- itemMod.Type = data.read<ItemModifier, uint8>();
+ data >> As<uint8>(itemMod.Type);
return data;
}
ByteBuffer& operator<<(ByteBuffer& data, ItemModList const& itemModList)
{
- data.WriteBits(itemModList.Values.size(), 6);
+ data << BitsSize<6>(itemModList.Values);
data.FlushBits();
for (ItemMod const& itemMod : itemModList.Values)
@@ -191,7 +190,7 @@ ByteBuffer& operator<<(ByteBuffer& data, ItemModList const& itemModList)
ByteBuffer& operator>>(ByteBuffer& data, ItemModList& itemModList)
{
- itemModList.Values.resize(data.ReadBits(6));
+ data >> BitsSize<6>(itemModList.Values);
data.ResetBitPos();
for (ItemMod& itemMod : itemModList.Values)
diff --git a/src/server/game/Server/Packets/NPCPackets.cpp b/src/server/game/Server/Packets/NPCPackets.cpp
index ec32ed95325..4a81fef3f0b 100644
--- a/src/server/game/Server/Packets/NPCPackets.cpp
+++ b/src/server/game/Server/Packets/NPCPackets.cpp
@@ -16,13 +16,12 @@
*/
#include "NPCPackets.h"
-#include "Util.h"
namespace WorldPackets::NPC
{
ByteBuffer& operator<<(ByteBuffer& data, TreasureItem const& treasureItem)
{
- data.WriteBits(AsUnderlyingType(treasureItem.Type), 1);
+ data << Bits<1>(treasureItem.Type);
data << int32(treasureItem.ID);
data << int32(treasureItem.Quantity);
@@ -47,11 +46,11 @@ ByteBuffer& operator<<(ByteBuffer& data, ClientGossipOptions const& gossipOption
data << uint32(gossipOption.OptionLanguage);
data << int32(gossipOption.Flags);
data << int32(gossipOption.OrderIndex);
- data.WriteBits(gossipOption.Text.size(), 12);
- data.WriteBits(gossipOption.Confirm.size(), 12);
- data.WriteBits(AsUnderlyingType(gossipOption.Status), 2);
- data.WriteBit(gossipOption.SpellID.has_value());
- data.WriteBit(gossipOption.OverrideIconID.has_value());
+ data << BitsSize<12>(gossipOption.Text);
+ data << BitsSize<12>(gossipOption.Confirm);
+ data << Bits<2>(gossipOption.Status);
+ data << OptionalInit(gossipOption.SpellID);
+ data << OptionalInit(gossipOption.OverrideIconID);
data.FlushBits();
data << gossipOption.Treasure;
@@ -76,9 +75,9 @@ ByteBuffer& operator<<(ByteBuffer& data, ClientGossipText const& gossipText)
data << int32(gossipText.QuestFlags[0]);
data << int32(gossipText.QuestFlags[1]);
- data.WriteBit(gossipText.Repeatable);
- data.WriteBit(gossipText.Important);
- data.WriteBits(gossipText.QuestTitle.size(), 9);
+ data << Bits<1>(gossipText.Repeatable);
+ data << Bits<1>(gossipText.Important);
+ data << BitsSize<9>(gossipText.QuestTitle);
data.FlushBits();
data.WriteString(gossipText.QuestTitle);
@@ -108,8 +107,8 @@ WorldPacket const* GossipMessage::Write()
_worldPacket << int32(FriendshipFactionID);
_worldPacket << uint32(GossipOptions.size());
_worldPacket << uint32(GossipText.size());
- _worldPacket.WriteBit(TextID.has_value());
- _worldPacket.WriteBit(BroadcastTextID.has_value());
+ _worldPacket << OptionalInit(TextID);
+ _worldPacket << OptionalInit(BroadcastTextID);
_worldPacket.FlushBits();
for (ClientGossipOptions const& options : GossipOptions)
diff --git a/src/server/game/Server/Packets/NPCPackets.h b/src/server/game/Server/Packets/NPCPackets.h
index 6aba0696f26..79b2bd45625 100644
--- a/src/server/game/Server/Packets/NPCPackets.h
+++ b/src/server/game/Server/Packets/NPCPackets.h
@@ -94,13 +94,13 @@ namespace WorldPackets
struct ClientGossipText
{
- int32 QuestID = 0;
+ int32 QuestID = 0;
int32 ContentTuningID = 0;
- int32 QuestType = 0;
- bool Repeatable = false;
- bool Important = false;
+ int32 QuestType = 0;
+ bool Repeatable = false;
+ bool Important = false;
std::string QuestTitle;
- int32 QuestFlags[2] = { };
+ std::array<int32, 2> QuestFlags = { };
};
ByteBuffer& operator<<(ByteBuffer& data, ClientGossipText const& gossipText);
diff --git a/src/server/game/Server/Packets/PartyPackets.cpp b/src/server/game/Server/Packets/PartyPackets.cpp
index 0791574e61c..fc8365dd507 100644
--- a/src/server/game/Server/Packets/PartyPackets.cpp
+++ b/src/server/game/Server/Packets/PartyPackets.cpp
@@ -735,9 +735,9 @@ WorldPacket const* WorldPackets::Party::BroadcastSummonResponse::Write()
void WorldPackets::Party::SetRestrictPingsToAssistants::Read()
{
- bool hasPartyIndex = _worldPacket.ReadBit();
- RestrictPingsToAssistants = _worldPacket.ReadBit();
- if (hasPartyIndex)
+ _worldPacket >> OptionalInit(PartyIndex);
+ _worldPacket >> Bits<1>(RestrictPingsToAssistants);
+ if (PartyIndex)
_worldPacket >> PartyIndex.emplace();
}
@@ -764,7 +764,7 @@ void WorldPackets::Party::SendPingWorldPoint::Read()
_worldPacket >> SenderGUID;
_worldPacket >> MapID;
_worldPacket >> Point;
- Type = _worldPacket.read<PingSubjectType, uint8>();
+ _worldPacket >> As<uint8>(Type);
_worldPacket >> PinFrameID;
}
diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp
index cf826d3eeea..72bde99ff5d 100644
--- a/src/server/game/Server/Packets/QueryPackets.cpp
+++ b/src/server/game/Server/Packets/QueryPackets.cpp
@@ -369,7 +369,7 @@ void QueryCorpseLocationFromClient::Read()
WorldPacket const* CorpseLocation::Write()
{
- _worldPacket.WriteBit(Valid);
+ _worldPacket << Bits<1>(Valid);
_worldPacket.FlushBits();
_worldPacket << Player;
diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp
index 9eae0a7c3b0..1d8dc537de5 100644
--- a/src/server/game/Server/Packets/QuestPackets.cpp
+++ b/src/server/game/Server/Packets/QuestPackets.cpp
@@ -194,16 +194,16 @@ WorldPacket const* QueryQuestInfoResponse::Write()
for (QuestCompleteDisplaySpell const& rewardDisplaySpell : Info.RewardDisplaySpell)
_worldPacket << rewardDisplaySpell;
- _worldPacket.WriteBits(Info.LogTitle.size(), 9);
- _worldPacket.WriteBits(Info.LogDescription.size(), 12);
- _worldPacket.WriteBits(Info.QuestDescription.size(), 12);
- _worldPacket.WriteBits(Info.AreaDescription.size(), 9);
- _worldPacket.WriteBits(Info.PortraitGiverText.size(), 10);
- _worldPacket.WriteBits(Info.PortraitGiverName.size(), 8);
- _worldPacket.WriteBits(Info.PortraitTurnInText.size(), 10);
- _worldPacket.WriteBits(Info.PortraitTurnInName.size(), 8);
- _worldPacket.WriteBits(Info.QuestCompletionLog.size(), 11);
- _worldPacket.WriteBit(Info.ReadyForTranslation);
+ _worldPacket << BitsSize<9>(Info.LogTitle);
+ _worldPacket << BitsSize<12>(Info.LogDescription);
+ _worldPacket << BitsSize<12>(Info.QuestDescription);
+ _worldPacket << BitsSize<9>(Info.AreaDescription);
+ _worldPacket << BitsSize<10>(Info.PortraitGiverText);
+ _worldPacket << BitsSize<8>(Info.PortraitGiverName);
+ _worldPacket << BitsSize<10>(Info.PortraitTurnInText);
+ _worldPacket << BitsSize<8>(Info.PortraitTurnInName);
+ _worldPacket << BitsSize<11>(Info.QuestCompletionLog);
+ _worldPacket << Bits<1>(Info.ReadyForTranslation);
_worldPacket.FlushBits();
for (QuestObjective const& questObjective : Info.Objectives)
@@ -221,7 +221,7 @@ WorldPacket const* QueryQuestInfoResponse::Write()
for (int32 visualEffect : questObjective.VisualEffects)
_worldPacket << int32(visualEffect);
- _worldPacket.WriteBits(questObjective.Description.size(), 8);
+ _worldPacket << BitsSize<8>(questObjective.Description);
_worldPacket.FlushBits();
_worldPacket.WriteString(questObjective.Description);
@@ -278,7 +278,7 @@ WorldPacket const* QuestUpdateAddPvPCredit::Write()
ByteBuffer& operator<<(ByteBuffer& data, QuestChoiceItem const& questChoiceItem)
{
- data.WriteBits(AsUnderlyingType(questChoiceItem.LootItemType), 2);
+ data << Bits<2>(questChoiceItem.LootItemType);
data << questChoiceItem.Item;
data << int32(questChoiceItem.Quantity);
@@ -288,7 +288,7 @@ ByteBuffer& operator<<(ByteBuffer& data, QuestChoiceItem const& questChoiceItem)
ByteBuffer& operator>>(ByteBuffer& data, QuestChoiceItem& questChoiceItem)
{
data.ResetBitPos();
- questChoiceItem.LootItemType = LootItemType(data.ReadBits(2));
+ data >> Bits<2>(questChoiceItem.LootItemType);
data >> questChoiceItem.Item;
data >> questChoiceItem.Quantity;
@@ -339,7 +339,7 @@ ByteBuffer& operator<<(ByteBuffer& data, QuestRewards const& questRewards)
for (QuestChoiceItem const& choiceItem : questRewards.ChoiceItems)
data << choiceItem;
- data.WriteBit(questRewards.IsBoostSpell);
+ data << Bits<1>(questRewards.IsBoostSpell);
data.FlushBits();
return data;
@@ -361,8 +361,8 @@ ByteBuffer& operator<<(ByteBuffer& data, QuestGiverOfferReward const& offer)
data << uint32(emote.Delay);
}
- data.WriteBit(offer.AutoLaunched);
- data.WriteBit(false); // Unused
+ data << Bits<1>(offer.AutoLaunched);
+ data << Bits<1>(false); // Unused
data.FlushBits();
data << offer.Rewards; // QuestRewards
@@ -381,12 +381,12 @@ WorldPacket const* QuestGiverOfferRewardMessage::Write()
_worldPacket << int32(QuestGiverCreatureID);
_worldPacket << uint32(ConditionalRewardText.size());
- _worldPacket.WriteBits(QuestTitle.size(), 9);
- _worldPacket.WriteBits(RewardText.size(), 12);
- _worldPacket.WriteBits(PortraitGiverText.size(), 10);
- _worldPacket.WriteBits(PortraitGiverName.size(), 8);
- _worldPacket.WriteBits(PortraitTurnInText.size(), 10);
- _worldPacket.WriteBits(PortraitTurnInName.size(), 8);
+ _worldPacket << BitsSize<9>(QuestTitle);
+ _worldPacket << BitsSize<12>(RewardText);
+ _worldPacket << BitsSize<10>(PortraitGiverText);
+ _worldPacket << BitsSize<8>(PortraitGiverName);
+ _worldPacket << BitsSize<10>(PortraitTurnInText);
+ _worldPacket << BitsSize<8>(PortraitTurnInName);
_worldPacket.FlushBits();
for (ConditionalQuestText const& conditionalQuestText : ConditionalRewardText)
@@ -477,18 +477,18 @@ WorldPacket const* QuestGiverQuestDetails::Write()
_worldPacket << uint8(obj.Type);
}
- _worldPacket.WriteBits(QuestTitle.size(), 9);
- _worldPacket.WriteBits(DescriptionText.size(), 12);
- _worldPacket.WriteBits(LogDescription.size(), 12);
- _worldPacket.WriteBits(PortraitGiverText.size(), 10);
- _worldPacket.WriteBits(PortraitGiverName.size(), 8);
- _worldPacket.WriteBits(PortraitTurnInText.size(), 10);
- _worldPacket.WriteBits(PortraitTurnInName.size(), 8);
- _worldPacket.WriteBit(AutoLaunched);
- _worldPacket.WriteBit(FromContentPush);
- _worldPacket.WriteBit(false); // unused in client
- _worldPacket.WriteBit(StartCheat);
- _worldPacket.WriteBit(DisplayPopup);
+ _worldPacket << BitsSize<9>(QuestTitle);
+ _worldPacket << BitsSize<12>(DescriptionText);
+ _worldPacket << BitsSize<12>(LogDescription);
+ _worldPacket << BitsSize<10>(PortraitGiverText);
+ _worldPacket << BitsSize<8>(PortraitGiverName);
+ _worldPacket << BitsSize<10>(PortraitTurnInText);
+ _worldPacket << BitsSize<8>(PortraitTurnInName);
+ _worldPacket << Bits<1>(AutoLaunched);
+ _worldPacket << Bits<1>(FromContentPush);
+ _worldPacket << Bits<1>(false); // unused in client
+ _worldPacket << Bits<1>(StartCheat);
+ _worldPacket << Bits<1>(DisplayPopup);
_worldPacket.FlushBits();
_worldPacket << Rewards; // QuestRewards
@@ -535,14 +535,14 @@ WorldPacket const* QuestGiverRequestItems::Write()
_worldPacket << int32(cur.Amount);
}
- _worldPacket.WriteBit(AutoLaunched);
+ _worldPacket << Bits<1>(AutoLaunched);
_worldPacket.FlushBits();
_worldPacket << int32(QuestGiverCreatureID);
_worldPacket << uint32(ConditionalCompletionText.size());
- _worldPacket.WriteBits(QuestTitle.size(), 9);
- _worldPacket.WriteBits(CompletionText.size(), 12);
+ _worldPacket << BitsSize<9>(QuestTitle);
+ _worldPacket << BitsSize<12>(CompletionText);
_worldPacket.FlushBits();
for (ConditionalQuestText const& conditionalQuestText : ConditionalCompletionText)
diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h
index ad8d8f957e2..a6c89c0cd69 100644
--- a/src/server/game/Server/Packets/QuestPackets.h
+++ b/src/server/game/Server/Packets/QuestPackets.h
@@ -280,7 +280,7 @@ namespace WorldPackets
int32 SkillLineID = 0;
int32 NumSkillUps = 0;
int32 TreasurePickerID = 0;
- std::array<QuestChoiceItem, QUEST_REWARD_CHOICES_COUNT> ChoiceItems;
+ std::array<QuestChoiceItem, QUEST_REWARD_CHOICES_COUNT> ChoiceItems = { };
std::array<int32, QUEST_REWARD_ITEM_COUNT> ItemID = { };
std::array<int32, QUEST_REWARD_ITEM_COUNT> ItemQty = { };
std::array<int32, QUEST_REWARD_REPUTATIONS_COUNT> FactionID = { };
@@ -302,13 +302,13 @@ namespace WorldPackets
struct QuestGiverOfferReward
{
ObjectGuid QuestGiverGUID;
- int32 QuestGiverCreatureID = 0;
- int32 QuestID = 0;
- bool AutoLaunched = false;
- int32 SuggestedPartyMembers = 0;
+ int32 QuestGiverCreatureID = 0;
+ int32 QuestID = 0;
+ bool AutoLaunched = false;
+ int32 SuggestedPartyMembers = 0;
QuestRewards Rewards;
std::vector<QuestDescEmote> Emotes;
- int32 QuestFlags[3] = { }; // Flags and FlagsEx
+ std::array<int32, 3> QuestFlags = { };
};
class QuestGiverOfferRewardMessage final : public ServerPacket
diff --git a/src/server/game/Server/Packets/ReputationPackets.cpp b/src/server/game/Server/Packets/ReputationPackets.cpp
index 6ba3c02f264..aff39c3bbde 100644
--- a/src/server/game/Server/Packets/ReputationPackets.cpp
+++ b/src/server/game/Server/Packets/ReputationPackets.cpp
@@ -16,6 +16,7 @@
*/
#include "ReputationPackets.h"
+#include "PacketUtilities.h"
WorldPacket const* WorldPackets::Reputation::InitializeFactions::Write()
{
diff --git a/src/server/game/Server/Packets/ScenePackets.cpp b/src/server/game/Server/Packets/ScenePackets.cpp
index e3d4489e8b4..98ead11342e 100644
--- a/src/server/game/Server/Packets/ScenePackets.cpp
+++ b/src/server/game/Server/Packets/ScenePackets.cpp
@@ -16,6 +16,7 @@
*/
#include "ScenePackets.h"
+#include "PacketUtilities.h"
WorldPacket const* WorldPackets::Scenes::PlayScene::Write()
{
@@ -24,8 +25,8 @@ WorldPacket const* WorldPackets::Scenes::PlayScene::Write()
_worldPacket << uint32(SceneInstanceID);
_worldPacket << int32(SceneScriptPackageID);
_worldPacket << TransportGUID;
- _worldPacket << Location.PositionXYZOStream();
- _worldPacket.WriteBit(Encrypted);
+ _worldPacket << Location;
+ _worldPacket << Bits<1>(Encrypted);
_worldPacket.FlushBits();
return &_worldPacket;
diff --git a/src/server/game/Server/Packets/ScenePackets.h b/src/server/game/Server/Packets/ScenePackets.h
index 99f217f5fbe..af33a9e68ab 100644
--- a/src/server/game/Server/Packets/ScenePackets.h
+++ b/src/server/game/Server/Packets/ScenePackets.h
@@ -18,8 +18,9 @@
#ifndef ScenePackets_h__
#define ScenePackets_h__
+#include "ObjectGuid.h"
#include "Packet.h"
-#include "Object.h"
+#include "Position.h"
namespace WorldPackets
{
@@ -37,7 +38,7 @@ namespace WorldPackets
uint32 SceneInstanceID = 0;
int32 SceneScriptPackageID = 0;
ObjectGuid TransportGUID;
- Position Location;
+ TaggedPosition<Position::XYZO> Location;
bool Encrypted = false;
};
diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp
index 8be021086f5..e4a06ff214f 100644
--- a/src/server/game/Server/Packets/SpellPackets.cpp
+++ b/src/server/game/Server/Packets/SpellPackets.cpp
@@ -94,13 +94,13 @@ ByteBuffer& operator<<(ByteBuffer& data, AuraDataInfo const& auraData)
data << uint16(auraData.CastLevel);
data << uint8(auraData.Applications);
data << int32(auraData.ContentTuningID);
- data.WriteBit(auraData.CastUnit.has_value());
- data.WriteBit(auraData.Duration.has_value());
- data.WriteBit(auraData.Remaining.has_value());
- data.WriteBit(auraData.TimeMod.has_value());
- data.WriteBits(auraData.Points.size(), 6);
- data.WriteBits(auraData.EstimatedPoints.size(), 6);
- data.WriteBit(auraData.ContentTuning.has_value());
+ data << OptionalInit(auraData.CastUnit);
+ data << OptionalInit(auraData.Duration);
+ data << OptionalInit(auraData.Remaining);
+ data << OptionalInit(auraData.TimeMod);
+ data << BitsSize<6>(auraData.Points);
+ data << BitsSize<6>(auraData.EstimatedPoints);
+ data << OptionalInit(auraData.ContentTuning);
if (auraData.ContentTuning)
data << *auraData.ContentTuning;
@@ -129,7 +129,7 @@ ByteBuffer& operator<<(ByteBuffer& data, AuraDataInfo const& auraData)
ByteBuffer& operator<<(ByteBuffer& data, AuraInfo const& aura)
{
data << aura.Slot;
- data.WriteBit(aura.AuraData.has_value());
+ data << OptionalInit(aura.AuraData);
data.FlushBits();
if (aura.AuraData)
@@ -141,7 +141,7 @@ ByteBuffer& operator<<(ByteBuffer& data, AuraInfo const& aura)
WorldPacket const* AuraUpdate::Write()
{
_worldPacket.WriteBit(UpdateAll);
- _worldPacket.WriteBits(Auras.size(), 9);
+ _worldPacket << BitsSize<9>(Auras);
for (AuraInfo const& aura : Auras)
_worldPacket << aura;
diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp
index b2f97c95063..3e0bee090bb 100644
--- a/src/server/game/Server/Packets/SystemPackets.cpp
+++ b/src/server/game/Server/Packets/SystemPackets.cpp
@@ -30,10 +30,10 @@ ByteBuffer& operator<<(ByteBuffer& data, SavedThrottleObjectState const& throttl
ByteBuffer& operator<<(ByteBuffer& data, EuropaTicketConfig const& europaTicketSystemStatus)
{
- data.WriteBit(europaTicketSystemStatus.TicketsEnabled);
- data.WriteBit(europaTicketSystemStatus.BugsEnabled);
- data.WriteBit(europaTicketSystemStatus.ComplaintsEnabled);
- data.WriteBit(europaTicketSystemStatus.SuggestionsEnabled);
+ data << Bits<1>(europaTicketSystemStatus.TicketsEnabled);
+ data << Bits<1>(europaTicketSystemStatus.BugsEnabled);
+ data << Bits<1>(europaTicketSystemStatus.ComplaintsEnabled);
+ data << Bits<1>(europaTicketSystemStatus.SuggestionsEnabled);
data << europaTicketSystemStatus.ThrottleState;
@@ -50,7 +50,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GameRuleValuePair const& gameRuleValue)
ByteBuffer& operator<<(ByteBuffer& data, DebugTimeEventInfo const& debugTimeEventInfo)
{
data << uint32(debugTimeEventInfo.TimeEvent);
- data.WriteBits(debugTimeEventInfo.Text.length(), 7);
+ data << BitsSize<7>(debugTimeEventInfo.Text);
data.FlushBits();
data.WriteString(debugTimeEventInfo.Text);
@@ -94,59 +94,59 @@ WorldPacket const* FeatureSystemStatus::Write()
for (GameRuleValuePair const& gameRuleValue : GameRuleValues)
_worldPacket << gameRuleValue;
- _worldPacket.WriteBit(VoiceEnabled);
- _worldPacket.WriteBit(EuropaTicketSystemStatus.has_value());
- _worldPacket.WriteBit(BpayStoreEnabled);
- _worldPacket.WriteBit(BpayStoreAvailable);
- _worldPacket.WriteBit(BpayStoreDisabledByParentalControls);
- _worldPacket.WriteBit(ItemRestorationButtonEnabled);
- _worldPacket.WriteBit(BrowserEnabled);
- _worldPacket.WriteBit(SessionAlert.has_value());
-
- _worldPacket.WriteBit(RAFSystem.Enabled);
- _worldPacket.WriteBit(RAFSystem.RecruitingEnabled);
- _worldPacket.WriteBit(CharUndeleteEnabled);
- _worldPacket.WriteBit(RestrictedAccount);
- _worldPacket.WriteBit(CommerceSystemEnabled);
- _worldPacket.WriteBit(TutorialsEnabled);
- _worldPacket.WriteBit(Unk67);
- _worldPacket.WriteBit(WillKickFromWorld);
-
- _worldPacket.WriteBit(KioskModeEnabled);
- _worldPacket.WriteBit(CompetitiveModeEnabled);
- _worldPacket.WriteBit(TokenBalanceEnabled);
- _worldPacket.WriteBit(WarModeFeatureEnabled);
- _worldPacket.WriteBit(ClubsEnabled);
- _worldPacket.WriteBit(ClubsBattleNetClubTypeAllowed);
- _worldPacket.WriteBit(ClubsCharacterClubTypeAllowed);
- _worldPacket.WriteBit(ClubsPresenceUpdateEnabled);
-
- _worldPacket.WriteBit(VoiceChatDisabledByParentalControl);
- _worldPacket.WriteBit(VoiceChatMutedByParentalControl);
- _worldPacket.WriteBit(QuestSessionEnabled);
- _worldPacket.WriteBit(IsMuted);
- _worldPacket.WriteBit(ClubFinderEnabled);
- _worldPacket.WriteBit(CommunityFinderEnabled);
- _worldPacket.WriteBit(Unknown901CheckoutRelated);
- _worldPacket.WriteBit(TextToSpeechFeatureEnabled);
-
- _worldPacket.WriteBit(ChatDisabledByDefault);
- _worldPacket.WriteBit(ChatDisabledByPlayer);
- _worldPacket.WriteBit(LFGListCustomRequiresAuthenticator);
- _worldPacket.WriteBit(AddonsDisabled);
- _worldPacket.WriteBit(WarGamesEnabled);
- _worldPacket.WriteBit(ContentTrackingEnabled);
- _worldPacket.WriteBit(IsSellAllJunkEnabled);
- _worldPacket.WriteBit(IsGroupFinderEnabled);
-
- _worldPacket.WriteBit(IsLFDEnabled);
- _worldPacket.WriteBit(IsLFREnabled);
- _worldPacket.WriteBit(IsPremadeGroupEnabled);
- _worldPacket.WriteBit(CanShowSetRoleButton);
- _worldPacket.WriteBit(false); // unused 10.2.7
- _worldPacket.WriteBit(false); // unused 10.2.7
-
- _worldPacket.WriteBits(Unknown1027.length(), 7);
+ _worldPacket << Bits<1>(VoiceEnabled);
+ _worldPacket << OptionalInit(EuropaTicketSystemStatus);
+ _worldPacket << Bits<1>(BpayStoreEnabled);
+ _worldPacket << Bits<1>(BpayStoreAvailable);
+ _worldPacket << Bits<1>(BpayStoreDisabledByParentalControls);
+ _worldPacket << Bits<1>(ItemRestorationButtonEnabled);
+ _worldPacket << Bits<1>(BrowserEnabled);
+ _worldPacket << OptionalInit(SessionAlert);
+
+ _worldPacket << Bits<1>(RAFSystem.Enabled);
+ _worldPacket << Bits<1>(RAFSystem.RecruitingEnabled);
+ _worldPacket << Bits<1>(CharUndeleteEnabled);
+ _worldPacket << Bits<1>(RestrictedAccount);
+ _worldPacket << Bits<1>(CommerceSystemEnabled);
+ _worldPacket << Bits<1>(TutorialsEnabled);
+ _worldPacket << Bits<1>(Unk67);
+ _worldPacket << Bits<1>(WillKickFromWorld);
+
+ _worldPacket << Bits<1>(KioskModeEnabled);
+ _worldPacket << Bits<1>(CompetitiveModeEnabled);
+ _worldPacket << Bits<1>(TokenBalanceEnabled);
+ _worldPacket << Bits<1>(WarModeFeatureEnabled);
+ _worldPacket << Bits<1>(ClubsEnabled);
+ _worldPacket << Bits<1>(ClubsBattleNetClubTypeAllowed);
+ _worldPacket << Bits<1>(ClubsCharacterClubTypeAllowed);
+ _worldPacket << Bits<1>(ClubsPresenceUpdateEnabled);
+
+ _worldPacket << Bits<1>(VoiceChatDisabledByParentalControl);
+ _worldPacket << Bits<1>(VoiceChatMutedByParentalControl);
+ _worldPacket << Bits<1>(QuestSessionEnabled);
+ _worldPacket << Bits<1>(IsMuted);
+ _worldPacket << Bits<1>(ClubFinderEnabled);
+ _worldPacket << Bits<1>(CommunityFinderEnabled);
+ _worldPacket << Bits<1>(Unknown901CheckoutRelated);
+ _worldPacket << Bits<1>(TextToSpeechFeatureEnabled);
+
+ _worldPacket << Bits<1>(ChatDisabledByDefault);
+ _worldPacket << Bits<1>(ChatDisabledByPlayer);
+ _worldPacket << Bits<1>(LFGListCustomRequiresAuthenticator);
+ _worldPacket << Bits<1>(AddonsDisabled);
+ _worldPacket << Bits<1>(WarGamesEnabled);
+ _worldPacket << Bits<1>(ContentTrackingEnabled);
+ _worldPacket << Bits<1>(IsSellAllJunkEnabled);
+ _worldPacket << Bits<1>(IsGroupFinderEnabled);
+
+ _worldPacket << Bits<1>(IsLFDEnabled);
+ _worldPacket << Bits<1>(IsLFREnabled);
+ _worldPacket << Bits<1>(IsPremadeGroupEnabled);
+ _worldPacket << Bits<1>(CanShowSetRoleButton);
+ _worldPacket << Bits<1>(false); // unused 10.2.7
+ _worldPacket << Bits<1>(false); // unused 10.2.7
+
+ _worldPacket << BitsSize<7>(Unknown1027);
_worldPacket.FlushBits();
@@ -186,7 +186,7 @@ WorldPacket const* FeatureSystemStatus::Write()
_worldPacket.WriteString(Unknown1027);
{
- _worldPacket.WriteBit(Squelch.IsSquelched);
+ _worldPacket << Bits<1>(Squelch.IsSquelched);
_worldPacket << Squelch.BnetAccountGuid;
_worldPacket << Squelch.GuildGuid;
}
@@ -199,38 +199,38 @@ WorldPacket const* FeatureSystemStatus::Write()
WorldPacket const* FeatureSystemStatusGlueScreen::Write()
{
- _worldPacket.WriteBit(BpayStoreEnabled);
- _worldPacket.WriteBit(BpayStoreAvailable);
- _worldPacket.WriteBit(BpayStoreDisabledByParentalControls);
- _worldPacket.WriteBit(CharUndeleteEnabled);
- _worldPacket.WriteBit(CommerceSystemEnabled);
- _worldPacket.WriteBit(Unk14);
- _worldPacket.WriteBit(WillKickFromWorld);
- _worldPacket.WriteBit(IsExpansionPreorderInStore);
-
- _worldPacket.WriteBit(KioskModeEnabled);
- _worldPacket.WriteBit(CompetitiveModeEnabled);
- _worldPacket.WriteBit(IsBoostEnabled);
- _worldPacket.WriteBit(TrialBoostEnabled);
- _worldPacket.WriteBit(TokenBalanceEnabled);
- _worldPacket.WriteBit(LiveRegionCharacterListEnabled);
- _worldPacket.WriteBit(LiveRegionCharacterCopyEnabled);
- _worldPacket.WriteBit(LiveRegionAccountCopyEnabled);
-
- _worldPacket.WriteBit(LiveRegionKeyBindingsCopyEnabled);
- _worldPacket.WriteBit(Unknown901CheckoutRelated);
- _worldPacket.WriteBit(false); // unused, 10.0.2
- _worldPacket.WriteBit(EuropaTicketSystemStatus.has_value());
- _worldPacket.WriteBit(IsNameReservationEnabled);
- _worldPacket.WriteBit(LaunchETA.has_value());
- _worldPacket.WriteBit(TimerunningEnabled);
- _worldPacket.WriteBit(AddonsDisabled);
-
- _worldPacket.WriteBit(Unused1000);
- _worldPacket.WriteBit(AccountSaveDataExportEnabled);
- _worldPacket.WriteBit(AccountLockedByExport);
-
- _worldPacket.WriteBits(RealmHiddenAlert.length() + 1, 11);
+ _worldPacket << Bits<1>(BpayStoreEnabled);
+ _worldPacket << Bits<1>(BpayStoreAvailable);
+ _worldPacket << Bits<1>(BpayStoreDisabledByParentalControls);
+ _worldPacket << Bits<1>(CharUndeleteEnabled);
+ _worldPacket << Bits<1>(CommerceSystemEnabled);
+ _worldPacket << Bits<1>(Unk14);
+ _worldPacket << Bits<1>(WillKickFromWorld);
+ _worldPacket << Bits<1>(IsExpansionPreorderInStore);
+
+ _worldPacket << Bits<1>(KioskModeEnabled);
+ _worldPacket << Bits<1>(CompetitiveModeEnabled);
+ _worldPacket << Bits<1>(IsBoostEnabled);
+ _worldPacket << Bits<1>(TrialBoostEnabled);
+ _worldPacket << Bits<1>(TokenBalanceEnabled);
+ _worldPacket << Bits<1>(LiveRegionCharacterListEnabled);
+ _worldPacket << Bits<1>(LiveRegionCharacterCopyEnabled);
+ _worldPacket << Bits<1>(LiveRegionAccountCopyEnabled);
+
+ _worldPacket << Bits<1>(LiveRegionKeyBindingsCopyEnabled);
+ _worldPacket << Bits<1>(Unknown901CheckoutRelated);
+ _worldPacket << Bits<1>(false); // unused, 10.0.2
+ _worldPacket << OptionalInit(EuropaTicketSystemStatus);
+ _worldPacket << Bits<1>(IsNameReservationEnabled);
+ _worldPacket << OptionalInit(LaunchETA);
+ _worldPacket << Bits<1>(TimerunningEnabled);
+ _worldPacket << Bits<1>(AddonsDisabled);
+
+ _worldPacket << Bits<1>(Unused1000);
+ _worldPacket << Bits<1>(AccountSaveDataExportEnabled);
+ _worldPacket << Bits<1>(AccountLockedByExport);
+
+ _worldPacket << Bits<11>(RealmHiddenAlert.length() + 1);
_worldPacket.FlushBits();
@@ -278,9 +278,9 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write()
WorldPacket const* SetTimeZoneInformation::Write()
{
- _worldPacket.WriteBits(ServerTimeTZ.length(), 7);
- _worldPacket.WriteBits(GameTimeTZ.length(), 7);
- _worldPacket.WriteBits(ServerRegionalTZ.length(), 7);
+ _worldPacket << BitsSize<7>(ServerTimeTZ);
+ _worldPacket << BitsSize<7>(GameTimeTZ);
+ _worldPacket << BitsSize<7>(ServerRegionalTZ);
_worldPacket.FlushBits();
_worldPacket.WriteString(ServerTimeTZ);
diff --git a/src/server/game/Server/Packets/TradePackets.h b/src/server/game/Server/Packets/TradePackets.h
index 44fc6497b87..db4caa1135d 100644
--- a/src/server/game/Server/Packets/TradePackets.h
+++ b/src/server/game/Server/Packets/TradePackets.h
@@ -152,7 +152,6 @@ namespace WorldPackets
struct UnwrappedTradeItem
{
- WorldPackets::Item::ItemInstance Item;
int32 EnchantID = 0;
int32 OnUseEnchantmentID = 0;
ObjectGuid Creator;
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 2fe22b2cc7e..a0752dac0ed 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -5191,7 +5191,7 @@ SpellLogEffect& Spell::GetExecuteLogEffect(SpellEffectName effect)
return _executeLogEffects.back();
}
-void Spell::ExecuteLogEffectTakeTargetPower(SpellEffectName effect, Unit* target, uint32 powerType, uint32 points, float amplitude)
+void Spell::ExecuteLogEffectTakeTargetPower(SpellEffectName effect, Unit* target, Powers powerType, uint32 points, float amplitude)
{
SpellLogEffectPowerDrainParams spellLogEffectPowerDrainParams;
diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h
index 4364bcbdbf4..8a2253dd060 100644
--- a/src/server/game/Spells/Spell.h
+++ b/src/server/game/Spells/Spell.h
@@ -176,7 +176,7 @@ struct SpellLogEffectPowerDrainParams
{
ObjectGuid Victim;
uint32 Points = 0;
- uint32 PowerType = 0;
+ Powers PowerType = POWER_MANA;
float Amplitude = 0;
};
@@ -549,7 +549,7 @@ class TC_GAME_API Spell
return *opt;
}
- void ExecuteLogEffectTakeTargetPower(SpellEffectName effect, Unit* target, uint32 powerType, uint32 points, float amplitude);
+ void ExecuteLogEffectTakeTargetPower(SpellEffectName effect, Unit* target, Powers powerType, uint32 points, float amplitude);
void ExecuteLogEffectExtraAttacks(SpellEffectName effect, Unit* victim, uint32 numAttacks);
void ExecuteLogEffectDurabilityDamage(SpellEffectName effect, Unit* victim, int32 itemId, int32 amount);
void ExecuteLogEffectOpenLock(SpellEffectName effect, Object* obj);