public override SharedDataBuffer ReadSharedDataBuffer(uint size) { var innerSize = BaseReader.ReadUInt32(); if (size != innerSize + 4) { throw new TodoException("ReadSharedDataBuffer"); } var result = base.ReadSharedDataBuffer(innerSize); if (_parseBuffer) { using var ms = new MemoryStream(result.Buffer.GetBytes()); using var br = new BinaryReader(ms, Encoding.Default, true); using var cr2wReader = new CR2WReader(br); var readResult = cr2wReader.ReadFile(out var c, true); if (readResult == EFileReadErrorCodes.NoCr2w) { throw new TodoException("ReadSharedDataBuffer"); } result.File = c; } return(result); }