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];
}
}