Core/Movement: use helpers for validation

Port From (https://github.com/TrinityCore/TrinityCore/commit/0b6049fe0bf49a8c21114960cb7a6522f48c8308)
This commit is contained in:
hondacrx
2021-09-26 13:49:13 -04:00
parent 53ad19d2f9
commit cf79d69487
3 changed files with 9 additions and 7 deletions
@@ -19,6 +19,7 @@ using Framework.Constants;
using Framework.Database; using Framework.Database;
using Game.DataStorage; using Game.DataStorage;
using Game.Entities; using Game.Entities;
using Game.Movement;
using Game.Spells; using Game.Spells;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@@ -717,7 +718,7 @@ namespace Game.AI
} }
case SmartEvents.Movementinform: case SmartEvents.Movementinform:
{ {
if (e.Event.movementInform.type >= (uint)MovementGeneratorType.Max) if (MotionMaster.IsInvalidMovementGeneratorType((MovementGeneratorType)e.Event.movementInform.type))
{ {
Log.outError(LogFilter.ScriptsAi, "SmartAIMgr: Entry {0} SourceType {1} Event {2} Action {3} uses invalid Motion type {4}, skipped.", e.EntryOrGuid, e.GetScriptType(), e.EventId, e.GetActionType(), e.Event.movementInform.type); Log.outError(LogFilter.ScriptsAi, "SmartAIMgr: Entry {0} SourceType {1} Event {2} Action {3} uses invalid Motion type {4}, skipped.", e.EntryOrGuid, e.GetScriptType(), e.EventId, e.GetActionType(), e.Event.movementInform.type);
return false; return false;
+2 -2
View File
@@ -169,7 +169,7 @@ namespace Game.Entities
public void PauseMovement(uint timer = 0, MovementSlot slot = 0, bool forced = true) public void PauseMovement(uint timer = 0, MovementSlot slot = 0, bool forced = true)
{ {
if (slot >= MovementSlot.Max) if (MotionMaster.IsInvalidMovementSlot(slot))
return; return;
IMovementGenerator movementGenerator = GetMotionMaster().GetMotionSlot(slot); IMovementGenerator movementGenerator = GetMotionMaster().GetMotionSlot(slot);
@@ -182,7 +182,7 @@ namespace Game.Entities
public void ResumeMovement(uint timer = 0, MovementSlot slot = 0) public void ResumeMovement(uint timer = 0, MovementSlot slot = 0)
{ {
if (slot >= MovementSlot.Max) if (MotionMaster.IsInvalidMovementSlot(slot))
return; return;
IMovementGenerator movementGenerator = GetMotionMaster().GetMotionSlot(slot); IMovementGenerator movementGenerator = GetMotionMaster().GetMotionSlot(slot);
+5 -4
View File
@@ -110,7 +110,7 @@ namespace Game.Movement
public void Clear(MovementSlot slot) public void Clear(MovementSlot slot)
{ {
if (Empty() || slot >= MovementSlot.Max) if (Empty() || IsInvalidMovementSlot(slot))
return; return;
if (_cleanFlag.HasAnyFlag(MotionMasterCleanFlag.Update)) if (_cleanFlag.HasAnyFlag(MotionMasterCleanFlag.Update))
@@ -147,7 +147,7 @@ namespace Game.Movement
public MovementGeneratorType GetMotionSlotType(MovementSlot slot) public MovementGeneratorType GetMotionSlotType(MovementSlot slot)
{ {
if (Empty() || slot >= MovementSlot.Max || _slot[(int)slot] == null) if (Empty() || IsInvalidMovementSlot(slot) || _slot[(int)slot] == null)
return MovementGeneratorType.Max; return MovementGeneratorType.Max;
return _slot[(int)slot].GetMovementGeneratorType(); return _slot[(int)slot].GetMovementGeneratorType();
@@ -155,7 +155,7 @@ namespace Game.Movement
public IMovementGenerator GetMotionSlot(MovementSlot slot) public IMovementGenerator GetMotionSlot(MovementSlot slot)
{ {
if (Empty() || slot >= MovementSlot.Max || _slot[(int)slot] == null) if (Empty() || IsInvalidMovementSlot(slot) || _slot[(int)slot] == null)
return null; return null;
return _slot[(int)slot]; return _slot[(int)slot];
@@ -814,7 +814,8 @@ namespace Game.Movement
return (movement == staticIdleMovement); return (movement == staticIdleMovement);
} }
bool IsInvalidMovementGeneratorType(MovementGeneratorType type) { return type == MovementGeneratorType.MaxDB || type == MovementGeneratorType.Max; } public static bool IsInvalidMovementGeneratorType(MovementGeneratorType type) { return type == MovementGeneratorType.MaxDB || type >= MovementGeneratorType.Max; }
public static bool IsInvalidMovementSlot(MovementSlot slot) { return slot >= MovementSlot.Max; }
static uint splineId; static uint splineId;