CommonLibSSE (powerof3)
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 constexpr auto Ni_RTTI = NiRTTI_ModelReferenceEffect;
24  inline static constexpr auto VTABLE = VTABLE_ModelReferenceEffect;
25  inline static constexpr auto TYPE = TEMP_EFFECT_TYPE::kRefModel;
26 
27  enum class Flags
28  {
29  kNone = 0,
30  kAttached = 1 << 0,
31  k3rdPersonVisible = 1 << 1
32  };
33 
34  ~ModelReferenceEffect() override; // 00
35 
36  // override (ReferenceEffect)
37  const NiRTTI* GetRTTI() const override; // 02
38  bool Update(float a_arg1) override; // 28
39  NiAVObject* Get3D() const override; // 29 - { return artObject3D; }
40  TEMP_EFFECT_TYPE GetType() const override; // 2C - { return 9; }
41  void SaveGame(BGSSaveGameBuffer* a_buf) override; // 2D
42  void LoadGame(BGSLoadGameBuffer* a_buf) override; // 2E
43  void Init() override; // 36
44  void UpdateParentCell(NiAVObject* a_object) override; // 3A
45  void UpdatePosition() override; // 3B
46  NiAVObject* GetAttachRoot() override; // 3C
47  bool GetAttached() override; // 3D - { return flags & 1; }
48  void DetachImpl() override; // 3E
49 
50  // override (SimpleAnimationGraphManagerHolder)
51  bool SetupAnimEventSinks(const BSTSmartPointer<BShkbAnimationGraph>& a_animGraph) override; // 08
54 
55  // override (BSTEventSink<BSAnimationGraphEvent>)
57 
58  // members
65  std::uint32_t padD4; // D4
66  };
67  static_assert(sizeof(ModelReferenceEffect) == 0xD8);
68 }
Definition: BGSArtObject.h:12
Definition: BGSLoadGameBuffer.h:6
Definition: BGSSaveGameBuffer.h:10
Definition: BSTArray.h:378
Definition: BSTEvent.h:143
Definition: BSTSmartPointer.h:37
Definition: ModelReferenceEffect.h:20
BGSArtObject * artObject
Definition: ModelReferenceEffect.h:61
bool CreateAnimationChannels(BSScrapArray< BSTSmartPointer< BSAnimationGraphChannel >> &animGraphChannels) override
void Init() override
bool SetupAnimEventSinks(const BSTSmartPointer< BShkbAnimationGraph > &a_animGraph) override
void UpdatePosition() override
void SaveGame(BGSSaveGameBuffer *a_buf) override
BSTSmartPointer< BGSArtObjectCloneTask > cloneTask
Definition: ModelReferenceEffect.h:62
bool Update(float a_arg1) override
BSEventNotifyControl ProcessEvent(const BSAnimationGraphEvent *a_event, BSTEventSource< BSAnimationGraphEvent > *a_eventSource) override
static constexpr auto TYPE
Definition: ModelReferenceEffect.h:25
TEMP_EFFECT_TYPE GetType() const override
void PostChangeAnimationManager(const BSTSmartPointer< BShkbAnimationGraph > &a_arg1, const BSTSmartPointer< BShkbAnimationGraph > &a_arg2) override
static constexpr auto Ni_RTTI
Definition: ModelReferenceEffect.h:23
std::uint32_t padD4
Definition: ModelReferenceEffect.h:65
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:28
void LoadGame(BGSLoadGameBuffer *a_buf) override
REX::EnumSet< Flags, std::uint32_t > flags
Definition: ModelReferenceEffect.h:64
NiPointer< NiAVObject > artObject3D
Definition: ModelReferenceEffect.h:63
RefAttachTechniqueInput hitEffectArtData
Definition: ModelReferenceEffect.h:59
const NiRTTI * GetRTTI() const override
NiAVObject * GetAttachRoot() override
BGSLoadGameSubBuffer loadGameSubBuffer
Definition: ModelReferenceEffect.h:60
static constexpr auto VTABLE
Definition: ModelReferenceEffect.h:24
~ModelReferenceEffect() override
Definition: NiAVObject.h:51
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::ID NiRTTI_ModelReferenceEffect(static_cast< std::uint64_t >(516697))
constexpr std::array< REL::ID, 3 > VTABLE_ModelReferenceEffect
Definition: Offsets_VTABLE.h:12033
constexpr REL::ID RTTI_ModelReferenceEffect(static_cast< std::uint64_t >(686535))
BSEventNotifyControl
Definition: BSTEvent.h:12
Definition: BGSLoadGameSubBuffer.h:14
Definition: BSAnimationGraphEvent.h:10