aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Scripting/ScriptMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-02-05 16:24:13 +0100
committerShauren <shauren.trinity@gmail.com>2023-02-05 16:24:13 +0100
commitb6965b2c30eb3317228b328a0c1da71235d7c257 (patch)
tree8aa5b2295c1790a1873e148082ab1b6e92cb90db /src/server/game/Scripting/ScriptMgr.cpp
parent56d0f7a970d24bb71a3e6a27e72fe9bc41eb8246 (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.cpp8
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();
}