Core/Groups: Fixes groups staying linked with players.
This commit is contained in:
+18
-5
@@ -3,7 +3,6 @@
|
||||
|
||||
using Framework.Constants;
|
||||
using Framework.Database;
|
||||
using Framework.Dynamic;
|
||||
using Game.BattleGrounds;
|
||||
using Game.Collision;
|
||||
using Game.DataStorage;
|
||||
@@ -15,7 +14,6 @@ using Game.Scenarios;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
|
||||
@@ -62,7 +60,7 @@ namespace Game.Maps
|
||||
_worldStateValues = Global.WorldStateMgr.GetInitialWorldStatesForMap(this);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
public virtual void Dispose()
|
||||
{
|
||||
// Delete all waiting spawns
|
||||
// This doesn't delete from database.
|
||||
@@ -389,7 +387,6 @@ namespace Game.Maps
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void AddInfiniteAOIVignette(VignetteData vignette)
|
||||
{
|
||||
_infiniteAOIVignettes.Add(vignette);
|
||||
@@ -4905,10 +4902,14 @@ namespace Game.Maps
|
||||
}
|
||||
}
|
||||
|
||||
~InstanceMap()
|
||||
public override void Dispose()
|
||||
{
|
||||
if (i_instanceLock != null)
|
||||
i_instanceLock.SetInUse(false);
|
||||
|
||||
i_owningGroupRef.Dispose();
|
||||
|
||||
base.Dispose();
|
||||
}
|
||||
|
||||
public override void InitVisibilityDistance()
|
||||
@@ -5339,6 +5340,18 @@ namespace Game.Maps
|
||||
InitVisibilityDistance();
|
||||
}
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
if (m_bg != null)
|
||||
{
|
||||
//unlink to prevent crash, always unlink all pointer reference before destruction
|
||||
m_bg.SetBgMap(null);
|
||||
m_bg.Dispose();
|
||||
}
|
||||
|
||||
base.Dispose();
|
||||
}
|
||||
|
||||
public override void InitVisibilityDistance()
|
||||
{
|
||||
m_VisibleDistance = IsBattleArena() ? Global.WorldMgr.GetMaxVisibleDistanceInArenas() : Global.WorldMgr.GetMaxVisibleDistanceInBG();
|
||||
|
||||
Reference in New Issue
Block a user