# NASubBanner

## 定義

    #define NA_SUBBANNER_PALETTE_NUM    16
    #define NA_SUBBANNER_CHARACTER_NUM  16
    #define NA_SUBBANNER_PATTERN_NUM    8
    #define NA_SUBBANNER_CONTROL_NUM    64

    typedef struct NASubBannerControl
    {
        u8 frameCount : 8;

        union
        {
            struct
            {
                u8 cellNo   : 3;
                u8 plttNo   : 3;
                u8 reserved : 2;
            }
            frameInfo;

            u8 animeType;
        };
    }
    NASubBannerControl;

    typedef struct NASubBannerAnime
    {
        GXCharFmt16         image   [ NA_SUBBANNER_PATTERN_NUM ][ NA_SUBBANNER_CHARACTER_NUM ];
        GXRgb               pltt    [ NA_SUBBANNER_PATTERN_NUM ][ NA_SUBBANNER_PALETTE_NUM ];
        NASubBannerControl  control [ NA_SUBBANNER_CONTROL_NUM ];
    }
    NASubBannerAnime;

    typedef struct NASubBanner
    {
        NASubBannerHeader   header;
        NASubBannerAnime    anime;
    }
    NASubBanner;

## 説明

`NA_SaveSubBanner` や`NA_LoadSubBanner` で使用するサブバナー構造体です。
各メンバの内容は以下の通りです。

### NASubBanner 構造体

header | サブバナーのヘッダーです サブバナーのCRCの値が設定されていますので、以下の`anime`メンバーを編集した際は、 `NA_MakeSubBannerHeader` を使用して、正しい値を設定してください。
anime | アニメーションのデータです。以下の項目を参照してください。

### NASubBannerAnime 構造体

image | サブバナーのキャラクターデータです。 フォーマットは、カラーパレットのインデックス値を4bitで設定します。 表示される画像は`G2_SetOBJAttr`の`shape`引数に`GX_OAM_SHAPE_32x32`を設定した場合と同じになります
pltt | サブバナーのカラーパレットです。フォーマットは`GXRgb` 型になります。 表示される画像は`G2_SetOBJAttr`の`color`引数に`GX_OAM_COLORMODE_16`を設定した場合と同じになります 使用できるカラーパレットは 16 色 x 1 パレットのみです。 0 番パレットを使用して下さい。1 〜7 番のパレットは使用しないでください。
control | アニメーションのコントロールデータです。以下の項目を参照してください。

`image`、`pltt`に関しては詳細はプログラミングマニュアルの[OBJ] - [キャラクタOBJ] - [キャラクターデータフォーマット] - [16色モード]を参照してください

### NASubBannerControl 構造体

frameCount | `frameCount` で設定されたフレームまで、以下のパラメータを使用します。 終端のブロックには0 を設定します。
cellNo | `NASubBannerAnime` 構造体の何番目の`image`を使用するかを設定します。 終端のブロックに0 を設定するとループ、1 を設定すると最後のコマで停止します。
plttNo | `NASubBannerAnime` 構造体の何番目の`pltt`を使用するかを設定します。 常に0 番を設定してください。
reserved | 予約領域です。(以前はflipH、flipV が存在していましたが、廃止されました。)

## 参照

`NA_MakeSubBannerHeader`

## 履歴

2011/04/08 flipH、flipV がreserved に置き換わったことを追記。
2008/11/04 アニメーションの制限を追記。
2008/09/17 flipType をflipH とflipV に分割。frameCount に追記。
2008/09/16 初版