public override void DoDiffEntityFinish(IGameEntity leftEntity, IGameEntity rightEntity) { if (currentEntityPatch.GetComponentPatchCount() > 0) { snapshotPatch.AddEntityPatch(currentEntityPatch); } //fix bug memory leak currentEntityPatch.ReleaseReference(); currentEntityPatch = null; }
public void OnDiffEntityFinish(IGameEntity leftEntity, IGameEntity rightEntity) { if (_currentEntityPatch.GetComponentPatchCount() > 0) { _patch.AddEntityPatch(_currentEntityPatch); } //fix bug memory leak _currentEntityPatch.ReleaseReference(); _currentEntityPatch = null; }
public void DeSerialize(BinaryReader reader, INetworkObjectSerializerManager serializerManager) { BaseSnapshotSeq = reader.ReadInt32(); AssertUtility.Assert(_entityPatchList.Count == 0); var count = reader.ReadInt32(); for (int i = 0; i < count; i++) { AbstractEntityPatch patch = CreateEntityPatch((EntityReplicateOperationType)reader.ReadByte()); patch.DeSerialize(reader, serializerManager); _entityPatchList.Add(patch); } }
public override void DoDiffEntityStart(IGameEntity leftEntity, IGameEntity rightEntity) { var patch = ModifyEntityPatch.Allocate(rightEntity); currentEntityPatch = patch; }
public void OnDiffEntityStart(IGameEntity leftEntity, IGameEntity rightEntity) { var patch = ModifyEntityPatch.Allocate(rightEntity); _currentEntityPatch = patch; }
public void AddEntityPatch(AbstractEntityPatch entityPatch) { _entityPatchList.Add(entityPatch); entityPatch.AcquireReference(); }