CommonLibSSE NG
NiControllerManager.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/B/BSFixedString.h"
5 #include "RE/B/BSTHashMap.h"
6 #include "RE/N/NiSmartPointer.h"
7 #include "RE/N/NiTArray.h"
8 #include "RE/N/NiTSet.h"
10 
11 namespace RE
12 {
13  class NiAVObjectPalette;
14  class NiControllerSequence;
15 
17  {
18  public:
19  inline static constexpr auto RTTI = RTTI_NiControllerManager;
20  inline static auto Ni_RTTI = NiRTTI_NiControllerManager;
21 
22  ~NiControllerManager() override; // 00
23 
24  // override (NiTimeController)
25  const NiRTTI* GetRTTI() const override; // 02
26  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
27  void LoadBinary(NiStream& a_stream) override; // 18
28  void LinkObject(NiStream& a_stream) override; // 19
29  bool RegisterStreamables(NiStream& a_stream) override; // 1A
30  void SaveBinary(NiStream& a_stream) override; // 1B
31  bool IsEqual(NiObject* a_object) override; // 1C
32  void ProcessClone(NiCloningProcess& a_cloning) override; // 1D
33  void PostLinkObject(NiStream& a_stream) override; // 1E
34  NiControllerManager* AsNiControllerManager() override; // 24 - { return this; }
35  void Start(float a_time) override; // 25
36  void Stop() override; // 26
37  void Update(float a_time) override; // 27
38  void SetTarget(NiObjectNET* a_target) override; // 28
39  [[nodiscard]] bool TargetIsRequiredType() const override; // 2E
40 
41  // add
42  virtual void Start(); // 2F - { return; }
43 
44  NiControllerSequence* GetSequenceByName(std::string_view a_name);
45 
46  // members
51  bool cumulative; // A8
52  std::uint8_t padA9; // A9
53  std::uint16_t padAA; // AA
54  std::uint32_t padAC; // AC
57  };
58  static_assert(sizeof(NiControllerManager) == 0xC8);
59 }
Definition: BSAnimNoteListener.h:11
Definition: BSTHashMap.h:21
Definition: NiCloningProcess.h:10
Definition: NiControllerManager.h:17
NiTPrimitiveSet< NiControllerSequence * > activeSequences
Definition: NiControllerManager.h:48
virtual void Start()
NiControllerManager * AsNiControllerManager() override
std::uint8_t padA9
Definition: NiControllerManager.h:52
void SetTarget(NiObjectNET *a_target) override
std::uint16_t padAA
Definition: NiControllerManager.h:53
static auto Ni_RTTI
Definition: NiControllerManager.h:20
NiObject * CreateClone(NiCloningProcess &a_cloning) override
void LoadBinary(NiStream &a_stream) override
~NiControllerManager() override
bool RegisterStreamables(NiStream &a_stream) override
NiPointer< NiAVObjectPalette > objectPalette
Definition: NiControllerManager.h:56
void PostLinkObject(NiStream &a_stream) override
NiTObjectSet< NiPointer< NiControllerSequence > > tempBlendSeqs
Definition: NiControllerManager.h:55
NiTObjectArray< NiPointer< NiControllerSequence > > sequenceArray
Definition: NiControllerManager.h:47
NiControllerSequence * GetSequenceByName(std::string_view a_name)
void Stop() override
void SaveBinary(NiStream &a_stream) override
static constexpr auto RTTI
Definition: NiControllerManager.h:19
void Start(float a_time) override
const NiRTTI * GetRTTI() const override
bool TargetIsRequiredType() const override
BSAnimNoteListener * listener
Definition: NiControllerManager.h:50
void Update(float a_time) override
bool IsEqual(NiObject *a_object) override
bool cumulative
Definition: NiControllerManager.h:51
std::uint32_t padAC
Definition: NiControllerManager.h:54
BSTHashMap< BSFixedString, NiControllerSequence * > stringMap
Definition: NiControllerManager.h:49
void ProcessClone(NiCloningProcess &a_cloning) override
void LinkObject(NiStream &a_stream) override
Definition: NiControllerSequence.h:23
Definition: NiObjectNET.h:13
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: NiTArray.h:126
Definition: NiTSet.h:120
Definition: NiTSet.h:130
Definition: NiTimeController.h:13
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiControllerManager(690501, 398356, 0x1f62d30)
constexpr REL::VariantID NiRTTI_NiControllerManager(524054, 410635, 0x316c458)