From 78ef91975dab193b61c1fd8cc7b94b730b4152c0 Mon Sep 17 00:00:00 2001 From: ModoX Date: Sun, 1 Jan 2023 23:47:19 +0100 Subject: Core/Scene: Fixed OnSceneComplete and OnSceneCancel handling --- src/server/game/Entities/Player/SceneMgr.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src') 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); } -- cgit v1.2.3