mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Scene: Fixed OnSceneComplete and OnSceneCancel handling
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user