using System; using ICSharpCode.SharpZipLib.Zip.Compression; namespace BurnOutSharp.Compression { public class MSZIP { #region Instance Variables /// /// Inflater to be shared between blocks /// private readonly Inflater _inflater = new Inflater(noHeader: true); #endregion #region Decompressiom /// /// Decompress MSZIP data block /// public byte[] DecompressMSZIPData(byte[] data, byte[] previousBlock = null) { if (previousBlock != null) _inflater.Reset(); _inflater.SetInput(buffer: data, 2, data.Length - 2); byte[] outputData = new byte[128 * 1024]; int read = _inflater.Inflate(outputData); return outputData.AsSpan(0, read).ToArray(); } #endregion } }