CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
MagicCaster.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/M/MagicSystem.h"
6
7namespace RE
8{
9 class Actor;
10 class BGSSaveGameBuffer;
11 class BGSLoadGameBuffer;
12 class MagicItem;
13 class NiNode;
14 class TESObjectREFR;
15
17 {
18 public:
19 inline static constexpr auto RTTI = RTTI_MagicCaster;
20
21 enum class State
22 {
23 };
24
25 virtual ~MagicCaster(); // 00
26
27 // add
28 virtual void CastSpellImmediate(MagicItem* a_spell, bool a_noHitEffectArt, TESObjectREFR* a_target, float a_effectiveness, bool a_hostileEffectivenessOnly, float a_magnitudeOverride, Actor* a_blameActor); // 01
29 virtual void FindTouchTarget(); // 02
30 virtual void RequestCastImpl(); // 03
31 virtual bool StartChargeImpl(); // 04
32 virtual void StartReadyImpl(); // 05
33 virtual void StartCastImpl(); // 06
34 virtual void FinishCastImpl(); // 07 - { return; }
35 virtual void InterruptCastImpl(bool a_depleteEnergy); // 08 - { return; }
36 virtual void SpellCast(bool a_doCast, std::uint32_t a_arg2, MagicItem* a_spell); // 09 - { return; }
37 virtual bool CheckCast(MagicItem* a_spell, bool a_dualCast, float* a_alchStrength, MagicSystem::CannotCastReason* a_reason, bool a_useBaseValueForCost); // 0A
38 virtual TESObjectREFR* GetCasterStatsObject() const; // 0B - { return 0; }
39 virtual Actor* GetCasterAsActor() const; // 0C - { return 0; }
40 virtual TESObjectREFR* GetCasterObjectReference(Actor** a_outCaster) const; // 0D
41 virtual NiNode* GetMagicNode(); // 0E - { return 0; }
42 virtual void ClearMagicNode(); // 0F - { return; }
43 virtual void SetCurrentSpellImpl(MagicItem* a_spell); // 10 - { return; }
44 virtual void SelectSpellImpl(); // 11 - { return; }
45 virtual void DeselectSpellImpl(); // 12 - { return; }
46 virtual void SetSkipCheckCast(); // 13 - { return; }
47 virtual void SetCastingTimerForCharge(); // 14
48 virtual MagicSystem::CastingSource GetCastingSource() const; // 15 - { return 0; }
49 virtual bool GetIsDualCasting() const; // 16 - { return 0; }
50 virtual void SetDualCasting(bool a_set); // 17 - { return; }
51 virtual void SaveGame(BGSSaveGameBuffer* a_buf); // 18
52 virtual void LoadGame(BGSLoadGameBuffer* a_buf); // 19
53 virtual void FinishLoadGame(BGSLoadGameBuffer* a_buf); // 1A
54 virtual void PrepareSound(MagicSystem::SoundID a_sound, MagicItem* a_spell); // 1B
55 virtual void AdjustActiveEffect(ActiveEffect* a_activeEffect, float a_power, bool a_arg3); // 1C
56
57 // members
60 std::uint32_t pad24; // 24
63 float castingTimer; // 34
64 float currentSpellCost; // 38
65 float magnitudeOverride; // 3C
66 float nextTargetUpdate; // 40
67 float projectileTimer; // 44
68 };
69 static_assert(sizeof(MagicCaster) == 0x48);
70}
Definition: ActiveEffect.h:27
Definition: Actor.h:127
Definition: BSTArray.h:377
Definition: MagicCaster.h:17
virtual bool GetIsDualCasting() const
virtual bool CheckCast(MagicItem *a_spell, bool a_dualCast, float *a_alchStrength, MagicSystem::CannotCastReason *a_reason, bool a_useBaseValueForCost)
MagicItem * currentSpell
Definition: MagicCaster.h:61
virtual NiNode * GetMagicNode()
float currentSpellCost
Definition: MagicCaster.h:64
virtual void SaveGame(BGSSaveGameBuffer *a_buf)
BSTArray< BSSoundHandle > sounds
Definition: MagicCaster.h:58
virtual void RequestCastImpl()
virtual void DeselectSpellImpl()
ObjectRefHandle desiredTarget
Definition: MagicCaster.h:59
virtual Actor * GetCasterAsActor() const
virtual MagicSystem::CastingSource GetCastingSource() const
float magnitudeOverride
Definition: MagicCaster.h:65
virtual void FinishCastImpl()
virtual void SpellCast(bool a_doCast, std::uint32_t a_arg2, MagicItem *a_spell)
virtual void SetDualCasting(bool a_set)
virtual void CastSpellImmediate(MagicItem *a_spell, bool a_noHitEffectArt, TESObjectREFR *a_target, float a_effectiveness, bool a_hostileEffectivenessOnly, float a_magnitudeOverride, Actor *a_blameActor)
virtual void ClearMagicNode()
virtual ~MagicCaster()
virtual void LoadGame(BGSLoadGameBuffer *a_buf)
virtual void AdjustActiveEffect(ActiveEffect *a_activeEffect, float a_power, bool a_arg3)
static constexpr auto RTTI
Definition: MagicCaster.h:19
virtual void FinishLoadGame(BGSLoadGameBuffer *a_buf)
virtual void SetCurrentSpellImpl(MagicItem *a_spell)
virtual void SetCastingTimerForCharge()
float projectileTimer
Definition: MagicCaster.h:67
virtual bool StartChargeImpl()
virtual void SetSkipCheckCast()
virtual void StartReadyImpl()
virtual void StartCastImpl()
virtual void SelectSpellImpl()
stl::enumeration< State, std::uint32_t > state
Definition: MagicCaster.h:62
std::uint32_t pad24
Definition: MagicCaster.h:60
float nextTargetUpdate
Definition: MagicCaster.h:66
State
Definition: MagicCaster.h:22
virtual void InterruptCastImpl(bool a_depleteEnergy)
float castingTimer
Definition: MagicCaster.h:63
virtual void PrepareSound(MagicSystem::SoundID a_sound, MagicItem *a_spell)
virtual void FindTouchTarget()
virtual TESObjectREFR * GetCasterObjectReference(Actor **a_outCaster) const
virtual TESObjectREFR * GetCasterStatsObject() const
Definition: MagicItem.h:27
Definition: NiNode.h:12
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_MagicCaster(static_cast< std::uint64_t >(513999))