CommonLibSSE NG
Loading...
Searching...
No Matches
BSAnimationGraphManager.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSAtomic.h"
6#include "RE/B/BSTArray.h"
7#include "RE/B/BSTEvent.h"
9#include "SKSE/Version.h"
10
11namespace RE
12{
13 class BSAnimationGraphChannel;
14 class BShkbAnimationGraph;
15 struct BSAnimationGraphEvent;
16
18 {
19 bool b;
20 std::int32_t i;
21 float f;
22 };
23 static_assert(sizeof(hkbVariableValue) == 0x4);
24
26 {
27 public:
28 // members
31 };
32 static_assert(sizeof(AnimVariableCacheInfo) == 0x10);
33
35 {
36 public:
37 [[nodiscard]] BSSpinLock* GetGraphLock() const noexcept {
40 return &REL::RelocateMember<BSSpinLock>(this, 0x20);
41 }
42 }
43 return nullptr;
44 }
45
47 return REL::RelocateMemberIfNewer<BSTSmartPointer<BShkbAnimationGraph>>(SKSE::RUNTIME_SSE_1_6_629, this, 0x20, 0x28);
48 }
49
50 [[nodiscard]] const BSTSmartPointer<BShkbAnimationGraph>& GetAnimationGraph() const noexcept {
51 return REL::RelocateMemberIfNewer<BSTSmartPointer<BShkbAnimationGraph>>(SKSE::RUNTIME_SSE_1_6_629, this, 0x20, 0x28);
52 }
53
54 // members
56 mutable BSSpinLock updateLock; // 18
57#if !defined(ENABLE_SKYRIM_AE)
59#endif
60 };
61#if !defined(ENABLE_SKYRIM_AE)
62 static_assert(sizeof(BSAnimationGraphVariableCache) == 0x28);
63#endif
64
66
68 public BSTEventSink<BSAnimationGraphEvent>, // 00
69 public BSIntrusiveRefCounted // 08
70 {
71 public:
72 inline static constexpr auto RTTI = RTTI_BSAnimationGraphManager;
73
75 {
76 public:
77 union Value
78 {
79 bool b;
80 std::int32_t i;
81 float f;
82 };
83 static_assert(sizeof(Value) == 0x4);
84
85 // members
87 Value* value; // 08
88 };
89 static_assert(sizeof(AnimationVariable) == 0x10);
90
91 ~BSAnimationGraphManager() override; // 00
92
93 // override (BSTEventSink<BSAnimationGraphEvent>)
95
97 {
98#define RUNTIME_DATA_CONTENT \
99 mutable BSSpinLock updateLock; /* 98, A0 */ \
100 mutable BSSpinLock dependentManagerLock; /* A0 */ \
101 std::uint32_t activeGraph; /* A8 */ \
102 std::uint32_t generateDepth; /* A8 */
103
105 };
106
107 [[nodiscard]] inline RUNTIME_DATA& GetRuntimeData() noexcept
108 {
109 return REL::RelocateMemberIfNewer<RUNTIME_DATA>(SKSE::RUNTIME_SSE_1_6_629, this, 0x98, 0xA0);
110 }
111
112 [[nodiscard]] inline const RUNTIME_DATA& GetRuntimeData() const noexcept
113 {
114 return REL::RelocateMemberIfNewer<RUNTIME_DATA>(SKSE::RUNTIME_SSE_1_6_629, this, 0x98, 0xA0);
115 }
116
117 // members
118 std::uint32_t pad0C; // 0C
124
125#ifndef ENABLE_SKYRIM_AE
127#endif
128 };
129#ifndef ENABLE_SKYRIM_AE
130 static_assert(sizeof(BSAnimationGraphManager) == 0xB0);
131#endif
132}
133#undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition Actor.h:633
#define BSSmartPointer(className)
Definition BSTSmartPointer.h:283
#define SKYRIM_REL_CONSTEXPR
Definition Relocation.h:105
Definition BSAnimationGraphManager.h:70
BSTArray< BSTSmartPointer< BSAnimationGraphChannel > > bumpedChannels
Definition BSAnimationGraphManager.h:120
RUNTIME_DATA & GetRuntimeData() noexcept
Definition BSAnimationGraphManager.h:107
BSEventNotifyControl ProcessEvent(const BSAnimationGraphEvent *a_event, BSTEventSource< BSAnimationGraphEvent > *a_eventSource) override
BSTSmallArray< BSTSmartPointer< BShkbAnimationGraph > > graphs
Definition BSAnimationGraphManager.h:121
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition BSAnimationGraphManager.h:112
BSAnimationGraphVariableCache variableCache
Definition BSAnimationGraphManager.h:123
static constexpr auto RTTI
Definition BSAnimationGraphManager.h:72
std::uint32_t pad0C
Definition BSAnimationGraphManager.h:118
BSTArray< BSTSmartPointer< BSAnimationGraphChannel > > boundChannels
Definition BSAnimationGraphManager.h:119
BSTArray< BSAnimationGraphManagerPtr > subManagers
Definition BSAnimationGraphManager.h:122
Definition BSAtomic.h:49
Definition BSTArray.h:377
Definition BSTEvent.h:143
Definition BSTEvent.h:19
Definition BSTSmartPointer.h:36
static Module & get()
Definition Relocation.h:658
static SKYRIM_REL bool IsAE() noexcept
Definition Relocation.h:807
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSAnimationGraphManager(689998, 397853, 0x1f5b0d8)
BSEventNotifyControl
Definition BSTEvent.h:12
constexpr REL::Version RUNTIME_SSE_1_6_629(1, 6, 629, 0)
Definition BSAnimationGraphManager.h:26
hkbVariableValue * variable
Definition BSAnimationGraphManager.h:30
BSFixedString variableName
Definition BSAnimationGraphManager.h:29
Definition BSAnimationGraphEvent.h:10
Definition BSAnimationGraphManager.h:75
Value * value
Definition BSAnimationGraphManager.h:87
BSFixedString name
Definition BSAnimationGraphManager.h:86
Definition BSAnimationGraphManager.h:97
Definition BSAnimationGraphManager.h:35
BSSpinLock * GetGraphLock() const noexcept
Definition BSAnimationGraphManager.h:37
const BSTSmartPointer< BShkbAnimationGraph > & GetAnimationGraph() const noexcept
Definition BSAnimationGraphManager.h:50
BSSpinLock updateLock
Definition BSAnimationGraphManager.h:56
BSTSmartPointer< BShkbAnimationGraph > animationGraph
Definition BSAnimationGraphManager.h:58
BSTSmartPointer< BShkbAnimationGraph > & GetAnimationGraph() noexcept
Definition BSAnimationGraphManager.h:46
BSTArray< AnimVariableCacheInfo > variableCache
Definition BSAnimationGraphManager.h:55
Definition BSIntrusiveRefCounted.h:8
Definition BSAnimationGraphManager.h:78
float f
Definition BSAnimationGraphManager.h:81
bool b
Definition BSAnimationGraphManager.h:79
std::int32_t i
Definition BSAnimationGraphManager.h:80
Definition BSAnimationGraphManager.h:18
std::int32_t i
Definition BSAnimationGraphManager.h:20
bool b
Definition BSAnimationGraphManager.h:19
float f
Definition BSAnimationGraphManager.h:21