CommonLibSSE (Parapets fork)
TESSoulGem.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/F/FormTypes.h"
4 #include "RE/S/SoulLevels.h"
5 #include "RE/T/TESObjectMISC.h"
6 
7 namespace RE
8 {
9  class TESSoulGem : public TESObjectMISC
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_TESSoulGem;
13  inline static constexpr auto FORMTYPE = FormType::SoulGem;
14 
15  struct RecordFlags
16  {
17  enum RecordFlag : std::uint32_t
18  {
19  kDeleted = 1 << 5,
20  kIgnored = 1 << 12,
21  kCanHoldNPCSoul = 1 << 17
22  };
23  };
24 
25  ~TESSoulGem() override; // 00
26 
27  // override (TESObjectMISC)
28  void InitializeData() override; // 04
29  void LoadImpl(TESFile* a_mod, std::uint32_t a_chunkID) override; // 54
30  void InitImpl() override; // 55
31 
32  // override (BGSKeywordForm)
33  [[nodiscard]] BGSKeyword* GetDefaultKeyword() const override; // 05
34 
35  [[nodiscard]] constexpr SOUL_LEVEL GetContainedSoul() const noexcept { return *currentSoul; }
36  [[nodiscard]] constexpr SOUL_LEVEL GetMaximumCapacity() const noexcept { return *soulCapacity; }
37 
38  // members
39  TESSoulGem* linkedSoulGem; // 100 - NAM0
42  std::uint16_t unk10A; // 10A
43  std::uint32_t unk10C; // 10C
44  };
45  static_assert(sizeof(TESSoulGem) == 0x110);
46 }
Definition: BGSKeyword.h:10
Definition: TESFile.h:14
Definition: TESObjectMISC.h:28
Definition: TESSoulGem.h:10
void InitImpl() override
stl::enumeration< SOUL_LEVEL, std::uint8_t > soulCapacity
Definition: TESSoulGem.h:41
static constexpr auto RTTI
Definition: TESSoulGem.h:12
void LoadImpl(TESFile *a_mod, std::uint32_t a_chunkID) override
TESSoulGem * linkedSoulGem
Definition: TESSoulGem.h:39
void InitializeData() override
std::uint16_t unk10A
Definition: TESSoulGem.h:42
~TESSoulGem() override
BGSKeyword * GetDefaultKeyword() const override
constexpr SOUL_LEVEL GetMaximumCapacity() const noexcept
Definition: TESSoulGem.h:36
static constexpr auto FORMTYPE
Definition: TESSoulGem.h:13
std::uint32_t unk10C
Definition: TESSoulGem.h:43
constexpr SOUL_LEVEL GetContainedSoul() const noexcept
Definition: TESSoulGem.h:35
stl::enumeration< SOUL_LEVEL, std::uint8_t > currentSoul
Definition: TESSoulGem.h:40
Definition: AbsorbEffect.h:6
SOUL_LEVEL
Definition: SoulLevels.h:6
constexpr REL::ID RTTI_TESSoulGem
Definition: Offsets_RTTI.h:6072
Definition: TESSoulGem.h:16
RecordFlag
Definition: TESSoulGem.h:18
@ kCanHoldNPCSoul
Definition: TESSoulGem.h:21
@ kIgnored
Definition: TESSoulGem.h:20
@ kDeleted
Definition: TESSoulGem.h:19