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 Game.DataStorage;
using Game.Entities;
using Game.Movement;
using Game.Spells;
using System;
using System.Collections.Generic;
@@ -717,7 +718,7 @@ namespace Game.AI
}
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);
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)
{
if (slot >= MovementSlot.Max)
if (MotionMaster.IsInvalidMovementSlot(slot))
return;
IMovementGenerator movementGenerator = GetMotionMaster().GetMotionSlot(slot);
@@ -182,7 +182,7 @@ namespace Game.Entities
public void ResumeMovement(uint timer = 0, MovementSlot slot = 0)
{
if (slot >= MovementSlot.Max)
if (MotionMaster.IsInvalidMovementSlot(slot))
return;
IMovementGenerator movementGenerator = GetMotionMaster().GetMotionSlot(slot);
+5 -4
View File
@@ -110,7 +110,7 @@ namespace Game.Movement
public void Clear(MovementSlot slot)
{
if (Empty() || slot >= MovementSlot.Max)
if (Empty() || IsInvalidMovementSlot(slot))
return;
if (_cleanFlag.HasAnyFlag(MotionMasterCleanFlag.Update))
@@ -147,7 +147,7 @@ namespace Game.Movement
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 _slot[(int)slot].GetMovementGeneratorType();
@@ -155,7 +155,7 @@ namespace Game.Movement
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 _slot[(int)slot];
@@ -814,7 +814,8 @@ namespace Game.Movement
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;