Core/MotionMaster: cleanup use of _expireList

Port From (https://github.com/TrinityCore/TrinityCore/commit/b2d1b11326ed70325d6bbd4b4558f9c4e5f6f300)
This commit is contained in:
hondacrx
2020-05-06 14:46:28 -04:00
parent e81b1e3ba7
commit d6aea63269
+10 -12
View File
@@ -80,13 +80,15 @@ namespace Game.Movement
Cypher.Assert(!Empty());
_cleanFlag |= MMCleanFlag.Update;
bool isMoveGenUpdateSuccess = Top().Update(_owner, diff);
_cleanFlag &= ~MMCleanFlag.Update;
if (!isMoveGenUpdateSuccess)
if (!Top().Update(_owner, diff))
{
_cleanFlag &= ~MMCleanFlag.Update;
MovementExpired();
}
else
_cleanFlag &= ~MMCleanFlag.Update;
if (_expireList != null)
if (!_expireList.Empty())
ClearExpireList();
}
@@ -107,12 +109,9 @@ namespace Game.Movement
void ClearExpireList()
{
for (int i = 0; i < _expireList.Count; ++i)
{
IMovementGenerator mg = _expireList[i];
DirectDelete(mg);
}
DirectDelete(_expireList[i]);
_expireList = null;
_expireList.Clear();
if (Empty())
Initialize();
@@ -735,8 +734,7 @@ namespace Game.Movement
{
if (IsStatic(curr))
return;
if (_expireList == null)
_expireList = new List<IMovementGenerator>();
_expireList.Add(curr);
}