diff options
5 files changed, 8 insertions, 12 deletions
diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index 74feedb2740..4fdae221e41 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -594,12 +594,12 @@ void MotionMaster::MoveTargetedHome() } } -void MotionMaster::MoveRandom(float wanderDistance/* = 0.0f*/, bool force2DPositionRelocation/* = false*/) +void MotionMaster::MoveRandom(float wanderDistance) { if (_owner->GetTypeId() == TYPEID_UNIT) { TC_LOG_DEBUG("movement.motionmaster", "MotionMaster::MoveRandom: '{}', started random movement (spawnDist: {})", _owner->GetGUID().ToString(), wanderDistance); - Add(new RandomMovementGenerator<Creature>(wanderDistance, force2DPositionRelocation), MOTION_SLOT_DEFAULT); + Add(new RandomMovementGenerator<Creature>(wanderDistance), MOTION_SLOT_DEFAULT); } } diff --git a/src/server/game/Movement/MotionMaster.h b/src/server/game/Movement/MotionMaster.h index 81f7c92fc72..6f4957c37a3 100644 --- a/src/server/game/Movement/MotionMaster.h +++ b/src/server/game/Movement/MotionMaster.h @@ -153,7 +153,7 @@ class TC_GAME_API MotionMaster void MoveIdle(); void MoveTargetedHome(); - void MoveRandom(float wanderDistance = 0.0f, bool force2DPositionRelocation = false); + void MoveRandom(float wanderDistance = 0.0f); void MoveFollow(Unit* target, float dist, ChaseAngle angle, MovementSlot slot = MOTION_SLOT_ACTIVE); void MoveChase(Unit* target, Optional<ChaseRange> dist = {}, Optional<ChaseAngle> angle = {}); void MoveChase(Unit* target, float dist, float angle) { MoveChase(target, ChaseRange(dist), ChaseAngle(angle)); } diff --git a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp index 4e37347275a..a41db1336df 100644 --- a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp @@ -25,7 +25,7 @@ #include "Random.h" template<class T> -RandomMovementGenerator<T>::RandomMovementGenerator(float distance/* = 0.0f*/, bool force2DPositionRelocation/* = false*/) : _timer(0), _reference(), _wanderDistance(distance), _wanderSteps(0), _force2DPositionRelocation(force2DPositionRelocation) +RandomMovementGenerator<T>::RandomMovementGenerator(float distance) : _timer(0), _reference(), _wanderDistance(distance), _wanderSteps(0) { this->Mode = MOTION_MODE_DEFAULT; this->Priority = MOTION_PRIORITY_NORMAL; @@ -33,7 +33,7 @@ RandomMovementGenerator<T>::RandomMovementGenerator(float distance/* = 0.0f*/, b this->BaseUnitState = UNIT_STATE_ROAMING; } -template RandomMovementGenerator<Creature>::RandomMovementGenerator(float/* distance*/, bool/* force2DPositionRelocation*/); +template RandomMovementGenerator<Creature>::RandomMovementGenerator(float/* distance*/); template<class T> MovementGeneratorType RandomMovementGenerator<T>::GetMovementGeneratorType() const @@ -124,10 +124,7 @@ void RandomMovementGenerator<Creature>::SetRandomLocation(Creature* owner) Position position(_reference); float distance = frand(0.f, _wanderDistance); float angle = frand(0.f, float(M_PI * 2)); - if (_force2DPositionRelocation) - owner->GetNearPoint2D(nullptr, position.m_positionX, position.m_positionY, distance, frand(0.f, 2.f * float(M_PI))); - else - owner->MovePositionToFirstCollision(position, distance, angle); + owner->MovePositionToFirstCollision(position, distance, angle); // Check if the destination is in LOS if (!owner->IsWithinLOS(position.GetPositionX(), position.GetPositionY(), position.GetPositionZ())) diff --git a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.h b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.h index 2ebd8b64acc..812297fa212 100644 --- a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.h +++ b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.h @@ -28,7 +28,7 @@ template<class T> class RandomMovementGenerator : public MovementGeneratorMedium<T, RandomMovementGenerator<T>> { public: - explicit RandomMovementGenerator(float distance = 0.0f, bool force2DPositionRelocation = false); + explicit RandomMovementGenerator(float distance = 0.0f); MovementGeneratorType GetMovementGeneratorType() const override; @@ -51,7 +51,6 @@ class RandomMovementGenerator : public MovementGeneratorMedium<T, RandomMovement Position _reference; float _wanderDistance; uint8 _wanderSteps; - bool _force2DPositionRelocation; }; #endif diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index a8b8db34056..59317024b16 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -736,7 +736,7 @@ struct boss_the_lich_king : public BossAI summons.Summon(summon); summon->SetReactState(REACT_PASSIVE); summon->SetSpeedRate(MOVE_FLIGHT, 0.5f); - summon->GetMotionMaster()->MoveRandom(5.0f, true); + summon->GetMotionMaster()->MoveRandom(10.0f); if (!events.IsInPhase(PHASE_FROSTMOURNE)) summon->m_Events.AddEvent(new VileSpiritActivateEvent(summon), summon->m_Events.CalculateTime(15s)); return; |
