CommonLibSSE (powerof3)
BShkbAnimationGraph.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
6 #include "RE/B/BSTArray.h"
7 #include "RE/B/BSTEvent.h"
8 #include "RE/B/BSTSmartPointer.h"
9 #include "RE/H/hkbCharacter.h"
10 
11 namespace RE
12 {
13  class bhkWorld;
14  class BSFadeNode;
15  class BShkFloatController;
16  class BSTransformDeltaEvent;
17  class hkbBehaviorGraph;
18  struct BSAnimationGraphEvent;
19 
20  namespace BSResource
21  {
22  struct ID;
23  }
24 
26 
28  public BSIRagdollDriver, // 000
29  public BSIntrusiveRefCounted, // 008
30  public BSTEventSource<BSTransformDeltaEvent>, // 010
31  public BSTEventSource<BSAnimationGraphEvent> // 068
32  {
33  public:
34  inline static constexpr auto RTTI = RTTI_BShkbAnimationGraph;
35 
36  ~BShkbAnimationGraph() override; // 00
37 
38  // override (BSIRagdollDriver)
39  void Unk_01(void) override; // 01
40  void Unk_02(void) override; // 02
41  void Unk_03(void) override; // 03
42  void SetWorld(bhkWorld* a_world) override; // 04 - { world = a_world; }
43  void Unk_05(void) override; // 05
44  void Unk_06(void) override; // 06
45  void Unk_07(void) override; // 07
46  void Unk_08(void) override; // 08
47  void Unk_09(void) override; // 09
48  void Unk_0A(void) override; // 0A
49  void Unk_0B(void) override; // 0B
50  void Unk_0C(void) override; // 0C
51  void Unk_0D(void) override; // 0D
52 
53  template <class T>
54  [[nodiscard]] inline BSTEventSource<T>* GetEventSource()
55  {
56  return static_cast<BSTEventSource<T>*>(this);
57  }
58 
59  template <class T>
60  inline void AddEventSink(BSTEventSink<T>* a_eventSink)
61  {
62  GetEventSource<T>()->AddEventSink(a_eventSink);
63  }
64 
65  template <class T>
66  inline void RemoveEventSink(BSTEventSink<T>* a_eventSink)
67  {
68  GetEventSource<T>()->RemoveEventSink(a_eventSink);
69  }
70 
71  // members
78  std::uint64_t unk1D8; // 1D8
79  std::uint64_t unk1E0; // 1E0
80  float interpolationTimeOffsets[2]; // 1E8
83  void* unk200; // 200 - BShkbHkxDB::ProjectDBData*
85  std::uint64_t unk210; // 210
86  BSFadeNode* unk218; // 218
87  std::uint64_t unk220; // 220
88  std::uint64_t unk228; // 228
89  std::uint64_t unk230; // 230
91  std::uint32_t unk240; // 240
92  std::uint16_t unk244; // 244
93  std::uint8_t unk246; // 246
94  std::uint8_t unk247; // 247
95  std::uint16_t unk248; // 248
96  std::uint16_t unk24A; // 24A
97  std::uint32_t unk24C; // 24C
98  };
99  static_assert(sizeof(BShkbAnimationGraph) == 0x250);
100 }
Definition: BSFadeNode.h:11
Definition: BSIRagdollDriver.h:8
Definition: BSTEvent.h:146
Definition: BSTEvent.h:28
Definition: BShkbAnimationGraph.h:32
BSTSmallArray< std::uint8_t > unk1C0
Definition: BShkbAnimationGraph.h:77
std::uint64_t unk210
Definition: BShkbAnimationGraph.h:85
void Unk_07(void) override
std::uint64_t unk1D8
Definition: BShkbAnimationGraph.h:78
std::uint32_t unk240
Definition: BShkbAnimationGraph.h:91
void Unk_0B(void) override
std::uint64_t unk228
Definition: BShkbAnimationGraph.h:88
std::uint16_t unk244
Definition: BShkbAnimationGraph.h:92
void Unk_0C(void) override
void * unk200
Definition: BShkbAnimationGraph.h:83
std::uint8_t unk246
Definition: BShkbAnimationGraph.h:93
float interpolationTimeOffsets[2]
Definition: BShkbAnimationGraph.h:80
BSTArray< void * > unk160
Definition: BShkbAnimationGraph.h:73
BSFadeNode * unk218
Definition: BShkbAnimationGraph.h:86
std::uint16_t unk24A
Definition: BShkbAnimationGraph.h:96
void Unk_05(void) override
std::uint64_t unk220
Definition: BShkbAnimationGraph.h:87
void Unk_02(void) override
bhkWorld * physicsWorld
Definition: BShkbAnimationGraph.h:90
std::uint32_t unk24C
Definition: BShkbAnimationGraph.h:97
void Unk_0A(void) override
~BShkbAnimationGraph() override
void Unk_08(void) override
std::uint64_t unk1E0
Definition: BShkbAnimationGraph.h:79
std::uint16_t unk248
Definition: BShkbAnimationGraph.h:95
std::uint8_t unk247
Definition: BShkbAnimationGraph.h:94
BSTArray< void * > unk190
Definition: BShkbAnimationGraph.h:75
BSTSmallArray< void * > unk1A8
Definition: BShkbAnimationGraph.h:76
void SetWorld(bhkWorld *a_world) override
BSFixedString projectName
Definition: BShkbAnimationGraph.h:81
void Unk_09(void) override
hkbBehaviorGraph * behaviourGraph
Definition: BShkbAnimationGraph.h:84
void Unk_03(void) override
void Unk_0D(void) override
void RemoveEventSink(BSTEventSink< T > *a_eventSink)
Definition: BShkbAnimationGraph.h:66
static constexpr auto RTTI
Definition: BShkbAnimationGraph.h:34
void AddEventSink(BSTEventSink< T > *a_eventSink)
Definition: BShkbAnimationGraph.h:60
BSTEventSource< T > * GetEventSource()
Definition: BShkbAnimationGraph.h:54
std::uint64_t unk230
Definition: BShkbAnimationGraph.h:89
void Unk_01(void) override
void Unk_06(void) override
BSResource::ID * unk1F8
Definition: BShkbAnimationGraph.h:82
BSTArray< BShkFloatController * > unk178
Definition: BShkbAnimationGraph.h:74
hkbCharacter characterInstance
Definition: BShkbAnimationGraph.h:72
Definition: bhkWorld.h:8
Definition: hkbBehaviorGraph.h:12
Definition: hkbCharacter.h:16
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BShkbAnimationGraph
Definition: Offsets_RTTI.h:3662
BSSmartPointer(BSAnimationGraphManager)
Definition: BSIntrusiveRefCounted.h:8
Definition: ID.h:10