From 0fa2b60d89a15ab17e53cae97b052a971cd54c2b Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 6 Oct 2022 20:53:15 -0400 Subject: [PATCH] Core/Maps: Ensure one of InstanceScript::Create or InstanceScript::Load is called on map creation Port From (https://github.com/TrinityCore/TrinityCore/commit/8c3c07cdf4dfa8515aa756e669c2d216648870e8) --- Source/Game/Maps/Map.cs | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/Source/Game/Maps/Map.cs b/Source/Game/Maps/Map.cs index 3563bfb4d..6d72de399 100644 --- a/Source/Game/Maps/Map.cs +++ b/Source/Game/Maps/Map.cs @@ -4923,21 +4923,26 @@ namespace Game.Maps if (i_data == null) return; - if (i_instanceLock != null) + if (i_instanceLock == null || i_instanceLock.GetInstanceId() == 0) { - MapDb2Entries entries = new(GetEntry(), GetMapDifficulty()); - if (entries.IsInstanceIdBound() || IsRaid() || entries.MapDifficulty.IsRestoringDungeonState() || !i_owningGroupRef.IsValid()) - { - InstanceLockData lockData = i_instanceLock.GetInstanceInitializationData(); - i_data.SetCompletedEncountersMask(lockData.CompletedEncountersMask); - i_data.SetEntranceLocation(lockData.EntranceWorldSafeLocId); - if (!lockData.Data.IsEmpty()) - { - Log.outDebug(LogFilter.Maps, "Loading instance data for `{0}` with id {1}", - Global.ObjectMgr.GetScriptName(i_script_id), i_InstanceId); - i_data.Load(lockData.Data); - } - } + i_data.Create(); + return; + } + + MapDb2Entries entries = new(GetEntry(), GetMapDifficulty()); + if (!entries.IsInstanceIdBound() || !IsRaid() || !entries.MapDifficulty.IsRestoringDungeonState() || i_owningGroupRef.IsValid()) + { + i_data.Create(); + return; + } + + InstanceLockData lockData = i_instanceLock.GetInstanceInitializationData(); + i_data.SetCompletedEncountersMask(lockData.CompletedEncountersMask); + i_data.SetEntranceLocation(lockData.EntranceWorldSafeLocId); + if (!lockData.Data.IsEmpty()) + { + Log.outDebug(LogFilter.Maps, $"Loading instance data for `{Global.ObjectMgr.GetScriptName(i_script_id)}` with id {i_InstanceId}"); + i_data.Load(lockData.Data); } else i_data.Create();