//CAnimLib - [2020-04-13 11:57:46]
#ifndef _CANIMLIB_H_
#define _CANIMLIB_H_

#include "common.h"
#include "SAT.h"
#include "CAnimManager.h"

/*
0017BBD4 CAnimLib::CAnimLib()
0017C01C CAnimLib::~CAnimLib()
0017BCCC CAnimLib::LoadAnim(int,int)
0017BDC0 CAnimLib::PreLoadAnims(int,int,int,int)
0017BE24 CAnimLib::PreLoadAnimsByID(EAnimID,int)
0017BE28 CAnimLib::FreeDynamicAnims()
0017BE94 CAnimLib::FreeAnim(int)
0017BF1E CAnimLib::UnloadPermanentAnims()
0017BF54 CAnimLib::ReloadPermanentAnims()
0017BFA0 CAnimLib::GetAnim(int,bool)
0017BFF0 CAnimLib::CheckAnim(int)

0x7E6C
*/

struct TPreLoadAnimData {
  int filed_0;
  int filed_4;
  int filed_8;
  int filed_c;
};

enum EAnimID {
  EAnimID_0,
  EAnimID_1,
  EAnimID_2,
  EAnimID_3,
  EAnimID_4,
  EAnimID_5,
};

class CFTTFile;
class CFTTFileSystem_PAK;
class CAnimLib {
public:
  CAnimLib();                                    //0017BBD4
  ~CAnimLib();                                   //0017C01C
  TSATAnim_TSX* LoadAnim(int, int);              //0017BCCC
  void PreLoadAnims(int, int, int, int);         //0017BDC0
  TSATAnim_TSX* PreLoadAnimsByID(EAnimID, int);  //0017BE24
  void FreeDynamicAnims();                       //0017BE28
  void FreeAnim(int);                            //0017BE94
  void UnloadPermanentAnims();                   //0017BF1E
  void ReloadPermanentAnims();                   //0017BF54
  TSATAnim_TSX* GetAnim(int, bool);              //0017BFA0
  TSATAnim_TSX* CheckAnim(int);                  //0017BFF0

  TSATAnim_TSX* pAnims_0[2488];
  char filed_26e0[2488];
  int filed_3098;
  int filed_309c[2488];
  int filed_577c[2488];
  int filed_7e5c;
  int filed_7e60;
  CFTTFile* filed_7e64;
  CFTTFileSystem_PAK* filed_7e68;

  static TPreLoadAnimData ms_tPreLoadAnimData[13];
};

#endif  //_CANIMLIB_H_