// CNISCamAction - [2022-02-07 11:57:47]
#ifndef _CNISCAMACTION_H_
#define _CNISCAMACTION_H_

#include "common.h"
#include "CFTTCamera.h"
#include "CFTTXmlReaderNode.h"
//#include "CNISScene.h"

/*
AI 关卡
003A2878 CNISCamAction:ms_bCamSameAsGameCam
003A2874 CNISCamAction:ms_iCameraViewRot
003A2870 CNISCamAction:ms_iCameraDistance
0033E744 CNISCamAction:ms_bX2Camera
0033E740 CNISCamAction:ms_fDOFMultiplier
0033E708 CNISCamAction:ms_tCamera
002FE49E CNISCamAction:ms_iMaxDistanceX2
002FE49C CNISCamAction:ms_iMinDistanceX2
0015E8A0 CNISCamAction:Create(CFTTXmlReaderNode
0015E89A CNISCamAction:GetMaxDistance(void)
0015E896 voidGetMinDistance(void)
0015E848 voidProcess(int)
0015E83E voidInit(CNISCamAction* CNISScene *)
0015E83A void~CNISCamAction
0015E838 void~CNISCamAction
0015E81C voidCNISCamAction(void)
*/
struct NISGOAL_Info_10 {
  int _field_0;
  TPoint3D _pt3Ds_4[16];
  int _iCounts_C4[0x100];  // 长度未知
};

struct NISGOAL_Info {
  bool _b_0;
  bool _b_1;
  bool _b_2;
  bool _b_3;
  uchar field_4[0x0C];
  NISGOAL_Info_10* _p_10;
  uchar field_100[0x19850];
  TPoint3D m_pt3D_19864;
  TPoint3D m_pt3D_19870;
};
/*
struct FREE_Info{
  bool  _b_0;
  bool  _b_1;
  uchar field[0x1CB2];
  TPoint3D m_pt3D_1CB4;
  TPoint3D m_pt3D_1CC0;
};*/
// extern FREE_Info FREE_tInfo;

class CNISCamAction {
public:
  void Create(CFTTXmlReaderNode);                 // 0015E8A0
  void GetMaxDistance();                          // 0015E89A
  void GetMinDistance();                          // 0015E896
  void Process(int);                              // 0015E848
  void Init(CNISCamAction*, /*CNISScene*/ int*);  // 0015E83E
  // virtual  ~CNISCamAction();                //0015E83A
  // void  ~CNISCamAction();                 //0015E838
  CNISCamAction();  // 0015E81C

  static bool ms_bCamSameAsGameCam;  // 003A2878
  static int ms_iCameraViewRot;      // 003A2874
  static int ms_iCameraDistance;     // 003A2870
  static bool ms_bX2Camera;          // 0033E744
  static float ms_fDOFMultiplier;    // 0033E740
  static CFTTCamera ms_tCamera;      // 0033E708
  static int ms_iMaxDistanceX2;      // 002FE49E
  static int ms_iMinDistanceX2;      // 002FE49C
  //数据结构没有分析完
};

#endif  //_CNISCAMACTION_H_