46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "RE/B/BSFixedString.h"
|
|
#include "RE/B/BSTObjectArena.h"
|
|
#include "RE/B/BSTTuple.h"
|
|
|
|
namespace RE
|
|
{
|
|
class IAnimationGraphManagerHolder;
|
|
|
|
namespace BGSAnimationSystemUtils
|
|
{
|
|
class ActiveSyncInfo
|
|
{
|
|
public:
|
|
// members
|
|
BSTObjectArena<BSTTuple<BSFixedString, float>> otherSyncInfo; // 00
|
|
float currentAnimTime; // 40
|
|
float animSpeedMult; // 44
|
|
float totalAnimTime; // 48
|
|
};
|
|
static_assert(sizeof(ActiveSyncInfo) == 0x50);
|
|
|
|
inline bool GetActiveSyncInfo(const IAnimationGraphManagerHolder* a_graphHolder, ActiveSyncInfo& a_infoOut)
|
|
{
|
|
using func_t = decltype(&GetActiveSyncInfo);
|
|
static REL::Relocation<func_t> func{ ID::BGSAnimationSystemUtils::GetActiveSyncInfo };
|
|
return func(a_graphHolder, a_infoOut);
|
|
}
|
|
|
|
inline bool InitializeActorInstant(Actor& a_actor, bool a_update3D)
|
|
{
|
|
using func_t = decltype(&InitializeActorInstant);
|
|
static REL::Relocation<func_t> func{ ID::BGSAnimationSystemUtils::InitializeActorInstant };
|
|
return func(a_actor, a_update3D);
|
|
}
|
|
|
|
inline bool IsActiveGraphInTransition(const TESObjectREFR* a_refr)
|
|
{
|
|
using func_t = decltype(&IsActiveGraphInTransition);
|
|
static REL::Relocation<func_t> func{ ID::BGSAnimationSystemUtils::IsActiveGraphInTransition };
|
|
return func(a_refr);
|
|
}
|
|
}
|
|
}
|