CommonLibSSE NG
ModelReferenceEffect.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/B/BSTEvent.h"
5 #include "RE/N/NiSmartPointer.h"
7 #include "RE/R/ReferenceEffect.h"
9 
10 namespace RE
11 {
12  class BGSArtObjectCloneTask;
13  class NiAVObject;
14  struct BSAnimationGraphEvent;
15 
17  public ReferenceEffect, // 00
19  public BSTEventSink<BSAnimationGraphEvent> // 60
20  {
21  public:
22  inline static constexpr auto RTTI = RTTI_ModelReferenceEffect;
23  inline static auto Ni_RTTI = NiRTTI_ModelReferenceEffect;
24  inline static constexpr auto TYPE = TEMP_EFFECT_TYPE::kRefModel;
25 
26  enum class Flags
27  {
28  kNone = 0,
29  kAttached = 1 << 0,
30  k3rdPersonVisible = 1 << 1
31  };
32 
33  ~ModelReferenceEffect() override; // 00
34 
35  // override (ReferenceEffect)
36  const NiRTTI* GetRTTI() const override; // 02
37  bool Update(float a_arg1) override; // 28
38  NiAVObject* Get3D() const override; // 29 - { return artObject3D; }
39  TEMP_EFFECT_TYPE GetType() const override; // 2C - { return 9; }
40  void SaveGame(BGSSaveGameBuffer* a_buf) override; // 2D
41  void LoadGame(BGSLoadGameBuffer* a_buf) override; // 2E
42  void Init() override; // 36
43  void UpdateParentCell(NiAVObject* a_object) override; // 3A
44  void UpdatePosition() override; // 3B
45  NiAVObject* GetAttachRoot() override; // 3C
46  bool GetAttached() override; // 3D - { return flags & 1; }
47  void DetachImpl() override; // 3E
48 
49  // override (SimpleAnimationGraphManagerHolder)
50  bool SetupAnimEventSinks(const BSTSmartPointer<BShkbAnimationGraph>& a_animGraph) override; // 08
53 
54  // override (BSTEventSink<BSAnimationGraphEvent>)
56 
57  // members
64  std::uint32_t padD4; // D4
65  };
66  static_assert(sizeof(ModelReferenceEffect) == 0xD8);
67 }
Definition: BGSArtObject.h:12
Definition: BGSLoadGameBuffer.h:6
Definition: BGSSaveGameBuffer.h:10
Definition: BSTArray.h:377
Definition: BSTEvent.h:143
Definition: BSTSmartPointer.h:36
Definition: ModelReferenceEffect.h:20
BGSArtObject * artObject
Definition: ModelReferenceEffect.h:60
bool CreateAnimationChannels(BSScrapArray< BSTSmartPointer< BSAnimationGraphChannel >> &animGraphChannels) override
void Init() override
bool SetupAnimEventSinks(const BSTSmartPointer< BShkbAnimationGraph > &a_animGraph) override
void UpdatePosition() override
stl::enumeration< Flags, std::uint32_t > flags
Definition: ModelReferenceEffect.h:63
void SaveGame(BGSSaveGameBuffer *a_buf) override
BSTSmartPointer< BGSArtObjectCloneTask > cloneTask
Definition: ModelReferenceEffect.h:61
bool Update(float a_arg1) override
BSEventNotifyControl ProcessEvent(const BSAnimationGraphEvent *a_event, BSTEventSource< BSAnimationGraphEvent > *a_eventSource) override
static constexpr auto TYPE
Definition: ModelReferenceEffect.h:24
TEMP_EFFECT_TYPE GetType() const override
void PostChangeAnimationManager(const BSTSmartPointer< BShkbAnimationGraph > &a_arg1, const BSTSmartPointer< BShkbAnimationGraph > &a_arg2) override
std::uint32_t padD4
Definition: ModelReferenceEffect.h:64
NiAVObject * Get3D() const override
static constexpr auto RTTI
Definition: ModelReferenceEffect.h:22
bool GetAttached() override
void UpdateParentCell(NiAVObject *a_object) override
void DetachImpl() override
Flags
Definition: ModelReferenceEffect.h:27
void LoadGame(BGSLoadGameBuffer *a_buf) override
static auto Ni_RTTI
Definition: ModelReferenceEffect.h:23
NiPointer< NiAVObject > artObject3D
Definition: ModelReferenceEffect.h:62
RefAttachTechniqueInput hitEffectArtData
Definition: ModelReferenceEffect.h:58
const NiRTTI * GetRTTI() const override
NiAVObject * GetAttachRoot() override
BGSLoadGameSubBuffer loadGameSubBuffer
Definition: ModelReferenceEffect.h:59
~ModelReferenceEffect() override
Definition: NiAVObject.h:50
Definition: NiSmartPointer.h:9
Definition: NiRTTI.h:6
Definition: RefAttachTechniqueInput.h:12
Definition: ReferenceEffect.h:12
Definition: SimpleAnimationGraphManagerHolder.h:11
Definition: AbsorbEffect.h:6
TEMP_EFFECT_TYPE
Definition: BSTempEffect.h:13
constexpr REL::VariantID NiRTTI_ModelReferenceEffect(516697, 402943, 0x2feac88)
constexpr REL::VariantID RTTI_ModelReferenceEffect(686535, 394371, 0x1f00a98)
BSEventNotifyControl
Definition: BSTEvent.h:12
Definition: BGSLoadGameSubBuffer.h:14
Definition: BSAnimationGraphEvent.h:10