Core/Maps: Ensure one of InstanceScript::Create or InstanceScript::Load is called on map creation
Port From (https://github.com/TrinityCore/TrinityCore/commit/8c3c07cdf4dfa8515aa756e669c2d216648870e8)
This commit is contained in:
+19
-14
@@ -4923,21 +4923,26 @@ namespace Game.Maps
|
|||||||
if (i_data == null)
|
if (i_data == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (i_instanceLock != null)
|
if (i_instanceLock == null || i_instanceLock.GetInstanceId() == 0)
|
||||||
{
|
{
|
||||||
MapDb2Entries entries = new(GetEntry(), GetMapDifficulty());
|
i_data.Create();
|
||||||
if (entries.IsInstanceIdBound() || IsRaid() || entries.MapDifficulty.IsRestoringDungeonState() || !i_owningGroupRef.IsValid())
|
return;
|
||||||
{
|
}
|
||||||
InstanceLockData lockData = i_instanceLock.GetInstanceInitializationData();
|
|
||||||
i_data.SetCompletedEncountersMask(lockData.CompletedEncountersMask);
|
MapDb2Entries entries = new(GetEntry(), GetMapDifficulty());
|
||||||
i_data.SetEntranceLocation(lockData.EntranceWorldSafeLocId);
|
if (!entries.IsInstanceIdBound() || !IsRaid() || !entries.MapDifficulty.IsRestoringDungeonState() || i_owningGroupRef.IsValid())
|
||||||
if (!lockData.Data.IsEmpty())
|
{
|
||||||
{
|
i_data.Create();
|
||||||
Log.outDebug(LogFilter.Maps, "Loading instance data for `{0}` with id {1}",
|
return;
|
||||||
Global.ObjectMgr.GetScriptName(i_script_id), i_InstanceId);
|
}
|
||||||
i_data.Load(lockData.Data);
|
|
||||||
}
|
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
|
else
|
||||||
i_data.Create();
|
i_data.Create();
|
||||||
|
|||||||
Reference in New Issue
Block a user