private Stream Decompress(FAR3Entry Entry)
{
m_Reader.ReadBytes(9);
uint CompressedSize = m_Reader.ReadUInt32();
ushort CompressionID = m_Reader.ReadUShort();
if (CompressionID == 0xFB10)
{
byte[] Dummy = m_Reader.ReadBytes(3);
uint DecompressedSize = (uint)((Dummy[0] << 0x10) | (Dummy[1] << 0x08) | +Dummy[2]);
Decompresser Dec = new Decompresser();
Dec.CompressedSize = CompressedSize;
Dec.DecompressedSize = DecompressedSize;
byte[] DecompressedData = Dec.Decompress(m_Reader.ReadBytes((int)CompressedSize));
MemoryStream MemStream = new MemoryStream(DecompressedData);
MemStream.Seek(0, SeekOrigin.Begin);
return MemStream;
}
else
{
m_Reader.Seek(m_Reader.Position - 15);
return new MemoryStream(m_Reader.ReadBytes((int)Entry.DecompressedDataSize));
}
}