diff options
| author | NoName <322016+Faq@users.noreply.github.com> | 2020-02-28 20:03:52 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-12-22 14:33:58 +0100 |
| commit | 61f3d51143b51b04169bd1c2ff0393d2b9be7c33 (patch) | |
| tree | 2f785946aa0861ccb30181d839c4f2812ffd1996 /src/server/game/Entities/Unit | |
| parent | 94f7d2fb49c9c9f1d2e7dc3a4fe2a368d830404f (diff) | |
Core/Movement: Implement MoveSplineFlag::Enter_Cycle (#24049)
by xvwyh
(cherry picked from commit 40542f01e3fec0bff2c6e5eadbe20e58f19b0fd8)
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 21 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 |
2 files changed, 16 insertions, 7 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 333f2760a68..9a7bd88076d 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -517,19 +517,28 @@ void Unit::UpdateSplineMovement(uint32 t_diff) movespline->updateState(t_diff); bool arrived = movespline->Finalized(); + if (movespline->isCyclic()) + { + m_splineSyncTimer.Update(t_diff); + if (m_splineSyncTimer.Passed()) + { + m_splineSyncTimer.Reset(5000); // Retail value, do not change + + WorldPackets::Movement::FlightSplineSync flightSplineSync; + flightSplineSync.Guid = GetGUID(); + flightSplineSync.SplineDist = movespline->timePassed() / movespline->Duration(); + SendMessageToSet(flightSplineSync.Write(), true); + } + } + if (arrived) DisableSpline(); - m_movesplineTimer.Update(t_diff); - if (m_movesplineTimer.Passed() || arrived) - UpdateSplinePosition(); + UpdateSplinePosition(); } void Unit::UpdateSplinePosition() { - static uint32 const positionUpdateDelay = 400; - - m_movesplineTimer.Reset(positionUpdateDelay); Movement::Location loc = movespline->ComputePosition(); if (movespline->onTransport) diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 9a8d2108e3f..10a1108f6b9 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1975,7 +1975,7 @@ class TC_GAME_API Unit : public WorldObject private: uint32 m_state; // Even derived shouldn't modify - TimeTrackerSmall m_movesplineTimer; + TimeTrackerSmall m_splineSyncTimer; Diminishing m_Diminishing; |
