CommonLibSSE (powerof3)
ExtraSoul.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSExtraData.h"
4 #include "RE/E/ExtraDataTypes.h"
5 #include "RE/S/SoulLevels.h"
6 
7 namespace RE
8 {
9  class ExtraSoul : public BSExtraData
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_ExtraSoul;
13  inline static constexpr auto VTABLE = VTABLE_ExtraSoul;
14  inline static constexpr auto EXTRADATATYPE = ExtraDataType::kSoul;
15 
17  explicit ExtraSoul(SOUL_LEVEL a_level);
18  ~ExtraSoul() override = default; // 00
19 
20  // override (BSExtraData)
21  ExtraDataType GetType() const override; // 01 - { reutrn kSoul; }
22  bool IsNotEqual(const BSExtraData* a_rhs) const override; // 02 - { return soul != a_rhs->soul; }
23 
24  [[nodiscard]] SOUL_LEVEL GetContainedSoul() const;
25 
26  // members
28  std::uint8_t pad11; // 11
29  std::uint16_t pad12; // 12
30  std::uint32_t pad14; // 14
31  };
32  static_assert(sizeof(ExtraSoul) == 0x18);
33 }
Definition: BSExtraData.h:9
Definition: ExtraSoul.h:10
ExtraDataType GetType() const override
ExtraSoul(SOUL_LEVEL a_level)
static constexpr auto VTABLE
Definition: ExtraSoul.h:13
static constexpr auto RTTI
Definition: ExtraSoul.h:12
static constexpr auto EXTRADATATYPE
Definition: ExtraSoul.h:14
std::uint8_t pad11
Definition: ExtraSoul.h:28
bool IsNotEqual(const BSExtraData *a_rhs) const override
std::uint32_t pad14
Definition: ExtraSoul.h:30
REX::EnumSet< SOUL_LEVEL, std::uint8_t > soul
Definition: ExtraSoul.h:27
~ExtraSoul() override=default
std::uint16_t pad12
Definition: ExtraSoul.h:29
SOUL_LEVEL GetContainedSoul() const
Definition: AbsorbEffect.h:6
SOUL_LEVEL
Definition: SoulLevels.h:6
constexpr std::array< REL::ID, 1 > VTABLE_ExtraSoul
Definition: Offsets_VTABLE.h:11620
constexpr REL::ID RTTI_ExtraSoul(static_cast< std::uint64_t >(684786))
ExtraDataType
Definition: ExtraDataTypes.h:173