CommonLibVR
PermanentMagicFunctor.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSContainer.h"
4 
5 namespace RE
6 {
7  class Actor;
8  class MagicCaster;
9  class MagicItem;
10 
12  {
13  enum class Flags
14  {
15  kNone = 0,
16  kRemoveHitEffectArt = 1 << 0
17  };
18 
19  PermanentMagicFunctor(MagicCaster* a_caster, Actor* a_actor) :
20  caster(a_caster),
21  actor(a_actor)
22  {}
23 
25  {
26  using func_t = decltype(&PermanentMagicFunctor::operator());
27  static REL::Relocation<func_t> func{ RELOCATION_ID(33684, 34464) };
28  return func(this, a_spell);
29  }
30 
31  // members
33  Actor* actor; // 08
34  std::uint8_t isSpellType{ 0xFF }; // 10
35  std::uint8_t isNotSpellType{ 0xA }; // 11
36  std::uint8_t flags{ 0 }; // 12
37  std::uint8_t pad13{ 0 }; // 13
38  std::uint32_t pad14{ 0 }; // 14
39  private:
40  KEEP_FOR_RE()
41  };
42  static_assert(sizeof(PermanentMagicFunctor) == 0x18);
43 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:702
Definition: Relocation.h:210
Definition: Actor.h:133
Definition: MagicCaster.h:25
Definition: MagicItem.h:30
ForEachResult
Definition: BSContainer.h:6
Definition: AbsorbEffect.h:6
Definition: PermanentMagicFunctor.h:12
std::uint32_t pad14
Definition: PermanentMagicFunctor.h:38
Actor * actor
Definition: PermanentMagicFunctor.h:33
std::uint8_t flags
Definition: PermanentMagicFunctor.h:36
MagicCaster * caster
Definition: PermanentMagicFunctor.h:32
Flags
Definition: PermanentMagicFunctor.h:14
PermanentMagicFunctor(MagicCaster *a_caster, Actor *a_actor)
Definition: PermanentMagicFunctor.h:19
std::uint8_t isSpellType
Definition: PermanentMagicFunctor.h:34
BSContainer::ForEachResult operator()(MagicItem *a_spell)
Definition: PermanentMagicFunctor.h:24
std::uint8_t pad13
Definition: PermanentMagicFunctor.h:37
std::uint8_t isNotSpellType
Definition: PermanentMagicFunctor.h:35