CommonLibSSE NG
Loading...
Searching...
No Matches
ReferenceEffectController.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace RE
7{
8 class BGSArtObject;
9 class BGSLoadGameBuffer;
10 class BGSSaveGameBuffer;
11 class NiAVObject;
12 class NiNode;
13 class NiPoint3;
14 class ReferenceEffect;
15 class TESEffectShader;
16 class TESObjectREFR;
17
19 {
20 public:
21 inline static constexpr auto RTTI = RTTI_ReferenceEffectController;
22
23 virtual ~ReferenceEffectController() = default; // 00
24
25 // add
26 virtual void HandleEvent(const BSFixedString& a_event); // 01 - { return; }
27 virtual float GetElapsedTime(); // 02 - { return 0.0; }
28 virtual float GetScale(); // 03 - { return 1.0; }
29 virtual void SwitchAttachedRoot(NiNode* a_root, NiNode* a_attachRoot); // 04 - { return; }
30 virtual const NiPoint3& GetSourcePosition(); // 05 - { return NiPoint3(); }
31 virtual bool GetUseSourcePosition(); // 06 - { return true; }
32 virtual bool GetNoInitialFlare(); // 07 - { return false; }
33 virtual bool GetEffectPersists(); // 08 - { return true; }
34 virtual bool GetGoryVisuals(); // 09 - { return false; }
35 virtual void RemoveHitEffect(ReferenceEffect* a_refEffect); // 0A - { return; }
36 virtual TESObjectREFR* GetTargetReference() = 0; // 0B
37 virtual BGSArtObject* GetHitEffectArt() = 0; // 0C
38 virtual TESEffectShader* GetHitEffectShader() = 0; // 0D
39 virtual bool GetManagerHandlesSaveLoad() = 0; // 0E
40 virtual NiAVObject* GetAttachRoot(); // 0F - { auto ref = GetTargetReference(); return ref ? ref->Get3D() : 0; }
41 virtual float GetParticleAttachExtent(); // 10 - { return 0.0; }
42 virtual bool GetUseParticleAttachExtent(); // 11 - { return false; }
43 virtual bool GetDoParticles(); // 12 - { return true; }
44 virtual bool GetParticlesUseLocalSpace(); // 13 - { return false; }
45 virtual bool GetUseRootWorldRotate(); // 14 - { return false; }
46 virtual bool GetIsRootActor(); // 15 - { auto ref = GetTargetReference(); return ref ? ref->formType = FormType::ActorCharacter : false; }
47 virtual bool GetClearWhenCellIsUnloaded(); // 16 - { return false; }
48 virtual bool EffectShouldFaceTarget(); // 17 - { return false; }
49 virtual TESObjectREFR* GetFacingTarget(); // 18 - { return 0; }
50 virtual bool GetShaderUseParentCell(); // 19 - { return true; }
51 virtual bool EffectAttachesToCamera(); // 1A - { return false; }
52 virtual bool EffectRotatesWithCamera(); // 1B - { return false; }
53 virtual bool GetAllowTargetRoot(); // 1C - { return true; }
54 virtual bool IsReadyForAttach(); // 1D - { return true; }
55 virtual void SetWindPoint(const NiPoint3& a_point); // 1E - { return; }
56 virtual const NiPoint3& GetWindPoint(); // 1F - { return NiPoint3(); }
57 virtual bool GetAllowNo3D(); // 20 - { return false; }
58 virtual void SaveGame(BGSSaveGameBuffer* a_buf); // 21 - { return; }
59 virtual void LoadGame(BGSLoadGameBuffer* a_buf); // 22 - { return; }
60
61 void Start(ReferenceEffect** a_effectOut = nullptr);
62 void Stop();
63
65 };
66 static_assert(sizeof(ReferenceEffectController) == 0x8);
67}
Definition BGSArtObject.h:12
Definition BGSLoadGameBuffer.h:6
Definition NiAVObject.h:50
Definition NiNode.h:12
Definition NiPoint3.h:6
Definition ReferenceEffectController.h:19
virtual bool GetUseRootWorldRotate()
virtual bool EffectShouldFaceTarget()
virtual void SwitchAttachedRoot(NiNode *a_root, NiNode *a_attachRoot)
virtual const NiPoint3 & GetSourcePosition()
virtual bool GetParticlesUseLocalSpace()
virtual bool GetAllowTargetRoot()
virtual const NiPoint3 & GetWindPoint()
virtual void RemoveHitEffect(ReferenceEffect *a_refEffect)
virtual bool EffectAttachesToCamera()
virtual bool GetNoInitialFlare()
virtual ~ReferenceEffectController()=default
virtual TESObjectREFR * GetTargetReference()=0
void Start(ReferenceEffect **a_effectOut=nullptr)
virtual void SaveGame(BGSSaveGameBuffer *a_buf)
virtual bool GetShaderUseParentCell()
virtual bool GetUseParticleAttachExtent()
virtual bool GetUseSourcePosition()
virtual bool GetEffectPersists()
virtual bool EffectRotatesWithCamera()
virtual bool GetClearWhenCellIsUnloaded()
virtual void LoadGame(BGSLoadGameBuffer *a_buf)
virtual float GetElapsedTime()
virtual void HandleEvent(const BSFixedString &a_event)
virtual void SetWindPoint(const NiPoint3 &a_point)
virtual NiAVObject * GetAttachRoot()
virtual TESObjectREFR * GetFacingTarget()
static constexpr auto RTTI
Definition ReferenceEffectController.h:21
virtual BGSArtObject * GetHitEffectArt()=0
virtual float GetParticleAttachExtent()
virtual TESEffectShader * GetHitEffectShader()=0
virtual bool GetManagerHandlesSaveLoad()=0
Definition ReferenceEffect.h:12
Definition TESEffectShader.h:182
Definition TESObjectREFR.h:112
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_ReferenceEffectController(685185, 392951, 0x1ee1248)