CommonLibSSE (Parapets fork)
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;
26 inline static constexpr auto Ni_RTTI = NiRTTI_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 [[nodiscard]] constexpr bool Animating() const noexcept { return state == AnimState::kAnimating; }
82 [[nodiscard]] constexpr bool Inactive() const noexcept { return state == AnimState::kInactive; }
83
84 // members
86 std::uint32_t arraySize; // 18
87 std::uint32_t arrayGrowBy; // 1C
90 float seqWeight; // 30
91 std::uint32_t pad34; // 30
94 float frequency; // 44
95 float beginKeyTime; // 48
96 float endKeyTime; // 4C
97 float lastTime; // 50
98 float weightedLastTime; // 54
99 float lastScaledTime; // 58
100 std::uint32_t pad5C; // 5C
103 float offset; // 6C
104 float startTime; // 70
105 float endTime; // 74
106 float destFrame; // 78
107 std::uint32_t pad7C; // 7C
112 std::int16_t curAnimNIdx; // A0
113 std::uint16_t unkA2; // A2
114 std::uint32_t unkA4; // A4
116 std::uint16_t numNotes; // B0
118 std::uint8_t unkB3; // B3
119 std::uint32_t unkB4; // B4
120 };
121 static_assert(sizeof(NiControllerSequence) == 0xB8);
122}
#define NiSmartPointer(className)
Definition: NiSmartPointer.h:251
Definition: NiAVObject.h:45
Definition: NiControllerManager.h:17
Definition: NiControllerSequence.h:23
const NiRTTI * GetRTTI() const override
BSFixedString name
Definition: NiControllerSequence.h:85
bool RegisterStreamables(NiStream &a_stream) override
float startTime
Definition: NiControllerSequence.h:104
void ProcessClone(NiCloningProcess &a_cloning) override
std::uint32_t unkB4
Definition: NiControllerSequence.h:119
void LinkObject(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
constexpr bool Inactive() const noexcept
Definition: NiControllerSequence.h:82
std::uint32_t pad34
Definition: NiControllerSequence.h:91
std::uint32_t pad7C
Definition: NiControllerSequence.h:107
float endTime
Definition: NiControllerSequence.h:105
stl::enumeration< AnimState, std::uint32_t > state
Definition: NiControllerSequence.h:102
SimpleArray< IDTag > idTagArray
Definition: NiControllerSequence.h:89
float beginKeyTime
Definition: NiControllerSequence.h:95
std::uint16_t numNotes
Definition: NiControllerSequence.h:116
bool removableObjects
Definition: NiControllerSequence.h:117
NiPointer< NiTextKeyExtraData > textKeys
Definition: NiControllerSequence.h:92
void PostLinkObject(NiStream &a_stream) override
std::uint32_t arraySize
Definition: NiControllerSequence.h:86
AnimState
Definition: NiControllerSequence.h:29
float endKeyTime
Definition: NiControllerSequence.h:96
BSFixedString accumRootName
Definition: NiControllerSequence.h:109
std::uint32_t arrayGrowBy
Definition: NiControllerSequence.h:87
virtual bool Deactivate(float a_easeOutTime, bool a_transition)
float seqWeight
Definition: NiControllerSequence.h:90
NiPointer< NiStringPalette > deprecatedStringPalette
Definition: NiControllerSequence.h:111
float offset
Definition: NiControllerSequence.h:103
float weightedLastTime
Definition: NiControllerSequence.h:98
float lastTime
Definition: NiControllerSequence.h:97
std::uint16_t unkA2
Definition: NiControllerSequence.h:113
bool IsEqual(NiObject *a_object) override
void LoadBinary(NiStream &a_stream) override
NiControllerSequence * partnerSequence
Definition: NiControllerSequence.h:108
float destFrame
Definition: NiControllerSequence.h:106
NiControllerManager * owner
Definition: NiControllerSequence.h:101
float lastScaledTime
Definition: NiControllerSequence.h:99
SimpleArray< InterpArrayItem > interpArray
Definition: NiControllerSequence.h:88
std::int16_t curAnimNIdx
Definition: NiControllerSequence.h:112
~NiControllerSequence() override
std::uint8_t unkB3
Definition: NiControllerSequence.h:118
std::uint32_t unkA4
Definition: NiControllerSequence.h:114
static constexpr auto Ni_RTTI
Definition: NiControllerSequence.h:26
SimpleArray< NiPointer< BSAnimNote > > animNotes
Definition: NiControllerSequence.h:115
float frequency
Definition: NiControllerSequence.h:94
NiAVObject * accumRoot
Definition: NiControllerSequence.h:110
constexpr bool Animating() const noexcept
Definition: NiControllerSequence.h:81
stl::enumeration< NiTimeController::CycleType, std::uint32_t > cycleType
Definition: NiControllerSequence.h:93
NiObject * CreateClone(NiCloningProcess &a_cloning) override
std::uint32_t pad5C
Definition: NiControllerSequence.h:100
static constexpr auto RTTI
Definition: NiControllerSequence.h:25
Definition: NiObject.h:37
Definition: NiSmartPointer.h:9
Definition: NiRTTI.h:6
Definition: NiStream.h:6
Definition: MemoryManager.h:240
Definition: PCH.h:216
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_NiControllerSequence
Definition: Offsets_RTTI.h:5351
constexpr REL::ID NiRTTI_NiControllerSequence
Definition: Offsets_NiRTTI.h:182
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