//CFTTPObject - [2020-04-13 11:57:46]
#ifndef _CFTTPOBJECT_H_
#define _CFTTPOBJECT_H_

#include "common.h"
#include "FREE.h"
#include "fpoint.h"
#include "CFTTPCapsule.h"
//#include "CFTTPPrimitive.h"
/*
0016A498  CFTTPObject::CFTTPObject(ePhysicsObjectType,EFreePropType,uchar,fpoint3<PointType_18>,fpointQ<PointType_18>)
0016C584  CFTTPObject::Cache(fpoint<PointType_18>)
0016C6A4  CFTTPObject::GenerateSweptSphere()
0016DA32  CFTTPObject::~CFTTPObject()

0xA8
*/
class CFTTPPrimitive;
enum ePhysicsObjectType {
  EPhysicsObjectType_0,
  EPhysicsObjectType_1,
  EPhysicsObjectType_2,
  EPhysicsObjectType_3,
  EPhysicsObjectType_4,
  EPhysicsObjectType_5,
};

class CFTTPObject {
public:
  CFTTPObject(ePhysicsObjectType,
              EFreePropType,
              uchar,
              fpoint3<PointType_18>,
              fpointQ<PointType_18>);  //0016A498
  ~CFTTPObject();                      //0016DA32
  void Cache(fpoint<PointType_18>);    //0016C584
  CFTTPCapsule GenerateSweptSphere();          //0016C6A4

public:
  fpoint3<PointType_18> fpoint3_0;  // 0 4 8
  fpointQ<PointType_18> fpointQ_C;  // C 10 14 18
  //char stub_1C[0x68];               // 1C + 0x68
  //CFTTPObjectStructMember st_1C;      //1C + 0x68

  //1C + 0x68
  fpoint3<PointType_18> fpoint3_1C;  //1C 20 24  由0016C60C sub_16C672判断此字段类型  
  fpoint3<PointType_18> fpoint3_28;  //28 2C 30
  int field_34;
  int field_38;
  int field_3C;
  int field_40;
  int field_44;
  fpoint3<PointType_18> fpoint3_48;    //48 4C 50
  fpointQQ<PointType_18> fpointQQ_54;  //54 58 5C 60 64 68 6C 70 74; 78 7C 80 84
  //fpointQ<PointType_18> fpointQ_78;  //78 7C 80 84
  //int field_88;                       //88
  uchar field_88;
  uchar field_89;
  uchar field_8a;
  uchar field_8b;
  ePhysicsObjectType    field_8C;     //8C
  EFreePropType         field_90;     //90
  int    field_94;                          //94
  CFTTPPrimitive** /*uint**/  pprimitive_98;  //98
  uchar   uc_9C;                          //9C
  uchar  field_9D;                          //9D
  char   field_9E;                          //9E
  char   field_9F;                          //9F
  int    field_A0;
  int    field_A4; 
};

#endif  //_CFTTPOBJECT_H_