CommonLibVR
TESObjectMISC.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/B/BGSKeywordForm.h"
5 #include "RE/B/BGSMessageIcon.h"
7 #include "RE/F/FormTypes.h"
8 #include "RE/T/TESBoundObject.h"
9 #include "RE/T/TESFullName.h"
10 #include "RE/T/TESIcon.h"
12 #include "RE/T/TESValueForm.h"
13 #include "RE/T/TESWeightForm.h"
14 
15 namespace RE
16 {
17  class TESObjectMISC :
18  public TESBoundObject, // 000
19  public TESFullName, // 030
20  public TESModelTextureSwap, // 040
21  public TESIcon, // 078
22  public TESValueForm, // 088
23  public TESWeightForm, // 098
24  public BGSDestructibleObjectForm, // 0A8
25  public BGSMessageIcon, // 0B8
26  public BGSPickupPutdownSounds, // 0D0
27  public BGSKeywordForm // 0E8
28  {
29  public:
30  inline static constexpr auto RTTI = RTTI_TESObjectMISC;
31  inline static constexpr auto VTABLE = VTABLE_TESObjectMISC;
32  inline static constexpr auto FORMTYPE = FormType::Misc;
33 
34  struct RecordFlags
35  {
36  enum RecordFlag : std::uint32_t
37  {
38  kNonPlayable = 1 << 2,
39  kDeleted = 1 << 5,
40  kIgnored = 1 << 12
41  };
42  };
43 
44  ~TESObjectMISC() override; // 00
45 
46  // override (TESBoundObject)
47  bool Load(TESFile* a_mod) override; // 06
48  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
49  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
50  void InitItemImpl() override; // 13
51 
52  // override (BGSKeywordForm)
53  [[nodiscard]] BGSKeyword* GetDefaultKeyword() const override; // 05
54 
55  // add
56  virtual void SaveImpl(); // 53 - { return; }
57  virtual void LoadImpl(TESFile* a_mod, std::uint32_t a_chunkID); // 54 - { return; }
58  virtual void InitImpl(); // 55 - { return; }
59  private:
60  KEEP_FOR_RE()
61  };
62  static_assert(sizeof(TESObjectMISC) == 0x100);
63 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSDestructibleObjectForm.h:61
Definition: BGSKeywordForm.h:12
Definition: BGSKeyword.h:10
Definition: BGSLoadFormBuffer.h:11
Definition: BGSMessageIcon.h:9
Definition: BGSPickupPutdownSounds.h:10
Definition: BGSSaveFormBuffer.h:8
Definition: TESBoundObject.h:26
Definition: TESFile.h:17
Definition: TESFullName.h:9
Definition: TESIcon.h:8
Definition: TESModelTextureSwap.h:10
Definition: TESObjectMISC.h:28
BGSKeyword * GetDefaultKeyword() const override
~TESObjectMISC() override
virtual void SaveImpl()
static constexpr auto RTTI
Definition: TESObjectMISC.h:30
static constexpr auto VTABLE
Definition: TESObjectMISC.h:31
bool Load(TESFile *a_mod) override
void SaveGame(BGSSaveFormBuffer *a_buf) override
virtual void LoadImpl(TESFile *a_mod, std::uint32_t a_chunkID)
void LoadGame(BGSLoadFormBuffer *a_buf) override
static constexpr auto FORMTYPE
Definition: TESObjectMISC.h:32
virtual void InitImpl()
void InitItemImpl() override
Definition: TESValueForm.h:8
Definition: TESWeightForm.h:8
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESObjectMISC(static_cast< std::uint64_t >(513921))
constexpr std::array< REL::ID, 10 > VTABLE_TESObjectMISC
Definition: Offsets_VTABLE.h:12867
Definition: TESObjectMISC.h:35
RecordFlag
Definition: TESObjectMISC.h:37
@ kNonPlayable
Definition: TESObjectMISC.h:38
@ kIgnored
Definition: TESObjectMISC.h:40
@ kDeleted
Definition: TESObjectMISC.h:39