diff options
-rw-r--r-- | src/server/game/Movement/MovementGenerators/GenericMovementGenerator.cpp | 5 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp | 12 |
2 files changed, 4 insertions, 13 deletions
diff --git a/src/server/game/Movement/MovementGenerators/GenericMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/GenericMovementGenerator.cpp index 94368304874..f8a494522c4 100644 --- a/src/server/game/Movement/MovementGenerators/GenericMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/GenericMovementGenerator.cpp @@ -59,7 +59,10 @@ bool GenericMovementGenerator::Update(Unit* owner, uint32 diff) if (!owner || HasFlag(MOVEMENTGENERATOR_FLAG_FINALIZED)) return false; - _duration.Update(diff); + // Cyclic splines never expire, so update the duration only if it's not cyclic + if (!owner->movespline->isCyclic()) + _duration.Update(diff); + if (_duration.Passed() || owner->movespline->Finalized()) { AddFlag(MOVEMENTGENERATOR_FLAG_INFORM_ENABLED); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp index 2422be16ec5..20ef0952791 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp @@ -1168,18 +1168,6 @@ class npc_ominous_cloud : public CreatureScript me->GetMotionMaster()->MoveCirclePath(YoggSaronSpawnPos.GetPositionX(), YoggSaronSpawnPos.GetPositionY(), me->GetPositionZ() + 5.0f, me->GetDistance2d(YoggSaronSpawnPos.GetPositionX(), YoggSaronSpawnPos.GetPositionY()), clockwise, 16); } - void MovementInform(uint32 type, uint32 /*id*/) override - { - if (type != EFFECT_MOTION_TYPE) - return; - - /* MoveCirclePath() add a GenericMovementGenerator that doesn't handle cyclic splines, handling only 1 round of the circle. - * This means we have to reschedule another MoveCirclePath() every time the previous one ends. - * Remove this code once GenericMovementGenerator properly handles cyclic splines. - */ - me->GetMotionMaster()->MoveCirclePath(YoggSaronSpawnPos.GetPositionX(), YoggSaronSpawnPos.GetPositionY(), me->GetPositionZ() + 5.0f, me->GetDistance2d(YoggSaronSpawnPos.GetPositionX(), YoggSaronSpawnPos.GetPositionY()), clockwise, 16); - } - bool clockwise = false; }; |