Пример #1
0
        internal static byte[] Deflate(byte[] buffer, int sizeCompressed, int sizeDecompressed)
        {
            using (RecyclableMemoryStream tmp = new RecyclableMemoryStream())
            {
                BnSDatArchive.UncompressBuffer(buffer, tmp);

                if (tmp.Length != sizeDecompressed)
                {
                    byte[] tmp2 = new byte[sizeDecompressed];

                    if (tmp.Length > sizeDecompressed)
                    {
                        Array.Copy(tmp.GetBuffer(), 0, tmp2, 0, sizeDecompressed);
                    }
                    else
                    {
                        Array.Copy(tmp.GetBuffer(), 0, tmp2, 0, tmp.Length);
                    }
                    return(tmp2);
                }
                else
                {
                    return(tmp.ToArray());
                }
            }
        }