diff --git a/Source/Game/Maps/Instances/InstanceLockManager.cs b/Source/Game/Maps/Instances/InstanceLockManager.cs index e882e717d..f4c76f151 100644 --- a/Source/Game/Maps/Instances/InstanceLockManager.cs +++ b/Source/Game/Maps/Instances/InstanceLockManager.cs @@ -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 { - /// /// 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; }