public override void ReadReplayChunks(FArchive archive) { while (!archive.AtEnd()) { var chunkType = archive.ReadUInt32AsEnum <ReplayChunkType>(); _writer.Write((uint)chunkType); var chunkSize = archive.ReadInt32(); var offset = archive.Position; //Console.WriteLine($"Chunk {chunkType}. Size: {chunkSize}. Offset: {offset}"); if (chunkType == ReplayChunkType.Checkpoint) { ReadCheckpoint(archive); } else if (chunkType == ReplayChunkType.Event) { ReadEvent(archive); } else if (chunkType == ReplayChunkType.ReplayData) { ReadReplayData(archive); } else if (chunkType == ReplayChunkType.Header) { //Copy over bytes _writer.Write(chunkSize); _writer.Write(archive.ReadBytes(chunkSize)); _writer.Flush(); } if (archive.Position != offset + chunkSize) { //_logger?.LogWarning($"Chunk ({chunkType}) at offset {offset} not correctly read..."); archive.Seek(offset + chunkSize, SeekOrigin.Begin); } } }