CommonLibSSE (Parapets fork)
StatsMenu.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/A/ActorValues.h"
4 #include "RE/B/BSTArray.h"
5 #include "RE/G/GFxValue.h"
6 #include "RE/I/IMenu.h"
8 #include "RE/N/NiPoint3.h"
9 
10 namespace RE
11 {
12  class BSEffectShaderProperty;
13  class BSFadeNode;
14  class BSScaleformMovieLoadTask;
15  class NiCamera;
16  class NiControllerManager;
17  class NiControllerSequence;
18  class NiNode;
19  class StatsNode;
20 
21  namespace BSResource
22  {
23  struct ID;
24  }
25 
26  // menuDepth = 3
27  // flags = kPausesGame | kUsesMenuContext | kDisablePauseMenu | kRequiresUpdate | kCustomRendering
28  // kUsesCursor if gamepad disabled
29  // context = kStats
30  class StatsMenu :
31  public IMenu, // 000
32  public MenuEventHandler // 030
33  {
34  public:
35  inline static constexpr auto RTTI = RTTI_StatsMenu;
36  constexpr static std::string_view MENU_NAME = "StatsMenu";
37 
38  enum
39  {
40  kTotalTrees = 18
41  };
42 
43  struct UnkData
44  {
45  public:
46  enum class State
47  {
48  kResting = 0,
49  kEntering = 1,
50  kExiting = 2
51  };
52 
53  // members
54  BSEffectShaderProperty* unk00; // 00
56  std::uint32_t unk0C; // 0C
57  };
58  static_assert(sizeof(UnkData) == 0x10);
59 
60  ~StatsMenu() override; // 00
61 
62  // override (IMenu)
63  void Accept(CallbackProcessor* a_processor) override; // 01
64  void Unk_03(void) override; // 03 - { unk321 = 1; }
65  UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
66  void PostDisplay() override; // 06
67 
68  // override (MenuEventHandler)
69  bool ShouldHandleEvent(const InputEvent* a_event) override; // 01
70  bool HandleEvent(const ButtonEvent* a_event) override; // 05
71  bool HandleEvent(const ThumbstickEvent* a_event) override; // 03
72 
73  // members
74  NiCamera* unk040; // 040
75  float horizontalVelocity; // 048
76  std::uint32_t unk04C; // 04C
85  bool zoomed; // 1B8
86  std::uint8_t unk1B9; // 1B9
87  std::uint16_t unk1BA; // 1BA
88  bool scrolling; // 1BC
89  std::uint8_t unk1BD; // 1BD
90  std::uint16_t unk1BE; // 1BE
91  std::uint32_t selectedTree; // 1C0
92  std::uint32_t unk1C4; // 1C4
93  StatsNode* unk1C8; // 1C8
94  std::uint32_t unk1D0; // 1D0
95  std::uint32_t unk1D4; // 1D4
96  std::uint32_t unk1D8; // 1D8
97  std::uint32_t unk1DC; // 1DC
98  std::uint64_t unk1E0; // 1E0
99  std::uint32_t unk1E8; // 1E8
103  std::uint64_t unk210; // 210
104  std::uint64_t unk218; // 218
105  std::uint64_t unk220; // 220
106  std::uint64_t unk228; // 228
107  std::uint64_t unk230; // 230
108  std::uint64_t unk238; // 238
109  float unk240; // 240
110  float unk244; // 244
111  float unk248; // 248
112  float unk24C; // 24C
113  float unk250; // 250
114  float unk254; // 254
115  float unk258; // 258
116  float unk25C; // 25C
117  float unk260; // 260
118  float unk264; // 264
119  float unk268; // 268
120  float unk26C; // 26C
121  float unk270; // 270
122  float unk274; // 274
123  std::uint32_t unk278; // 278
124  float unk27C; // 27C
126  std::uint32_t unk284; // 284
132  std::uint64_t unk2B0; // 2B0
133  std::uint64_t unk2B8; // 2B8
136  BSScaleformMovieLoadTask* unk2F0; // 2F0
137  GFxValue unk2F8; // 2F8 - StatsMenuBaseInstance.BeastSkillHolder
138  std::uint32_t numSelectableTrees; // 310
139  float unk314; // 314
140  float unk318; // 318
141  std::uint32_t flags; // 31C
142  std::uint8_t unk320; // 320
143  std::uint8_t unk321; // 321
144  std::uint16_t unk322; // 322
145  std::uint32_t unk324; // 324
146  };
147 #ifndef SKYRIMVR
148  static_assert(sizeof(StatsMenu) == 0x328);
149 #else
150  //static_assert(sizeof(StatsMenu) == 0x3E0);
151 #endif
152 }
Definition: BSFadeNode.h:11
Definition: ButtonEvent.h:15
Definition: FxDelegateHandler.h:19
Definition: GFxValue.h:92
Definition: IMenu.h:56
Definition: InputEvent.h:26
Definition: MenuEventHandler.h:17
Definition: NiCamera.h:11
Definition: NiControllerManager.h:17
Definition: NiControllerSequence.h:23
Definition: NiNode.h:12
Definition: NiPoint3.h:6
Definition: StatsMenu.h:33
std::uint8_t unk321
Definition: StatsMenu.h:143
float horizontalVelocity
Definition: StatsMenu.h:75
bool ShouldHandleEvent(const InputEvent *a_event) override
std::uint8_t unk1BD
Definition: StatsMenu.h:89
std::uint64_t unk228
Definition: StatsMenu.h:106
float unk260
Definition: StatsMenu.h:117
std::uint64_t unk218
Definition: StatsMenu.h:104
std::uint64_t unk1E0
Definition: StatsMenu.h:98
NiControllerManager * unk2A8
Definition: StatsMenu.h:131
float unk244
Definition: StatsMenu.h:110
constexpr static std::string_view MENU_NAME
Definition: StatsMenu.h:36
float unk27C
Definition: StatsMenu.h:124
bool zoomed
Definition: StatsMenu.h:85
bool scrolling
Definition: StatsMenu.h:88
float unk264
Definition: StatsMenu.h:118
std::uint64_t unk220
Definition: StatsMenu.h:105
std::uint32_t unk1DC
Definition: StatsMenu.h:97
NiControllerSequence * cameraOutro
Definition: StatsMenu.h:129
std::uint32_t numSelectableTrees
Definition: StatsMenu.h:138
float unk25C
Definition: StatsMenu.h:116
float unk314
Definition: StatsMenu.h:139
float unk254
Definition: StatsMenu.h:114
std::uint64_t unk2B0
Definition: StatsMenu.h:132
NiPoint3 starCameraOffset
Definition: StatsMenu.h:101
GFxValue unk2F8
Definition: StatsMenu.h:137
std::uint32_t unk324
Definition: StatsMenu.h:145
BSResource::ID * linesHash
Definition: StatsMenu.h:80
float unk258
Definition: StatsMenu.h:115
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
float unk270
Definition: StatsMenu.h:121
BSResource::ID * skydomeHash
Definition: StatsMenu.h:78
std::uint64_t unk238
Definition: StatsMenu.h:108
BSTArray< GFxValue > unk2D8
Definition: StatsMenu.h:135
std::uint16_t unk1BE
Definition: StatsMenu.h:90
BSResource::ID * starsHash
Definition: StatsMenu.h:79
std::uint32_t unk1D8
Definition: StatsMenu.h:96
std::uint8_t unk1B9
Definition: StatsMenu.h:86
float unk274
Definition: StatsMenu.h:122
UnkData unk098[kTotalTrees]
Definition: StatsMenu.h:84
std::uint32_t unk1E8
Definition: StatsMenu.h:99
float unk268
Definition: StatsMenu.h:119
std::uint32_t unk278
Definition: StatsMenu.h:123
StatsNode * unk1C8
Definition: StatsMenu.h:93
NiNode * cameraPosition
Definition: StatsMenu.h:127
void Unk_03(void) override
BSFadeNode * linesNode
Definition: StatsMenu.h:83
NiControllerSequence * idle
Definition: StatsMenu.h:130
static constexpr auto RTTI
Definition: StatsMenu.h:35
~StatsMenu() override
std::uint16_t unk1BA
Definition: StatsMenu.h:87
std::uint64_t unk210
Definition: StatsMenu.h:103
std::uint32_t unk1D0
Definition: StatsMenu.h:94
NiPoint3 skillsLookAt
Definition: StatsMenu.h:100
BSFadeNode * starsNode
Definition: StatsMenu.h:82
float unk26C
Definition: StatsMenu.h:120
void PostDisplay() override
BSFadeNode * skydomeNode
Definition: StatsMenu.h:81
BSTArray< ActorValue > skillTrees
Definition: StatsMenu.h:77
NiControllerSequence * cameraIntro
Definition: StatsMenu.h:128
std::uint32_t unk1C4
Definition: StatsMenu.h:92
BSTArray< StatsNode * > unk2C0
Definition: StatsMenu.h:134
std::uint32_t selectedTree
Definition: StatsMenu.h:91
float unk318
Definition: StatsMenu.h:140
@ kTotalTrees
Definition: StatsMenu.h:40
float horizontalAcceleration
Definition: StatsMenu.h:125
std::uint64_t unk2B8
Definition: StatsMenu.h:133
std::uint32_t flags
Definition: StatsMenu.h:141
float unk248
Definition: StatsMenu.h:111
std::uint16_t unk322
Definition: StatsMenu.h:144
bool HandleEvent(const ThumbstickEvent *a_event) override
std::uint32_t unk284
Definition: StatsMenu.h:126
NiCamera * unk040
Definition: StatsMenu.h:74
BSScaleformMovieLoadTask * unk2F0
Definition: StatsMenu.h:136
void Accept(CallbackProcessor *a_processor) override
std::uint32_t unk1D4
Definition: StatsMenu.h:95
bool HandleEvent(const ButtonEvent *a_event) override
float unk250
Definition: StatsMenu.h:113
std::uint8_t unk320
Definition: StatsMenu.h:142
NiPoint3 starLookAt
Definition: StatsMenu.h:102
float unk240
Definition: StatsMenu.h:109
std::uint32_t unk04C
Definition: StatsMenu.h:76
std::uint64_t unk230
Definition: StatsMenu.h:107
float unk24C
Definition: StatsMenu.h:112
Definition: StatsNode.h:16
Definition: ThumbstickEvent.h:8
Definition: UIMessage.h:28
Definition: AbsorbEffect.h:6
UI_MESSAGE_RESULTS
Definition: IMenu.h:49
constexpr REL::ID RTTI_StatsMenu
Definition: Offsets_RTTI.h:5946
Definition: ID.h:10
Definition: StatsMenu.h:44
State
Definition: StatsMenu.h:47
stl::enumeration< State, std::uint32_t > state
Definition: StatsMenu.h:55
std::uint32_t unk0C
Definition: StatsMenu.h:56
BSEffectShaderProperty * unk00
Definition: StatsMenu.h:54