Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
        // Read2 not overridden

        public override long GetOffset() // 0x24
        {
            lock (StaticDiscFileData.Lock)
            {
                if (IsCustomDiscFile)
                {
                    return(DiscFile.GetOffset());
                }

                return(F24Offset);
            }
        }