CommonLibSSE NG
LocalMapMenu.h
Go to the documentation of this file.
1 #pragma once
2 
5 #include "RE/B/BSTArray.h"
6 #include "RE/B/BSTSmartPointer.h"
7 #include "RE/G/GFxValue.h"
9 #include "RE/L/LocalMapCamera.h"
10 #include "RE/M/MenuEventHandler.h"
11 #include "RE/N/NiCamera.h"
12 #include "RE/N/NiSmartPointer.h"
13 
14 namespace RE
15 {
16  class BSShaderAccumulator;
17  class NiNode;
18 
19  struct LocalMapMenu
20  {
21  public:
23  {
24  public:
25  struct Data
26  {
27  public:
28  // members
30  void* unk08; // 08 - smart ptr
32  std::uint64_t unk18; // 18
33  std::uint64_t unk20; // 20
34  std::uint64_t unk28; // 28
35  std::uint64_t unk30; // 30
36  std::uint64_t unk38; // 38
37  void* unk40; // 40 - smart ptr
38  };
39  static_assert(sizeof(Data) == 0x48);
40 
41  [[nodiscard]] inline LocalMapCamera* GetLocalMapCamera() const noexcept
42  {
43  return &REL::RelocateMember<LocalMapCamera>(this, 0x30260, 0x30270);
44  }
45 
46  void SetLocalMapCamera(const LocalMapCamera& localMapCamera) noexcept
47  {
48  REL::RelocateMember<LocalMapCamera>(this, 0x30260, 0x30270) = localMapCamera;
49  }
50 
51  // members
53  Data unk301F8; // 301F8
54  std::uint64_t unk30240; // 30240
55  std::uint64_t unk30248; // 30248
56 #ifndef ENABLE_SKYRIM_VR
57  std::uint64_t unk30250; // 30250
58  std::uint64_t unk30258; // 30258
62  std::uint64_t unk30350; // 30350
64 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
65  std::uint64_t padVR1; // 30250
66  std::uint64_t padVR2; // 30258
67  std::uint64_t unk30260; // 30260
68  std::uint64_t unk30268; // 30268
69  LocalMapCamera camera; // 30270
70  NiPointer<BSShaderAccumulator> unk302D8; // 302D8
71  ImageSpaceShaderParam unk302E0; // 302E0
72  std::uint64_t unk30360; // 30360
73  NiPointer<NiNode> unk30368; // 30368
74  BSTArray<void*> unk30370; // 30370
75  BSTArray<void*> unk30388; // 30388
76  BSTArray<void*> unk303A0; // 303A0
77  void* unk303B8; // 303B8
78  NiCamera* unk303C0; // 303C0
79  std::uint32_t unk303C8; // 303C8
80  std::uint32_t pad303CC; // 303CC
81  std::uint64_t unk303D0; // 303D0
82 #else
83  std::uint64_t unk30250; // 30250
84  std::uint64_t unk30258; // 30258
85  std::uint8_t unk30260[0x100]; // 30260
86 #endif
87  };
88 #ifndef ENABLE_SKYRIM_VR
89  static_assert(sizeof(LocalMapCullingProcess) == 0x30360);
90 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
91  static_assert(sizeof(LocalMapCullingProcess) == 0x303D8);
92 #endif
93 
95  {
96  public:
97  inline static constexpr auto RTTI = RTTI_LocalMapMenu__InputHandler;
98 
99  ~InputHandler() override; // 00
100 
101  // override (MenuEventHandler)
102  bool CanProcess(InputEvent* a_event) override; // 01
103  bool ProcessThumbstick(ThumbstickEvent* a_event) override; // 03
104  bool ProcessMouseMove(MouseMoveEvent* a_event) override; // 04
105  bool ProcessButton(ButtonEvent* a_event) override; // 05
106 
107  // members
109  };
110  static_assert(sizeof(InputHandler) == 0x18);
111 
113  {
117  void* unk303E8; // 48
119  std::uint64_t unk303F8; // 58
120  };
121  static_assert(sizeof(RUNTIME_DATA) == 0x60);
122 
123  [[nodiscard]] inline RUNTIME_DATA& GetRuntimeData() noexcept
124  {
125  return REL::RelocateMember<RUNTIME_DATA>(this, 0x303A0, 0x30418);
126  }
127 
128  [[nodiscard]] inline const RUNTIME_DATA& GetRuntimeData() const noexcept
129  {
130  return REL::RelocateMember<RUNTIME_DATA>(this, 0x303A0, 0x30418);
131  }
132 
133  // members
135  GFxValue unk00018; // 00018
136  float unk00030; // 00030
137  float unk00034; // 00034
138  float unk00038; // 00038
139  float unk0003C; // 0003C
141  RUNTIME_DATA runtimeData; // 303A0, 30418
142 #if !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
143  std::uint32_t unk30478; // 30478
144  std::uint32_t pad3047C; // 3047C
145 #endif
146  };
147 #ifndef ENABLE_SKYRIM_VR
148  static_assert(sizeof(LocalMapMenu) == 0x30400);
149 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
150  static_assert(sizeof(LocalMapMenu) == 0x30480);
151 #endif
152 }
Definition: BSCullingProcess.h:17
Definition: BSScaleformExternalTexture.h:9
Definition: BSTSmartPointer.h:36
Definition: ButtonEvent.h:11
Definition: GFxValue.h:92
Definition: ImageSpaceShaderParam.h:12
Definition: InputEvent.h:25
Definition: LocalMapCamera.h:14
Definition: LocalMapMenu.h:95
bool ProcessMouseMove(MouseMoveEvent *a_event) override
static constexpr auto RTTI
Definition: LocalMapMenu.h:97
bool ProcessButton(ButtonEvent *a_event) override
bool CanProcess(InputEvent *a_event) override
LocalMapMenu * localMapMenu
Definition: LocalMapMenu.h:108
bool ProcessThumbstick(ThumbstickEvent *a_event) override
Definition: MenuEventHandler.h:14
Definition: MouseMoveEvent.h:8
Definition: NiCamera.h:12
Definition: ThumbstickEvent.h:8
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_LocalMapMenu__InputHandler(688975, 396830, 0x1f49050)
void * unk08
Definition: LocalMapMenu.h:30
std::uint64_t unk38
Definition: LocalMapMenu.h:36
std::uint64_t unk30
Definition: LocalMapMenu.h:35
std::uint64_t unk20
Definition: LocalMapMenu.h:33
std::uint64_t unk28
Definition: LocalMapMenu.h:34
NiPointer< NiCamera > camera
Definition: LocalMapMenu.h:31
void * unk40
Definition: LocalMapMenu.h:37
NiPointer< BSShaderAccumulator > shaderAccumulator
Definition: LocalMapMenu.h:29
std::uint64_t unk18
Definition: LocalMapMenu.h:32
Definition: LocalMapMenu.h:23
NiPointer< NiNode > unk30358
Definition: LocalMapMenu.h:63
std::uint64_t unk30250
Definition: LocalMapMenu.h:57
std::uint64_t unk30240
Definition: LocalMapMenu.h:54
void SetLocalMapCamera(const LocalMapCamera &localMapCamera) noexcept
Definition: LocalMapMenu.h:46
std::uint64_t unk30350
Definition: LocalMapMenu.h:62
NiPointer< BSShaderAccumulator > unk302C8
Definition: LocalMapMenu.h:60
LocalMapCamera camera
Definition: LocalMapMenu.h:59
std::uint64_t unk30258
Definition: LocalMapMenu.h:58
Data unk301F8
Definition: LocalMapMenu.h:53
std::uint64_t unk30248
Definition: LocalMapMenu.h:55
ImageSpaceShaderParam unk302D0
Definition: LocalMapMenu.h:61
BSCullingProcess cullingProcess
Definition: LocalMapMenu.h:52
LocalMapCamera * GetLocalMapCamera() const noexcept
Definition: LocalMapMenu.h:41
Definition: LocalMapMenu.h:113
BSTSmartPointer< InputHandler > unk303F0
Definition: LocalMapMenu.h:118
std::uint64_t unk303F8
Definition: LocalMapMenu.h:119
void * unk303E8
Definition: LocalMapMenu.h:117
GFxValue unk303D0
Definition: LocalMapMenu.h:116
BSScaleformExternalTexture unk303A0
Definition: LocalMapMenu.h:114
GFxValue unk303B8
Definition: LocalMapMenu.h:115
Definition: LocalMapMenu.h:20
std::uint32_t pad3047C
Definition: LocalMapMenu.h:144
LocalMapCullingProcess localCullingProcess
Definition: LocalMapMenu.h:140
float unk00038
Definition: LocalMapMenu.h:138
std::uint32_t unk30478
Definition: LocalMapMenu.h:143
RUNTIME_DATA runtimeData
Definition: LocalMapMenu.h:141
BSTArray< void * > unk00000
Definition: LocalMapMenu.h:134
float unk00030
Definition: LocalMapMenu.h:136
float unk00034
Definition: LocalMapMenu.h:137
GFxValue unk00018
Definition: LocalMapMenu.h:135
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition: LocalMapMenu.h:128
float unk0003C
Definition: LocalMapMenu.h:139
RUNTIME_DATA & GetRuntimeData() noexcept
Definition: LocalMapMenu.h:123