CommonLibSSE (Parapets fork)
BSExtraData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/E/ExtraDataTypes.h"
4 #include "RE/M/MemoryManager.h"
5 
6 namespace RE
7 {
8  class BSExtraData
9  {
10  public:
11  inline static constexpr auto RTTI = RTTI_BSExtraData;
12  inline static constexpr auto EXTRADATATYPE = ExtraDataType::kNone;
13 
15  virtual ~BSExtraData() = default; // 00
16 
17  // add
18  [[nodiscard]] virtual ExtraDataType GetType() const = 0; // 01
19  virtual bool IsNotEqual(const BSExtraData* a_rhs) const; // 02 - { return false; }
20 
21  static BSExtraData* Create(std::size_t a_size, std::uintptr_t a_vtbl);
22  template <class T>
23  static T* Create(std::uintptr_t a_vtbl);
24 
25  bool operator==(const BSExtraData& a_rhs) const;
26  bool operator!=(const BSExtraData& a_rhs) const;
27 
29 
30  // members
31  BSExtraData* next; // 08
32  };
33  static_assert(sizeof(BSExtraData) == 0x10);
34 
35  template <class T>
36  T* BSExtraData::Create(std::uintptr_t a_vtbl)
37  {
38  return static_cast<T*>(Create(sizeof(T), a_vtbl));
39  }
40 }
Definition: BSExtraData.h:9
static constexpr auto RTTI
Definition: BSExtraData.h:11
static constexpr auto EXTRADATATYPE
Definition: BSExtraData.h:12
virtual bool IsNotEqual(const BSExtraData *a_rhs) const
virtual ~BSExtraData()=default
bool operator!=(const BSExtraData &a_rhs) const
bool operator==(const BSExtraData &a_rhs) const
BSExtraData * next
Definition: BSExtraData.h:31
static BSExtraData * Create(std::size_t a_size, std::uintptr_t a_vtbl)
virtual ExtraDataType GetType() const =0
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BSExtraData
Definition: Offsets_RTTI.h:1692
ExtraDataType
Definition: ExtraDataTypes.h:173