diff options
-rw-r--r-- | src/server/game/Server/Packets/LFGPackets.cpp | 85 | ||||
-rw-r--r-- | src/server/game/Server/Packets/PacketUtilities.h | 129 | ||||
-rw-r--r-- | src/server/game/Server/Packets/PetitionPackets.cpp | 56 | ||||
-rw-r--r-- | src/server/game/Server/Packets/PetitionPackets.h | 2 | ||||
-rw-r--r-- | src/server/game/Server/Packets/TicketPackets.cpp | 10 |
5 files changed, 208 insertions, 74 deletions
diff --git a/src/server/game/Server/Packets/LFGPackets.cpp b/src/server/game/Server/Packets/LFGPackets.cpp index 3dc36625568..adb44e0cc64 100644 --- a/src/server/game/Server/Packets/LFGPackets.cpp +++ b/src/server/game/Server/Packets/LFGPackets.cpp @@ -17,7 +17,9 @@ #include "LFGPackets.h" -void WorldPackets::LFG::DFJoin::Read() +namespace WorldPackets::LFG +{ +void DFJoin::Read() { QueueAsGroup = _worldPacket.ReadBit(); bool hasPartyIndex = _worldPacket.ReadBit(); @@ -30,12 +32,12 @@ void WorldPackets::LFG::DFJoin::Read() _worldPacket >> slot; } -void WorldPackets::LFG::DFLeave::Read() +void DFLeave::Read() { _worldPacket >> Ticket; } -void WorldPackets::LFG::DFProposalResponse::Read() +void DFProposalResponse::Read() { _worldPacket >> Ticket; _worldPacket >> InstanceID; @@ -43,7 +45,7 @@ void WorldPackets::LFG::DFProposalResponse::Read() Accepted = _worldPacket.ReadBit(); } -void WorldPackets::LFG::DFSetRoles::Read() +void DFSetRoles::Read() { bool hasPartyIndex = _worldPacket.ReadBit(); _worldPacket >> RolesDesired; @@ -51,24 +53,24 @@ void WorldPackets::LFG::DFSetRoles::Read() _worldPacket >> PartyIndex.emplace(); } -void WorldPackets::LFG::DFBootPlayerVote::Read() +void DFBootPlayerVote::Read() { Vote = _worldPacket.ReadBit(); } -void WorldPackets::LFG::DFTeleport::Read() +void DFTeleport::Read() { TeleportOut = _worldPacket.ReadBit(); } -void WorldPackets::LFG::DFGetSystemInfo::Read() +void DFGetSystemInfo::Read() { Player = _worldPacket.ReadBit(); if (_worldPacket.ReadBit()) _worldPacket >> PartyIndex.emplace(); } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGBlackListSlot const& lfgBlackListSlot) +ByteBuffer& operator<<(ByteBuffer& data, LFGBlackListSlot const& lfgBlackListSlot) { data << uint32(lfgBlackListSlot.Slot); data << uint32(lfgBlackListSlot.Reason); @@ -79,20 +81,20 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGBlackListSlot con return data; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGBlackList const& blackList) +ByteBuffer& operator<<(ByteBuffer& data, LFGBlackList const& blackList) { data.WriteBit(blackList.PlayerGuid.has_value()); data << uint32(blackList.Slot.size()); if (blackList.PlayerGuid) data << *blackList.PlayerGuid; - for (WorldPackets::LFG::LFGBlackListSlot const& slot : blackList.Slot) + for (LFGBlackListSlot const& slot : blackList.Slot) data << slot; return data; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestRewardItem const& playerQuestRewardItem) +ByteBuffer& operator<<(ByteBuffer& data, LfgPlayerQuestRewardItem const& playerQuestRewardItem) { data << int32(playerQuestRewardItem.ItemID); data << int32(playerQuestRewardItem.Quantity); @@ -100,7 +102,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward return data; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& playerQuestRewardCurrency) +ByteBuffer& operator<<(ByteBuffer& data, LfgPlayerQuestRewardCurrency const& playerQuestRewardCurrency) { data << int32(playerQuestRewardCurrency.CurrencyID); data << int32(playerQuestRewardCurrency.Quantity); @@ -108,7 +110,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward return data; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward const& playerQuestReward) +ByteBuffer& operator<<(ByteBuffer& data, LfgPlayerQuestReward const& playerQuestReward) { data << uint8(playerQuestReward.Mask); data << int32(playerQuestReward.RewardMoney); @@ -117,13 +119,13 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward data << uint32(playerQuestReward.Currency.size()); data << uint32(playerQuestReward.BonusCurrency.size()); - for (WorldPackets::LFG::LfgPlayerQuestRewardItem const& item : playerQuestReward.Item) + for (LfgPlayerQuestRewardItem const& item : playerQuestReward.Item) data << item; - for (WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& currency : playerQuestReward.Currency) + for (LfgPlayerQuestRewardCurrency const& currency : playerQuestReward.Currency) data << currency; - for (WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& bonusCurrency : playerQuestReward.BonusCurrency) + for (LfgPlayerQuestRewardCurrency const& bonusCurrency : playerQuestReward.BonusCurrency) data << bonusCurrency; data.WriteBit(playerQuestReward.RewardSpellID.has_value()); @@ -147,7 +149,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward return data; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerDungeonInfo const& playerDungeonInfo) +ByteBuffer& operator<<(ByteBuffer& data, LfgPlayerDungeonInfo const& playerDungeonInfo) { data << uint32(playerDungeonInfo.Slot); data << int32(playerDungeonInfo.CompletionQuantity); @@ -170,13 +172,13 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerDungeonInfo data.FlushBits(); data << playerDungeonInfo.Rewards; - for (WorldPackets::LFG::LfgPlayerQuestReward const& shortageReward : playerDungeonInfo.ShortageReward) + for (LfgPlayerQuestReward const& shortageReward : playerDungeonInfo.ShortageReward) data << shortageReward; return data; } -WorldPacket const* WorldPackets::LFG::LfgPlayerInfo::Write() +WorldPacket const* LfgPlayerInfo::Write() { _worldPacket << uint32(Dungeon.size()); _worldPacket << BlackList; @@ -186,16 +188,16 @@ WorldPacket const* WorldPackets::LFG::LfgPlayerInfo::Write() return &_worldPacket; } -WorldPacket const* WorldPackets::LFG::LfgPartyInfo::Write() +WorldPacket const* LfgPartyInfo::Write() { _worldPacket << uint32(Player.size()); - for (WorldPackets::LFG::LFGBlackList const& player : Player) + for (LFGBlackList const& player : Player) _worldPacket << player; return &_worldPacket; } -WorldPacket const* WorldPackets::LFG::LFGUpdateStatus::Write() +WorldPacket const* LFGUpdateStatus::Write() { _worldPacket << Ticket; _worldPacket << uint8(SubType); @@ -222,7 +224,7 @@ WorldPacket const* WorldPackets::LFG::LFGUpdateStatus::Write() return &_worldPacket; } -WorldPacket const* WorldPackets::LFG::RoleChosen::Write() +WorldPacket const* RoleChosen::Write() { _worldPacket << Player; _worldPacket << uint8(RoleMask); @@ -232,7 +234,7 @@ WorldPacket const* WorldPackets::LFG::RoleChosen::Write() return &_worldPacket; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGRoleCheckUpdateMember const& lfgRoleCheckUpdateMember) +ByteBuffer& operator<<(ByteBuffer& data, LFGRoleCheckUpdateMember const& lfgRoleCheckUpdateMember) { data << lfgRoleCheckUpdateMember.Guid; data << uint8(lfgRoleCheckUpdateMember.RolesDesired); @@ -243,7 +245,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGRoleCheckUpdateMe return data; } -WorldPacket const* WorldPackets::LFG::LFGRoleCheckUpdate::Write() +WorldPacket const* LFGRoleCheckUpdate::Write() { _worldPacket << uint8(PartyIndex); _worldPacket << uint8(RoleCheckStatus); @@ -268,7 +270,7 @@ WorldPacket const* WorldPackets::LFG::LFGRoleCheckUpdate::Write() return &_worldPacket; } -WorldPacket const* WorldPackets::LFG::LFGJoinResult::Write() +WorldPacket const* LFGJoinResult::Write() { _worldPacket << Ticket; _worldPacket << uint8(Result); @@ -289,7 +291,7 @@ WorldPacket const* WorldPackets::LFG::LFGJoinResult::Write() return &_worldPacket; } -WorldPacket const* WorldPackets::LFG::LFGQueueStatus::Write() +WorldPacket const* LFGQueueStatus::Write() { _worldPacket << Ticket; _worldPacket << uint32(Slot); @@ -306,7 +308,7 @@ WorldPacket const* WorldPackets::LFG::LFGQueueStatus::Write() return &_worldPacket; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGPlayerRewards const& lfgPlayerRewards) +ByteBuffer& operator<<(ByteBuffer& data, LFGPlayerRewards const& lfgPlayerRewards) { data.WriteBit(lfgPlayerRewards.RewardItem.has_value()); data.WriteBit(lfgPlayerRewards.RewardCurrency.has_value()); @@ -321,7 +323,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGPlayerRewards con return data; } -WorldPacket const* WorldPackets::LFG::LFGPlayerReward::Write() +WorldPacket const* LFGPlayerReward::Write() { _worldPacket << uint32(QueuedSlot); _worldPacket << uint32(ActualSlot); @@ -335,31 +337,31 @@ WorldPacket const* WorldPackets::LFG::LFGPlayerReward::Write() return &_worldPacket; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgBootInfo const& lfgBootInfo) +ByteBuffer& operator<<(ByteBuffer& data, LfgBootInfo const& lfgBootInfo) { - data.WriteBit(lfgBootInfo.VoteInProgress); - data.WriteBit(lfgBootInfo.VotePassed); - data.WriteBit(lfgBootInfo.MyVoteCompleted); - data.WriteBit(lfgBootInfo.MyVote); - data.WriteBits(lfgBootInfo.Reason.length(), 8); + data << Bits<1>(lfgBootInfo.VoteInProgress); + data << Bits<1>(lfgBootInfo.VotePassed); + data << Bits<1>(lfgBootInfo.MyVoteCompleted); + data << Bits<1>(lfgBootInfo.MyVote); + data << SizedString::BitsSize<8>(lfgBootInfo.Reason); data << lfgBootInfo.Target; data << uint32(lfgBootInfo.TotalVotes); data << uint32(lfgBootInfo.BootVotes); data << int32(lfgBootInfo.TimeLeft); data << uint32(lfgBootInfo.VotesNeeded); - data.WriteString(lfgBootInfo.Reason); + data << SizedString::Data(lfgBootInfo.Reason); return data; } -WorldPacket const* WorldPackets::LFG::LfgBootPlayer::Write() +WorldPacket const* LfgBootPlayer::Write() { _worldPacket << Info; return &_worldPacket; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGProposalUpdatePlayer const& lfgProposalUpdatePlayer) +ByteBuffer& operator<<(ByteBuffer& data, LFGProposalUpdatePlayer const& lfgProposalUpdatePlayer) { data << uint8(lfgProposalUpdatePlayer.Roles); data.WriteBit(lfgProposalUpdatePlayer.Me); @@ -372,7 +374,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGProposalUpdatePla return data; } -WorldPacket const* WorldPackets::LFG::LFGProposalUpdate::Write() +WorldPacket const* LFGProposalUpdate::Write() { _worldPacket << Ticket; _worldPacket << uint64(InstanceID); @@ -394,17 +396,18 @@ WorldPacket const* WorldPackets::LFG::LFGProposalUpdate::Write() return &_worldPacket; } -WorldPacket const* WorldPackets::LFG::LFGOfferContinue::Write() +WorldPacket const* LFGOfferContinue::Write() { _worldPacket << uint32(Slot); return &_worldPacket; } -WorldPacket const* WorldPackets::LFG::LFGTeleportDenied::Write() +WorldPacket const* LFGTeleportDenied::Write() { _worldPacket.WriteBits(Reason, 4); _worldPacket.FlushBits(); return &_worldPacket; } +} diff --git a/src/server/game/Server/Packets/PacketUtilities.h b/src/server/game/Server/Packets/PacketUtilities.h index ae28e15606e..234804fc060 100644 --- a/src/server/game/Server/Packets/PacketUtilities.h +++ b/src/server/game/Server/Packets/PacketUtilities.h @@ -388,6 +388,35 @@ namespace WorldPackets template<typename T> inline OptionalInitReaderWriter<T> OptionalInit(Optional<T>& value) { return { value }; } + template<typename T> + struct PtrInitWriter + { + std::unique_ptr<T> const& Ptr; + + friend inline ByteBuffer& operator<<(ByteBuffer& data, PtrInitWriter const& opt) + { + data.WriteBit(opt.Ptr != nullptr); + return data; + } + }; + + template<typename T> + struct PtrInitReaderWriter : PtrInitWriter<T> + { + friend inline ByteBuffer& operator>>(ByteBuffer& data, PtrInitReaderWriter const& opt) + { + if (data.ReadBit()) + const_cast<std::unique_ptr<T>&>(opt.Ptr) = std::make_unique<T>(); + return data; + } + }; + + template<typename T> + inline PtrInitWriter<T> OptionalInit(std::unique_ptr<T> const& value) { return { value }; } + + template<typename T> + inline PtrInitReaderWriter<T> OptionalInit(std::unique_ptr<T>& value) { return { value }; } + template<uint32 BitCount, typename T> struct BitsWriter { @@ -443,6 +472,106 @@ namespace WorldPackets template<uint32 BitCount, typename Container> inline BitsSizeReaderWriter<BitCount, Container> BitsSize(Container& value) { return { value }; } + + namespace SizedString + { + template<uint32 BitCount, typename Container> + inline BitsSizeWriter<BitCount, Container> BitsSize(Container const& value) { return { value }; } + + template<uint32 BitCount, typename Container> + inline BitsSizeReaderWriter<BitCount, Container> BitsSize(Container& value) { return { value }; } + + template<typename Container> + struct SizedStringWriter + { + Container const& Value; + + friend inline ByteBuffer& operator<<(ByteBuffer& data, SizedStringWriter const& string) + { + data.WriteString(string.Value); + return data; + } + }; + + template<typename Container> + struct SizedStringReaderWriter : SizedStringWriter<Container> + { + friend inline ByteBuffer& operator>>(ByteBuffer& data, SizedStringReaderWriter const& string) + { + const_cast<Container&>(string.Value) = data.ReadString(string.Value.length()); + return data; + } + }; + + template<typename Container> + inline SizedStringWriter<Container> Data(Container const& value) { return { value }; } + + template<typename Container> + inline SizedStringReaderWriter<Container> Data(Container& value) { return { value }; } + } + + // SizedCString (sends size + string + null terminator but only if not empty) + namespace SizedCString + { + template<uint32 BitCount, typename Container> + struct SizeWriter + { + Container const& Value; + + friend inline ByteBuffer& operator<<(ByteBuffer& data, SizeWriter const& bits) + { + data.WriteBits(static_cast<uint32>(bits.Value.length() + 1), BitCount); + return data; + } + }; + + template<uint32 BitCount, typename Container> + struct SizeReaderWriter : SizeWriter<BitCount, Container> + { + friend inline ByteBuffer& operator>>(ByteBuffer& data, SizeReaderWriter const& bits) + { + if (uint32 bytesIncludingNullTerminator = data.ReadBits(BitCount); bytesIncludingNullTerminator > 1) + const_cast<Container&>(bits.Value).resize(bytesIncludingNullTerminator - 1); + return data; + } + }; + + template<uint32 BitCount, typename Container> + inline SizeWriter<BitCount, Container> BitsSize(Container const& value) { return { value }; } + + template<uint32 BitCount, typename Container> + inline SizeReaderWriter<BitCount, Container> BitsSize(Container& value) { return { value }; } + + template<typename Container> + struct DataWriter + { + Container const& Value; + + friend inline ByteBuffer& operator<<(ByteBuffer& data, DataWriter const& string) + { + if (!string.Value.empty()) + data << string.Value; + return data; + } + }; + + template<typename Container> + struct DataReaderWriter : DataWriter<Container> + { + friend inline ByteBuffer& operator>>(ByteBuffer& data, DataReaderWriter const& string) + { + const_cast<Container&>(string.Value) = data.ReadString(string.Value.length()); + data.read_skip<char>(); // null terminator + return data; + } + }; + + template<typename Container> + inline DataWriter<Container> Data(Container const& value) { return { value }; } + + template<typename Container> + inline DataReaderWriter<Container> Data(Container& value) { return { value }; } + }; } #endif // PacketUtilities_h__ diff --git a/src/server/game/Server/Packets/PetitionPackets.cpp b/src/server/game/Server/Packets/PetitionPackets.cpp index e1796af85e2..680813dab69 100644 --- a/src/server/game/Server/Packets/PetitionPackets.cpp +++ b/src/server/game/Server/Packets/PetitionPackets.cpp @@ -16,14 +16,17 @@ */ #include "PetitionPackets.h" +#include "PacketUtilities.h" -void WorldPackets::Petition::QueryPetition::Read() +namespace WorldPackets::Petition +{ +void QueryPetition::Read() { _worldPacket >> PetitionID; _worldPacket >> ItemGUID; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Petition::PetitionInfo const& petitionInfo) +ByteBuffer& operator<<(ByteBuffer& data, PetitionInfo const& petitionInfo) { data << int32(petitionInfo.PetitionID); data << petitionInfo.Petitioner; @@ -41,24 +44,24 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Petition::PetitionInfo co data << int32(petitionInfo.StaticType); data << uint32(petitionInfo.Muid); - data.WriteBits(petitionInfo.Title.length(), 7); - data.WriteBits(petitionInfo.BodyText.length(), 12); + data << SizedString::BitsSize<7>(petitionInfo.Title); + data << SizedString::BitsSize<12>(petitionInfo.BodyText); - for (std::size_t i = 0; i < petitionInfo.Choicetext.size(); ++i) - data.WriteBits(petitionInfo.Choicetext[i].length(), 6); + for (std::string const& choiceText : petitionInfo.Choicetext) + data << SizedString::BitsSize<6>(choiceText); data.FlushBits(); - for (std::size_t i = 0; i < petitionInfo.Choicetext.size(); ++i) - data.WriteString(petitionInfo.Choicetext[i]); + for (std::string const& choiceText : petitionInfo.Choicetext) + data << SizedString::Data(choiceText); - data.WriteString(petitionInfo.Title); - data.WriteString(petitionInfo.BodyText); + data << SizedString::Data(petitionInfo.Title); + data << SizedString::Data(petitionInfo.BodyText); return data; } -WorldPacket const* WorldPackets::Petition::QueryPetitionResponse::Write() +WorldPacket const* QueryPetitionResponse::Write() { _worldPacket << uint32(PetitionID); _worldPacket.WriteBit(Allow); @@ -70,12 +73,12 @@ WorldPacket const* WorldPackets::Petition::QueryPetitionResponse::Write() return &_worldPacket; } -void WorldPackets::Petition::PetitionShowList::Read() +void PetitionShowList::Read() { _worldPacket >> PetitionUnit; } -WorldPacket const* WorldPackets::Petition::ServerPetitionShowList::Write() +WorldPacket const* ServerPetitionShowList::Write() { _worldPacket << Unit; _worldPacket << Price; @@ -83,7 +86,7 @@ WorldPacket const* WorldPackets::Petition::ServerPetitionShowList::Write() return &_worldPacket; } -void WorldPackets::Petition::PetitionBuy::Read() +void PetitionBuy::Read() { uint32 titleLen = _worldPacket.ReadBits(7); @@ -92,12 +95,12 @@ void WorldPackets::Petition::PetitionBuy::Read() Title = _worldPacket.ReadString(titleLen); } -void WorldPackets::Petition::PetitionShowSignatures::Read() +void PetitionShowSignatures::Read() { _worldPacket >> Item; } -WorldPacket const* WorldPackets::Petition::ServerPetitionShowSignatures::Write() +WorldPacket const* ServerPetitionShowSignatures::Write() { _worldPacket << Item; _worldPacket << Owner; @@ -114,13 +117,13 @@ WorldPacket const* WorldPackets::Petition::ServerPetitionShowSignatures::Write() return &_worldPacket; } -void WorldPackets::Petition::SignPetition::Read() +void SignPetition::Read() { _worldPacket >> PetitionGUID; _worldPacket >> Choice; } -WorldPacket const* WorldPackets::Petition::PetitionSignResults::Write() +WorldPacket const* PetitionSignResults::Write() { _worldPacket << Item; _worldPacket << Player; @@ -131,24 +134,24 @@ WorldPacket const* WorldPackets::Petition::PetitionSignResults::Write() return &_worldPacket; } -WorldPacket const* WorldPackets::Petition::PetitionAlreadySigned::Write() +WorldPacket const* PetitionAlreadySigned::Write() { _worldPacket << SignerGUID; return &_worldPacket; } -void WorldPackets::Petition::DeclinePetition::Read() +void DeclinePetition::Read() { _worldPacket >> PetitionGUID; } -void WorldPackets::Petition::TurnInPetition::Read() +void TurnInPetition::Read() { _worldPacket >> Item; } -WorldPacket const* WorldPackets::Petition::TurnInPetitionResult::Write() +WorldPacket const* TurnInPetitionResult::Write() { _worldPacket.WriteBits(Result, 4); _worldPacket.FlushBits(); @@ -156,20 +159,20 @@ WorldPacket const* WorldPackets::Petition::TurnInPetitionResult::Write() return &_worldPacket; } -void WorldPackets::Petition::OfferPetition::Read() +void OfferPetition::Read() { _worldPacket >> ItemGUID; _worldPacket >> TargetPlayer; } -WorldPacket const* WorldPackets::Petition::OfferPetitionError::Write() +WorldPacket const* OfferPetitionError::Write() { _worldPacket << PlayerGUID; return &_worldPacket; } -void WorldPackets::Petition::PetitionRenameGuild::Read() +void PetitionRenameGuild::Read() { _worldPacket >> PetitionGuid; @@ -179,7 +182,7 @@ void WorldPackets::Petition::PetitionRenameGuild::Read() NewGuildName = _worldPacket.ReadString(nameLen); } -WorldPacket const* WorldPackets::Petition::PetitionRenameGuildResponse::Write() +WorldPacket const* PetitionRenameGuildResponse::Write() { _worldPacket << PetitionGuid; @@ -190,3 +193,4 @@ WorldPacket const* WorldPackets::Petition::PetitionRenameGuildResponse::Write() return &_worldPacket; } +} diff --git a/src/server/game/Server/Packets/PetitionPackets.h b/src/server/game/Server/Packets/PetitionPackets.h index ec5f6a2c4b8..7fabe832191 100644 --- a/src/server/game/Server/Packets/PetitionPackets.h +++ b/src/server/game/Server/Packets/PetitionPackets.h @@ -241,6 +241,4 @@ namespace WorldPackets } } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Petition::PetitionInfo const& petitionInfo); - #endif // PetitionPackets_h__ diff --git a/src/server/game/Server/Packets/TicketPackets.cpp b/src/server/game/Server/Packets/TicketPackets.cpp index f13d1c2eb50..5d79e186412 100644 --- a/src/server/game/Server/Packets/TicketPackets.cpp +++ b/src/server/game/Server/Packets/TicketPackets.cpp @@ -51,14 +51,14 @@ WorldPacket const* GMTicketCaseStatus::Write() _worldPacket << uint64(c.CharacterID); _worldPacket << int32(c.WaitTimeOverrideMinutes); - _worldPacket.WriteBits(c.Url.size(), 11); - _worldPacket.WriteBits(c.WaitTimeOverrideMessage.size(), 10); + _worldPacket << SizedString::BitsSize<11>(c.Url); + _worldPacket << SizedString::BitsSize<10>(c.WaitTimeOverrideMessage); + _worldPacket.FlushBits(); - _worldPacket.WriteString(c.Url); - _worldPacket.WriteString(c.WaitTimeOverrideMessage); + _worldPacket << SizedString::Data(c.Url); + _worldPacket << SizedString::Data(c.WaitTimeOverrideMessage); } - _worldPacket.FlushBits(); return &_worldPacket; } |