From 6e7c77a174b1c1b09e0c9104dbd1412b43f852b1 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 13 Aug 2017 11:10:18 -0400 Subject: [PATCH] Fixes crash in BattleGrounds. --- Game/BattleGrounds/BattleGround.cs | 2 +- Game/BattleGrounds/BattleGroundManager.cs | 1 + Game/BattleGrounds/Zones/EyeofStorm.cs | 2 -- Game/DungeonFinding/LFGManager.cs | 6 +++++- Game/Entities/Player/Player.cs | 1 - Game/Network/Packets/BattleGroundPackets.cs | 6 +++--- Game/Network/Packets/LFGPackets.cs | 14 +++----------- Game/Network/Packets/TicketPackets.cs | 3 +++ 8 files changed, 16 insertions(+), 19 deletions(-) diff --git a/Game/BattleGrounds/BattleGround.cs b/Game/BattleGrounds/BattleGround.cs index 8a03375f6..8a4c2f8de 100644 --- a/Game/BattleGrounds/BattleGround.cs +++ b/Game/BattleGrounds/BattleGround.cs @@ -1559,7 +1559,7 @@ namespace Game.BattleGrounds public void SendMessage2ToAll(CypherStrings entry, ChatMsg type, Player source, CypherStrings arg1 = 0, CypherStrings arg2 = 0) { - var bg_builder = new BattlegroundChatBuilder(type, entry, source, arg1, arg2); + var bg_builder = new Battleground2ChatBuilder(type, entry, source, arg1, arg2); var bg_do = new LocalizedPacketDo(bg_builder); BroadcastWorker(bg_do); } diff --git a/Game/BattleGrounds/BattleGroundManager.cs b/Game/BattleGrounds/BattleGroundManager.cs index 349e7ed31..56158c7ce 100644 --- a/Game/BattleGrounds/BattleGroundManager.cs +++ b/Game/BattleGrounds/BattleGroundManager.cs @@ -125,6 +125,7 @@ namespace Game.BattleGrounds void BuildBattlegroundStatusHeader(ref BattlefieldStatusHeader header, Battleground bg, Player player, uint ticketId, uint joinTime, ArenaTypes arenaType) { + header.Ticket = new RideTicket(); header.Ticket.RequesterGuid = player.GetGUID(); header.Ticket.Id = ticketId; header.Ticket.Type = RideType.Battlegrounds; diff --git a/Game/BattleGrounds/Zones/EyeofStorm.cs b/Game/BattleGrounds/Zones/EyeofStorm.cs index 004d40c43..173c368da 100644 --- a/Game/BattleGrounds/Zones/EyeofStorm.cs +++ b/Game/BattleGrounds/Zones/EyeofStorm.cs @@ -567,10 +567,8 @@ namespace Game.BattleGrounds m_PointState[i] = EotSPointState.Uncontrolled; m_PointBarStatus[i] = EotSProgressBarConsts.ProgressBarStateMiddle; m_PlayersNearPoint[i].Clear(); - //m_PlayersNearPoint[i].reserve(15); //tip size } m_PlayersNearPoint[EotSPoints.PlayersOutOfPoints].Clear(); - //m_PlayersNearPoint[EotSPoints.PlayersOutOfPoints].reserve(30); } void RespawnFlag(bool send_message) diff --git a/Game/DungeonFinding/LFGManager.cs b/Game/DungeonFinding/LFGManager.cs index 4f027a90a..435cfe940 100644 --- a/Game/DungeonFinding/LFGManager.cs +++ b/Game/DungeonFinding/LFGManager.cs @@ -494,7 +494,11 @@ namespace Game.DungeonFinding return; } - RideTicket ticket = new RideTicket(guid, GetQueueId(gguid), RideType.Lfg, (int)Time.UnixTime); + RideTicket ticket = new RideTicket(); + ticket.RequesterGuid = guid; + ticket.Id = GetQueueId(gguid); + ticket.Type = RideType.Lfg; + ticket.Time = (int)Time.UnixTime; string debugNames = ""; if (grp) // Begin rolecheck diff --git a/Game/Entities/Player/Player.cs b/Game/Entities/Player/Player.cs index 9d98eeb5f..a9877bae7 100644 --- a/Game/Entities/Player/Player.cs +++ b/Game/Entities/Player/Player.cs @@ -5493,7 +5493,6 @@ namespace Game.Entities SendPacket(sendSpellCharges); ActiveGlyphs activeGlyphs = new ActiveGlyphs(); - //activeGlyphs.Glyphs.reserve(GetGlyphs(GetActiveTalentGroup()).size()); foreach (uint glyphId in GetGlyphs(GetActiveTalentGroup())) { List bindableSpells = Global.DB2Mgr.GetGlyphBindableSpells(glyphId); diff --git a/Game/Network/Packets/BattleGroundPackets.cs b/Game/Network/Packets/BattleGroundPackets.cs index b276f3f41..8d81f9f1a 100644 --- a/Game/Network/Packets/BattleGroundPackets.cs +++ b/Game/Network/Packets/BattleGroundPackets.cs @@ -204,7 +204,7 @@ namespace Game.Network.Packets Ticket.Write(_worldPacket); } - public RideTicket Ticket; + public RideTicket Ticket = new RideTicket(); } public class BattlefieldStatusNeedConfirmation : ServerPacket @@ -286,7 +286,7 @@ namespace Game.Network.Packets public ulong QueueID; public ObjectGuid ClientID; public int Reason; - public RideTicket Ticket; + public RideTicket Ticket = new RideTicket(); } class BattlemasterJoin : ClientPacket @@ -339,7 +339,7 @@ namespace Game.Network.Packets AcceptedInvite = _worldPacket.HasBit(); } - public RideTicket Ticket; + public RideTicket Ticket = new RideTicket(); public bool AcceptedInvite; } diff --git a/Game/Network/Packets/LFGPackets.cs b/Game/Network/Packets/LFGPackets.cs index 54ebadc28..5f2385dc6 100644 --- a/Game/Network/Packets/LFGPackets.cs +++ b/Game/Network/Packets/LFGPackets.cs @@ -54,7 +54,7 @@ namespace Game.Network.Packets Ticket.Read(_worldPacket); } - public RideTicket Ticket; + public RideTicket Ticket = new RideTicket(); } class DFProposalResponse : ClientPacket @@ -69,7 +69,7 @@ namespace Game.Network.Packets Accepted = _worldPacket.HasBit(); } - public RideTicket Ticket; + public RideTicket Ticket = new RideTicket(); public ulong InstanceID; public uint ProposalID; public bool Accepted; @@ -194,7 +194,7 @@ namespace Game.Network.Packets _worldPacket.FlushBits(); } - public RideTicket Ticket; + public RideTicket Ticket = new RideTicket(); public byte SubType; public byte Reason; public List Slots = new List(); @@ -735,14 +735,6 @@ namespace Game.Network.Packets public class RideTicket { - public RideTicket(ObjectGuid requesterGuid, uint id, RideType type, int time) - { - RequesterGuid = requesterGuid; - Id = id; - Type = type; - Time = time; - } - public void Read(WorldPacket data) { RequesterGuid = data.ReadPackedGuid(); diff --git a/Game/Network/Packets/TicketPackets.cs b/Game/Network/Packets/TicketPackets.cs index 23e3e8b08..21316f26f 100644 --- a/Game/Network/Packets/TicketPackets.cs +++ b/Game/Network/Packets/TicketPackets.cs @@ -307,7 +307,9 @@ namespace Game.Network.Packets { public void Read(WorldPacket data) { + RideTicket = new RideTicket(); RideTicket.Read(data); + GroupFinderActivityID = data.ReadUInt32(); LastTitleAuthorGuid = data.ReadPackedGuid(); LastDescriptionAuthorGuid = data.ReadPackedGuid(); @@ -336,6 +338,7 @@ namespace Game.Network.Packets { public void Read(WorldPacket data) { + RideTicket = new RideTicket(); RideTicket.Read(data); Comment = data.ReadString(data.ReadBits(9));