CommonLibSSE (powerof3)
ActiveEffect.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/B/BSPointerHandle.h"
5 #include "RE/B/BSSoundHandle.h"
6 #include "RE/B/BSTList.h"
7 #include "RE/M/MagicSystem.h"
8 #include "RE/N/NiSmartPointer.h"
9 
10 namespace RE
11 {
12  class Actor;
13  class EffectSetting;
14  class MagicItem;
15  class MagicTarget;
16  class NiNode;
17  class ReferenceEffect;
18  class TESBoundObject;
19  struct Effect;
20 
22  {
23  public:
24  inline static constexpr auto RTTI = RTTI_ActiveEffect;
25  inline static constexpr auto VMTYPEID = static_cast<VMTypeID>(142);
26 
27  enum class Flag
28  {
29  kHasConditions = 1 << 7,
30  kRecovers = 1 << 9,
31  kInactive = 1 << 15,
32  kDispelled = 1 << 18
33  };
34 
35  enum class ConditionStatus
36  {
37  kNA = static_cast<std::underlying_type_t<ConditionStatus>>(-1),
38  kFalse = 0,
39  kTrue = 1,
40  };
41 
42  // add
43  virtual void Unk_00(void); // 00
44  virtual void Unk_01(void); // 01
45  virtual void Unk_02(void); // 02 - { return; }
46  virtual TESObjectREFR* GetVisualsTarget(); // 03 - { return target ? target->GetTargetStatsObject() : 0; }
47  virtual void Unk_04(void); // 04 - { return; }
48  virtual void Unk_05(void); // 05
49  virtual void Unk_06(void); // 06 - { return 0; }
50  virtual void Unk_07(void); // 07 - { return; }
51  virtual void Unk_08(void); // 08
52  virtual void Unk_09(void); // 09
53  virtual void Unk_0A(void); // 0A
54  virtual void Unk_0B(void); // 0B - { unk88 = 4; }
55  virtual void Unk_0C(void); // 0C
56  virtual void Unk_0D(void); // 0D - { return; }
57  virtual void Unk_0E(void); // 0E - { return; }
58  virtual void Unk_0F(void); // 0F - { return; }
59  virtual void Unk_10(void); // 10
60  virtual void Unk_11(void); // 11 - { return 0; }
61  virtual void Unk_12(void); // 12 - { return; }
62 
63  virtual ~ActiveEffect(); // 13
64 
65  virtual void Unk_14(void); // 14 - { return; }
66  virtual void Unk_15(void); // 15 - { return; }
67  virtual void Unk_16(void); // 16
68  virtual void Unk_17(void); // 17 - { return 1; }
69  virtual void Unk_18(void); // 18 - { return 1.0; }
70 
71  void Dispel(bool a_force);
72  [[nodiscard]] EffectSetting* GetBaseObject() noexcept;
73  [[nodiscard]] const EffectSetting* GetBaseObject() const noexcept;
76  const Actor* GetTargetActor() const;
77 
82  MagicItem* spell; // 40
83  Effect* effect; // 48
88  float elapsedSeconds; // 70
89  float duration; // 74
90  float magnitude; // 78
91  stl::enumeration<Flag, std::uint32_t> flags; // 7C
93  std::uint16_t usUniqueID; // 84
94  std::uint16_t pad86; // 86
95  MagicSystem::CastingSource castingSource; // 88
96  std::uint32_t pad8C; // 8C
97  };
98  static_assert(sizeof(ActiveEffect) == 0x90);
99 }
Definition: ActiveEffectReferenceEffectController.h:12
Definition: ActiveEffect.h:22
float elapsedSeconds
Definition: ActiveEffect.h:88
static constexpr auto VMTYPEID
Definition: ActiveEffect.h:25
virtual void Unk_06(void)
MagicItem * spell
Definition: ActiveEffect.h:82
ConditionStatus
Definition: ActiveEffect.h:36
virtual void Unk_09(void)
BSSoundHandle persistentSound
Definition: ActiveEffect.h:79
std::uint16_t usUniqueID
Definition: ActiveEffect.h:93
virtual void Unk_14(void)
static constexpr auto RTTI
Definition: ActiveEffect.h:24
virtual void Unk_18(void)
virtual void Unk_0E(void)
NiPointer< NiNode > sourceNode
Definition: ActiveEffect.h:81
virtual void Unk_11(void)
virtual void Unk_15(void)
virtual void Unk_0C(void)
ActiveEffectReferenceEffectController hitEffectController
Definition: ActiveEffect.h:78
virtual void Unk_12(void)
virtual void Unk_16(void)
virtual ~ActiveEffect()
NiPointer< Actor > GetCasterActor() const
EffectSetting * GetBaseObject() noexcept
virtual void Unk_01(void)
virtual void Unk_0B(void)
virtual void Unk_0D(void)
void Dispel(bool a_force)
virtual void Unk_08(void)
MagicTarget * target
Definition: ActiveEffect.h:84
virtual void Unk_0F(void)
std::uint32_t pad8C
Definition: ActiveEffect.h:96
stl::enumeration< Flag, std::uint32_t > flags
Definition: ActiveEffect.h:91
Effect * effect
Definition: ActiveEffect.h:83
stl::enumeration< ConditionStatus, std::uint32_t > conditionStatus
Definition: ActiveEffect.h:92
std::uint16_t pad86
Definition: ActiveEffect.h:94
Actor * GetTargetActor()
virtual void Unk_02(void)
virtual void Unk_05(void)
Flag
Definition: ActiveEffect.h:28
float duration
Definition: ActiveEffect.h:89
virtual void Unk_17(void)
BSSimpleList< ReferenceEffect * > * hitEffects
Definition: ActiveEffect.h:86
virtual void Unk_00(void)
MagicItem * displacementSpell
Definition: ActiveEffect.h:87
float magnitude
Definition: ActiveEffect.h:90
MagicSystem::CastingSource castingSource
Definition: ActiveEffect.h:95
virtual TESObjectREFR * GetVisualsTarget()
ActorHandle caster
Definition: ActiveEffect.h:80
virtual void Unk_07(void)
virtual void Unk_0A(void)
virtual void Unk_10(void)
TESBoundObject * source
Definition: ActiveEffect.h:85
virtual void Unk_04(void)
Definition: Actor.h:125
Definition: BSTList.h:10
Definition: EffectSetting.h:24
Definition: MagicItem.h:27
Definition: MagicTarget.h:19
Definition: NiNode.h:12
Definition: NiSmartPointer.h:9
Definition: ReferenceEffect.h:11
Definition: TESBoundObject.h:24
Definition: TESObjectREFR.h:103
CastingSource
Definition: MagicSystem.h:21
Definition: AbsorbEffect.h:6
std::uint32_t VMTypeID
Definition: BSCoreTypes.h:9
constexpr REL::ID RTTI_ActiveEffect
Definition: Offsets_RTTI.h:19
Definition: PCH.h:72
enumeration(Args...) -> enumeration< std::common_type_t< Args... >, std::underlying_type_t< std::common_type_t< Args... >>>
Definition: NiBinaryStream.h:94
Definition: BSSoundHandle.h:10
Definition: Effect.h:11