CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
MagicTarget.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/B/BSTList.h"
7
8namespace RE
9{
10 class Actor;
11 class ActiveEffect;
12 class EffectItem;
13 class EffectSetting;
14 class MagicItem;
15 class TESBoundObject;
16 class TESObjectREFR;
17
19 {
20 public:
21 inline static constexpr auto RTTI = RTTI_MagicTarget;
22
24
26 {
27 public:
28 inline static constexpr auto RTTI = RTTI_MagicTarget__ForEachActiveEffectVisitor;
29
31
32 // add
33 virtual bool Accept(ActiveEffect* a_effect) = 0; // 01
34 };
35 static_assert(sizeof(ForEachActiveEffectVisitor) == 0x8);
36
38 {
41 std::uint32_t pad0C; // 0C
44 };
45 static_assert(sizeof(SpellDispelData) == 0x20);
46
47 virtual ~MagicTarget(); // 00
48
49 // add
50 virtual void Unk_01(void); // 01
51 virtual TESObjectREFR* GetTargetStatsObject(); // 02 - { return false; }
52 [[nodiscard]] virtual bool MagicTargetIsActor() const; // 03 - { return false; }
53 virtual bool IsInvulnerable(); // 04 - { return false; }
54 virtual void InvalidateCommandedActorEffect(ActiveEffect* a_effect); // 05 - { return; }
55 virtual bool CanAddActiveEffect() = 0; // 06
57 virtual void Unk_08(void); // 08 - { return; }
58 virtual void Unk_09(void); // 09 - { return; }
59 virtual void CheckResistance(MagicItem* a_magicItem, EffectItem* a_effect, TESBoundObject* a_object); // 0A - { return 1.0; }
60 virtual void CheckAbsorb(Actor* a_actor, MagicItem* a_magicItem, const EffectItem* a_effect); // 0B - { return false; }
61
62 void DispelEffectsWithArchetype(Archetype a_type, bool a_force);
65
66 // members
68 std::uint8_t flags; // 10
69 std::uint8_t pad11; // 11
70 std::uint16_t pad12; // 12
71 std::uint32_t pad14; // 14
72 };
73 static_assert(sizeof(MagicTarget) == 0x18);
74}
Definition: ActiveEffect.h:22
Definition: Actor.h:125
Definition: BSPointerHandle.h:91
Definition: BSTList.h:10
Definition: BSTSmartPointer.h:37
Definition: EffectSetting.h:24
Definition: MagicItem.h:27
virtual bool Accept(ActiveEffect *a_effect)=0
static constexpr auto RTTI
Definition: MagicTarget.h:28
Definition: MagicTarget.h:19
SpellDispelData * postUpdateDispelList
Definition: MagicTarget.h:67
virtual TESObjectREFR * GetTargetStatsObject()
virtual bool CanAddActiveEffect()=0
bool HasMagicEffect(EffectSetting *a_effect)
std::uint16_t pad12
Definition: MagicTarget.h:70
virtual void CheckAbsorb(Actor *a_actor, MagicItem *a_magicItem, const EffectItem *a_effect)
virtual void InvalidateCommandedActorEffect(ActiveEffect *a_effect)
virtual void Unk_08(void)
virtual ~MagicTarget()
std::uint8_t pad11
Definition: MagicTarget.h:69
virtual void CheckResistance(MagicItem *a_magicItem, EffectItem *a_effect, TESBoundObject *a_object)
bool HasEffectWithArchetype(Archetype a_type)
virtual bool IsInvulnerable()
void DispelEffectsWithArchetype(Archetype a_type, bool a_force)
virtual void Unk_01(void)
virtual BSSimpleList< ActiveEffect * > * GetActiveEffectList()=0
virtual bool MagicTargetIsActor() const
virtual void Unk_09(void)
std::uint32_t pad14
Definition: MagicTarget.h:71
std::uint8_t flags
Definition: MagicTarget.h:68
static constexpr auto RTTI
Definition: MagicTarget.h:21
Definition: TESBoundObject.h:24
Definition: TESObjectREFR.h:105
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_MagicTarget__ForEachActiveEffectVisitor
Definition: Offsets_RTTI.h:5138
constexpr REL::ID RTTI_MagicTarget
Definition: Offsets_RTTI.h:5136
ArchetypeID
Definition: EffectArchetypes.h:8
Definition: MagicTarget.h:38
std::uint32_t pad0C
Definition: MagicTarget.h:41
SpellDispelData * next
Definition: MagicTarget.h:43
MagicItem * spell
Definition: MagicTarget.h:39
BSPointerHandle< Actor > caster
Definition: MagicTarget.h:40
BSTSmartPointer< ActiveEffect > activeEffect
Definition: MagicTarget.h:42