public override void Read(byte[] destination, int bytesToRead) //0x14 { lock (StaticDiscFileData.Lock) { if (IsCustomDiscFile) { DiscFile.Read(destination, bytesToRead); return; } if (IsFromLooseFile && F24Offset < F32Size) { var fileOffset = DiscFile.GetOffset(); var calcOffset = F24Offset + F16FileOffset; if (fileOffset != calcOffset) { DiscFile.Seek(calcOffset, SeekOrigin.Begin); } long toRead = bytesToRead; if (toRead > F32Size - F24Offset) { toRead = F32Size - F24Offset; } DiscFile.Read(destination, (int)toRead); F24Offset += toRead; } } }
// Read2 not overridden public override long GetOffset() // 0x24 { lock (StaticDiscFileData.Lock) { if (IsCustomDiscFile) { return(DiscFile.GetOffset()); } return(F24Offset); } }