Core/MotionMaster: cleanup use of _expireList
Port From (https://github.com/TrinityCore/TrinityCore/commit/b2d1b11326ed70325d6bbd4b4558f9c4e5f6f300)
This commit is contained in:
@@ -80,13 +80,15 @@ namespace Game.Movement
|
|||||||
Cypher.Assert(!Empty());
|
Cypher.Assert(!Empty());
|
||||||
|
|
||||||
_cleanFlag |= MMCleanFlag.Update;
|
_cleanFlag |= MMCleanFlag.Update;
|
||||||
bool isMoveGenUpdateSuccess = Top().Update(_owner, diff);
|
if (!Top().Update(_owner, diff))
|
||||||
_cleanFlag &= ~MMCleanFlag.Update;
|
{
|
||||||
|
_cleanFlag &= ~MMCleanFlag.Update;
|
||||||
if (!isMoveGenUpdateSuccess)
|
|
||||||
MovementExpired();
|
MovementExpired();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_cleanFlag &= ~MMCleanFlag.Update;
|
||||||
|
|
||||||
if (_expireList != null)
|
if (!_expireList.Empty())
|
||||||
ClearExpireList();
|
ClearExpireList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,12 +109,9 @@ namespace Game.Movement
|
|||||||
void ClearExpireList()
|
void ClearExpireList()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < _expireList.Count; ++i)
|
for (int i = 0; i < _expireList.Count; ++i)
|
||||||
{
|
DirectDelete(_expireList[i]);
|
||||||
IMovementGenerator mg = _expireList[i];
|
|
||||||
DirectDelete(mg);
|
|
||||||
}
|
|
||||||
|
|
||||||
_expireList = null;
|
_expireList.Clear();
|
||||||
|
|
||||||
if (Empty())
|
if (Empty())
|
||||||
Initialize();
|
Initialize();
|
||||||
@@ -735,8 +734,7 @@ namespace Game.Movement
|
|||||||
{
|
{
|
||||||
if (IsStatic(curr))
|
if (IsStatic(curr))
|
||||||
return;
|
return;
|
||||||
if (_expireList == null)
|
|
||||||
_expireList = new List<IMovementGenerator>();
|
|
||||||
_expireList.Add(curr);
|
_expireList.Add(curr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user