using static BurnOutSharp.Models.Compression.LZX.Constants; namespace BurnOutSharp.Compression.LZX { /// public class State { /// /// the actual decoding window /// public byte[] window; /// /// window size (32Kb through 2Mb) /// public uint window_size; /// /// window size when it was first allocated /// public uint actual_size; /// /// current offset within the window /// public uint window_posn; /// /// for the LRU offset system /// public uint R0, R1, R2; /// /// number of main tree elements /// public ushort main_elements; /// /// have we started decoding at all yet? /// public int header_read; /// /// type of this block /// public ushort block_type; /// /// uncompressed length of this block /// public uint block_length; /// /// uncompressed bytes still left to decode /// public uint block_remaining; /// /// the number of CFDATA blocks processed /// public uint frames_read; /// /// magic header value used for transform /// public int intel_filesize; /// /// current offset in transform space /// public int intel_curpos; /// /// have we seen any translatable data yet? /// public int intel_started; public ushort[] tblPRETREE_table = new ushort[(1 << LZX_PRETREE_TABLEBITS) + (LZX_PRETREE_MAXSYMBOLS << 1)]; public byte[] tblPRETREE_len = new byte[LZX_PRETREE_MAXSYMBOLS + LZX_LENTABLE_SAFETY]; public ushort[] tblMAINTREE_table = new ushort[(1 << LZX_MAINTREE_TABLEBITS) + (LZX_MAINTREE_MAXSYMBOLS << 1)]; public byte[] tblMAINTREE_len = new byte[LZX_MAINTREE_MAXSYMBOLS + LZX_LENTABLE_SAFETY]; public ushort[] tblLENGTH_table = new ushort[(1 << LZX_LENGTH_TABLEBITS) + (LZX_LENGTH_MAXSYMBOLS << 1)]; public byte[] tblLENGTH_len = new byte[LZX_LENGTH_MAXSYMBOLS + LZX_LENTABLE_SAFETY]; public ushort[] tblALIGNED_table = new ushort[(1 << LZX_ALIGNED_TABLEBITS) + (LZX_ALIGNED_MAXSYMBOLS << 1)]; public byte[] tblALIGNED_len = new byte[LZX_ALIGNED_MAXSYMBOLS + LZX_LENTABLE_SAFETY]; } }