CommonLibVR
BSTreeManager.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/N/NiPoint2.h"
7 #include "RE/N/NiSmartPointer.h"
8 
9 namespace RE
10 {
11  class BSLeafAnimNode;
12  class BSTreeNode;
13  class NiCamera;
14 
15  class BSTreeManager : public BSTSingletonSDM<BSTreeManager>
16  {
17  public:
19  {
20  public:
21  inline static constexpr auto RTTI = RTTI_BSTreeManager__IQueryCullingCamera;
22  inline static constexpr auto VTABLE = VTABLE_BSTreeManager__IQueryCullingCamera;
23 
24  virtual ~IQueryCullingCamera(); // 00
25 
26  // add
27  virtual NiCamera* GetCamera() = 0; // 01
28  };
29  static_assert(sizeof(IQueryCullingCamera) == 0x8);
30 
32  {
33  REL::Relocation<BSTreeManager**> singleton{ RELOCATION_ID(514181, 400330) };
34  return *singleton;
35  }
36 
37  // members
38  bool enableTrees; // 01
39  bool enableTreeAnims; // 02
40  bool forceFullDetail; // 03
41  std::uint32_t pad04; // 04
43  mutable BSSpinLock treeLock; // 10
44  mutable BSSpinLock branchLock; // 18
48  std::uint32_t unk68; // 68
49  std::uint32_t unk6C; // 6C
51  float windMagnitude; // 78
52  float treeUpdateTimer; // 7C
53  float midLODSwitchDist; // 80
54  std::uint32_t pad84; // 84
55  private:
56  KEEP_FOR_RE()
57  };
58  static_assert(sizeof(BSTreeManager) == 0x88);
59 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:702
Definition: Relocation.h:210
Definition: BSAtomic.h:92
Definition: BSTArray.h:378
Definition: BSTreeManager.h:19
static constexpr auto VTABLE
Definition: BSTreeManager.h:22
static constexpr auto RTTI
Definition: BSTreeManager.h:21
Definition: BSTreeManager.h:16
BSTArray< NiPointer< BSTreeNode > > loadedTrees
Definition: BSTreeManager.h:45
BSSpinLock treeLock
Definition: BSTreeManager.h:43
BSSpinLock branchLock
Definition: BSTreeManager.h:44
std::uint32_t pad84
Definition: BSTreeManager.h:54
std::uint32_t unk6C
Definition: BSTreeManager.h:49
float treeUpdateTimer
Definition: BSTreeManager.h:52
bool enableTreeAnims
Definition: BSTreeManager.h:39
float midLODSwitchDist
Definition: BSTreeManager.h:53
float windMagnitude
Definition: BSTreeManager.h:51
bool forceFullDetail
Definition: BSTreeManager.h:40
BSTArray< NiPointer< BSLeafAnimNode > > branches
Definition: BSTreeManager.h:47
static BSTreeManager * GetSingleton()
Definition: BSTreeManager.h:31
IQueryCullingCamera * cullingCamera
Definition: BSTreeManager.h:42
bool enableTrees
Definition: BSTreeManager.h:38
NiPoint2 windDirection
Definition: BSTreeManager.h:50
std::uint32_t pad04
Definition: BSTreeManager.h:41
BSTArray< BSTreeNode * > skinnedTrees
Definition: BSTreeManager.h:46
std::uint32_t unk68
Definition: BSTreeManager.h:48
Definition: NiCamera.h:11
Definition: NiPoint2.h:6
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BSTreeManager__IQueryCullingCamera(static_cast< std::uint64_t >(686663))
constexpr std::array< REL::ID, 1 > VTABLE_BSTreeManager__IQueryCullingCamera
Definition: Offsets_VTABLE.h:10555
Definition: BSTSingleton.h:50