diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-02-05 16:24:13 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-02-05 16:24:13 +0100 |
commit | b6965b2c30eb3317228b328a0c1da71235d7c257 (patch) | |
tree | 8aa5b2295c1790a1873e148082ab1b6e92cb90db /src/server/game/Scripting/ScriptMgr.cpp | |
parent | 56d0f7a970d24bb71a3e6a27e72fe9bc41eb8246 (diff) |
Core/Objects: Move EventProcessor update to WorldObject::Update
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.cpp')
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 2a60e031416..74c7d0ed747 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -447,6 +447,10 @@ class CreatureGameObjectAreaTriggerScriptRegistrySwapHooks // Hook which is called before a gameobject is swapped static void UnloadResetScript(GameObject* gameobject) { + // Remove deletable events only, + // otherwise it causes crashes with non-deletable spell events. + gameobject->m_Events.KillAllEvents(false); + gameobject->AI()->Reset(); } @@ -461,6 +465,10 @@ class CreatureGameObjectAreaTriggerScriptRegistrySwapHooks // Hook which is called before a areatrigger is swapped static void UnloadResetScript(AreaTrigger* at) { + // Remove deletable events only, + // otherwise it causes crashes with non-deletable spell events. + at->m_Events.KillAllEvents(false); + at->AI()->OnRemove(); } |