CommonLibSSE (Parapets fork)
Inventory3DManager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/B/BSTSingleton.h"
5 #include "RE/B/BSTSmartPointer.h"
6 #include "RE/E/ExtraDataList.h"
8 #include "RE/N/NiPoint3.h"
9 #include "RE/N/NiSmartPointer.h"
10 
11 namespace RE
12 {
13  class InventoryEntryData;
14  class NewInventoryMenuItemLoadTask;
15  class NiAVObject;
16  class TESBoundObject;
17  class TESObjectREFR;
18 
20  {
21  public:
22  // members
23  TESForm* itemBase; // 00 - smart ptr
26  std::uint64_t unk18; // 18
27  };
28  static_assert(sizeof(LoadedInventoryModel) == 0x20);
29 
31  public MenuEventHandler, // 00
32  public BSTSingletonSDM<Inventory3DManager> // 10
33  {
34  public:
35  ~Inventory3DManager() override; // 00
36 
38 
39  static void SetMouseRotation(bool a_active);
40  static void StartMouseRotation() { SetMouseRotation(true); }
41  static void StopMouseRotation() { SetMouseRotation(false); }
42 
43  void Begin3D(std::uint32_t a_arg1);
44  void End3D();
45  void UpdateItem3D(InventoryEntryData* a_objDesc);
46  void UpdateItem3D(TESForm* a_form, ExtraDataList* a_extraList = nullptr);
47  void Clear3D();
48  std::uint32_t Render();
49 
50  // members
51  std::uint8_t unk011; // 011
52  std::uint16_t unk012; // 012
55  float currentScale; // 02C
56  float defaultScale; // 030
57  std::uint32_t state; // 034
61  std::uint32_t unk148; // 148
62  float zoomProgress; // 14C - 1 if zoomed in, 0 if not, in-between during transition
64  std::uint8_t unk158; // 158
65  std::uint8_t unk159; // 159
66  std::uint8_t unk15A; // 15A
67  std::uint8_t pad15B; // 15B
68  std::uint32_t pad15C; // 15C
69  };
70 #if !defined(SKYRIMVR) && !defined(SKYRIMSE_PRE_1_6_629)
71  static_assert(sizeof(Inventory3DManager) == 0x168);
72 #else
73  static_assert(sizeof(Inventory3DManager) == 0x160);
74 #endif
75 }
Definition: BSTArray.h:377
Definition: ExtraDataList.h:50
Definition: Inventory3DManager.h:33
std::uint8_t unk15A
Definition: Inventory3DManager.h:66
~Inventory3DManager() override
static Inventory3DManager * GetSingleton()
float zoomProgress
Definition: Inventory3DManager.h:62
NiPoint3 position
Definition: Inventory3DManager.h:54
std::uint8_t unk158
Definition: Inventory3DManager.h:64
NiPoint3 currentPosition
Definition: Inventory3DManager.h:53
static void StartMouseRotation()
Definition: Inventory3DManager.h:40
static void StopMouseRotation()
Definition: Inventory3DManager.h:41
ExtraDataList originalExtra
Definition: Inventory3DManager.h:59
BSTSmallArray< LoadedInventoryModel, 7 > loadedModels
Definition: Inventory3DManager.h:60
float currentScale
Definition: Inventory3DManager.h:55
std::uint16_t unk012
Definition: Inventory3DManager.h:52
TESObjectREFR * tempRef
Definition: Inventory3DManager.h:58
std::uint32_t Render()
std::uint8_t pad15B
Definition: Inventory3DManager.h:67
void UpdateItem3D(TESForm *a_form, ExtraDataList *a_extraList=nullptr)
float defaultScale
Definition: Inventory3DManager.h:56
std::uint32_t pad15C
Definition: Inventory3DManager.h:68
void Begin3D(std::uint32_t a_arg1)
std::uint8_t unk159
Definition: Inventory3DManager.h:65
void UpdateItem3D(InventoryEntryData *a_objDesc)
std::uint32_t state
Definition: Inventory3DManager.h:57
std::uint32_t unk148
Definition: Inventory3DManager.h:61
BSTSmartPointer< NewInventoryMenuItemLoadTask > loadTask
Definition: Inventory3DManager.h:63
static void SetMouseRotation(bool a_active)
std::uint8_t unk011
Definition: Inventory3DManager.h:51
Definition: InventoryEntryData.h:14
Definition: MenuEventHandler.h:17
Definition: NiPoint3.h:6
Definition: NiSmartPointer.h:9
Definition: TESBoundObject.h:24
Definition: TESForm.h:34
Definition: TESObjectREFR.h:105
Definition: AbsorbEffect.h:6
Definition: BSTSingleton.h:50
Definition: Inventory3DManager.h:20
std::uint64_t unk18
Definition: Inventory3DManager.h:26
TESBoundObject * modelObj
Definition: Inventory3DManager.h:24
NiPointer< NiAVObject > spModel
Definition: Inventory3DManager.h:25
TESForm * itemBase
Definition: Inventory3DManager.h:23