CommonLibSSE (Parapets fork)
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 FORMTYPE = FormType::Misc;
32 
33  struct RecordFlags
34  {
35  enum RecordFlag : std::uint32_t
36  {
37  kNonPlayable = 1 << 2,
38  kDeleted = 1 << 5,
39  kIgnored = 1 << 12
40  };
41  };
42 
43  ~TESObjectMISC() override; // 00
44 
45  // override (TESBoundObject)
46  bool Load(TESFile* a_mod) override; // 06
47  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
48  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
49  void InitItemImpl() override; // 13
50 
51  // override (BGSKeywordForm)
52  [[nodiscard]] BGSKeyword* GetDefaultKeyword() const override; // 05
53 
54  // add
55  virtual void SaveImpl(); // 53 - { return; }
56  virtual void LoadImpl(TESFile* a_mod, std::uint32_t a_chunkID); // 54 - { return; }
57  virtual void InitImpl(); // 55 - { return; }
58  };
59  static_assert(sizeof(TESObjectMISC) == 0x100);
60 }
Definition: BGSDestructibleObjectForm.h:61
Definition: BGSKeywordForm.h:10
Definition: BGSKeyword.h:10
Definition: BGSMessageIcon.h:9
Definition: BGSPickupPutdownSounds.h:10
Definition: TESBoundObject.h:24
Definition: TESFile.h:14
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
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:31
virtual void InitImpl()
void InitItemImpl() override
Definition: TESValueForm.h:10
Definition: TESWeightForm.h:8
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESObjectMISC
Definition: Offsets_RTTI.h:6038
Definition: TESObjectMISC.h:34
RecordFlag
Definition: TESObjectMISC.h:36
@ kNonPlayable
Definition: TESObjectMISC.h:37
@ kIgnored
Definition: TESObjectMISC.h:39
@ kDeleted
Definition: TESObjectMISC.h:38