diff --git a/Source/Framework/Util/Extensions.cs b/Source/Framework/Util/Extensions.cs index e8e0dc384..f61d2742a 100644 --- a/Source/Framework/Util/Extensions.cs +++ b/Source/Framework/Util/Extensions.cs @@ -306,6 +306,11 @@ namespace System double value; return double.TryParse(str, out value); } + + public static int GetByteCount(this string str) + { + return Encoding.UTF8.GetByteCount(str); + } #endregion #region BinaryReader diff --git a/Source/Game/Network/Packets/AchievementPackets.cs b/Source/Game/Network/Packets/AchievementPackets.cs index f08a88706..173c39263 100644 --- a/Source/Game/Network/Packets/AchievementPackets.cs +++ b/Source/Game/Network/Packets/AchievementPackets.cs @@ -17,6 +17,7 @@ using Framework.Constants; using Game.Entities; +using System; using System.Collections.Generic; using System.Linq; @@ -129,7 +130,7 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(Name.Length, 7); + _worldPacket.WriteBits(Name.GetByteCount(), 7); _worldPacket.WriteBit(GuildAchievement); _worldPacket.WritePackedGuid(PlayerGUID); _worldPacket.WriteUInt32(AchievementID); diff --git a/Source/Game/Network/Packets/AuthenticationPackets.cs b/Source/Game/Network/Packets/AuthenticationPackets.cs index 9425b59d4..72726c0aa 100644 --- a/Source/Game/Network/Packets/AuthenticationPackets.cs +++ b/Source/Game/Network/Packets/AuthenticationPackets.cs @@ -185,8 +185,8 @@ namespace Game.Network.Packets _worldPacket.WriteUInt8(templateClass.FactionGroup); } - _worldPacket.WriteBits(templat.Name.Length, 7); - _worldPacket.WriteBits(templat.Description.Length, 10); + _worldPacket.WriteBits(templat.Name.GetByteCount(), 7); + _worldPacket.WriteBits(templat.Description.GetByteCount(), 10); _worldPacket.FlushBits(); _worldPacket.WriteString(templat.Name); @@ -409,8 +409,8 @@ namespace Game.Network.Packets { data.WriteBit(IsLocal); data.WriteBit(IsInternalRealm); - data.WriteBits(RealmNameActual.Length, 8); - data.WriteBits(RealmNameNormalized.Length, 8); + data.WriteBits(RealmNameActual.GetByteCount(), 8); + data.WriteBits(RealmNameNormalized.GetByteCount(), 8); data.FlushBits(); data.WriteString(RealmNameActual); diff --git a/Source/Game/Network/Packets/BattlePetPackets.cs b/Source/Game/Network/Packets/BattlePetPackets.cs index 2c731a466..5fb0610a4 100644 --- a/Source/Game/Network/Packets/BattlePetPackets.cs +++ b/Source/Game/Network/Packets/BattlePetPackets.cs @@ -243,7 +243,7 @@ namespace Game.Network.Packets data.WriteUInt32(MaxHealth); data .WriteUInt32( Speed); data .WriteUInt8( Quality); - data.WriteBits(Name.Length, 7); + data.WriteBits(Name.GetByteCount(), 7); data.WriteBit(OwnerInfo.HasValue); // HasOwnerInfo data.WriteBit(Name.IsEmpty()); // NoRename data.FlushBits(); diff --git a/Source/Game/Network/Packets/CalendarPackets.cs b/Source/Game/Network/Packets/CalendarPackets.cs index 19af9d30a..6a93b8694 100644 --- a/Source/Game/Network/Packets/CalendarPackets.cs +++ b/Source/Game/Network/Packets/CalendarPackets.cs @@ -17,6 +17,7 @@ using Framework.Constants; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -199,8 +200,8 @@ namespace Game.Network.Packets _worldPacket.WritePackedGuid(EventGuildID); _worldPacket.WriteUInt32(Invites.Count); - _worldPacket.WriteBits(EventName.Length, 8); - _worldPacket.WriteBits(Description.Length, 11); + _worldPacket.WriteBits(EventName.GetByteCount(), 8); + _worldPacket.WriteBits(Description.GetByteCount(), 11); _worldPacket.FlushBits(); foreach (var invite in Invites) @@ -244,7 +245,7 @@ namespace Game.Network.Packets _worldPacket.WritePackedGuid(InvitedByGuid); _worldPacket.WritePackedGuid(OwnerGuid); - _worldPacket.WriteBits(EventName.Length, 8); + _worldPacket.WriteBits(EventName.GetByteCount(), 8); _worldPacket.FlushBits(); _worldPacket.WriteString(EventName); } @@ -408,8 +409,8 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(TextureID); _worldPacket.WriteUInt8(EventType); - _worldPacket.WriteBits(EventName.Length, 8); - _worldPacket.WriteBits(Description.Length, 11); + _worldPacket.WriteBits(EventName.GetByteCount(), 8); + _worldPacket.WriteBits(Description.GetByteCount(), 11); _worldPacket.WriteBit(ClearPending); _worldPacket.FlushBits(); @@ -572,7 +573,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt8(Command); _worldPacket.WriteUInt8(Result); - _worldPacket.WriteBits(Name.Length, 9); + _worldPacket.WriteBits(Name.GetByteCount(), 9); _worldPacket.FlushBits(); _worldPacket.WriteString(Name); } @@ -685,7 +686,7 @@ namespace Game.Network.Packets { _worldPacket.WriteUInt64(EventID); - _worldPacket.WriteBits(Notes.Length, 8); + _worldPacket.WriteBits(Notes.GetByteCount(), 8); _worldPacket.FlushBits(); _worldPacket.WriteString(Notes); } @@ -703,7 +704,7 @@ namespace Game.Network.Packets _worldPacket.WritePackedGuid(InviteGuid); _worldPacket.WriteUInt64(EventID); - _worldPacket.WriteBits(Notes.Length, 8); + _worldPacket.WriteBits(Notes.GetByteCount(), 8); _worldPacket.WriteBit(ClearPending); _worldPacket.FlushBits(); _worldPacket.WriteString(Notes); @@ -838,7 +839,7 @@ namespace Game.Network.Packets data.WritePackedGuid(EventGuildID); data.WritePackedGuid(OwnerGuid); - data.WriteBits(EventName.Length, 8); + data.WriteBits(EventName.GetByteCount(), 8); data.FlushBits(); data.WriteString(EventName); } @@ -867,7 +868,7 @@ namespace Game.Network.Packets data.WritePackedTime(ResponseTime); - data.WriteBits(Notes.Length, 8); + data.WriteBits(Notes.GetByteCount(), 8); data.FlushBits(); data.WriteString(Notes); } diff --git a/Source/Game/Network/Packets/ChannelPackets.cs b/Source/Game/Network/Packets/ChannelPackets.cs index fd7b6bfc5..a494eb61f 100644 --- a/Source/Game/Network/Packets/ChannelPackets.cs +++ b/Source/Game/Network/Packets/ChannelPackets.cs @@ -17,6 +17,7 @@ using Framework.Constants; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -31,7 +32,7 @@ namespace Game.Network.Packets public override void Write() { _worldPacket.WriteBit(Display); - _worldPacket.WriteBits(Channel.Length, 7); + _worldPacket.WriteBits(Channel.GetByteCount(), 7); _worldPacket.WriteUInt32(ChannelFlags); _worldPacket.WriteUInt32(Members.Count); _worldPacket.WriteString(Channel); @@ -71,8 +72,8 @@ namespace Game.Network.Packets public override void Write() { _worldPacket.WriteBits(Type, 6); - _worldPacket.WriteBits(Channel.Length, 7); - _worldPacket.WriteBits(Sender.Length, 6); + _worldPacket.WriteBits(Channel.GetByteCount(), 7); + _worldPacket.WriteBits(Sender.GetByteCount(), 6); _worldPacket.WritePackedGuid(SenderGuid); _worldPacket.WritePackedGuid(SenderAccountID); @@ -110,8 +111,8 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(Channel.Length, 7); - _worldPacket.WriteBits(ChannelWelcomeMsg.Length, 10); + _worldPacket.WriteBits(Channel.GetByteCount(), 7); + _worldPacket.WriteBits(ChannelWelcomeMsg.GetByteCount(), 10); _worldPacket.WriteUInt32(ChannelFlags); _worldPacket.WriteInt32(ChatChannelID); _worldPacket.WriteUInt64(InstanceID); @@ -132,7 +133,7 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(Channel.Length, 7); + _worldPacket.WriteBits(Channel.GetByteCount(), 7); _worldPacket.WriteBit(Suspended); _worldPacket.WriteUInt32(ChatChannelID); _worldPacket.WriteString(Channel); @@ -154,7 +155,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(ChannelFlags); _worldPacket.WriteUInt32(ChannelID); - _worldPacket.WriteBits(ChannelName.Length, 7); + _worldPacket.WriteBits(ChannelName.GetByteCount(), 7); _worldPacket.FlushBits(); _worldPacket.WriteString(ChannelName); } @@ -176,7 +177,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(ChannelFlags); _worldPacket.WriteUInt32(ChannelID); - _worldPacket.WriteBits(ChannelName.Length, 7); + _worldPacket.WriteBits(ChannelName.GetByteCount(), 7); _worldPacket.FlushBits(); _worldPacket.WriteString(ChannelName); } @@ -198,7 +199,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(ChannelFlags); _worldPacket.WriteUInt32(ChannelID); - _worldPacket.WriteBits(ChannelName.Length, 7); + _worldPacket.WriteBits(ChannelName.GetByteCount(), 7); _worldPacket.FlushBits(); _worldPacket.WriteString(ChannelName); } diff --git a/Source/Game/Network/Packets/CharacterPackets.cs b/Source/Game/Network/Packets/CharacterPackets.cs index 8fee5926c..affa32c6b 100644 --- a/Source/Game/Network/Packets/CharacterPackets.cs +++ b/Source/Game/Network/Packets/CharacterPackets.cs @@ -98,7 +98,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt16(charInfo.SpecID); _worldPacket.WriteUInt32(charInfo.Unknown703); _worldPacket.WriteUInt32(charInfo.Flags4); - _worldPacket.WriteBits(charInfo.Name.Length, 6); + _worldPacket.WriteBits(charInfo.Name.GetByteCount(), 6); _worldPacket.WriteBit(charInfo.FirstLogin); _worldPacket.WriteBit(charInfo.BoostInProgress); _worldPacket.WriteBits(charInfo.unkWod61x, 5); @@ -371,7 +371,7 @@ namespace Game.Network.Packets { _worldPacket.WriteUInt8(Result); _worldPacket.WriteBit(Guid.HasValue); - _worldPacket.WriteBits(Name.Length, 6); + _worldPacket.WriteBits(Name.GetByteCount(), 6); _worldPacket.FlushBits(); if (Guid.HasValue) @@ -458,7 +458,7 @@ namespace Game.Network.Packets if (Display.HasValue) { - _worldPacket.WriteBits(Display.Value.Name.Length, 6); + _worldPacket.WriteBits(Display.Value.Name.GetByteCount(), 6); _worldPacket.WriteUInt8(Display.Value.SexID); _worldPacket.WriteUInt8(Display.Value.SkinID); _worldPacket.WriteUInt8(Display.Value.HairColorID); @@ -510,7 +510,7 @@ namespace Game.Network.Packets public override void Write() { _worldPacket.WriteBit(Success); - _worldPacket.WriteBits(Name.Length, 6); + _worldPacket.WriteBits(Name.GetByteCount(), 6); _worldPacket.WriteString(Name); } @@ -943,7 +943,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt8(FacialHairStyleID); _worldPacket.WriteUInt8(FaceID); CustomDisplay.ForEach(id => _worldPacket.WriteUInt8(id)); - _worldPacket.WriteBits(CharName.Length, 6); + _worldPacket.WriteBits(CharName.GetByteCount(), 6); _worldPacket.FlushBits(); _worldPacket.WriteString(CharName); } diff --git a/Source/Game/Network/Packets/ChatPackets.cs b/Source/Game/Network/Packets/ChatPackets.cs index 1ea1de4a7..717ea210c 100644 --- a/Source/Game/Network/Packets/ChatPackets.cs +++ b/Source/Game/Network/Packets/ChatPackets.cs @@ -18,6 +18,7 @@ using Framework.Constants; using Game.Entities; using Game.Groups; +using System; namespace Game.Network.Packets { @@ -244,14 +245,15 @@ namespace Game.Network.Packets _worldPacket.WritePackedGuid(PartyGUID); _worldPacket.WriteUInt32(AchievementID); _worldPacket.WriteFloat(DisplayTime); - _worldPacket.WriteBits(SenderName.Length, 11); - _worldPacket.WriteBits(TargetName.Length, 11); - _worldPacket.WriteBits(Prefix.Length, 5); - _worldPacket.WriteBits(Channel.Length, 7); - _worldPacket.WriteBits(ChatText.Length, 12); - _worldPacket.WriteBits((uint)_ChatFlags, 11); + _worldPacket.WriteBits(SenderName.GetByteCount(), 11); + _worldPacket.WriteBits(TargetName.GetByteCount(), 11); + _worldPacket.WriteBits(Prefix.GetByteCount(), 5); + _worldPacket.WriteBits(Channel.GetByteCount(), 7); + _worldPacket.WriteBits(ChatText.GetByteCount(), 12); + _worldPacket.WriteBits((byte)_ChatFlags, 11); _worldPacket.WriteBit(HideChatLog); _worldPacket.WriteBit(FakeSenderName); + _worldPacket.FlushBits(); _worldPacket.WriteString(SenderName); _worldPacket.WriteString(TargetName); @@ -340,7 +342,7 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(NotifyText.Length, 12); + _worldPacket.WriteBits(NotifyText.GetByteCount(), 12); _worldPacket.WriteString(NotifyText); } @@ -363,7 +365,7 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(Name.Length, 9); + _worldPacket.WriteBits(Name.GetByteCount(), 9); _worldPacket.WriteString(Name); } @@ -379,7 +381,7 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(Name.Length, 9); + _worldPacket.WriteBits(Name.GetByteCount(), 9); _worldPacket.WriteString(Name); } @@ -409,7 +411,7 @@ namespace Game.Network.Packets { _worldPacket.WriteUInt32(MessageID); - _worldPacket.WriteBits(StringParam.Length, 11); + _worldPacket.WriteBits(StringParam.GetByteCount(), 11); _worldPacket.WriteString(StringParam); } @@ -446,7 +448,7 @@ namespace Game.Network.Packets public override void Write() { _worldPacket .WriteUInt32(ZoneID); - _worldPacket.WriteBits(MessageText.Length, 12); + _worldPacket.WriteBits(MessageText.GetByteCount(), 12); _worldPacket.FlushBits(); _worldPacket.WriteString(MessageText); } diff --git a/Source/Game/Network/Packets/DuelPackets.cs b/Source/Game/Network/Packets/DuelPackets.cs index 010c4eb37..95b264f1e 100644 --- a/Source/Game/Network/Packets/DuelPackets.cs +++ b/Source/Game/Network/Packets/DuelPackets.cs @@ -17,6 +17,7 @@ using Framework.Constants; using Game.Entities; +using System; namespace Game.Network.Packets { @@ -125,8 +126,8 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(BeatenName.Length, 6); - _worldPacket.WriteBits(WinnerName.Length, 6); + _worldPacket.WriteBits(BeatenName.GetByteCount(), 6); + _worldPacket.WriteBits(WinnerName.GetByteCount(), 6); _worldPacket.WriteBit(Fled); _worldPacket.WriteUInt32(BeatenVirtualRealmAddress); _worldPacket.WriteUInt32(WinnerVirtualRealmAddress); diff --git a/Source/Game/Network/Packets/EquipmentPackets.cs b/Source/Game/Network/Packets/EquipmentPackets.cs index d48d5c13e..2646aa6f0 100644 --- a/Source/Game/Network/Packets/EquipmentPackets.cs +++ b/Source/Game/Network/Packets/EquipmentPackets.cs @@ -17,6 +17,7 @@ using Framework.Constants; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -62,8 +63,8 @@ namespace Game.Network.Packets _worldPacket.WriteInt32(id); _worldPacket.WriteBit(equipSet.AssignedSpecIndex != -1); - _worldPacket.WriteBits(equipSet.SetName.Length, 8); - _worldPacket.WriteBits(equipSet.SetIcon.Length, 9); + _worldPacket.WriteBits(equipSet.SetName.GetByteCount(), 8); + _worldPacket.WriteBits(equipSet.SetIcon.GetByteCount(), 9); if (equipSet.AssignedSpecIndex != -1) _worldPacket.WriteInt32(equipSet.AssignedSpecIndex); diff --git a/Source/Game/Network/Packets/GarrisonPackets.cs b/Source/Game/Network/Packets/GarrisonPackets.cs index cc1c07c3c..fe5356d25 100644 --- a/Source/Game/Network/Packets/GarrisonPackets.cs +++ b/Source/Game/Network/Packets/GarrisonPackets.cs @@ -18,6 +18,7 @@ using Framework.Constants; using Game.DataStorage; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -371,7 +372,7 @@ namespace Game.Network.Packets AbilityID.ForEach(ability => data.WriteUInt32(ability.Id)); - data.WriteBits(CustomName.Length, 7); + data.WriteBits(CustomName.GetByteCount(), 7); data.FlushBits(); data.WriteString(CustomName); } diff --git a/Source/Game/Network/Packets/GuildFinderPackets.cs b/Source/Game/Network/Packets/GuildFinderPackets.cs index cd7d5a7e4..831bbd4f8 100644 --- a/Source/Game/Network/Packets/GuildFinderPackets.cs +++ b/Source/Game/Network/Packets/GuildFinderPackets.cs @@ -18,6 +18,7 @@ using Framework.Constants; using Framework.Dynamic; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -213,8 +214,8 @@ namespace Game.Network.Packets { public void Write(WorldPacket data) { - data.WriteBits(GuildName.Length, 7); - data.WriteBits(Comment.Length, 10); + data.WriteBits(GuildName.GetByteCount(), 7); + data.WriteBits(Comment.GetByteCount(), 10); data.WritePackedGuid(GuildGUID); data.WriteUInt32(GuildVirtualRealm); data.WriteInt32(GuildMembers); @@ -264,8 +265,8 @@ namespace Game.Network.Packets data.WriteInt32(Availability); data.WriteUInt32(SecondsSinceCreated); data.WriteUInt32(SecondsUntilExpiration); - data.WriteBits(GuildName.Length, 7); - data.WriteBits(Comment.Length, 10); + data.WriteBits(GuildName.GetByteCount(), 7); + data.WriteBits(Comment.GetByteCount(), 10); data.FlushBits(); data.WriteString(GuildName); data.WriteString(Comment); @@ -287,7 +288,7 @@ namespace Game.Network.Packets public void Write(WorldPacket data) { data.WriteBit(Active); - data.WriteBits(Comment.Length, 10); + data.WriteBits(Comment.GetByteCount(), 10); data.WriteInt32(PlayStyle); data.WriteInt32(Availability); data.WriteInt32(ClassRoles); @@ -319,8 +320,8 @@ namespace Game.Network.Packets data.WriteInt32(Availability); data.WriteUInt32(SecondsSinceCreated); data.WriteUInt32(SecondsUntilExpiration); - data.WriteBits(Name.Length, 6); - data.WriteBits(Comment.Length, 10); + data.WriteBits(Name.GetByteCount(), 6); + data.WriteBits(Comment.GetByteCount(), 10); data.FlushBits(); data.WriteString(Name); data.WriteString(Comment); diff --git a/Source/Game/Network/Packets/GuildPackets.cs b/Source/Game/Network/Packets/GuildPackets.cs index babb1b268..0b9071490 100644 --- a/Source/Game/Network/Packets/GuildPackets.cs +++ b/Source/Game/Network/Packets/GuildPackets.cs @@ -18,6 +18,7 @@ using Framework.Constants; using Framework.Dynamic; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -56,7 +57,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(Info.BorderStyle); _worldPacket.WriteUInt32(Info.BorderColor); _worldPacket.WriteUInt32(Info.BackgroundColor); - _worldPacket.WriteBits(Info.GuildName.Length, 7); + _worldPacket.WriteBits(Info.GuildName.GetByteCount(), 7); _worldPacket.FlushBits(); foreach (var rank in Info.Ranks) @@ -64,7 +65,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(rank.RankID); _worldPacket.WriteUInt32(rank.RankOrder); - _worldPacket.WriteBits(rank.RankName.Length, 7); + _worldPacket.WriteBits(rank.RankName.GetByteCount(), 7); _worldPacket.WriteString(rank.RankName); } @@ -127,8 +128,8 @@ namespace Game.Network.Packets _worldPacket.WritePackedTime(CreateDate); _worldPacket.WriteInt32(GuildFlags); _worldPacket.WriteUInt32(MemberData.Count); - _worldPacket.WriteBits(WelcomeText.Length, 10); - _worldPacket.WriteBits(InfoText.Length, 10); + _worldPacket.WriteBits(WelcomeText.GetByteCount(), 10); + _worldPacket.WriteBits(InfoText.GetByteCount(), 10); _worldPacket.FlushBits(); MemberData.ForEach(p => p.Write(_worldPacket)); @@ -184,7 +185,7 @@ namespace Game.Network.Packets _worldPacket.WriteInt32(Result); _worldPacket.WriteInt32(Command); - _worldPacket.WriteBits(Name.Length, 8); + _worldPacket.WriteBits(Name.GetByteCount(), 8); _worldPacket.WriteString(Name); } @@ -238,9 +239,9 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(InviterName.Length, 6); - _worldPacket.WriteBits(GuildName.Length, 7); - _worldPacket.WriteBits(OldGuildName.Length, 7); + _worldPacket.WriteBits(InviterName.GetByteCount(), 6); + _worldPacket.WriteBits(GuildName.GetByteCount(), 7); + _worldPacket.WriteBits(OldGuildName.GetByteCount(), 7); _worldPacket.WriteUInt32(InviterVirtualRealmAddress); _worldPacket.WriteUInt32(GuildVirtualRealmAddress); @@ -284,7 +285,7 @@ namespace Game.Network.Packets _worldPacket.WritePackedGuid(Guid); _worldPacket.WriteUInt32(VirtualRealmAddress); - _worldPacket.WriteBits(Name.Length, 6); + _worldPacket.WriteBits(Name.GetByteCount(), 6); _worldPacket.WriteBit(LoggedOn); _worldPacket.WriteBit(Mobile); @@ -304,7 +305,7 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(MotdText.Length, 10); + _worldPacket.WriteBits(MotdText.GetByteCount(), 10); _worldPacket.WriteString(MotdText); } @@ -320,7 +321,7 @@ namespace Game.Network.Packets _worldPacket.WritePackedGuid(Guid); _worldPacket.WriteUInt32(VirtualRealmAddress); - _worldPacket.WriteBits(Name.Length, 6); + _worldPacket.WriteBits(Name.GetByteCount(), 6); _worldPacket.WriteString(Name); } @@ -405,12 +406,12 @@ namespace Game.Network.Packets public override void Write() { _worldPacket.WriteBit(Removed); - _worldPacket.WriteBits(LeaverName.Length, 6); + _worldPacket.WriteBits(LeaverName.GetByteCount(), 6); _worldPacket.FlushBits(); if (Removed) { - _worldPacket.WriteBits(RemoverName.Length, 6); + _worldPacket.WriteBits(RemoverName.GetByteCount(), 6); _worldPacket.WritePackedGuid(RemoverGUID); _worldPacket.WriteUInt32(RemoverVirtualRealmAddress); _worldPacket.WriteString(RemoverName); @@ -437,8 +438,8 @@ namespace Game.Network.Packets public override void Write() { _worldPacket.WriteBit(SelfPromoted); - _worldPacket.WriteBits(NewLeaderName.Length, 6); - _worldPacket.WriteBits(OldLeaderName.Length, 6); + _worldPacket.WriteBits(NewLeaderName.GetByteCount(), 6); + _worldPacket.WriteBits(OldLeaderName.GetByteCount(), 6); _worldPacket.WritePackedGuid(OldLeaderGUID); _worldPacket.WriteUInt32(OldLeaderVirtualRealmAddress); @@ -473,8 +474,8 @@ namespace Game.Network.Packets { _worldPacket.WriteInt32(Tab); - _worldPacket.WriteBits(Name.Length, 7); - _worldPacket.WriteBits(Icon.Length, 9); + _worldPacket.WriteBits(Name.GetByteCount(), 7); + _worldPacket.WriteBits(Icon.GetByteCount(), 9); _worldPacket.FlushBits(); _worldPacket.WriteString(Name); @@ -727,7 +728,7 @@ namespace Game.Network.Packets { _worldPacket.WritePackedGuid(Member); - _worldPacket.WriteBits(Note.Length, 8); + _worldPacket.WriteBits(Note.GetByteCount(), 8); _worldPacket.WriteBit(IsPublic); _worldPacket.FlushBits(); @@ -1021,8 +1022,8 @@ namespace Game.Network.Packets foreach (GuildBankTabInfo tab in TabInfo) { _worldPacket.WriteUInt32(tab.TabIndex); - _worldPacket.WriteBits(tab.Name.Length, 7); - _worldPacket.WriteBits(tab.Icon.Length, 9);; + _worldPacket.WriteBits(tab.Name.GetByteCount(), 7); + _worldPacket.WriteBits(tab.Icon.GetByteCount(), 9);; _worldPacket.WriteString(tab.Name); _worldPacket.WriteString(tab.Icon); @@ -1176,7 +1177,7 @@ namespace Game.Network.Packets { _worldPacket.WriteInt32(Tab); - _worldPacket.WriteBits(Text.Length, 14); + _worldPacket.WriteBits(Text.GetByteCount(), 14); _worldPacket.WriteString(Text); } @@ -1345,7 +1346,7 @@ namespace Game.Network.Packets public override void Write() { _worldPacket.WritePackedGuid(GuildGUID); - _worldPacket.WriteBits(GuildName.Length, 7); + _worldPacket.WriteBits(GuildName.GetByteCount(), 7); _worldPacket.FlushBits(); _worldPacket.WriteString(GuildName); } @@ -1389,9 +1390,9 @@ namespace Game.Network.Packets data.WriteUInt8(ClassID); data.WriteUInt8(Gender); - data.WriteBits(Name.Length, 6); - data.WriteBits(Note.Length, 8); - data.WriteBits(OfficerNote.Length, 8); + data.WriteBits(Name.GetByteCount(), 6); + data.WriteBits(Note.GetByteCount(), 8); + data.WriteBits(OfficerNote.GetByteCount(), 8); data.WriteBit(Authenticated); data.WriteBit(SorEligible); @@ -1446,7 +1447,7 @@ namespace Game.Network.Packets data.WriteUInt32(TabWithdrawItemLimit[i]); } - data.WriteBits(RankName.Length, 7); + data.WriteBits(RankName.GetByteCount(), 7); data.WriteString(RankName); } diff --git a/Source/Game/Network/Packets/LFGPackets.cs b/Source/Game/Network/Packets/LFGPackets.cs index 1ec213c7c..288118f81 100644 --- a/Source/Game/Network/Packets/LFGPackets.cs +++ b/Source/Game/Network/Packets/LFGPackets.cs @@ -18,6 +18,7 @@ using Framework.Constants; using Framework.Dynamic; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -693,7 +694,7 @@ namespace Game.Network.Packets data.WriteBit(VotePassed); data.WriteBit(MyVoteCompleted); data.WriteBit(MyVote); - data.WriteBits(Reason.Length, 8); + data.WriteBits(Reason.GetByteCount(), 8); data.WritePackedGuid(Target); data.WriteUInt32(TotalVotes); data.WriteUInt32(BootVotes); diff --git a/Source/Game/Network/Packets/MailPackets.cs b/Source/Game/Network/Packets/MailPackets.cs index 06f5eeeef..ed363d607 100644 --- a/Source/Game/Network/Packets/MailPackets.cs +++ b/Source/Game/Network/Packets/MailPackets.cs @@ -19,6 +19,7 @@ using Framework.Constants; using Framework.Dynamic; using Game.Entities; using Game.Mails; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -426,8 +427,8 @@ namespace Game.Network.Packets data.WriteBit(SenderCharacter.HasValue); data.WriteBit(AltSenderID.HasValue); - data.WriteBits(Subject.Length, 8); - data.WriteBits(Body.Length, 13); + data.WriteBits(Subject.GetByteCount(), 8); + data.WriteBits(Body.GetByteCount(), 13); data.FlushBits(); Attachments.ForEach(p => p.Write(data)); diff --git a/Source/Game/Network/Packets/MiscPackets.cs b/Source/Game/Network/Packets/MiscPackets.cs index cc67496b3..e21eddbd4 100644 --- a/Source/Game/Network/Packets/MiscPackets.cs +++ b/Source/Game/Network/Packets/MiscPackets.cs @@ -19,6 +19,7 @@ using Framework.Constants; using Framework.Dynamic; using Framework.GameMath; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -984,7 +985,7 @@ namespace Game.Network.Packets foreach (CUFProfile cufProfile in CUFProfiles) { - _worldPacket.WriteBits(cufProfile.ProfileName.Length, 7); + _worldPacket.WriteBits(cufProfile.ProfileName.GetByteCount(), 7); // Bool Options for (byte option = 0; option < (int)CUFBoolOptions.BoolOptionsCount; option++) diff --git a/Source/Game/Network/Packets/NPCPackets.cs b/Source/Game/Network/Packets/NPCPackets.cs index 6277694c3..fdffac94f 100644 --- a/Source/Game/Network/Packets/NPCPackets.cs +++ b/Source/Game/Network/Packets/NPCPackets.cs @@ -18,6 +18,7 @@ using Framework.Constants; using Framework.GameMath; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -62,8 +63,8 @@ namespace Game.Network.Packets _worldPacket.WriteInt8(options.OptionFlags); _worldPacket.WriteInt32(options.OptionCost); - _worldPacket.WriteBits(options.Text.Length, 12); - _worldPacket.WriteBits(options.Confirm.Length, 12); + _worldPacket.WriteBits(options.Text.GetByteCount(), 12); + _worldPacket.WriteBits(options.Confirm.GetByteCount(), 12); _worldPacket.FlushBits(); _worldPacket.WriteString(options.Text); @@ -79,7 +80,7 @@ namespace Game.Network.Packets _worldPacket.WriteInt32(text.QuestFlagsEx); _worldPacket.WriteBit(text.Repeatable); - _worldPacket.WriteBits(text.QuestTitle.Length, 9); + _worldPacket.WriteBits(text.QuestTitle.GetByteCount(), 9); _worldPacket.FlushBits(); _worldPacket.WriteString(text.QuestTitle); @@ -165,7 +166,7 @@ namespace Game.Network.Packets _worldPacket.WriteInt8(spell.ReqLevel); } - _worldPacket.WriteBits(Greeting.Length, 11); + _worldPacket.WriteBits(Greeting.GetByteCount(), 11); _worldPacket.FlushBits(); _worldPacket.WriteString(Greeting); } @@ -208,7 +209,7 @@ namespace Game.Network.Packets public override void Write() { _worldPacket.WriteBits(Flags, 14); - _worldPacket.WriteBits(Name.Length, 6); + _worldPacket.WriteBits(Name.GetByteCount(), 6); _worldPacket.WriteFloat(Pos.X); _worldPacket.WriteFloat(Pos.Y); _worldPacket.WriteUInt32(Icon); diff --git a/Source/Game/Network/Packets/PartyPackets.cs b/Source/Game/Network/Packets/PartyPackets.cs index 692b03f87..2534faa60 100644 --- a/Source/Game/Network/Packets/PartyPackets.cs +++ b/Source/Game/Network/Packets/PartyPackets.cs @@ -31,7 +31,7 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(Name.Length, 9); + _worldPacket.WriteBits(Name.GetByteCount(), 9); _worldPacket.WriteBits(Command, 4); _worldPacket.WriteBits(Result, 6); @@ -97,13 +97,13 @@ namespace Game.Network.Packets _worldPacket.WriteBit(IsXRealm); _worldPacket.WriteBit(MustBeBNetFriend); _worldPacket.WriteBit(AllowMultipleRoles); - _worldPacket.WriteBits(InviterName.Length, 6); + _worldPacket.WriteBits(InviterName.GetByteCount(), 6); _worldPacket.WriteUInt32(InviterVirtualRealmAddress); _worldPacket.WriteBit(IsLocal); _worldPacket.WriteBit(Unk2); - _worldPacket.WriteBits(InviterRealmNameActual.Length, 8); - _worldPacket.WriteBits(InviterRealmNameNormalized.Length, 8); + _worldPacket.WriteBits(InviterRealmNameActual.GetByteCount(), 8); + _worldPacket.WriteBits(InviterRealmNameNormalized.GetByteCount(), 8); _worldPacket.WriteString(InviterRealmNameActual); _worldPacket.WriteString(InviterRealmNameNormalized); @@ -193,7 +193,7 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(Name.Length, 9); + _worldPacket.WriteBits(Name.GetByteCount(), 9); _worldPacket.FlushBits(); _worldPacket.WriteString(Name); } @@ -736,7 +736,7 @@ namespace Game.Network.Packets public override void Write() { _worldPacket.WriteInt8(PartyIndex); - _worldPacket.WriteBits(Name.Length, 6); + _worldPacket.WriteBits(Name.GetByteCount(), 6); _worldPacket.WriteString(Name); } @@ -950,7 +950,7 @@ namespace Game.Network.Packets data.WriteUInt32(Auras.Count); Auras.ForEach(p => p.Write(data)); - data.WriteBits(Name.Length, 8); + data.WriteBits(Name.GetByteCount(), 8); data.FlushBits(); data.WriteString(Name); } @@ -1034,7 +1034,7 @@ namespace Game.Network.Packets { public void Write(WorldPacket data) { - data.WriteBits(Name.Length, 6); + data.WriteBits(Name.GetByteCount(), 6); data.WriteBit(FromSocialQueue); data.WritePackedGuid(GUID); data.WriteUInt8(Status); diff --git a/Source/Game/Network/Packets/PetPackets.cs b/Source/Game/Network/Packets/PetPackets.cs index 6e260b396..bad7b881d 100644 --- a/Source/Game/Network/Packets/PetPackets.cs +++ b/Source/Game/Network/Packets/PetPackets.cs @@ -18,6 +18,7 @@ using Framework.Constants; using Framework.GameMath; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -155,7 +156,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(pet.ExperienceLevel); _worldPacket.WriteUInt32(pet.PetFlags); - _worldPacket.WriteUInt8(pet.PetName.Length); + _worldPacket.WriteUInt8(pet.PetName.GetByteCount()); _worldPacket.WriteString(pet.PetName); } } @@ -201,7 +202,7 @@ namespace Game.Network.Packets _worldPacket.WritePackedGuid(RenameData.PetGUID); _worldPacket.WriteInt32(RenameData.PetNumber); - _worldPacket.WriteUInt8(RenameData.NewName.Length); + _worldPacket.WriteUInt8(RenameData.NewName.GetByteCount()); _worldPacket.WriteBit(RenameData.HasDeclinedNames); _worldPacket.FlushBits(); @@ -210,7 +211,7 @@ namespace Game.Network.Packets { for (int i = 0; i < SharedConst.MaxDeclinedNameCases; i++) { - _worldPacket.WriteBits(RenameData.DeclinedNames.name[i].Length, 7); + _worldPacket.WriteBits(RenameData.DeclinedNames.name[i].GetByteCount(), 7); _worldPacket.FlushBits(); } diff --git a/Source/Game/Network/Packets/PetitionPackets.cs b/Source/Game/Network/Packets/PetitionPackets.cs index 2c3a27aae..7cf0bf7ac 100644 --- a/Source/Game/Network/Packets/PetitionPackets.cs +++ b/Source/Game/Network/Packets/PetitionPackets.cs @@ -18,6 +18,7 @@ using Framework.Collections; using Framework.Constants; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -277,7 +278,7 @@ namespace Game.Network.Packets { _worldPacket.WritePackedGuid(PetitionGuid); - _worldPacket.WriteBits(NewGuildName.Length, 7); + _worldPacket.WriteBits(NewGuildName.GetByteCount(), 7); _worldPacket.FlushBits(); _worldPacket.WriteString(NewGuildName); @@ -308,11 +309,11 @@ namespace Game.Network.Packets data.WriteInt32(StaticType); data.WriteUInt32(Muid); - data.WriteBits(Title.Length, 7); - data.WriteBits(BodyText.Length, 12); + data.WriteBits(Title.GetByteCount(), 7); + data.WriteBits(BodyText.GetByteCount(), 12); for (byte i = 0; i < 10; i++) - data.WriteBits(Choicetext[i].Length, 6); + data.WriteBits(Choicetext[i].GetByteCount(), 6); data.FlushBits(); diff --git a/Source/Game/Network/Packets/QueryPackets.cs b/Source/Game/Network/Packets/QueryPackets.cs index b6c3bbe27..15f18524a 100644 --- a/Source/Game/Network/Packets/QueryPackets.cs +++ b/Source/Game/Network/Packets/QueryPackets.cs @@ -21,6 +21,7 @@ using Framework.Dynamic; using Framework.GameMath; using Framework.IO; using Game.Entities; +using System; using System.Collections.Generic; using System.Diagnostics.Contracts; @@ -187,7 +188,7 @@ namespace Game.Network.Packets data.WriteUInt32(NextPageID); data.WriteInt32(PlayerConditionID); data.WriteUInt8(Flags); - data.WriteBits(Text.Length, 12); + data.WriteBits(Text.GetByteCount(), 12); data.FlushBits(); data.WriteString(Text); @@ -502,11 +503,11 @@ namespace Game.Network.Packets if (Allow) { - _worldPacket.WriteBits(Name.Length, 8); + _worldPacket.WriteBits(Name.GetByteCount(), 8); _worldPacket.WriteBit(HasDeclined); for (byte i = 0; i < SharedConst.MaxDeclinedNameCases; ++i) - _worldPacket.WriteBits(DeclinedNames.name[i].Length, 7); + _worldPacket.WriteBits(DeclinedNames.name[i].GetByteCount(), 7); for (byte i = 0; i < SharedConst.MaxDeclinedNameCases; ++i) _worldPacket.WriteString(DeclinedNames.name[i]); @@ -546,7 +547,7 @@ namespace Game.Network.Packets public override void Write() { _worldPacket.WriteBit(Valid); - _worldPacket.WriteBits(Text.Length, 13); + _worldPacket.WriteBits(Text.GetByteCount(), 13); _worldPacket.FlushBits(); _worldPacket.WriteString(Text); @@ -655,10 +656,10 @@ namespace Game.Network.Packets public void Write(WorldPacket data) { data.WriteBit(IsDeleted); - data.WriteBits(Name.Length, 6); + data.WriteBits(Name.GetByteCount(), 6); for (byte i = 0; i < SharedConst.MaxDeclinedNameCases; ++i) - data.WriteBits(DeclinedNames.name[i].Length, 7); + data.WriteBits(DeclinedNames.name[i].GetByteCount(), 7); data.FlushBits(); for (byte i = 0; i < SharedConst.MaxDeclinedNameCases; ++i) diff --git a/Source/Game/Network/Packets/QuestPackets.cs b/Source/Game/Network/Packets/QuestPackets.cs index a7bfe4fbc..f11601311 100644 --- a/Source/Game/Network/Packets/QuestPackets.cs +++ b/Source/Game/Network/Packets/QuestPackets.cs @@ -16,9 +16,10 @@ */ using Framework.Constants; -using Game.Entities; -using System.Collections.Generic; using Framework.Dynamic; +using Game.Entities; +using System; +using System.Collections.Generic; namespace Game.Network.Packets { @@ -197,15 +198,15 @@ namespace Game.Network.Packets _worldPacket.WriteInt32(Info.QuestRewardID); _worldPacket.WriteInt32(Info.Expansion); - _worldPacket.WriteBits(Info.LogTitle.Length, 9); - _worldPacket.WriteBits(Info.LogDescription.Length, 12); - _worldPacket.WriteBits(Info.QuestDescription.Length, 12); - _worldPacket.WriteBits(Info.AreaDescription.Length, 9); - _worldPacket.WriteBits(Info.PortraitGiverText.Length, 10); - _worldPacket.WriteBits(Info.PortraitGiverName.Length, 8); - _worldPacket.WriteBits(Info.PortraitTurnInText.Length, 10); - _worldPacket.WriteBits(Info.PortraitTurnInName.Length, 8); - _worldPacket.WriteBits(Info.QuestCompletionLog.Length, 11); + _worldPacket.WriteBits(Info.LogTitle.GetByteCount(), 9); + _worldPacket.WriteBits(Info.LogDescription.GetByteCount(), 12); + _worldPacket.WriteBits(Info.QuestDescription.GetByteCount(), 12); + _worldPacket.WriteBits(Info.AreaDescription.GetByteCount(), 9); + _worldPacket.WriteBits(Info.PortraitGiverText.GetByteCount(), 10); + _worldPacket.WriteBits(Info.PortraitGiverName.GetByteCount(), 8); + _worldPacket.WriteBits(Info.PortraitTurnInText.GetByteCount(), 10); + _worldPacket.WriteBits(Info.PortraitTurnInName.GetByteCount(), 8); + _worldPacket.WriteBits(Info.QuestCompletionLog.GetByteCount(), 11); _worldPacket.FlushBits(); foreach (QuestObjective questObjective in Info.Objectives) @@ -223,7 +224,7 @@ namespace Game.Network.Packets foreach (var visualEffect in questObjective.VisualEffects) _worldPacket.WriteInt32(visualEffect); - _worldPacket.WriteBits(questObjective.Description.Length, 8); + _worldPacket.WriteBits(questObjective.Description.GetByteCount(), 8); _worldPacket.FlushBits(); _worldPacket.WriteString(questObjective.Description); @@ -309,12 +310,12 @@ namespace Game.Network.Packets _worldPacket.WriteInt32(PortraitGiver); _worldPacket.WriteInt32(PortraitTurnIn); - _worldPacket.WriteBits(QuestTitle.Length, 9); - _worldPacket.WriteBits(RewardText.Length, 12); - _worldPacket.WriteBits(PortraitGiverText.Length, 10); - _worldPacket.WriteBits(PortraitGiverName.Length, 8); - _worldPacket.WriteBits(PortraitTurnInText.Length, 10); - _worldPacket.WriteBits(PortraitTurnInName.Length, 8); + _worldPacket.WriteBits(QuestTitle.GetByteCount(), 9); + _worldPacket.WriteBits(RewardText.GetByteCount(), 12); + _worldPacket.WriteBits(PortraitGiverText.GetByteCount(), 10); + _worldPacket.WriteBits(PortraitGiverName.GetByteCount(), 8); + _worldPacket.WriteBits(PortraitTurnInText.GetByteCount(), 10); + _worldPacket.WriteBits(PortraitTurnInName.GetByteCount(), 8); _worldPacket.WriteString(QuestTitle); _worldPacket.WriteString(RewardText); @@ -437,13 +438,13 @@ namespace Game.Network.Packets _worldPacket.WriteInt8(obj.Type); } - _worldPacket.WriteBits(QuestTitle.Length, 9); - _worldPacket.WriteBits(DescriptionText.Length, 12); - _worldPacket.WriteBits(LogDescription.Length, 12); - _worldPacket.WriteBits(PortraitGiverText.Length, 10); - _worldPacket.WriteBits(PortraitGiverName.Length, 8); - _worldPacket.WriteBits(PortraitTurnInText.Length, 10); - _worldPacket.WriteBits(PortraitTurnInName.Length, 8); + _worldPacket.WriteBits(QuestTitle.GetByteCount(), 9); + _worldPacket.WriteBits(DescriptionText.GetByteCount(), 12); + _worldPacket.WriteBits(LogDescription.GetByteCount(), 12); + _worldPacket.WriteBits(PortraitGiverText.GetByteCount(), 10); + _worldPacket.WriteBits(PortraitGiverName.GetByteCount(), 8); + _worldPacket.WriteBits(PortraitTurnInText.GetByteCount(), 10); + _worldPacket.WriteBits(PortraitTurnInName.GetByteCount(), 8); _worldPacket.WriteBit(AutoLaunched); _worldPacket.WriteBit(StartCheat); _worldPacket.WriteBit(DisplayPopup); @@ -519,8 +520,8 @@ namespace Game.Network.Packets _worldPacket.WriteBit(AutoLaunched); _worldPacket.FlushBits(); - _worldPacket.WriteBits(QuestTitle.Length, 9); - _worldPacket.WriteBits(CompletionText.Length, 12); + _worldPacket.WriteBits(QuestTitle.GetByteCount(), 9); + _worldPacket.WriteBits(CompletionText.GetByteCount(), 12); _worldPacket.WriteString(QuestTitle); _worldPacket.WriteString(CompletionText); @@ -610,7 +611,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(GreetEmoteDelay); _worldPacket.WriteUInt32(GreetEmoteType); _worldPacket.WriteUInt32(QuestDataText.Count); - _worldPacket.WriteBits(Greeting.Length, 11); + _worldPacket.WriteBits(Greeting.GetByteCount(), 11); _worldPacket.FlushBits(); foreach (GossipText gossip in QuestDataText) @@ -622,7 +623,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(gossip.QuestFlagsEx); _worldPacket.WriteBit(gossip.Repeatable); - _worldPacket.WriteBits(gossip.QuestTitle.Length, 9); + _worldPacket.WriteBits(gossip.QuestTitle.GetByteCount(), 9); _worldPacket.FlushBits(); _worldPacket.WriteString(gossip.QuestTitle); @@ -659,7 +660,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(QuestID); _worldPacket.WritePackedGuid(InitiatedBy); - _worldPacket.WriteBits(QuestTitle.Length, 10); + _worldPacket.WriteBits(QuestTitle.GetByteCount(), 10); _worldPacket.WriteString(QuestTitle); } @@ -720,7 +721,7 @@ namespace Game.Network.Packets _worldPacket.WriteInt32(ContributionRewardID); _worldPacket.WriteBit(SendErrorMessage); - _worldPacket.WriteBits(ReasonText.Length, 9); + _worldPacket.WriteBits(ReasonText.GetByteCount(), 9); _worldPacket.FlushBits(); _worldPacket.WriteString(ReasonText); @@ -826,7 +827,7 @@ namespace Game.Network.Packets _worldPacket.WriteInt32(ChoiceID); _worldPacket.WriteUInt32(Responses.Count); _worldPacket.WritePackedGuid(SenderGUID); - _worldPacket.WriteBits(Question.Length, 8); + _worldPacket.WriteBits(Question.GetByteCount(), 8); _worldPacket.WriteBit(CloseChoiceFrame); _worldPacket.FlushBits(); @@ -1231,10 +1232,10 @@ namespace Game.Network.Packets data.WriteInt32(ResponseID); data.WriteInt32(ChoiceArtFileID); - data.WriteBits(Answer.Length, 9); - data.WriteBits(Header.Length, 9); - data.WriteBits(Description.Length, 11); - data.WriteBits(Confirmation.Length, 7); + data.WriteBits(Answer.GetByteCount(), 9); + data.WriteBits(Header.GetByteCount(), 9); + data.WriteBits(Description.GetByteCount(), 11); + data.WriteBits(Confirmation.GetByteCount(), 7); data.WriteBit(Reward.HasValue); data.FlushBits(); diff --git a/Source/Game/Network/Packets/ReferAFriendPackets.cs b/Source/Game/Network/Packets/ReferAFriendPackets.cs index 82df7ebb9..c6bbffc06 100644 --- a/Source/Game/Network/Packets/ReferAFriendPackets.cs +++ b/Source/Game/Network/Packets/ReferAFriendPackets.cs @@ -17,6 +17,7 @@ using Framework.Constants; using Game.Entities; +using System; namespace Game.Network.Packets { @@ -65,7 +66,7 @@ namespace Game.Network.Packets _worldPacket .WriteInt32(Reason); // Client uses this string only if Reason == ERR_REFER_A_FRIEND_NOT_IN_GROUP || Reason == ERR_REFER_A_FRIEND_SUMMON_OFFLINE_S // but always reads it from packet - _worldPacket.WriteBits(Str.Length, 6); + _worldPacket.WriteBits(Str.GetByteCount(), 6); _worldPacket.WriteString(Str); } diff --git a/Source/Game/Network/Packets/SocialPackets.cs b/Source/Game/Network/Packets/SocialPackets.cs index 238721d1d..b10541b94 100644 --- a/Source/Game/Network/Packets/SocialPackets.cs +++ b/Source/Game/Network/Packets/SocialPackets.cs @@ -17,6 +17,7 @@ using Framework.Constants; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -80,7 +81,7 @@ namespace Game.Network.Packets _worldPacket.WriteUInt32(AreaID); _worldPacket.WriteUInt32(Level); _worldPacket.WriteUInt32(ClassID); - _worldPacket.WriteBits(Notes.Length, 10); + _worldPacket.WriteBits(Notes.GetByteCount(), 10); _worldPacket.FlushBits(); _worldPacket.WriteString(Notes); } @@ -190,7 +191,7 @@ namespace Game.Network.Packets data.WriteUInt32(AreaID); data.WriteUInt32(Level); data.WriteUInt32(ClassID); - data.WriteBits(Notes.Length, 10); + data.WriteBits(Notes.GetByteCount(), 10); data.FlushBits(); data.WriteString(Notes); } diff --git a/Source/Game/Network/Packets/SpellPackets.cs b/Source/Game/Network/Packets/SpellPackets.cs index 691afdc13..38ddd9516 100644 --- a/Source/Game/Network/Packets/SpellPackets.cs +++ b/Source/Game/Network/Packets/SpellPackets.cs @@ -1398,7 +1398,7 @@ namespace Game.Network.Packets data.WriteBit(DstLocation.HasValue); data.WriteBit(Orientation.HasValue); data.WriteBit(MapID.HasValue); - data.WriteBits(Name.Length, 7); + data.WriteBits(Name.GetByteCount(), 7); data.FlushBits(); data.WritePackedGuid(Unit); diff --git a/Source/Game/Network/Packets/SystemPackets.cs b/Source/Game/Network/Packets/SystemPackets.cs index 1d8ad557b..a5a464f09 100644 --- a/Source/Game/Network/Packets/SystemPackets.cs +++ b/Source/Game/Network/Packets/SystemPackets.cs @@ -17,6 +17,7 @@ using Framework.Constants; using Framework.Dynamic; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -277,7 +278,7 @@ namespace Game.Network.Packets foreach (var line in Text) { - _worldPacket.WriteBits(line.Length, 7); + _worldPacket.WriteBits(line.GetByteCount(), 7); _worldPacket.FlushBits(); _worldPacket.WriteString(line); } @@ -292,8 +293,8 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(ServerTimeTZ.Length, 7); - _worldPacket.WriteBits(GameTimeTZ.Length, 7); + _worldPacket.WriteBits(ServerTimeTZ.GetByteCount(), 7); + _worldPacket.WriteBits(GameTimeTZ.GetByteCount(), 7); _worldPacket.WriteString(ServerTimeTZ); _worldPacket.WriteString(GameTimeTZ); } diff --git a/Source/Game/Network/Packets/TicketPackets.cs b/Source/Game/Network/Packets/TicketPackets.cs index 6d3ecd616..b0aae1060 100644 --- a/Source/Game/Network/Packets/TicketPackets.cs +++ b/Source/Game/Network/Packets/TicketPackets.cs @@ -19,6 +19,7 @@ using Framework.Constants; using Framework.Dynamic; using Framework.GameMath; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -66,8 +67,8 @@ namespace Game.Network.Packets _worldPacket.WriteInt64(c.CharacterID); _worldPacket.WriteInt32(c.WaitTimeOverrideMinutes); - _worldPacket.WriteBits(c.Url.Length, 11); - _worldPacket.WriteBits(c.WaitTimeOverrideMessage.Length, 10); + _worldPacket.WriteBits(c.Url.GetByteCount(), 11); + _worldPacket.WriteBits(c.WaitTimeOverrideMessage.GetByteCount(), 10); _worldPacket.WriteString(c.Url); _worldPacket.WriteString(c.WaitTimeOverrideMessage); diff --git a/Source/Game/Network/Packets/WhoPackets.cs b/Source/Game/Network/Packets/WhoPackets.cs index 287db9527..bb58e31be 100644 --- a/Source/Game/Network/Packets/WhoPackets.cs +++ b/Source/Game/Network/Packets/WhoPackets.cs @@ -18,6 +18,7 @@ using Framework.Constants; using Framework.Dynamic; using Game.Entities; +using System; using System.Collections.Generic; namespace Game.Network.Packets @@ -40,7 +41,7 @@ namespace Game.Network.Packets public override void Write() { - _worldPacket.WriteBits(AccountName.Length, 11); + _worldPacket.WriteBits(AccountName.GetByteCount(), 11); _worldPacket.WriteString(AccountName); } @@ -155,7 +156,7 @@ namespace Game.Network.Packets data.WriteUInt32(GuildVirtualRealmAddress); data.WriteInt32(AreaID); - data.WriteBits(GuildName.Length, 7); + data.WriteBits(GuildName.GetByteCount(), 7); data.WriteBit(IsGM); data.WriteString(GuildName); diff --git a/Source/Game/Warden/WardenWin.cs b/Source/Game/Warden/WardenWin.cs index f26fa53db..f853c5aea 100644 --- a/Source/Game/Warden/WardenWin.cs +++ b/Source/Game/Warden/WardenWin.cs @@ -207,7 +207,7 @@ namespace Game case WardenCheckType.MPQ: case WardenCheckType.LuaStr: case WardenCheckType.Driver: - buffer.WriteUInt8(wd.Str.Length); + buffer.WriteUInt8(wd.Str.GetByteCount()); buffer.WriteString(wd.Str); break; default: