CommonLibVR
AnimationFileManagerSingleton.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSAtomic.h"
4 #include "RE/B/BSTArray.h"
5 #include "RE/B/BSTSingleton.h"
6 #include "RE/H/hkbContext.h"
8 
9 namespace RE
10 {
11  class hkbClipGenerator;
12 
15  public BSTSingletonSDM<AnimationFileManagerSingleton>
16  {
17  public:
20 
22  {
23  uint32_t crc32Filename; // 00 - BSCRC32 of lowercase filename without extension
24  char extension[4]; // 04 - plaintext extension without dot (e.g. "hkx")
25  uint32_t crc32Path; // 08 - BSCRC32 of lowercase path to the containing directory, starting with "meshes"
26  };
27  static_assert(sizeof(AnimationFileInfo) == 0xC);
28 
30  {
31  uint32_t unk00; // 00
33  };
34  static_assert(sizeof(QueuedAnimation) == 0x10);
35 
37  {
38  void* unk00; // 00
40  uint16_t counter; // 14
41  };
42  static_assert(sizeof(LoadedAnimation) == 0x18);
43 
44  virtual ~AnimationFileManagerSingleton() override; // 00
45 
46  // override (IAnimationClipLoaderSingleton)
47  virtual std::int32_t Queue(const hkbContext& a_hkbContext, hkbClipGenerator* a_clipGenerator, BSSynchronizedClipGenerator* a_synchronizedClipGenerator); // 01 - called in hkbClipGenerator::Activate, possibly loads animation (queues it?)
48  virtual bool Load(const hkbContext& a_hkbContext, hkbClipGenerator* a_clipGenerator, BSSynchronizedClipGenerator* a_synchronizedClipGenerator); // 02 - called in hkbClipGenerator::Update, possibly loads animation
49  virtual std::int32_t Unload(const hkbContext& a_hkbContext, hkbClipGenerator* a_clipGenerator, BSSynchronizedClipGenerator* a_synchronizedClipGenerator); // 03 - called in hkbClipGenerator::Deactivate, possibly unloads animation
50  virtual void Unk_04(const hkbContext& a_context, std::int16_t a_animationBindingIndex); // 04
51  virtual void Unk_05(const hkbContext& a_context, std::int16_t a_animationBindingIndex); // 05
52 
54  {
56  return *singleton;
57  }
58 
59  // members
66  uint64_t unk80; // 80
68  private:
69  KEEP_FOR_RE()
70  };
71  static_assert(sizeof(AnimationFileManagerSingleton) == 0xA0);
72 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:702
Definition: Relocation.h:210
Definition: AnimationFileManagerSingleton.h:16
virtual void Unk_05(const hkbContext &a_context, std::int16_t a_animationBindingIndex)
static auto VTABLE
Definition: AnimationFileManagerSingleton.h:19
LoadedAnimation currentAnimation
Definition: AnimationFileManagerSingleton.h:62
BSTArray< void * > unk88
Definition: AnimationFileManagerSingleton.h:67
BSTArray< QueuedAnimation > queuedAnimations
Definition: AnimationFileManagerSingleton.h:63
virtual std::int32_t Queue(const hkbContext &a_hkbContext, hkbClipGenerator *a_clipGenerator, BSSynchronizedClipGenerator *a_synchronizedClipGenerator)
virtual void Unk_04(const hkbContext &a_context, std::int16_t a_animationBindingIndex)
BSSpinLock lockB
Definition: AnimationFileManagerSingleton.h:61
static auto RTTI
Definition: AnimationFileManagerSingleton.h:18
virtual ~AnimationFileManagerSingleton() override
virtual bool Load(const hkbContext &a_hkbContext, hkbClipGenerator *a_clipGenerator, BSSynchronizedClipGenerator *a_synchronizedClipGenerator)
BSTArray< LoadedAnimation > loadedAnimations
Definition: AnimationFileManagerSingleton.h:64
BSSpinLock lockA
Definition: AnimationFileManagerSingleton.h:60
uint64_t unk80
Definition: AnimationFileManagerSingleton.h:66
BSTArray< void * > unk68
Definition: AnimationFileManagerSingleton.h:65
static AnimationFileManagerSingleton * GetSingleton()
Definition: AnimationFileManagerSingleton.h:53
virtual std::int32_t Unload(const hkbContext &a_hkbContext, hkbClipGenerator *a_clipGenerator, BSSynchronizedClipGenerator *a_synchronizedClipGenerator)
Definition: BSAtomic.h:92
Definition: BSTArray.h:378
Definition: IAnimationClipLoaderSingleton.h:11
Definition: hkbClipGenerator.h:46
Definition: hkbContext.h:13
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_AnimationFileManagerSingleton(static_cast< std::uint64_t >(690051))
constexpr std::array< REL::ID, 1 > VTABLE_AnimationFileManagerSingleton
Definition: Offsets_VTABLE.h:7401
Definition: AnimationFileManagerSingleton.h:22
uint32_t crc32Filename
Definition: AnimationFileManagerSingleton.h:23
uint32_t crc32Path
Definition: AnimationFileManagerSingleton.h:25
char extension[4]
Definition: AnimationFileManagerSingleton.h:24
Definition: AnimationFileManagerSingleton.h:37
AnimationFileInfo fileInfo
Definition: AnimationFileManagerSingleton.h:39
void * unk00
Definition: AnimationFileManagerSingleton.h:38
uint16_t counter
Definition: AnimationFileManagerSingleton.h:40
Definition: AnimationFileManagerSingleton.h:30
uint32_t unk00
Definition: AnimationFileManagerSingleton.h:31
AnimationFileInfo fileInfo
Definition: AnimationFileManagerSingleton.h:32
Definition: BSTSingleton.h:50