Core/Instances: Fixed assertion failure with instance id based lockouts

Port From (https://github.com/TrinityCore/TrinityCore/commit/7dc25889c6f8785a8d8a98c990e2421ca9b2a0c7)
This commit is contained in:
hondacrx
2023-01-04 16:51:05 -05:00
parent a97923510b
commit 25f08ed6c9
@@ -310,8 +310,9 @@ namespace Game.Maps
{
var sharedData = _instanceLockDataById.LookupByKey(updateEvent.InstanceId);
Cypher.Assert(sharedData != null);
Cypher.Assert(sharedData.InstanceId == updateEvent.InstanceId);
Cypher.Assert(sharedData.InstanceId == 0 || sharedData.InstanceId == updateEvent.InstanceId);
sharedData.Data = updateEvent.NewData;
sharedData.InstanceId = updateEvent.InstanceId;
if (updateEvent.CompletedEncounter != null)
{
sharedData.CompletedEncountersMask |= 1u << updateEvent.CompletedEncounter.Bit;
@@ -519,7 +520,7 @@ namespace Game.Maps
public uint GetInstanceId() { return _instanceId; }
public virtual void SetInstanceId(uint instanceId) { _instanceId = instanceId; }
public void SetInstanceId(uint instanceId) { _instanceId = instanceId; }
public DateTime GetExpiryTime() { return _expiryTime; }
@@ -552,7 +553,6 @@ namespace Game.Maps
class SharedInstanceLock : InstanceLock
{
/// <summary>
/// Instance id based locks have two states
/// One shared by everyone, which is the real state used by instance
@@ -565,12 +565,6 @@ namespace Game.Maps
_sharedData = sharedData;
}
public override void SetInstanceId(uint instanceId)
{
base.SetInstanceId(instanceId);
_sharedData.InstanceId = instanceId;
}
public override InstanceLockData GetInstanceInitializationData() { return _sharedData; }
public SharedInstanceLockData GetSharedData() { return _sharedData; }