Files
Commonwealth-Online-Public/plugin/lib/commonlibf4/include/RE/N/NiTimeController.h
T
2026-05-30 18:33:24 +12:00

47 lines
1.9 KiB
C++

#pragma once
#include "RE/N/NiObject.h"
#include "RE/N/NiPointer.h"
#include "RE/N/NiTFlags.h"
namespace RE
{
class NiObjectNET;
class NiUpdateData;
class __declspec(novtable) NiTimeController :
public NiObject // 00
{
public:
static constexpr auto RTTI{ RTTI::NiTimeController };
static constexpr auto VTABLE{ VTABLE::NiTimeController };
static constexpr auto Ni_RTTI{ Ni_RTTI::NiTimeController };
// add
virtual void Start(float a_time); // 28
virtual void Stop(); // 28
virtual void Update(NiUpdateData& a_updateData) = 0; // 29
virtual void SetTarget(NiObjectNET* a_target); // 2A
virtual bool IsTransformController() const { return false; } // 2B
virtual bool IsVertexController() const { return false; } // 2C
virtual float ComputeScaledTime(float a_time); // 2D
virtual void OnPreDisplay() { return; } // 2E
virtual bool IsStreamable() const { return true; } // 2F
virtual void Start() = 0; // 30
// members
NiTFlags<std::uint16_t, NiTimeController> flags; // 10
float frequency; // 14
float phase; // 18
float loKeyTime; // 1C
float hiKeyTime; // 20
float startTime; // 24
float lastTime; // 28
float weightedLastTime; // 2C
float scaledTime; // 30
NiObjectNET* target; // 38
NiPointer<NiTimeController> next; // 40
};
static_assert(sizeof(NiTimeController) == 0x48);
}