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