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