CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
ActiveEffect.h
Go to the documentation of this file.
1#pragma once
2
6#include "RE/B/BSTList.h"
7#include "RE/M/MagicSystem.h"
9
10namespace 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
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
92 stl::enumeration<ConditionStatus, std::uint32_t> conditionStatus; // 80
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: ActiveEffect.h:22
float elapsedSeconds
Definition: ActiveEffect.h:88
static constexpr auto VMTYPEID
Definition: ActiveEffect.h:25
Actor * GetTargetActor()
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()
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
NiPointer< Actor > GetCasterActor() const
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
virtual void Unk_02(void)
virtual TESObjectREFR * GetVisualsTarget()
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
ActorHandle caster
Definition: ActiveEffect.h:80
EffectSetting * GetBaseObject() noexcept
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: ActiveEffectReferenceEffectController.h:12
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:105
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
Definition: NiBinaryStream.h:94
Definition: BSSoundHandle.h:10
Definition: Effect.h:11