diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-04-03 22:36:49 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-06-10 15:16:39 +0200 |
| commit | 36dde87249e87c5693162a6e890875d828f93d6d (patch) | |
| tree | 6b715382a474deb81b8179aeef1c45533e684b5d /src/server/scripts/Kalimdor | |
| parent | 54b16f0d167a0c5a37c91dd7140fe97597a66ac8 (diff) | |
Core/Movement: Delay creating MoveSplineInit objects used by GenericMovementGenerator to spline launch time
* This fixes inconsistent transport state detection for players exiting vehicles that are on transport (ICC gunship battle), fixes players being telerpoted to middle of nowhere on that fight
(cherry picked from commit b1a94bf94c500b64a5c4ae92642a95d048d9f392)
Diffstat (limited to 'src/server/scripts/Kalimdor')
| -rw-r--r-- | src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp index 32969c7aa04..e850034383f 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp @@ -1466,12 +1466,14 @@ public: if (Creature* chromie = instance->instance->SummonCreature(NPC_CHROMIE_3, ArthasPositions[RP5_CHROMIE_SPAWN])) { chromie->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); - Movement::PointsArray path(ChromieSplinePos, ChromieSplinePos + chromiePathSize); - Movement::MoveSplineInit init(chromie); - init.SetFly(); - init.SetWalk(true); - init.MovebyPath(path, 0); - me->GetMotionMaster()->LaunchMoveSpline(std::move(init), 0, MOTION_PRIORITY_NORMAL, POINT_MOTION_TYPE); + std::function<void(Movement::MoveSplineInit&)> initializer = [](Movement::MoveSplineInit& init) + { + Movement::PointsArray path(ChromieSplinePos, ChromieSplinePos + chromiePathSize); + init.SetFly(); + init.SetWalk(true); + init.MovebyPath(path, 0); + }; + chromie->GetMotionMaster()->LaunchMoveSpline(std::move(initializer), 0, MOTION_PRIORITY_NORMAL, POINT_MOTION_TYPE); } break; case RP5_EVENT_CHROMIE_LAND: |
