CommonLibSSE (Parapets fork)
TESShout.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BGSEquipType.h"
5 #include "RE/F/FormTypes.h"
6 #include "RE/T/TESDescription.h"
7 #include "RE/T/TESForm.h"
8 #include "RE/T/TESFullName.h"
9 
10 namespace RE
11 {
12  class TESShout :
13  public TESForm, // 00
14  public TESFullName, // 20
15  public BGSMenuDisplayObject, // 30
16  public BGSEquipType, // 40
17  public TESDescription // 50
18  {
19  public:
20  inline static constexpr auto RTTI = RTTI_TESShout;
21  inline static constexpr auto FORMTYPE = FormType::Shout;
22 
23  struct RecordFlags
24  {
25  enum RecordFlag : std::uint32_t
26  {
27  kDeleted = 1 << 5,
29  kIgnored = 1 << 12
30  };
31  };
32 
33  struct Variation // SNAM
34  {
36  SpellItem* spell; // 08
37  float recoveryTime; // 10
38  std::uint32_t pad14; // 14
39  };
40  static_assert(sizeof(Variation) == 0x18);
41 
42  struct VariationIDs
43  {
44  enum VariationID : std::uint32_t
45  {
46  kNone = static_cast<std::underlying_type_t<VariationID>>(-1),
47  kOne = 0,
48  kTwo,
49  kThree,
50 
51  kTotal
52  };
53  };
55 
56  ~TESShout() override; // 00
57 
58  // override (TESForm)
59  bool Load(TESFile* a_mod) override; // 06
60  void InitItemImpl() override; // 13
61  bool GetKnown() const override; // 17
62 
63  // override (BGSEquipType)
64  BGSEquipSlot* GetEquipSlot() const override; // 04
65  void SetEquipSlot(BGSEquipSlot* a_slot) override; // 05 - { return; }
66 
67  // members
68  Variation variations[VariationIDs::kTotal]; // 60 - SNAM
69  };
70  static_assert(sizeof(TESShout) == 0xA8);
71 }
Definition: BGSEquipSlot.h:10
Definition: BGSEquipType.h:9
Definition: BGSMenuDisplayObject.h:10
Definition: SpellItem.h:16
Definition: TESDescription.h:12
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESFullName.h:9
Definition: TESShout.h:18
bool GetKnown() const override
~TESShout() override
bool Load(TESFile *a_mod) override
void InitItemImpl() override
void SetEquipSlot(BGSEquipSlot *a_slot) override
BGSEquipSlot * GetEquipSlot() const override
static constexpr auto FORMTYPE
Definition: TESShout.h:21
static constexpr auto RTTI
Definition: TESShout.h:20
Variation variations[VariationIDs::kTotal]
Definition: TESShout.h:68
Definition: TESWordOfPower.h:13
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESShout
Definition: Offsets_RTTI.h:6071
Definition: TESShout.h:24
RecordFlag
Definition: TESShout.h:26
@ kDeleted
Definition: TESShout.h:27
@ kTreatSpellsAsPowers
Definition: TESShout.h:28
@ kIgnored
Definition: TESShout.h:29
Definition: TESShout.h:43
VariationID
Definition: TESShout.h:45
Definition: TESShout.h:34
std::uint32_t pad14
Definition: TESShout.h:38
float recoveryTime
Definition: TESShout.h:37
TESWordOfPower * word
Definition: TESShout.h:35
SpellItem * spell
Definition: TESShout.h:36