CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
MistMenu.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/I/IMenu.h"
5#include "RE/N/NiColor.h"
6#include "RE/N/NiMatrix3.h"
8
9namespace RE
10{
11 class BSLightingShaderProperty;
12 class NiAVObject;
13 class NiControllerManager;
14 class NiControllerSequence;
15
16 // menuDepth = 8
17 // flags = kDisablePauseMenu | kAllowSaving | kDontHideCursorWhenTopmost
18 // context = kNone
19 class MistMenu :
20 public IMenu, // 00
22 public MenuEventHandler // 48
23 {
24 public:
25 inline static constexpr auto RTTI = RTTI_MistMenu;
26 inline static constexpr auto VTABLE = VTABLE_MistMenu;
27 constexpr static std::string_view MENU_NAME = "Mist Menu";
28
29 struct Colors
30 {
31 enum Color
32 {
39
40 kTotal
41 };
42 };
43
44 ~MistMenu() override; // 00
45
46 // override (IMenu)
47 UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
48 void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
49 void PostDisplay() override; // 06
50
51 // override (MenuEventHandler)
52 bool CanProcess(InputEvent* a_event) override; // 01
53 bool ProcessThumbstick(ThumbstickEvent* a_event) override; // 03
54 bool ProcessMouseMove(MouseMoveEvent* a_event) override; // 04
55 bool ProcessButton(ButtonEvent* a_event) override; // 05
56
58 {
59 REL::Relocation<MistMenu**> singleton{ RELOCATION_ID(519827, 406370) };
60 return *singleton;
61 }
62
63 // members
65 std::uint32_t unk0A0; // 0A0
66 std::uint32_t unk0A4; // 0A4
67 std::uint64_t unk0A8; // 0A8
68 NiPointer<NiNode> mistModel; // 0B0 - smart ptr
69 void* mistModelDBHandle; // 0B8
70 void* loadScreenDBHandle; // 0C0
71 NiPointer<BSFadeNode> cameraPath; // 0C8 - parent of cameraPathNode
75 BSLightingShaderProperty* logoShaderProperty; // 0E8 - default logo only
77 std::uint64_t unk0F8; // 0F8 - imagespacedata?
78 float cameraFOV; // 100
79 float angleZ; // 104
80 float unk108; // 108
81 float unk10C; // 10C
83 bool showMist; // 134
84 bool showLoadScreen; // 135
85 std::uint8_t unk136; // 136
86 std::uint8_t unk137; // 137
87 std::uint8_t unk138; // 138 - initCameraPath?
88 std::uint8_t unk139; // 139 - cameraPath related
89 bool leftButtonHeldDown; // 13A
91 std::uint32_t pad13C; // 13C
92 };
93 static_assert(sizeof(MistMenu) == 0x140);
94}
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:711
Definition: BSLightingShaderProperty.h:10
Definition: ButtonEvent.h:11
Definition: IMenu.h:55
Definition: InputEvent.h:22
Definition: MenuEventHandler.h:14
Definition: MistMenu.h:23
std::uint64_t unk0A8
Definition: MistMenu.h:67
static constexpr auto RTTI
Definition: MistMenu.h:25
void * loadScreenDBHandle
Definition: MistMenu.h:70
std::uint8_t unk136
Definition: MistMenu.h:85
std::uint8_t unk137
Definition: MistMenu.h:86
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
float unk10C
Definition: MistMenu.h:81
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
float unk108
Definition: MistMenu.h:80
float angleZ
Definition: MistMenu.h:79
std::uint32_t unk0A0
Definition: MistMenu.h:65
static constexpr auto VTABLE
Definition: MistMenu.h:26
bool showLoadScreen
Definition: MistMenu.h:84
NiPointer< NiControllerManager > cameraPathController
Definition: MistMenu.h:74
std::uint8_t unk139
Definition: MistMenu.h:88
bool CanProcess(InputEvent *a_event) override
void PostDisplay() override
static MistMenu * GetSingleton()
Definition: MistMenu.h:57
bool showMist
Definition: MistMenu.h:83
float cameraFOV
Definition: MistMenu.h:78
bool ProcessMouseMove(MouseMoveEvent *a_event) override
static constexpr std::string_view MENU_NAME
Definition: MistMenu.h:27
NiPointer< NiNode > mistModel
Definition: MistMenu.h:68
NiPointer< BSFadeNode > cameraPath
Definition: MistMenu.h:71
NiColor ambientColors[Colors::kTotal]
Definition: MistMenu.h:64
std::uint32_t pad13C
Definition: MistMenu.h:91
void * mistModelDBHandle
Definition: MistMenu.h:69
bool leftButtonHeldDown
Definition: MistMenu.h:89
bool ProcessThumbstick(ThumbstickEvent *a_event) override
BSLightingShaderProperty * logoShaderProperty
Definition: MistMenu.h:75
~MistMenu() override
NiPointer< NiControllerSequence > cameraPathSequence
Definition: MistMenu.h:73
std::uint32_t unk0A4
Definition: MistMenu.h:66
std::uint64_t unk0F8
Definition: MistMenu.h:77
NiPointer< BSFadeNode > loadScreenModel
Definition: MistMenu.h:76
NiPointer< NiNode > cameraPathNode
Definition: MistMenu.h:72
std::uint8_t unk138
Definition: MistMenu.h:87
bool ProcessButton(ButtonEvent *a_event) override
NiMatrix3 cameraRotate
Definition: MistMenu.h:82
bool rightButtonHeldDown
Definition: MistMenu.h:90
Definition: MouseMoveEvent.h:8
Definition: NiColor.h:11
Definition: NiMatrix3.h:8
Definition: NiSmartPointer.h:9
Definition: SimpleAnimationGraphManagerHolder.h:11
Definition: ThumbstickEvent.h:8
Definition: UIMessage.h:28
Definition: Relocation.h:875
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_MistMenu(static_cast< std::uint64_t >(688896))
UI_MESSAGE_RESULTS
Definition: IMenu.h:48
constexpr std::array< REL::ID, 3 > VTABLE_MistMenu
Definition: Offsets_VTABLE.h:12013
Definition: MistMenu.h:30
Color
Definition: MistMenu.h:32
@ kTotal
Definition: MistMenu.h:40
@ kZPos
Definition: MistMenu.h:38
@ kXPos
Definition: MistMenu.h:34
@ kXNeg
Definition: MistMenu.h:33
@ kYPos
Definition: MistMenu.h:36
@ kZNeg
Definition: MistMenu.h:37
@ kYNeg
Definition: MistMenu.h:35