CommonLibVR
NiRefObject.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/M/MemoryManager.h"
4 
5 namespace RE
6 {
7  class NiRefObject
8  {
9  public:
10  inline static constexpr auto RTTI = RTTI_NiRefObject;
11  inline static constexpr auto VTABLE = VTABLE_NiRefObject;
12 
14  virtual ~NiRefObject(); // 00
15 
16  // add
17  virtual void DeleteThis(); // 01
18 
19  void IncRefCount();
20  void DecRefCount();
21  [[nodiscard]] constexpr std::uint32_t GetRefCount() const noexcept { return _refCount; }
22 
23  [[nodiscard]] static volatile std::uint32_t* GetTotalObjectCount();
24 
26 
27  // members
28  volatile std::uint32_t _refCount{ 0 }; // 08
29  std::uint32_t _pad0C{ 0 }; // 0C
30  private:
31  KEEP_FOR_RE()
32  };
33  static_assert(sizeof(NiRefObject) == 0x10);
34 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: NiRefObject.h:8
virtual ~NiRefObject()
static constexpr auto RTTI
Definition: NiRefObject.h:10
static volatile std::uint32_t * GetTotalObjectCount()
static constexpr auto VTABLE
Definition: NiRefObject.h:11
std::uint32_t _pad0C
Definition: NiRefObject.h:29
virtual void DeleteThis()
volatile std::uint32_t _refCount
Definition: NiRefObject.h:28
constexpr std::uint32_t GetRefCount() const noexcept
Definition: NiRefObject.h:21
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_NiRefObject(static_cast< std::uint64_t >(684824))
constexpr std::array< REL::ID, 1 > VTABLE_NiRefObject
Definition: Offsets_VTABLE.h:12311