diff options
26 files changed, 235 insertions, 244 deletions
diff --git a/src/server/game/Server/Packets/AuctionHousePackets.cpp b/src/server/game/Server/Packets/AuctionHousePackets.cpp index bbb4be0aea5..1b181adffcb 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 e49258e4078..fbc6e256408 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, " @@ -247,16 +238,16 @@ 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.WriteBits(0, 2); // unk - 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<2>(0); // unk + 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,10 +263,10 @@ 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 << Bits<1>(raceUnlock.HasExpansion); + data << Bits<1>(raceUnlock.HasAchievement); + data << Bits<1>(raceUnlock.HasHeritageArmor); + data << Bits<1>(raceUnlock.IsLocked); data.FlushBits(); return data; @@ -301,13 +292,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 30d6d3c981d..05985bd981c 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -126,7 +126,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 949d0b00865..9e848565193 100644 --- a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp +++ b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp @@ -54,7 +54,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); } } @@ -130,10 +130,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/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 85ce54cd5e3..e1667debfec 100644 --- a/src/server/game/Server/Packets/ItemPackets.cpp +++ b/src/server/game/Server/Packets/ItemPackets.cpp @@ -261,11 +261,11 @@ WorldPacket const* WorldPackets::Item::ItemPushResult::Write() _worldPacket << int32(BattlePetLevel); _worldPacket << ItemGUID; - _worldPacket.WriteBit(Pushed); - _worldPacket.WriteBit(Created); - _worldPacket.WriteBits(DisplayText, 3); - _worldPacket.WriteBit(IsBonusRoll); - _worldPacket.WriteBit(IsEncounterLoot); + _worldPacket << Bits<1>(Pushed); + _worldPacket << Bits<1>(Created); + _worldPacket << Bits<3>(DisplayText); + _worldPacket << Bits<1>(IsBonusRoll); + _worldPacket << Bits<1>(IsEncounterLoot); _worldPacket.FlushBits(); _worldPacket << Item; diff --git a/src/server/game/Server/Packets/ItemPacketsCommon.cpp b/src/server/game/Server/Packets/ItemPacketsCommon.cpp index 8b27d58878a..63843747a63 100644 --- a/src/server/game/Server/Packets/ItemPacketsCommon.cpp +++ b/src/server/game/Server/Packets/ItemPacketsCommon.cpp @@ -144,17 +144,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; } @@ -170,14 +169,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) @@ -188,7 +187,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 06c22373ca2..ca1213cadd2 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; @@ -78,9 +77,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); @@ -110,8 +109,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 4e431fb45bd..8b398f72f87 100644 --- a/src/server/game/Server/Packets/NPCPackets.h +++ b/src/server/game/Server/Packets/NPCPackets.h @@ -94,15 +94,15 @@ namespace WorldPackets struct ClientGossipText { - int32 QuestID = 0; + int32 QuestID = 0; int32 ContentTuningID = 0; - int32 QuestType = 0; - int32 QuestLevel = 0; + int32 QuestType = 0; + int32 QuestLevel = 0; int32 QuestMaxScalingLevel = 0; - bool Repeatable = false; - bool Important = false; + 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 377072f69c0..fd124ea5095 100644 --- a/src/server/game/Server/Packets/QueryPackets.cpp +++ b/src/server/game/Server/Packets/QueryPackets.cpp @@ -386,7 +386,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 8418f13c0f3..c495b332b00 100644 --- a/src/server/game/Server/Packets/QuestPackets.cpp +++ b/src/server/game/Server/Packets/QuestPackets.cpp @@ -191,16 +191,16 @@ WorldPacket const* QueryQuestInfoResponse::Write() _worldPacket << int32(Info.QuestSessionBonus); _worldPacket << int32(Info.QuestGiverCreatureID); - _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) @@ -218,7 +218,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); @@ -269,7 +269,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); @@ -279,7 +279,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; @@ -330,7 +330,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; @@ -352,8 +352,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 @@ -372,12 +372,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) @@ -468,17 +468,17 @@ 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(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>(false); // unused in client + _worldPacket << Bits<1>(StartCheat); + _worldPacket << Bits<1>(DisplayPopup); _worldPacket.FlushBits(); _worldPacket << Rewards; // QuestRewards @@ -525,14 +525,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 c001ff11240..a7cc3857d7c 100644 --- a/src/server/game/Server/Packets/QuestPackets.h +++ b/src/server/game/Server/Packets/QuestPackets.h @@ -281,7 +281,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 = { }; @@ -303,13 +303,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 8896c2071c0..4d907ee4b85 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 8622a80f949..f474b11c2b7 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 c851d61f29f..ce63a086e38 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 95f54c440b4..7199f892d46 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 6e0d93cd613..c336555ea28 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,62 +94,62 @@ 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(IsCommunityFinderEnabled); - _worldPacket.WriteBit(Unknown901CheckoutRelated); - _worldPacket.WriteBit(TextToSpeechFeatureEnabled); - - _worldPacket.WriteBit(ChatDisabledByDefault); - _worldPacket.WriteBit(ChatDisabledByPlayer); - _worldPacket.WriteBit(LFGListCustomRequiresAuthenticator); - _worldPacket.WriteBit(AddonsDisabled); - _worldPacket.WriteBit(WarGamesEnabled); - _worldPacket.WriteBit(Unk440_1); // unk, unused 4.4.0 - _worldPacket.WriteBit(false); // unk, unused 4.4.0 - _worldPacket.WriteBit(ContentTrackingEnabled); - - _worldPacket.WriteBit(IsSellAllJunkEnabled); - _worldPacket.WriteBit(IsGroupFinderEnabled); - _worldPacket.WriteBit(IsLFDEnabled); - _worldPacket.WriteBit(IsLFREnabled); - _worldPacket.WriteBit(IsPremadeGroupEnabled); - _worldPacket.WriteBit(CanShowSetRoleButton); - _worldPacket.WriteBit(PetHappinessEnabled); - _worldPacket.WriteBit(CanEditGuildEvent); + _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>(IsCommunityFinderEnabled); + _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>(Unk440_1); // unk, unused 4.4.0 + _worldPacket << Bits<1>(false); // unk, unused 4.4.0 + _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>(PetHappinessEnabled); + _worldPacket << Bits<1>(CanEditGuildEvent); _worldPacket.WriteBit(IsGuildTradeSkillsEnabled); - _worldPacket.WriteBits(Field_16F.size(), 7); + _worldPacket << BitsSize<7>(Field_16F); _worldPacket.FlushBits(); @@ -208,43 +208,43 @@ 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(false); // unused, 4.4.0 - _worldPacket.WriteBit(false); // unused, 4.4.0 - - _worldPacket.WriteBit(false); // unused, 4.4.0 - _worldPacket.WriteBit(IsSoMNotificationEnabled); - _worldPacket.WriteBit(AddonsDisabled); - _worldPacket.WriteBit(Unused1000); - _worldPacket.WriteBit(AccountSaveDataExportEnabled); - _worldPacket.WriteBit(AccountLockedByExport); - _worldPacket.WriteBit(RealmHiddenAlert.has_value()); + _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>(false); // unused, 4.4.0 + _worldPacket << Bits<1>(false); // unused, 4.4.0 + + _worldPacket << Bits<1>(false); // unused, 4.4.0 + _worldPacket << Bits<1>(IsSoMNotificationEnabled); + _worldPacket << Bits<1>(AddonsDisabled); + _worldPacket << Bits<1>(Unused1000); + _worldPacket << Bits<1>(AccountSaveDataExportEnabled); + _worldPacket << Bits<1>(AccountLockedByExport); + _worldPacket << OptionalInit(RealmHiddenAlert); if (RealmHiddenAlert) - _worldPacket.WriteBits(RealmHiddenAlert->length() + 1, 11); + _worldPacket << Bits<11>(RealmHiddenAlert->length() + 1); _worldPacket.FlushBits(); @@ -290,9 +290,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 8cfb0dec3fa..1ce7b3ce3e0 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -5112,7 +5112,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 c9ca742f96a..e6b03408192 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -173,7 +173,7 @@ struct SpellLogEffectPowerDrainParams { ObjectGuid Victim; uint32 Points = 0; - uint32 PowerType = 0; + Powers PowerType = POWER_MANA; float Amplitude = 0; }; @@ -539,7 +539,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); |