Core/Movement: use helpers for validation
Port From (https://github.com/TrinityCore/TrinityCore/commit/0b6049fe0bf49a8c21114960cb7a6522f48c8308)
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user