//CFTT_FTMLoader - [2020-04-13 11:57:46]
#ifndef _CFTT_FTMLOADER_H_
#define _CFTT_FTMLOADER_H_

#include "common.h"
#include "sh_struct.h"
#include "CFTTFile.h"

/*
0021DFEC CFTT_FTMLoader::CanLoadFTT(CFTTFile *,uint)
0021E2E8 CFTT_FTMLoader::LoadCameraHeader_01(TFTTCamera *)
0021E312 CFTT_FTMLoader::LoadCameraBlock_01(TFTTCamera *)
0021E422 CFTT_FTMLoader::LoadHelperHeader_01(TFTTHelper *)
0021E450 CFTT_FTMLoader::LoadHelperBlock_01(TFTTHelper *)
0021E5DC CFTT_FTMLoader::LoadBlendWeights_01(TBoneBlendInfo *,int)
0021E64C CFTT_FTMLoader::LoadHierarchy_01(TFTTHierarchyHeader **)
0021E6B0 CFTT_FTMLoader::LoadSplineHeader_01(TFTTSpline *)
0021E724 CFTT_FTMLoader::LoadModel_02(int,TFTTModel **)
0021E820 CFTT_FTMLoader::LoadAnimHeader_02(TFTTAnimHeader **)
0021EA10 CFTT_FTMLoader::LoadPhysiqueHeader_02(TFTTAnimHeader **,
                                               int,
                                               TBone **,
                                               int,
                                               int)
0021EBB2 CFTT_FTMLoader::LoadMaterial_03(TMaterial *)
0021EBEA CFTT_FTMLoader::LoadAnimBlock_03(TFTTAnimHeader *,int)
0021ED40 CFTT_FTMLoader::LoadPhysiqueBlock_03(TFTTAnimHeader *,int,int)
0021EE1C CFTT_FTMLoader::LoadStaticStripData_01(ushort **,int)
0021EE90 CFTT_FTMLoader::LoadLightHeader_01(TFTTLight *)
0021EEB8 CFTT_FTMLoader::LoadLightBlock_01(TFTTLight *)
0021EFC8 CFTT_FTMLoader::LoadCollisionBlock_Normal_01(TCollBlock *)
0021F058 CFTT_FTMLoader::LoadCollisionBlock_Hull_01(TCollBlock *)
0021F0E8 CFTT_FTMLoader::LoadPVSBlock_01(TPVSBlock *)
0021F108 CFTT_FTMLoader::LoadMarkupBlock_01(TMarkupBlock *)
0021F128 CFTT_FTMLoader::LoadPhysiqueHeader_03(TFTTAnimHeader **,
                                               int,
                                               TBone **,
                                               int,
                                               int)
0021F2CC CFTT_FTMLoader::LoadCollisionBlock_Normal_02(TCollBlock *)
0021F35C CFTT_FTMLoader::LoadCollisionBlock_Hull_02(TCollBlock *)
0021F3EC CFTT_FTMLoader::LoadMaterial_04(TMaterial *)
0021F448 CFTT_FTMLoader::LoadSplineHeader_02(TFTTSpline *)
0021F4B8 CFTT_FTMLoader::LoadCameraHeader_02(TFTTCamera *)
0021F534 CFTT_FTMLoader::LoadHelperHeader_02(TFTTHelper *)
0021F588 CFTT_FTMLoader::LoadLightHeader_02(TFTTLight *)
0021F5AC CFTT_FTMLoader::LoadCollisionBlock_Normal_03(TCollBlock *)
0021F5EE CFTT_FTMLoader::LoadCollisionBlock_Hull_03(TCollBlock *)
0021F60E CFTT_FTMLoader::LoadMaterial_05(TMaterial *)
0021F630 CFTT_FTMLoader::LoadModel_03(int,TFTTModel **)
0021F6E0 CFTT_FTMLoader::LoadBlendWeights(TBoneBlendInfo *,int)
0021F714 CFTT_FTMLoader::LoadModel(int,TFTTModel **)
0021F74C CFTT_FTMLoader::LoadMaterial(TMaterial *)
0021F774 CFTT_FTMLoader::LoadAnimHeader(TFTTAnimHeader **)
0021F79C CFTT_FTMLoader::LoadAnimBlock(TFTTAnimHeader *,int)
0021F7D0 CFTT_FTMLoader::LoadPhysiqueHeader(TFTTAnimHeader **,
                                            int,
                                            TBone **,
                                            int,
                                            int)
0021F804 CFTT_FTMLoader::LoadPhysiqueBlock(TFTTAnimHeader *,int,int)
0021F838 CFTT_FTMLoader::LoadCameraHeader(TFTTCamera *)
0021F860 CFTT_FTMLoader::LoadCameraBlock(TFTTCamera *)
0021F888 CFTT_FTMLoader::LoadHelperHeader(TFTTHelper *)
0021F8B0 CFTT_FTMLoader::LoadHelperBlock(TFTTHelper *)
0021F8D8 CFTT_FTMLoader::LoadLightHeader(TFTTLight *)
0021F900 CFTT_FTMLoader::LoadLightBlock(TFTTLight *)
0021F928 CFTT_FTMLoader::LoadHierarchy(TFTTHierarchyHeader **)
0021F950 CFTT_FTMLoader::LoadSplineHeader(TFTTSpline *)
0021F978 CFTT_FTMLoader::LoadStaticStripData(ushort **,int)
0021F9AC CFTT_FTMLoader::LoadCollisionBlock_Normal(TCollBlock *)
0021F9D4 CFTT_FTMLoader::LoadCollisionBlock_Hull(TCollBlock *)
0021F9FC CFTT_FTMLoader::LoadPVSBlock(TPVSBlock *)
0021FA24 CFTT_FTMLoader::LoadMarkupBlock(TMarkupBlock *)
0021FA4C CFTT_FTMLoader::FixupCollisionBlock(TCollBlock *,float *,ushort *)
0021FA6E CFTT_FTMLoader::LoadCollisionHullVertexData(CFTTFile *,
                                                     TCollisionHullHeader *,
                                                     float **)
0021FAAE CFTT_FTMLoader::LoadCollisionHullFaceData(CFTTFile *,
                                                   TCollisionHullHeader *,
                                                   ushort **)
*/

class CFTT_FTMLoader {
public:
  bool CanLoadFTT(CFTTFile *pCFTTFile, uint dSelect);                              //0021DFEC
  bool LoadCameraHeader_01(TFTTCamera *pTFTTCamera);                               //0021E2E8
  bool LoadCameraBlock_01(TFTTCamera *pTFTTCamera);                                //0021E312
  bool LoadHelperHeader_01(TFTTHelper *pTFTTHelper);                               //0021E422
  bool LoadHelperBlock_01(TFTTHelper *pTFTTHelper);                                //0021E450
  bool LoadBlendWeights_01(TBoneBlendInfo *pTBoneBlendInfo, int a3);               //0021E5DC
  bool LoadHierarchy_01(TFTTHierarchyHeader **ppTFTTHierarchyHeader);              //0021E64C
  bool LoadSplineHeader_01(TFTTSpline *pTFTTSpline);                               //0021E6B0
  bool LoadModel_02(int, TFTTModel **);                                            //0021E724
  int LoadAnimHeader_02(TFTTAnimHeader **ppTFTTAnimHeader);                        //0021E820
  int LoadPhysiqueHeader_02(TFTTAnimHeader **, int, TBone **, int, int);           //0021EA10
  bool LoadMaterial_03(TMaterial *);                                               //0021EBB2
  int LoadAnimBlock_03(TFTTAnimHeader *pTFTTAnimHeader, int a2);                   //0021EBEA
  bool LoadPhysiqueBlock_03(TFTTAnimHeader *pTFTTAnimHeader, int, int);            //0021ED40
  int LoadStaticStripData_01(ushort **ppShortBuf, int);                            //0021EE1C
  bool LoadLightHeader_01(TFTTLight *pTFTTLight);                                  //0021EE90
  bool LoadLightBlock_01(TFTTLight *pTFTTLight);                                   //0021EEB8
  bool LoadCollisionBlock_Normal_01(TCollBlock *pTCollBlock);                      //0021EFC8
  bool LoadCollisionBlock_Hull_01(TCollBlock *pTCollBlock);                        //0021F058
  bool LoadPVSBlock_01(TPVSBlock *pTPVSBlock);                                     //0021F0E8
  bool LoadMarkupBlock_01(TMarkupBlock *pTMarkupBlock);                            //0021F108
  int LoadPhysiqueHeader_03(TFTTAnimHeader **, int, TBone **, int, int);           //0021F128
  bool LoadCollisionBlock_Normal_02(TCollBlock *);                                 //0021F2CC
  bool LoadCollisionBlock_Hull_02(TCollBlock *);                                   //0021F35C
  bool LoadMaterial_04(TMaterial *pTMaterial);                                     //0021F3EC
  bool LoadSplineHeader_02(TFTTSpline *pTFTTSpline);                               //0021F448
  bool LoadCameraHeader_02(TFTTCamera *);                                          //0021F4B8
  bool LoadHelperHeader_02(TFTTHelper *);                                          //0021F534
  bool LoadLightHeader_02(TFTTLight *pTFTTLight);                                  //0021F588
  bool LoadCollisionBlock_Normal_03(TCollBlock *pTCollBlock);                      //0021F5AC
  bool LoadCollisionBlock_Hull_03(TCollBlock *pTCollBlock);                        //0021F5EE
  bool LoadMaterial_05(TMaterial *pTMaterial);                                     //0021F60E
  void LoadModel_03(int, TFTTModel **);                                            //0021F630
  bool LoadBlendWeights(TBoneBlendInfo *, int);                                    //0021F6E0
  bool LoadModel(int a1, TFTTModel **ppTFTTModel);                                 //0021F714
  bool LoadMaterial(TMaterial *pTMaterial);                                        //0021F74C
  int LoadAnimHeader(TFTTAnimHeader **ppTFTTAnimHeader);                           //0021F774
  int LoadAnimBlock(TFTTAnimHeader *, int);                                        //0021F79C
  int LoadPhysiqueHeader(TFTTAnimHeader **, int, TBone **, int, int);              //0021F7D0
  bool LoadPhysiqueBlock(TFTTAnimHeader *pTFTTAnimHeader, int, int);               //0021F804
  bool LoadCameraHeader(TFTTCamera *pTFTTCamera);                                  //0021F838
  bool LoadCameraBlock(TFTTCamera *pTFTTCamera);                                   //0021F860
  bool LoadHelperHeader(TFTTHelper *pTFTTHelper);                                  //0021F888
  bool LoadHelperBlock(TFTTHelper *);                                              //0021F8B0
  bool LoadLightHeader(TFTTLight *pTFTTLight);                                     //0021F8D8
  bool LoadLightBlock(TFTTLight *pTFTTLight);                                      //0021F900
  bool LoadHierarchy(TFTTHierarchyHeader **ppTFTTHierarchyHeader);                 //0021F928
  bool LoadSplineHeader(TFTTSpline *pTFTTSpline);                                  //0021F950
  int LoadStaticStripData(ushort **ppShortBuf);                                    //0021F978
  bool LoadCollisionBlock_Normal(TCollBlock *pTCollBlock);                         //0021F9AC
  bool LoadCollisionBlock_Hull(TCollBlock *pTCollBlock);                           //0021F9D4
  bool LoadPVSBlock(TPVSBlock *);                                                  //0021F9FC
  bool LoadMarkupBlock(TMarkupBlock *pTMarkupBlock);                               //0021FA24
  void FixupCollisionBlock(TCollBlock *, float *, ushort *);                       //0021FA4C
  bool LoadCollisionHullVertexData(CFTTFile *, TCollisionHullHeader *, float **);  //0021FA6E
  bool LoadCollisionHullFaceData(CFTTFile *, TCollisionHullHeader *, ushort **);   //0021FAAE

  int fun_index_0;  //函数数组的选择子
  CFTTFile *pCFTTFile_4;
  int field_8;
  int field_C;
  uint dErrId_10;
};

#endif  //_CFTT_FTMLOADER_H_