aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorccrs <ccrs@users.noreply.github.com>2019-10-23 03:28:57 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-18 23:18:26 +0100
commit1add1c31d8dd96be33398a7cce0ba9cfb71bae8f (patch)
tree9514664dbb0d99e68078404eb955644ea0fb6658
parent7b21b53ac941d38358b945450e51c129761b76bf (diff)
Core/Movement: prevent any Initialize queue till AddToWorld is signaled
(cherry picked from commit c9c6871659bf2be52b4656bc641df5211fcb928f)
-rw-r--r--src/server/game/Movement/MotionMaster.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp
index 5c045a79049..5521a154ee1 100644
--- a/src/server/game/Movement/MotionMaster.cpp
+++ b/src/server/game/Movement/MotionMaster.cpp
@@ -95,7 +95,10 @@ MotionMaster::~MotionMaster()
void MotionMaster::Initialize()
{
- if (HasFlag(MOTIONMASTER_FLAG_DELAYED))
+ if (HasFlag(MOTIONMASTER_FLAG_INITIALIZATION_PENDING))
+ return;
+
+ if (HasFlag(MOTIONMASTER_FLAG_UPDATE))
{
DelayedActionDefine action = [this]()
{
@@ -121,6 +124,7 @@ void MotionMaster::AddToWorld()
AddFlag(MOTIONMASTER_FLAG_INITIALIZING);
RemoveFlag(MOTIONMASTER_FLAG_INITIALIZATION_PENDING);
+ DirectInitialize();
ResolveDelayedActions();
RemoveFlag(MOTIONMASTER_FLAG_INITIALIZING);