CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
ActorMagicCaster.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTEvent.h"
4#include "RE/M/MagicCaster.h"
7
8namespace RE
9{
10 struct BSAnimationGraphEvent;
11 class BGSArtObject;
12 class ReferenceEffectController;
13 class BSLight;
14
16 public MagicCaster, // 00
18 public BSTEventSink<BSAnimationGraphEvent> // 60
19 {
20 public:
21 inline static constexpr auto RTTI = RTTI_ActorMagicCaster;
22
23 enum class Flags
24 {
25 kNone = 0,
26 kDualCasting = 1 << 0,
27 kSkipCheckCast = 1 << 1,
28 kUsesHands = 1 << 4
29 };
30
31 ~ActorMagicCaster() override; // 00
32
33 // override (MagicCaster)
34 void RequestCastImpl() override; // 03
35 bool StartChargeImpl() override; // 04
36 void StartReadyImpl() override; // 05
37 void StartCastImpl() override; // 06
38 void FinishCastImpl() override; // 07 - { return; }
39 void InterruptCastImpl(bool a_depleteEnergy) override; // 08 - { return; }
40 void SpellCast(bool a_doCast, std::uint32_t a_arg2, MagicItem* a_spell) override; // 09 - { return; }
41 bool CheckCast(MagicItem* a_spell, bool a_dualCast, float* a_alchStrength, MagicSystem::CannotCastReason* a_reason, bool a_useBaseValueForCost) override; // 0A
42 TESObjectREFR* GetCasterStatsObject() const override; // 0B - { return actor; }
43 Actor* GetCasterAsActor() const override; // 0C - { return actor; }
44 NiNode* GetMagicNode() override; // 0E - { return magicNode; }
45 void ClearMagicNode() override; // 0F - { magicNode = 0; }
46 void SetCurrentSpellImpl(MagicItem* a_spell) override; // 10 - { return; }
47 void SelectSpellImpl() override; // 11 - { return; }
48 void DeselectSpellImpl() override; // 12 - { return; }
49 void SetSkipCheckCast() override; // 13 - { return; }
50 void SetCastingTimerForCharge() override; // 14
51 MagicSystem::CastingSource GetCastingSource() const override; // 15 - { return castingSource; }
52 bool GetIsDualCasting() const override; // 16 - { return flags & 1; }
53 void SetDualCasting(bool a_set) override; // 17
54 void SaveGame(BGSSaveGameBuffer* a_buf) override; // 18
55 void LoadGame(BGSLoadGameBuffer* a_buf) override; // 19
56 void FinishLoadGame(BGSLoadGameBuffer* a_buf) override; // 1A
57 void PrepareSound(MagicSystem::SoundID a_sound, MagicItem* a_spell) override; // 1B
58 void AdjustActiveEffect(ActiveEffect* a_activeEffect, float a_power, bool a_arg3) override; // 1C
59
60 // add
61 virtual void Update(float a_delta); // 1D
62
63 // members
65 std::uint64_t unkB0; // B0
66 Actor* actor; // B8
69 std::uint64_t unkD0; // D0
70 std::uint64_t unkD8; // D8
73 std::uint32_t unkF0; // F0
76 };
77 static_assert(sizeof(ActorMagicCaster) == 0x100);
78}
Definition: ActiveEffect.h:27
Definition: Actor.h:127
Definition: ActorMagicCaster.h:19
static constexpr auto RTTI
Definition: ActorMagicCaster.h:21
void InterruptCastImpl(bool a_depleteEnergy) override
void SpellCast(bool a_doCast, std::uint32_t a_arg2, MagicItem *a_spell) override
void SaveGame(BGSSaveGameBuffer *a_buf) override
void StartCastImpl() override
void RequestCastImpl() override
void LoadGame(BGSLoadGameBuffer *a_buf) override
ReferenceEffectController * weaponEnchantmentController
Definition: ActorMagicCaster.h:72
bool GetIsDualCasting() const override
std::uint64_t unkD8
Definition: ActorMagicCaster.h:70
void FinishLoadGame(BGSLoadGameBuffer *a_buf) override
void PrepareSound(MagicSystem::SoundID a_sound, MagicItem *a_spell) override
stl::enumeration< Flags, std::uint32_t > flags
Definition: ActorMagicCaster.h:75
void SetSkipCheckCast() override
NiNode * magicNode
Definition: ActorMagicCaster.h:67
std::uint64_t unkD0
Definition: ActorMagicCaster.h:69
NiNode * GetMagicNode() override
bool StartChargeImpl() override
Flags
Definition: ActorMagicCaster.h:24
void SetDualCasting(bool a_set) override
void StartReadyImpl() override
void AdjustActiveEffect(ActiveEffect *a_activeEffect, float a_power, bool a_arg3) override
BGSArtObject * castingArt
Definition: ActorMagicCaster.h:71
NiPointer< BSLight > light
Definition: ActorMagicCaster.h:68
std::uint32_t unkF0
Definition: ActorMagicCaster.h:73
MagicSystem::CastingSource castingSource
Definition: ActorMagicCaster.h:74
void DeselectSpellImpl() override
void SetCurrentSpellImpl(MagicItem *a_spell) override
void ClearMagicNode() override
RefAttachTechniqueInput unk64
Definition: ActorMagicCaster.h:64
void SetCastingTimerForCharge() override
~ActorMagicCaster() override
bool CheckCast(MagicItem *a_spell, bool a_dualCast, float *a_alchStrength, MagicSystem::CannotCastReason *a_reason, bool a_useBaseValueForCost) override
std::uint64_t unkB0
Definition: ActorMagicCaster.h:65
Actor * GetCasterAsActor() const override
virtual void Update(float a_delta)
Actor * actor
Definition: ActorMagicCaster.h:66
TESObjectREFR * GetCasterStatsObject() const override
void SelectSpellImpl() override
MagicSystem::CastingSource GetCastingSource() const override
void FinishCastImpl() override
Definition: BGSArtObject.h:12
Definition: BSTEvent.h:143
Definition: MagicCaster.h:17
Definition: MagicItem.h:27
Definition: NiNode.h:12
Definition: NiSmartPointer.h:9
Definition: RefAttachTechniqueInput.h:12
Definition: ReferenceEffectController.h:16
Definition: SimpleAnimationGraphManagerHolder.h:11
Definition: TESObjectREFR.h:110
Definition: PCH.h:217
SoundID
Definition: MagicSystem.h:46
CannotCastReason
Definition: MagicSystem.h:8
CastingSource
Definition: MagicSystem.h:21
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_ActorMagicCaster(static_cast< std::uint64_t >(686479))