# MIUncompContextLZ

## 定義

      #include <nitro/mi/uncomp_stream.h>

      typedef struct
      {
          u8* destp;       // 4B
          s32 destCount;   // 4B
          u16 destTmp;     // 2B
          u8  destTmpCnt;  // 1B
          u8  flags;       // 1B
          u8  flagIndex;   // 1B
          u8  length;      // 1B
          u8  lengthFlg;   // 1B
          u8  _padding[1]; // 1B
                        // 計 16B
      } MIUncompContextLZ;

## 説明

LZ77圧縮されたデータをカードから読み込みながら順次ストリーミング展開をおこなう際に、
データ展開状況を保存しておくためのコンテキスト構造体です。
`MI_InitUncompContextLZ()`でコンテキストの初期化をおこない、`MI_ReadUncompLZ*()`でこのコンテキストを使用して展開状況を保管します。

destp | 展開したデータの書き込み先領域へのポインタ
destCount | 残り書き込みサイズ
destTmp | 書き込み途中のデータ退避用
destTmpCnt | 書き込み途中のデータサイズ退避用
flags | 圧縮フラグデータ退避用
flagIndex | フラグデータのカレントインデックス退避用
length | 連続書き込みサイズ退避用
lengthFlg | 2バイトにまたがるoffset情報のリード途中であるかどうかの退避用

## 参照

`MI_InitUncompContextLZ, MI_ReadUncompLZ*, MIUncompContextRL,MIUncompContextHuffman
`

## 履歴

2004/11/30 初版