CommonLibSSE NG
Loading...
Searching...
No Matches
BSExtraData.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace RE
7{
9 {
10 public:
11 inline static constexpr auto RTTI = RTTI_BSExtraData;
12 inline static constexpr auto VTABLE = VTABLE_BSExtraData;
13 inline static auto EXTRADATATYPE = ExtraDataType::kNone;
14
16 virtual ~BSExtraData() = default; // 00
17
18 // add
19 [[nodiscard]] virtual ExtraDataType GetType() const = 0; // 01
20 virtual bool IsNotEqual(const BSExtraData* a_rhs) const; // 02 - { return false; }
21
22 static BSExtraData* Create(std::size_t a_size, std::uintptr_t a_vtbl);
23 template <class T>
24 static T* Create();
25
26 bool operator==(const BSExtraData& a_rhs) const;
27 bool operator!=(const BSExtraData& a_rhs) const;
28
30
31 // members
33 };
34 static_assert(sizeof(BSExtraData) == 0x10);
35
36 template <class T>
38 {
39 return static_cast<T*>(Create(sizeof(T), T::VTABLE[0].address()));
40 }
41}
Definition BSExtraData.h:9
static constexpr auto RTTI
Definition BSExtraData.h:11
virtual bool IsNotEqual(const BSExtraData *a_rhs) const
static BSExtraData * Create(std::size_t a_size, std::uintptr_t a_vtbl)
static constexpr auto VTABLE
Definition BSExtraData.h:12
virtual ~BSExtraData()=default
bool operator!=(const BSExtraData &a_rhs) const
bool operator==(const BSExtraData &a_rhs) const
static auto EXTRADATATYPE
Definition BSExtraData.h:13
BSExtraData * next
Definition BSExtraData.h:32
virtual ExtraDataType GetType() const =0
static T * Create()
Definition BSExtraData.h:37
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSExtraData(513883, 392300, 0x1ed7f50)
constexpr std::array< REL::VariantID, 1 > VTABLE_BSExtraData
Definition Offsets_VTABLE.h:62
ExtraDataType
Definition ExtraDataTypes.h:173