# NNSG3dAnmObjInitFuncArray

## 構文

      #include <nnsys/g3d/anm.h>

      typedef void (*NNSG3dAnimInitFunc)(NNSG3dAnmObj*, void*, const NNSG3dResMdl*);

      typedef struct
      {
          u8                  category0;
          u8                  dummy_;
          u16                 category1;
          NNSG3dAnimInitFunc  func;
      }
      NNSG3dAnmObjInitFunc;

      NNSG3dAnmObjInitFunc NNS_G3dAnmObjInitFuncArray[NNS_G3D_ANMFMT_MAX];

## 説明

`NNS_G3dAnmObjInit`関数で`NNSG3dAnmObj`構造体を初期化する際、アニメーションリソースの種類毎に処理を振り分ける必要があります。`NNS_G3dAnmObjInitFuncArray`はそのための配列で、配列の要素(`NNSG3dAnmObjInitFunc`)は`NNSG3dAnimInitFunc`型の関数へのポインタになっています。`NNSG3dAnimInitFunc`型の関数は、実際にアニメーションフォーマットに適するように`NNSG3dAnmObj`構造体を初期化します。新しいアニメーションフォーマットをG3Dに追加する場合は、この配列に要素を追加することで`NNS_G3dAnmObjInit`関数を利用した初期化が可能になります。
なお、`NNSG3dAnmObjInitFunc`構造体のcategory0, category1は、`NNSG3dResAnmHeader`構造体のcategory0, category1と比較されます。`NNSG3dResAnmHeader`構造体はアニメーションリソース内のデータ構造です。

## 参照

`NNS_G3dAnmObjInit`

## 履歴

2004/10/19 初版