CommonLibSSE (powerof3)
BGSTextureSet.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTextureSet.h"
4 #include "RE/C/Color.h"
5 #include "RE/D/DecalData.h"
6 #include "RE/F/FormTypes.h"
7 #include "RE/I/ID.h"
8 #include "RE/T/TESBoundObject.h"
9 #include "RE/T/TESTexture.h"
10 
11 namespace RE
12 {
13  class BGSTextureSet :
14  public TESBoundObject, // 00
15  public BSTextureSet // 30
16  {
17  public:
18  inline static constexpr auto RTTI = RTTI_BGSTextureSet;
19  inline static constexpr auto FORMTYPE = FormType::TextureSet;
20 
21  enum class Flag
22  {
23  kNone = 0,
24  kNoSpecularMap = 1 << 0,
25  kFacegenTextures = 1 << 1,
27  };
28 
29  struct RecordFlags
30  {
31  enum RecordFlag : std::uint32_t
32  {
33  kDeleted = 1 << 5,
34  kIgnored = 1 << 12
35  };
36  };
37 
38  ~BGSTextureSet() override; // 00
39 
40  // override (TESBoundObject)
41  void InitializeData() override; // 04
42  void ClearData() override; // 05
43  bool Load(TESFile* a_mod) override; // 06
44  NiAVObject* Clone3D(TESObjectREFR* a_ref, bool a_arg3) override; // 40
45  void UnClone3D(TESObjectREFR* a_ref) override; // 41
46 
47  // members
48  TESTexture textures[Textures::kTotal]; // 040 - TX00 - TX07
49  DecalData* decalData; // 0C0 - DODT
51  std::uint16_t pad0CA; // 0CA
53  std::uint32_t pad12C; // 12C
54  };
55  static_assert(sizeof(BGSTextureSet) == 0x130);
56 }
Definition: BGSTextureSet.h:16
~BGSTextureSet() override
Flag
Definition: BGSTextureSet.h:22
std::uint32_t pad12C
Definition: BGSTextureSet.h:53
bool Load(TESFile *a_mod) override
static constexpr auto RTTI
Definition: BGSTextureSet.h:18
void InitializeData() override
NiAVObject * Clone3D(TESObjectREFR *a_ref, bool a_arg3) override
stl::enumeration< Flag, std::uint16_t > flags
Definition: BGSTextureSet.h:50
DecalData * decalData
Definition: BGSTextureSet.h:49
static constexpr auto FORMTYPE
Definition: BGSTextureSet.h:19
void UnClone3D(TESObjectREFR *a_ref) override
void ClearData() override
std::uint16_t pad0CA
Definition: BGSTextureSet.h:51
TESTexture textures[Textures::kTotal]
Definition: BGSTextureSet.h:48
BSResource::ID textureFileIDs[Textures::kTotal]
Definition: BGSTextureSet.h:52
Definition: BSTextureSet.h:10
Definition: NiAVObject.h:45
Definition: TESBoundObject.h:24
Definition: TESFile.h:14
Definition: TESObjectREFR.h:103
Definition: TESTexture.h:10
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BGSTextureSet
Definition: Offsets_RTTI.h:1561
Definition: BGSTextureSet.h:30
RecordFlag
Definition: BGSTextureSet.h:32
@ kDeleted
Definition: BGSTextureSet.h:33
@ kIgnored
Definition: BGSTextureSet.h:34
Definition: ID.h:10
@ kTotal
Definition: BSTextureSet.h:32
Definition: DecalData.h:33