//CLightingLUTState - [2020-04-13 11:57:46]
#ifndef _CLIGHTINGLUTSTATE_H_
#define _CLIGHTINGLUTSTATE_H_

#include "CFTTVector32.h"
#include "CFTTTexture.h"

/*
0018C204 CLightingLUTState::Matches(ELightingLUTMat)
0018C318 CLightingLUTState::Populate(ELightingLUTMat)
0018C330 CLightingLUTState::Generate(ELightingLUTMat)
0x94
*/

#ifdef _TESTMOD_
//#pragma pack(1)  //必须这么写,保证大小是0x89. 有地方用到了sizeof(CLightingLUTSceneSettings)
#endif

class CLightingLUTSceneSettings {
public:
  CFTTVector32 aVec32_0[3];
  CFTTVector32 aVec32_24[3];
  CFTTVector32 tVec32_48;
  float field_54[7];
  float field_70[6];
  bool b_88;
};

#ifdef _TESTMOD_
//#pragma pack()
#endif

enum ELightingLUTMat {
  ELightingLUTMat_0,
  ELightingLUTMat_1,
  ELightingLUTMat_2,
  ELightingLUTMat_3,
  ELightingLUTMat_4,
  ELightingLUTMat_5,
};

//0x94
class CLightingLUTState {
public:
  int Matches(ELightingLUTMat a1) const;  // 0018C204
  void Populate(ELightingLUTMat a1);      // 0018C318
  void Generate(ELightingLUTMat a1);      // 0018C330

  CFTTTexture *pTexture_0;
  CFTTTexture *pTexture_4;
  CLightingLUTSceneSettings tSetting_8;
};

extern CLightingLUTSceneSettings *pLUTSceneSettings_33F448;
extern CLightingLUTSceneSettings stru_460FE0;
extern CLightingLUTSceneSettings stru_461070;
extern CLightingLUTSceneSettings stru_461190;
extern CLightingLUTSceneSettings gs_lightingLUTSceneSettings_461100;
extern CLightingLUTState gs_plightingLUTState_46121C[3];
#endif  //_CLIGHTINGLUTSTATE_H_