CommonLibVR
ReferenceEffect.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSPointerHandle.h"
4 #include "RE/B/BSTempEffect.h"
5 
6 namespace RE
7 {
8  class BGSArtObject;
9  class ReferenceEffectController;
10 
12  {
13  public:
14  inline static constexpr auto RTTI = RTTI_ReferenceEffect;
15  inline static constexpr auto Ni_RTTI = NiRTTI_ReferenceEffect;
16  inline static constexpr auto VTABLE = VTABLE_ReferenceEffect;
17  inline static constexpr auto TYPE = TEMP_EFFECT_TYPE::kRefDefault;
18 
19  ~ReferenceEffect() override; // 00
20 
21  // override (BSTempEffect)
22  const NiRTTI* GetRTTI() const override; // 02
23  void Detach() override; // 27
24  bool Update(float a_arg1) override; // 28
25  bool GetManagerHandlesSaveLoad() const override; // 2A
26  bool GetClearWhenCellIsUnloaded() const override; // 2B
27  TEMP_EFFECT_TYPE GetType() const override; // 2C - { return 8; }
28  void SaveGame(BGSSaveGameBuffer* a_buf) override; // 2D
29  void LoadGame(BGSLoadGameBuffer* a_buf) override; // 2E
30  void FinishLoadGame(BGSLoadGameBuffer* a_buf) override; // 2F
31 
32  // add
33  virtual void Init(); // 36 - { return 0; }
34  virtual void Suspend(); // 37 - { return; }
35  virtual void Resume(); // 38 - { return; }
36  virtual void ClearTarget(); // 39
37  virtual void UpdateParentCell(NiAVObject* a_object); // 3A
38  virtual void UpdatePosition(); // 3B - { return; }
39  virtual NiAVObject* GetAttachRoot(); // 3C
40  virtual bool GetAttached(); // 3D - { return 1; }
41  virtual void DetachImpl(); // 3E - { return; }
42 
43  // members
47  bool finished; // 40
48  bool ownController; // 41
49  std::uint16_t pad42; // 42
50  std::uint32_t pad44; // 44
51  private:
52  KEEP_FOR_RE()
53  };
54  static_assert(sizeof(ReferenceEffect) == 0x48);
55 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSLoadGameBuffer.h:6
Definition: BGSSaveGameBuffer.h:10
Definition: BSTempEffect.h:29
Definition: NiAVObject.h:57
Definition: NiRTTI.h:6
Definition: ReferenceEffectController.h:19
Definition: ReferenceEffect.h:12
virtual void Suspend()
virtual void UpdateParentCell(NiAVObject *a_object)
virtual void Resume()
void SaveGame(BGSSaveGameBuffer *a_buf) override
static constexpr auto TYPE
Definition: ReferenceEffect.h:17
static constexpr auto VTABLE
Definition: ReferenceEffect.h:16
const NiRTTI * GetRTTI() const override
ReferenceEffectController * controller
Definition: ReferenceEffect.h:44
bool ownController
Definition: ReferenceEffect.h:48
void Detach() override
ObjectRefHandle target
Definition: ReferenceEffect.h:45
virtual void Init()
bool finished
Definition: ReferenceEffect.h:47
virtual bool GetAttached()
~ReferenceEffect() override
static constexpr auto RTTI
Definition: ReferenceEffect.h:14
bool Update(float a_arg1) override
ObjectRefHandle aimAtTarget
Definition: ReferenceEffect.h:46
bool GetManagerHandlesSaveLoad() const override
bool GetClearWhenCellIsUnloaded() const override
virtual NiAVObject * GetAttachRoot()
void FinishLoadGame(BGSLoadGameBuffer *a_buf) override
virtual void ClearTarget()
static constexpr auto Ni_RTTI
Definition: ReferenceEffect.h:15
std::uint32_t pad44
Definition: ReferenceEffect.h:50
virtual void DetachImpl()
virtual void UpdatePosition()
TEMP_EFFECT_TYPE GetType() const override
std::uint16_t pad42
Definition: ReferenceEffect.h:49
void LoadGame(BGSLoadGameBuffer *a_buf) override
Definition: AbsorbEffect.h:6
TEMP_EFFECT_TYPE
Definition: BSTempEffect.h:13
constexpr REL::ID NiRTTI_ReferenceEffect(static_cast< std::uint64_t >(516706))
constexpr REL::ID RTTI_ReferenceEffect(static_cast< std::uint64_t >(686536))
constexpr std::array< REL::ID, 1 > VTABLE_ReferenceEffect
Definition: Offsets_VTABLE.h:12604