njReadBinary
NJ、NJM等のバイナリーファイルからデータを読み込みます。

### 書　式

      #include <Ninja.h>
      void *njReadBinary(wbuff, fpos, ptype)
      Sint8 *wbuff
      Uint32 *fpos
      Uint32 *ptype

### 引　数

Sint8 *wbuff
  NJ. NJM等のバイナリファイルを読み込んだバッファへのポインタ。
Uint32 *fpos
  ファイルの読み込み開始バイト数。
Uint32 *ptype
  読み込んだデータのタイプが返されます。

### 返　値

  void *
    読み込んだデータのポインタ。
    未知のデータタイプを読み込んだ場合はNULLを返します。

### エラー

  なし

### 機　能

  GD-ROMよりバッファに読み込まれた NJ , NJM 等のデータから、テクスチャリストや
  モデルデータを取り出し、そのポインタを返します。データの取り出し先は内部で確保
  されたバッファです。バッファの開放はユーザーが syFree関数を使用して行って下さい。

### 用　例

  GD-ROM上のNJファイルを開きテクスチャリスト、モデルデータを読み込みます。

      GDFS fid;
      Sint32 sn;
      NJS_TEXLIST *tlist;
      NJS_OBJECT *obj;
      Sint8 *w_buff;
      Uint32 rtype, rpos = 0;

      /* バイナリファイルをオープンする */
      fid = gdFsOpen("sample.nj", NULL);

      /* セクタ単位のファイルサイズを調べて、読み込みに必要な大きさのバッファを確保する */
      gdFsGetFileSctSize(fid, &sn);
      w_buff = (Sint8 *)syMalloc(sn*2048+8);

      /* 確保したバッファにバイナリファイルを読み込み、ファイルをクローズする */
      gdFsRead(fid, sn, w_buff);
      gdFsClose(fid);

      /* 読み込んだバイナリデータから、テクスチャリストとオブジェクトを取りだす */
      tlist = (NJS_TEXLIST *)njReadBinary(w_buff, &rpos, &rtype);
      obj = (NJS_OBJECT *)njReadBinary(w_buff, &rpos, &rtype);
               :
               :
      /* バイナリデータが不要になった時の処理 */
      /* （ syMalloc の空き領域が分断しないように、逆順に開放） */
      syFree(obj);
      syFree(tlist);
      syFree(w_buff);

### 備　考

  引数 fposの値はデータを読み込んだ後、次の読み出し開始位置に更新されます。
  引数 ptypeには未知のデータを読み込んだ場合 '****' が返されます。
  現在定義されているデータタイプは次の通りです。
  (NjDef.hで定義されています）

      #define iff_NJINFO  'NJIN'     /* data infomation             */

      #define iff_NJCM    'NJCM'     /* ninja chunk model tree      */
      #define iff_NJBM    'NJBM'     /* ninja basic model tree      */
      #define iff_NJTL    'NJTL'     /* ninja texlist               */
      #define iff_NJLI    'NJLI'     /* ninja light                 */
      #define iff_NJCA    'NJCA'     /* ninja camera                */

      #define iff_NMDM    'NMDM'     /* ninja model motion          */
      #define iff_NLIM    'NLIM'     /* ninja light motion          */
      #define iff_NCAM    'NCAM'     /* ninja camera motion         */
      #define iff_NSSM    'NSSM'     /* ninja simple shape motion   */

### 関　連

  njOpenBinary
  njCloseBinary

  njReadBinary |