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 VTABLE = VTABLE_BGSTextureSet;
20  inline static constexpr auto FORMTYPE = FormType::TextureSet;
21 
22  enum class Flag
23  {
24  kNone = 0,
25  kNoSpecularMap = 1 << 0,
26  kFacegenTextures = 1 << 1,
28  };
29 
30  struct RecordFlags
31  {
32  enum RecordFlag : std::uint32_t
33  {
34  kDeleted = 1 << 5,
35  kIgnored = 1 << 12
36  };
37  };
38 
39  ~BGSTextureSet() override; // 00
40 
41  // override (TESBoundObject)
42  void InitializeData() override; // 04
43  void ClearData() override; // 05
44  bool Load(TESFile* a_mod) override; // 06
45  NiAVObject* Clone3D(TESObjectREFR* a_ref, bool a_arg3) override; // 40
46  void UnClone3D(TESObjectREFR* a_ref) override; // 41
47 
48  // members
49  TESTexture textures[Textures::kUsedTotal]; // 040 - TX00 - TX07
50  DecalData* decalData; // 0C0 - DODT
52  std::uint16_t pad0CA; // 0CA
54  std::uint32_t pad12C; // 12C
55  };
56  static_assert(sizeof(BGSTextureSet) == 0x130);
57 }
Definition: BGSTextureSet.h:16
~BGSTextureSet() override
Flag
Definition: BGSTextureSet.h:23
std::uint32_t pad12C
Definition: BGSTextureSet.h:54
static constexpr auto VTABLE
Definition: BGSTextureSet.h:19
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
BSResource::ID textureFileIDs[Textures::kUsedTotal]
Definition: BGSTextureSet.h:53
REX::EnumSet< Flag, std::uint16_t > flags
Definition: BGSTextureSet.h:51
DecalData * decalData
Definition: BGSTextureSet.h:50
static constexpr auto FORMTYPE
Definition: BGSTextureSet.h:20
void UnClone3D(TESObjectREFR *a_ref) override
void ClearData() override
std::uint16_t pad0CA
Definition: BGSTextureSet.h:52
TESTexture textures[Textures::kUsedTotal]
Definition: BGSTextureSet.h:49
Definition: BSTextureSet.h:9
Definition: NiAVObject.h:51
Definition: TESBoundObject.h:24
Definition: TESFile.h:17
Definition: TESObjectREFR.h:114
Definition: TESTexture.h:10
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 2 > VTABLE_BGSTextureSet
Definition: Offsets_VTABLE.h:8882
constexpr REL::ID RTTI_BGSTextureSet(static_cast< std::uint64_t >(513953))
Definition: BGSTextureSet.h:31
RecordFlag
Definition: BGSTextureSet.h:33
@ kDeleted
Definition: BGSTextureSet.h:34
@ kIgnored
Definition: BGSTextureSet.h:35
Definition: ID.h:10
@ kUsedTotal
Definition: BSTextureSet.h:32
Definition: DecalData.h:33