CommonLibSSE NG
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 
15  struct ChangeFlags
16  {
17  enum ChangeFlag : std::uint32_t
18  {
19  kObjectValue = 1 << 1,
20  kObjectFullName = 1 << 2
21  };
22  };
23 
24  ~TESObject() override; // 00
25 
26  // override (TESForm)
27  bool IsObject() const override; // 28 - { return true; }
28  [[nodiscard]] std::uint32_t GetRefCount() const override; // 2D - { return 0; }
29 
30  // add
31  virtual void Unk_3B(void); // 3B - { return 0; }
32  virtual bool IsBoundAnimObject(); // 3C - { return false; }
33  [[nodiscard]] virtual TESWaterForm* GetWaterType() const; // 3D - { return 0; }
34  [[nodiscard]] virtual bool IsAutoCalc() const; // 3E - { return false; }
35  virtual void SetAutoCalc(bool a_autoCalc); // 3F - { return; }
36  virtual NiAVObject* Clone3D(TESObjectREFR* a_ref, bool a_arg3); // 40 - { return 0; }
37  virtual void UnClone3D(TESObjectREFR* a_ref); // 41
38  virtual bool IsMarker(); // 42
39  virtual bool IsOcclusionMarker(); // 43 - { return formType == FormType::Static && this == Plane/Room/PortalMarker; }
40  virtual bool ReplaceModel(); // 44
41  virtual std::uint32_t IncRef(); // 45 - { return 0; }
42  virtual std::uint32_t DecRef(); // 46 - { return 0; }
43  virtual NiAVObject* LoadGraphics(TESObjectREFR* a_ref); // 47
44  };
45  static_assert(sizeof(TESObject) == 0x20);
46 }
Definition: NiAVObject.h:50
Definition: TESForm.h:36
Definition: TESObjectREFR.h:113
Definition: TESObject.h:11
~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::VariantID RTTI_TESObject(513853, 392221, 0x1ed6dd0)
Definition: TESObject.h:16
ChangeFlag
Definition: TESObject.h:18
@ kObjectValue
Definition: TESObject.h:19
@ kObjectFullName
Definition: TESObject.h:20