diff options
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScriptMgr.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Movement/MotionMaster.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Movement/MovementDefines.h | 3 |
4 files changed, 8 insertions, 7 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 266cfd08c56..34ac2eea2ac 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -920,7 +920,7 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) } case SMART_EVENT_MOVEMENTINFORM: { - if (e.event.movementInform.type >= MAX_MOTION_TYPE) + if (IsInvalidMovementGeneratorType(e.event.movementInform.type)) { TC_LOG_ERROR("sql.sql", "SmartAIMgr: Entry " SI64FMTD " SourceType %u Event %u Action %u uses invalid Motion type %u, skipped.", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType(), e.event.movementInform.type); return false; diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 093fa4170ef..c519fbeb8f9 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -9785,7 +9785,7 @@ void Unit::StopMoving() void Unit::PauseMovement(uint32 timer/* = 0*/, uint8 slot/* = 0*/, bool forced/* = true*/) { - if (slot >= MAX_MOTION_SLOT) + if (IsInvalidMovementSlot(slot)) return; if (MovementGenerator* movementGenerator = GetMotionMaster()->GetMotionSlot(MovementSlot(slot))) @@ -9797,7 +9797,7 @@ void Unit::PauseMovement(uint32 timer/* = 0*/, uint8 slot/* = 0*/, bool forced/* void Unit::ResumeMovement(uint32 timer/* = 0*/, uint8 slot/* = 0*/) { - if (slot >= MAX_MOTION_SLOT) + if (IsInvalidMovementSlot(slot)) return; if (MovementGenerator* movementGenerator = GetMotionMaster()->GetMotionSlot(MovementSlot(slot))) diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index c66f6f5a935..d2ebbf22faa 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -137,7 +137,7 @@ void MotionMaster::Clear(bool reset /*= true*/) void MotionMaster::Clear(MovementSlot slot) { - if (empty() || slot >= MAX_MOTION_SLOT) + if (empty() || IsInvalidMovementSlot(slot)) return; if (_cleanFlag & MOTIONMMASTER_CLEANFLAG_UPDATE) @@ -174,7 +174,7 @@ MovementGeneratorType MotionMaster::GetCurrentMovementGeneratorType() const MovementGeneratorType MotionMaster::GetMotionSlotType(MovementSlot slot) const { - if (empty() || slot >= MAX_MOTION_SLOT || !_slot[slot]) + if (empty() || IsInvalidMovementSlot(slot) || !_slot[slot]) return MAX_MOTION_TYPE; return _slot[slot]->GetMovementGeneratorType(); @@ -182,7 +182,7 @@ MovementGeneratorType MotionMaster::GetMotionSlotType(MovementSlot slot) const MovementGenerator* MotionMaster::GetMotionSlot(MovementSlot slot) const { - if (empty() || slot >= MAX_MOTION_SLOT || !_slot[slot]) + if (empty() || IsInvalidMovementSlot(slot) || !_slot[slot]) return nullptr; return _slot[slot]; diff --git a/src/server/game/Movement/MovementDefines.h b/src/server/game/Movement/MovementDefines.h index e414c6f92bd..a19dedcba5e 100644 --- a/src/server/game/Movement/MovementDefines.h +++ b/src/server/game/Movement/MovementDefines.h @@ -99,6 +99,7 @@ struct JumpArrivalCastArgs ObjectGuid Target; }; -inline bool IsInvalidMovementGeneratorType(MovementGeneratorType const type) { return type == MAX_DB_MOTION_TYPE || type == MAX_MOTION_TYPE; } +inline bool IsInvalidMovementGeneratorType(uint8 const type) { return type == MAX_DB_MOTION_TYPE || type >= MAX_MOTION_TYPE; } +inline bool IsInvalidMovementSlot(uint8 const slot) { return slot >= MAX_MOTION_SLOT; } #endif |