CommonLibVR
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"
9 #include "RE/N/NiPoint3.h"
10 #include "RE/N/NiSmartPointer.h"
11 
12 namespace RE
13 {
14  class InventoryEntryData;
15  class NewInventoryMenuItemLoadTask;
16  class NiAVObject;
17  class TESBoundObject;
18  class TESObjectREFR;
19 
21  {
22  public:
23  // members
24  TESForm* itemBase; // 00 - smart ptr
28  float boundRadius; // 1C
29  };
30  static_assert(sizeof(LoadedInventoryModel) == 0x20);
31 
33  public BSTSingletonSDM<Inventory3DManager>, // 10
34  public MenuEventHandler // 00
35  {
36  public:
37  ~Inventory3DManager() override; // 00
38 
40 
42  void End3D();
44  void LoadInventoryItem(TESBoundObject* a_object, ExtraDataList* a_extraDataList);
45  void Render();
48 
49  // members
50  std::uint8_t unk011; // 011
51  std::uint16_t unk012; // 012
53  NiPoint3 itemPos; // 020
54  float itemScaleCopy; // 02C
55  float itemScale; // 030
56  INTERFACE_LIGHT_SCHEME currentLightScheme; // 034 - kInventory or kInventoryMagic
60  float zoomDistance; // 148
61  float zoomProgress; // 14C - 1 if zoomed in, 0 if not, in-between during transition
63  bool enableUserInput; // 158
64  std::uint8_t unk159; // 159
65  bool startedZoom; // 15A
66  std::uint8_t pad15B; // 15B
67  std::uint32_t pad15C; // 15C
68  private:
69  KEEP_FOR_RE()
70  };
71 #ifndef SKYRIM_SUPPORT_AE
72 # ifndef SKYRIMVR
73  static_assert(sizeof(Inventory3DManager) == 0x160);
74 # endif
75 #else
76  static_assert(sizeof(Inventory3DManager) == 0x168);
77 #endif
78 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSTArray.h:378
Definition: ExtraDataList.h:51
Definition: Inventory3DManager.h:35
~Inventory3DManager() override
float itemScaleCopy
Definition: Inventory3DManager.h:54
static Inventory3DManager * GetSingleton()
NiPoint3 itemPos
Definition: Inventory3DManager.h:53
float zoomProgress
Definition: Inventory3DManager.h:61
void Begin3D(INTERFACE_LIGHT_SCHEME a_scheme)
ExtraDataList originalExtra
Definition: Inventory3DManager.h:58
BSTSmallArray< LoadedInventoryModel, 7 > loadedModels
Definition: Inventory3DManager.h:59
std::uint16_t unk012
Definition: Inventory3DManager.h:51
TESObjectREFR * tempRef
Definition: Inventory3DManager.h:57
std::uint8_t pad15B
Definition: Inventory3DManager.h:66
NiPoint3 itemPosCopy
Definition: Inventory3DManager.h:52
float itemScale
Definition: Inventory3DManager.h:55
bool startedZoom
Definition: Inventory3DManager.h:65
std::uint32_t pad15C
Definition: Inventory3DManager.h:67
void LoadInventoryItem(TESBoundObject *a_object, ExtraDataList *a_extraDataList)
std::uint8_t unk159
Definition: Inventory3DManager.h:64
INTERFACE_LIGHT_SCHEME currentLightScheme
Definition: Inventory3DManager.h:56
bool enableUserInput
Definition: Inventory3DManager.h:63
BSTSmartPointer< NewInventoryMenuItemLoadTask > loadTask
Definition: Inventory3DManager.h:62
void LoadInventoryItem(InventoryEntryData *a_objDesc)
std::uint8_t unk011
Definition: Inventory3DManager.h:50
float zoomDistance
Definition: Inventory3DManager.h:60
Definition: InventoryEntryData.h:15
Definition: MenuEventHandler.h:14
Definition: NiPoint3.h:6
Definition: NiSmartPointer.h:9
Definition: TESBoundObject.h:26
Definition: TESForm.h:40
Definition: TESObjectREFR.h:113
Definition: AbsorbEffect.h:6
INTERFACE_LIGHT_SCHEME
Definition: InterfaceLightSchemes.h:6
Definition: BSTSingleton.h:50
Definition: Inventory3DManager.h:21
TESBoundObject * modelObj
Definition: Inventory3DManager.h:25
INTERFACE_LIGHT_SCHEME lightScheme
Definition: Inventory3DManager.h:27
NiPointer< NiAVObject > spModel
Definition: Inventory3DManager.h:26
TESForm * itemBase
Definition: Inventory3DManager.h:24
float boundRadius
Definition: Inventory3DManager.h:28