CommonLibVR
BGSMaterialObject.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/B/BSString.h"
5 #include "RE/B/BSTArray.h"
6 #include "RE/F/FormTypes.h"
7 #include "RE/T/TESForm.h"
8 #include "RE/T/TESModel.h"
9 
10 namespace RE
11 {
13  public TESForm, // 00
14  public TESModel, // 20
15  public BSMaterialObject // 48
16  {
17  public:
18  inline static constexpr auto RTTI = RTTI_BGSMaterialObject;
19  inline static constexpr auto VTABLE = VTABLE_BGSMaterialObject;
20  inline static constexpr auto FORMTYPE = FormType::MaterialObject;
21 
22  struct RecordFlags
23  {
24  enum RecordFlag : std::uint32_t
25  {
26  kDeleted = 1 << 5,
27  kIgnored = 1 << 12
28  };
29  };
30 
31  struct FILE_DATA
32  {
33  char* buffer; // 00
34  std::uint32_t bufferSize; // 08
35  std::uint32_t pad0C; // 0C
36  };
37  static_assert(sizeof(FILE_DATA) == 0x10);
38 
39  ~BGSMaterialObject() override; // 00
40 
41  // override (TESForm)
42  void ClearData() override; // 05
43  bool Load(TESFile* a_mod) override; // 06
44 
45  // override (BSMaterialObject)
46  void EnsureLoaded() override; // 01
47 
48  // members
50  private:
51  KEEP_FOR_RE()
52  };
53  static_assert(sizeof(BGSMaterialObject) == 0xB8);
54 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSMaterialObject.h:16
void ClearData() override
static constexpr auto FORMTYPE
Definition: BGSMaterialObject.h:20
bool Load(TESFile *a_mod) override
~BGSMaterialObject() override
void EnsureLoaded() override
BSTArray< FILE_DATA > fileData
Definition: BGSMaterialObject.h:49
static constexpr auto VTABLE
Definition: BGSMaterialObject.h:19
static constexpr auto RTTI
Definition: BGSMaterialObject.h:18
Definition: BSMaterialObject.h:13
Definition: BSTArray.h:378
Definition: TESFile.h:17
Definition: TESForm.h:40
Definition: TESModel.h:16
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BGSMaterialObject(static_cast< std::uint64_t >(685250))
constexpr std::array< REL::ID, 3 > VTABLE_BGSMaterialObject
Definition: Offsets_VTABLE.h:8648
Definition: BGSMaterialObject.h:32
char * buffer
Definition: BGSMaterialObject.h:33
std::uint32_t bufferSize
Definition: BGSMaterialObject.h:34
std::uint32_t pad0C
Definition: BGSMaterialObject.h:35
Definition: BGSMaterialObject.h:23
RecordFlag
Definition: BGSMaterialObject.h:25
@ kDeleted
Definition: BGSMaterialObject.h:26
@ kIgnored
Definition: BGSMaterialObject.h:27