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()); 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);
} }