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