From 708e5dd55dbd6970f975b385f0a912359f4d2fbc Mon Sep 17 00:00:00 2001 From: Golrag Date: Fri, 31 Oct 2025 18:32:42 +0100 Subject: [PATCH] Core/Movement: Added ActionResultSetter for MovementStopReason to LaunchMoveSpline --- src/server/game/Movement/MotionMaster.cpp | 4 ++-- src/server/game/Movement/MotionMaster.h | 2 +- src/server/game/Scripting/v2/ScriptActions.h | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index 160734e6ba..ed45d9e98e 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -1186,7 +1186,7 @@ void MotionMaster::MoveFormation(Unit* leader, float range, float angle, uint32 } } -void MotionMaster::LaunchMoveSpline(std::function&& initializer, uint32 id/*= 0*/, MovementGeneratorPriority priority/* = MOTION_PRIORITY_NORMAL*/, MovementGeneratorType type/*= EFFECT_MOTION_TYPE*/) +void MotionMaster::LaunchMoveSpline(std::function&& initializer, uint32 id/*= 0*/, MovementGeneratorPriority priority/* = MOTION_PRIORITY_NORMAL*/, MovementGeneratorType type/*= EFFECT_MOTION_TYPE*/, Scripting::v2::ActionResultSetter&& scriptResult /*= {}*/) { if (IsInvalidMovementGeneratorType(type)) { @@ -1196,7 +1196,7 @@ void MotionMaster::LaunchMoveSpline(std::functionGetGUID(), id, type, priority); - GenericMovementGenerator* movement = new GenericMovementGenerator(std::move(initializer), type, id); + GenericMovementGenerator* movement = new GenericMovementGenerator(std::move(initializer), type, id, { .ScriptResult = scriptResult }); movement->Priority = priority; Add(movement); } diff --git a/src/server/game/Movement/MotionMaster.h b/src/server/game/Movement/MotionMaster.h index 438267011b..23d48d0b6e 100644 --- a/src/server/game/Movement/MotionMaster.h +++ b/src/server/game/Movement/MotionMaster.h @@ -237,7 +237,7 @@ class TC_GAME_API MotionMaster Scripting::v2::ActionResultSetter&& scriptResult = {}); void MoveFormation(Unit* leader, float range, float angle, uint32 point1, uint32 point2); - void LaunchMoveSpline(std::function&& initializer, uint32 id = 0, MovementGeneratorPriority priority = MOTION_PRIORITY_NORMAL, MovementGeneratorType type = EFFECT_MOTION_TYPE); + void LaunchMoveSpline(std::function&& initializer, uint32 id = 0, MovementGeneratorPriority priority = MOTION_PRIORITY_NORMAL, MovementGeneratorType type = EFFECT_MOTION_TYPE, Scripting::v2::ActionResultSetter&& scriptResult = {}); private: typedef std::unique_ptr MovementGeneratorPointer; diff --git a/src/server/game/Scripting/v2/ScriptActions.h b/src/server/game/Scripting/v2/ScriptActions.h index b02d2df185..4308c7e16f 100644 --- a/src/server/game/Scripting/v2/ScriptActions.h +++ b/src/server/game/Scripting/v2/ScriptActions.h @@ -19,6 +19,7 @@ #define TRINITYCORE_SCRIPT_ACTIONS_H #include "ScriptActionResult.h" +#include "Define.h" #include "Duration.h" namespace Scripting::v2 @@ -28,7 +29,7 @@ class ActionBase; template class ActionResultSetter; -class ActionBase +class TC_GAME_API ActionBase { public: ActionBase();