CommonLibSSE (powerof3)
TESObject.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/T/TESForm.h"
4 
5 namespace RE
6 {
7  class NiAVObject;
8  class TESObjectREFR;
9 
10  class TESObject : public TESForm
11  {
12  public:
13  inline static constexpr auto RTTI = RTTI_TESObject;
14  inline static constexpr auto VTABLE = VTABLE_TESObject;
15 
16  struct ChangeFlags
17  {
18  enum ChangeFlag : std::uint32_t
19  {
20  kObjectValue = 1 << 1,
21  kObjectFullName = 1 << 2
22  };
23  };
24 
25  ~TESObject() override; // 00
26 
27  // override (TESForm)
28  bool IsObject() const override; // 28 - { return true; }
29  [[nodiscard]] std::uint32_t GetRefCount() const override; // 2D - { return 0; }
30 
31  // add
32  virtual void Unk_3B(void); // 3B - { return 0; }
33  virtual bool IsBoundAnimObject(); // 3C - { return false; }
34  [[nodiscard]] virtual TESWaterForm* GetWaterType() const; // 3D - { return 0; }
35  [[nodiscard]] virtual bool IsAutoCalc() const; // 3E - { return false; }
36  virtual void SetAutoCalc(bool a_autoCalc); // 3F - { return; }
37  virtual NiAVObject* Clone3D(TESObjectREFR* a_ref, bool a_arg3); // 40 - { return 0; }
38  virtual void UnClone3D(TESObjectREFR* a_ref); // 41
39  virtual bool IsMarker(); // 42
40  virtual bool IsOcclusionMarker(); // 43 - { return formType == FormType::Static && this == Plane/Room/PortalMarker; }
41  virtual bool ReplaceModel(); // 44
42  virtual std::uint32_t IncRef(); // 45 - { return 0; }
43  virtual std::uint32_t DecRef(); // 46 - { return 0; }
44  virtual NiAVObject* LoadGraphics(TESObjectREFR* a_ref); // 47
45  };
46  static_assert(sizeof(TESObject) == 0x20);
47 }
Definition: NiAVObject.h:51
Definition: TESForm.h:36
Definition: TESObjectREFR.h:114
Definition: TESObject.h:11
static constexpr auto VTABLE
Definition: TESObject.h:14
~TESObject() override
virtual NiAVObject * LoadGraphics(TESObjectREFR *a_ref)
virtual NiAVObject * Clone3D(TESObjectREFR *a_ref, bool a_arg3)
virtual bool IsBoundAnimObject()
virtual void Unk_3B(void)
bool IsObject() const override
virtual bool ReplaceModel()
static constexpr auto RTTI
Definition: TESObject.h:13
std::uint32_t GetRefCount() const override
virtual bool IsMarker()
virtual std::uint32_t DecRef()
virtual bool IsAutoCalc() const
virtual TESWaterForm * GetWaterType() const
virtual void UnClone3D(TESObjectREFR *a_ref)
virtual bool IsOcclusionMarker()
virtual void SetAutoCalc(bool a_autoCalc)
virtual std::uint32_t IncRef()
Definition: TESWaterForm.h:83
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESObject(static_cast< std::uint64_t >(513853))
constexpr std::array< REL::ID, 1 > VTABLE_TESObject
Definition: Offsets_VTABLE.h:12855
Definition: TESObject.h:17
ChangeFlag
Definition: TESObject.h:19
@ kObjectValue
Definition: TESObject.h:20
@ kObjectFullName
Definition: TESObject.h:21