CommonLibSSE NG
Loading...
Searching...
No Matches
NiControllerSequence.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/N/NiObject.h"
8
9namespace RE
10{
11 class BSAnimNote;
12 class NiAVObject;
13 class NiBlendInterpolator;
14 class NiControllerManager;
15 class NiInterpController;
16 class NiInterpolator;
17 class NiStringPalette;
18 class NiTextKeyExtraData;
19
21
23 {
24 public:
25 inline static constexpr auto RTTI = RTTI_NiControllerSequence;
27
28 enum class AnimState
29 {
32 kEaseIn,
37 };
38
40 {
41 public:
42 // members
45 NiBlendInterpolator* blendInterp; // 10
46 std::uint8_t blendIdx; // 18
47 std::uint8_t pad19; // 19
48 std::uint16_t pad1A; // 1A
49 std::uint32_t pad1C; // 1C
50 };
51 static_assert(sizeof(InterpArrayItem) == 0x20);
52
53 struct IDTag
54 {
55 public:
56 // members
62 };
63 static_assert(sizeof(IDTag) == 0x28);
64
65 ~NiControllerSequence() override; // 00
66
67 // override (NiObject)
68 const NiRTTI* GetRTTI() const override; // 02
69 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
70 void LoadBinary(NiStream& a_stream) override; // 18
71 void LinkObject(NiStream& a_stream) override; // 19
72 bool RegisterStreamables(NiStream& a_stream) override; // 1A
73 void SaveBinary(NiStream& a_stream) override; // 1B
74 bool IsEqual(NiObject* a_object) override; // 1C
75 void ProcessClone(NiCloningProcess& a_cloning) override; // 1D
76 void PostLinkObject(NiStream& a_stream) override; // 1E
77
78 // add
79 virtual bool Deactivate(float a_easeOutTime, bool a_transition); // 25
80
81 bool Activate(std::uint8_t a_interpIndex, bool a_maxOffset, float a_seqWeight, float a_easeInTime, NiControllerSequence* a_partnerSequence, bool a_transition);
82 [[nodiscard]] constexpr bool Animating() const noexcept { return state == AnimState::kAnimating; }
83 [[nodiscard]] constexpr bool Inactive() const noexcept { return state == AnimState::kInactive; }
84 void SetPhase(float a_phase, bool a_arg2);
85
86 // members
88 std::uint32_t arraySize; // 18
89 std::uint32_t arrayGrowBy; // 1C
92 float seqWeight; // 30
93 std::uint32_t pad34; // 30
96 float frequency; // 44
97 float beginKeyTime; // 48
98 float endKeyTime; // 4C
99 float lastTime; // 50
100 float weightedLastTime; // 54
101 float lastScaledTime; // 58
102 std::uint32_t pad5C; // 5C
105 float offset; // 6C
106 float startTime; // 70
107 float endTime; // 74
108 float destFrame; // 78
109 std::uint32_t pad7C; // 7C
114 std::int16_t curAnimNIdx; // A0
115 std::uint16_t unkA2; // A2
116 std::uint32_t unkA4; // A4
118 std::uint16_t numNotes; // B0
120 std::uint8_t unkB3; // B3
121 std::uint32_t unkB4; // B4
122 };
123 static_assert(sizeof(NiControllerSequence) == 0xB8);
124}
#define NiSmartPointer(className)
Definition NiSmartPointer.h:251
Definition NiAVObject.h:50
Definition NiCloningProcess.h:10
Definition NiControllerManager.h:17
Definition NiControllerSequence.h:23
const NiRTTI * GetRTTI() const override
BSFixedString name
Definition NiControllerSequence.h:87
bool RegisterStreamables(NiStream &a_stream) override
float startTime
Definition NiControllerSequence.h:106
void ProcessClone(NiCloningProcess &a_cloning) override
std::uint32_t unkB4
Definition NiControllerSequence.h:121
void LinkObject(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
constexpr bool Inactive() const noexcept
Definition NiControllerSequence.h:83
std::uint32_t pad34
Definition NiControllerSequence.h:93
std::uint32_t pad7C
Definition NiControllerSequence.h:109
float endTime
Definition NiControllerSequence.h:107
stl::enumeration< AnimState, std::uint32_t > state
Definition NiControllerSequence.h:104
SimpleArray< IDTag > idTagArray
Definition NiControllerSequence.h:91
float beginKeyTime
Definition NiControllerSequence.h:97
std::uint16_t numNotes
Definition NiControllerSequence.h:118
bool removableObjects
Definition NiControllerSequence.h:119
NiPointer< NiTextKeyExtraData > textKeys
Definition NiControllerSequence.h:94
void PostLinkObject(NiStream &a_stream) override
std::uint32_t arraySize
Definition NiControllerSequence.h:88
AnimState
Definition NiControllerSequence.h:29
float endKeyTime
Definition NiControllerSequence.h:98
BSFixedString accumRootName
Definition NiControllerSequence.h:111
std::uint32_t arrayGrowBy
Definition NiControllerSequence.h:89
virtual bool Deactivate(float a_easeOutTime, bool a_transition)
float seqWeight
Definition NiControllerSequence.h:92
NiPointer< NiStringPalette > deprecatedStringPalette
Definition NiControllerSequence.h:113
float offset
Definition NiControllerSequence.h:105
float weightedLastTime
Definition NiControllerSequence.h:100
float lastTime
Definition NiControllerSequence.h:99
std::uint16_t unkA2
Definition NiControllerSequence.h:115
bool IsEqual(NiObject *a_object) override
void LoadBinary(NiStream &a_stream) override
NiControllerSequence * partnerSequence
Definition NiControllerSequence.h:110
float destFrame
Definition NiControllerSequence.h:108
NiControllerManager * owner
Definition NiControllerSequence.h:103
float lastScaledTime
Definition NiControllerSequence.h:101
bool Activate(std::uint8_t a_interpIndex, bool a_maxOffset, float a_seqWeight, float a_easeInTime, NiControllerSequence *a_partnerSequence, bool a_transition)
SimpleArray< InterpArrayItem > interpArray
Definition NiControllerSequence.h:90
std::int16_t curAnimNIdx
Definition NiControllerSequence.h:114
~NiControllerSequence() override
std::uint8_t unkB3
Definition NiControllerSequence.h:120
static auto Ni_RTTI
Definition NiControllerSequence.h:26
std::uint32_t unkA4
Definition NiControllerSequence.h:116
void SetPhase(float a_phase, bool a_arg2)
SimpleArray< NiPointer< BSAnimNote > > animNotes
Definition NiControllerSequence.h:117
float frequency
Definition NiControllerSequence.h:96
NiAVObject * accumRoot
Definition NiControllerSequence.h:112
constexpr bool Animating() const noexcept
Definition NiControllerSequence.h:82
stl::enumeration< NiTimeController::CycleType, std::uint32_t > cycleType
Definition NiControllerSequence.h:95
NiObject * CreateClone(NiCloningProcess &a_cloning) override
std::uint32_t pad5C
Definition NiControllerSequence.h:102
static constexpr auto RTTI
Definition NiControllerSequence.h:25
Definition NiObject.h:37
Definition NiSmartPointer.h:9
Definition NiRTTI.h:6
Definition NiStream.h:27
Definition MemoryManager.h:244
Definition PCH.h:223
Definition AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_NiControllerSequence(524057, 410638, 0x316c478)
constexpr REL::VariantID RTTI_NiControllerSequence(684939, 392676, 0x1edc930)
Definition NiControllerSequence.h:54
BSFixedString avObjectName
Definition NiControllerSequence.h:57
BSFixedString ctlrID
Definition NiControllerSequence.h:60
BSFixedString interpolatorID
Definition NiControllerSequence.h:61
BSFixedString ctlrType
Definition NiControllerSequence.h:59
BSFixedString propertyType
Definition NiControllerSequence.h:58
Definition NiControllerSequence.h:40
std::uint32_t pad1C
Definition NiControllerSequence.h:49
NiBlendInterpolator * blendInterp
Definition NiControllerSequence.h:45
NiPointer< NiInterpolator > interpolator
Definition NiControllerSequence.h:43
NiPointer< NiInterpController > interpCtlr
Definition NiControllerSequence.h:44
std::uint16_t pad1A
Definition NiControllerSequence.h:48
std::uint8_t blendIdx
Definition NiControllerSequence.h:46
std::uint8_t pad19
Definition NiControllerSequence.h:47