diff options
author | ModoX <moardox@gmail.com> | 2023-01-01 23:47:19 +0100 |
---|---|---|
committer | ModoX <moardox@gmail.com> | 2023-01-01 23:47:30 +0100 |
commit | 78ef91975dab193b61c1fd8cc7b94b730b4152c0 (patch) | |
tree | 4e685dbd310da5e3b9fcf1b6e931391f5d822096 | |
parent | bd33d61a61f3e9edd7aa7e27ab83cf9e9af45404 (diff) |
Core/Scene: Fixed OnSceneComplete and OnSceneCancel handling
-rw-r--r-- | src/server/game/Entities/Player/SceneMgr.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/server/game/Entities/Player/SceneMgr.cpp b/src/server/game/Entities/Player/SceneMgr.cpp index 28978fd60ea..7f857efbb78 100644 --- a/src/server/game/Entities/Player/SceneMgr.cpp +++ b/src/server/game/Entities/Player/SceneMgr.cpp @@ -121,19 +121,19 @@ void SceneMgr::OnSceneCancel(uint32 sceneInstanceID) if (_isDebuggingScenes) ChatHandler(GetPlayer()->GetSession()).PSendSysMessage(LANG_COMMAND_SCENE_DEBUG_CANCEL, sceneInstanceID); - SceneTemplate const* sceneTemplate = GetSceneTemplateFromInstanceId(sceneInstanceID); - if (sceneTemplate->PlaybackFlags.HasFlag(SceneFlag::NotCancelable)) + SceneTemplate sceneTemplate = *GetSceneTemplateFromInstanceId(sceneInstanceID); + if (sceneTemplate.PlaybackFlags.HasFlag(SceneFlag::NotCancelable)) return; // Must be done before removing aura RemoveSceneInstanceId(sceneInstanceID); - if (sceneTemplate->SceneId != 0) - RemoveAurasDueToSceneId(sceneTemplate->SceneId); + if (sceneTemplate.SceneId != 0) + RemoveAurasDueToSceneId(sceneTemplate.SceneId); - sScriptMgr->OnSceneCancel(GetPlayer(), sceneInstanceID, sceneTemplate); + sScriptMgr->OnSceneCancel(GetPlayer(), sceneInstanceID, &sceneTemplate); - if (sceneTemplate->PlaybackFlags.HasFlag(SceneFlag::FadeToBlackscreenOnCancel)) + if (sceneTemplate.PlaybackFlags.HasFlag(SceneFlag::FadeToBlackscreenOnCancel)) CancelScene(sceneInstanceID, false); } @@ -145,17 +145,17 @@ void SceneMgr::OnSceneComplete(uint32 sceneInstanceID) if (_isDebuggingScenes) ChatHandler(GetPlayer()->GetSession()).PSendSysMessage(LANG_COMMAND_SCENE_DEBUG_COMPLETE, sceneInstanceID); - SceneTemplate const* sceneTemplate = GetSceneTemplateFromInstanceId(sceneInstanceID); + SceneTemplate sceneTemplate = *GetSceneTemplateFromInstanceId(sceneInstanceID); // Must be done before removing aura RemoveSceneInstanceId(sceneInstanceID); - if (sceneTemplate->SceneId != 0) - RemoveAurasDueToSceneId(sceneTemplate->SceneId); + if (sceneTemplate.SceneId != 0) + RemoveAurasDueToSceneId(sceneTemplate.SceneId); - sScriptMgr->OnSceneComplete(GetPlayer(), sceneInstanceID, sceneTemplate); + sScriptMgr->OnSceneComplete(GetPlayer(), sceneInstanceID, &sceneTemplate); - if (sceneTemplate->PlaybackFlags.HasFlag(SceneFlag::FadeToBlackscreenOnComplete)) + if (sceneTemplate.PlaybackFlags.HasFlag(SceneFlag::FadeToBlackscreenOnComplete)) CancelScene(sceneInstanceID, false); } |