// CFE3DPlayer - [2020-04-13 11:57:46]
#ifndef _CFE3DPLAYER_H_
#define _CFE3DPLAYER_H_

#include "CFTTTexture.h"
#include "CPlayer.h"
#include "CGfxKits.h"
#include "CGfxEnvironmentMap.h"
#include "CPlayer.h"
#include "CGfxCharacter.h"

/*
0011DB9C CFE3DPlayer::CFE3DPlayer()
0011DC14 CFE3DPlayer::~CFE3DPlayer()
0011DBC8 CFE3DPlayer::Shutdown()
0011DC20 CFE3DPlayer::GetYRot()
0011DC26 CFE3DPlayer::GetDestY()
0011DC2C CFE3DPlayer::SetDestY(float)
0011DC32 CFE3DPlayer::SetYRot(float)
0011DC38 CFE3DPlayer::SetFaceForward()
0011DC44 CFE3DPlayer::Rotating()
0011DC4C CFE3DPlayer::SetFaceBackward()
0011DC58 CFE3DPlayer::Init(int,int,TPlayerInfo *,EPlayerKitID,int,TBuildKitTeamTextures *,int)
0011DE94 CFE3DPlayer::LoadKitTexture(EPlayerKitID,int)
0011DED8 CFE3DPlayer::CalculatePlayerMatrix()
0011DF44 CFE3DPlayer::UpdatePlayerRender()
0011DF60 CFE3DPlayer::Process()
0011DFAC CFE3DPlayer::PreRender()
0011E044 CFE3DPlayer::Render2D()
0011E084 CFE3DPlayer::Render3DProps()
0011E0A0 CFE3DPlayer::Render(bool,EEnvMapOverride)
0011E154 CFE3DPlayer::SetPlayerKitType(EPlayerKitID)
0011E1AC CFE3DPlayer::RenderSetup()
0011E1CC CFE3DPlayer::UpdatePlayerAtlas(TPlayerInfo *,bool)
0011E1EC CFE3DPlayer::UpdateKit(TPlayerInfo *,EPlayerKitID)
0011E260 CFE3DPlayer::SetScale(float)
0011E268 CFE3DPlayer::SetPos(float,float,float,float,float)
0011E4A8 CFE3DPlayer::GetHeadshotTexture(bool,int)
0011E84C CFE3DPlayer::SaveHeadshotTexture(CFTTTexture *)
0011E8B8 CFE3DPlayer::UpdateBlinking()

0x2d8
*/

enum EPlayerKitID {
  EPlayerKitID_0,
  EPlayerKitID_1,
  EPlayerKitID_2,
  EPlayerKitID_3,
  EPlayerKitID_4,
  EPlayerKitID_5,
};

class CFE3DPlayer {
public:
  CFE3DPlayer();                                                                        // 0011DB9C
  ~CFE3DPlayer();                                                                       // 0011DC14
  void Shutdown();                                                                      // 0011DBC8
  float GetYRot();                                                                      // 0011DC20
  float GetDestY();                                                                     // 0011DC26
  void SetDestY(float);                                                                 // 0011DC2C
  void SetYRot(float);                                                                  // 0011DC32
  void SetFaceForward();                                                                // 0011DC38
  char Rotating();                                                                      // 0011DC44
  void SetFaceBackward();                                                               // 0011DC4C
  void Init(int, int, TPlayerInfo *, EPlayerKitID, int, TBuildKitTeamTextures *, int);  // 0011DC58
  int LoadKitTexture(EPlayerKitID, int);                                                // 0011DE94
  void CalculatePlayerMatrix();                                                         // 0011DED8
  void UpdatePlayerRender();                                                            // 0011DF44
  void Process();                                                                       // 0011DF60
  void PreRender();                                                                     // 0011DFAC
  void Render2D();                                                                      // 0011E044
  void Render3DProps();                                                                 // 0011E084
  void Render(bool, EEnvMapOverride);                                                   // 0011E0A0
  void SetPlayerKitType(EPlayerKitID);                                                  // 0011E154
  void RenderSetup();                                                                   // 0011E1AC
  void UpdatePlayerAtlas(TPlayerInfo *, bool);                                          // 0011E1CC
  void UpdateKit(TPlayerInfo *, EPlayerKitID);                                          // 0011E1EC
  void SetScale(float);                                                                 // 0011E260
  void SetPos(float, float, float, float, float);                                       // 0011E268
  CFTTTexture *GetHeadshotTexture(bool, int);                                           // 0011E4A8
  static void SaveHeadshotTexture(CFTTTexture *pftttexture);                            // 0011E84C
  void UpdateBlinking();                                                                // 0011E8B8

  CGfxCharacter *pGfxCharacter_0;
  TBuildKitTeamTextures *field_4;
  int kit_8;
  CFTTRenderToTexture *field_C;
  CPlayer tPlayer_10;  // size 0x1a4
  TPlayerInfo *field_1B4;
  CFTTMatrix32 field_1B8;
  int teamId_1F8;
  bool isKeeper_1FC;
  bool field_1FD;
  bool field_1FE;
  bool field_1FF;
  float yRot_200;
  float Scale_204;
  float destY_208;
  int field_20C;
  char field_210;
  char field_211;
  char field_212;
  char field_213;
  int field_214;
  int field_218;
  int field_21C;
  int field_220;
  CFTTVector32 field_224;
  int field_230;
  int field_234;
  int field_238;
  char field_23C;
  char field_23D;
  char field_23E;
  char field_23F;
  char field_240[0x98];
};

#endif  //_CFE3DPLAYER_H_