CommonLibVR
Loading...
Searching...
No Matches
LockpickingMenu.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/B/BSTEvent.h"
6#include "RE/I/IMenu.h"
8#include "RE/N/NiMatrix3.h"
9#include "RE/N/NiPoint3.h"
10
11namespace RE
12{
13 class MenuOpenCloseEvent;
14 class NiAVObject;
15 class NiControllerManager;
16 class NiControllerSequence;
17 class TESObjectREFR;
18
19 // menuDepth = 3
20 // flags = kPausesGame | kDisablePauseMenu | kRequiresUpdate
21 // context = kLockpicking
23 public IMenu, // 00
24 public MenuEventHandler, // 30
25 public BSTEventSink<MenuOpenCloseEvent> // 40
26 {
27 public:
28 inline static constexpr auto RTTI = RTTI_LockpickingMenu;
29 inline static constexpr auto VTABLE = VTABLE_LockpickingMenu;
30 constexpr static std::string_view MENU_NAME = "Lockpicking Menu";
31
32 ~LockpickingMenu() override; // 00
33
34 // override (IMenu)
35 UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
36
37 // override (MenuEventHandler)
38 bool CanProcess(InputEvent* a_event) override; // 01
39 bool ProcessThumbstick(ThumbstickEvent* a_event) override; // 03
40 bool ProcessMouseMove(MouseMoveEvent* a_event) override; // 04
41 bool ProcessButton(ButtonEvent* a_event) override; // 05
42
43 // override (BSTEventSink<MenuOpenCloseEvent>)
45
46 [[nodiscard]] static TESObjectREFR* GetTargetReference();
47
48 // members
61 float pickKeyTime; // 0C8
62 std::uint32_t unk0CC; // 0CC
64 float lockKeyTime; // 0D8
65 float pickAngle; // 0DC
66 float lockAngle; // 0E0
67 float damagePickAngle; // 0E4
68 float pickBreakSeconds; // 0E8
70 float unk0F8; // 0F8
71 float sweetSpotAngle; // 0FC
72 float partialPickAngle; // 100
73 std::uint32_t numBrokenPicks; // 104
74 bool init3DElements; // 108
75 bool animating; // 109
76 bool unk10A; // 10A
77 bool menuCleared; // 10B
78 bool animationFinished; // 10C
79 bool isLockpickingCrime; // 10D
80 std::uint8_t unk10E; // 10E
81 std::uint8_t pad10F; // 10F
82 private:
84 };
85#ifndef SKYRIMVR
86 static_assert(sizeof(LockpickingMenu) == 0x110);
87#else
88 static_assert(sizeof(LockpickingMenu) == 0x120);
89#endif
90}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition BSTEvent.h:143
Definition BSTEvent.h:19
Definition ButtonEvent.h:16
Definition IMenu.h:64
Definition InputEvent.h:25
Definition LockpickingMenu.h:26
NiControllerManager * pickController
Definition LockpickingMenu.h:56
~LockpickingMenu() override
NiControllerSequence * pickDamage
Definition LockpickingMenu.h:58
bool ProcessThumbstick(ThumbstickEvent *a_event) override
bool ProcessButton(ButtonEvent *a_event) override
bool CanProcess(InputEvent *a_event) override
NiControllerSequence * pickBreak
Definition LockpickingMenu.h:59
static TESObjectREFR * GetTargetReference()
NiControllerSequence * pickIntro
Definition LockpickingMenu.h:57
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
bool init3DElements
Definition LockpickingMenu.h:74
float unk0F8
Definition LockpickingMenu.h:70
std::uint8_t unk10E
Definition LockpickingMenu.h:80
bool isLockpickingCrime
Definition LockpickingMenu.h:79
NiControllerSequence * currentPickSequence
Definition LockpickingMenu.h:60
float lockKeyTime
Definition LockpickingMenu.h:64
static constexpr std::string_view MENU_NAME
Definition LockpickingMenu.h:30
float pickAngle
Definition LockpickingMenu.h:65
float partialPickAngle
Definition LockpickingMenu.h:72
float pickKeyTime
Definition LockpickingMenu.h:61
ModelDBHandle pickModel
Definition LockpickingMenu.h:50
NiControllerSequence * lockIntro
Definition LockpickingMenu.h:54
std::uint32_t unk0CC
Definition LockpickingMenu.h:62
bool animationFinished
Definition LockpickingMenu.h:78
bool unk10A
Definition LockpickingMenu.h:76
NiPoint3 lockRotCenter
Definition LockpickingMenu.h:52
bool ProcessMouseMove(MouseMoveEvent *a_event) override
std::uint32_t numBrokenPicks
Definition LockpickingMenu.h:73
float pickBreakSeconds
Definition LockpickingMenu.h:68
bool animating
Definition LockpickingMenu.h:75
NiControllerSequence * lockRotate
Definition LockpickingMenu.h:55
float damagePickAngle
Definition LockpickingMenu.h:67
NiControllerManager * lockController
Definition LockpickingMenu.h:53
BSSoundHandle pickTensionSound
Definition LockpickingMenu.h:69
NiMatrix3 pickRotation
Definition LockpickingMenu.h:51
float lockAngle
Definition LockpickingMenu.h:66
BSEventNotifyControl ProcessEvent(const MenuOpenCloseEvent *a_event, BSTEventSource< MenuOpenCloseEvent > *a_eventSource) override
static constexpr auto VTABLE
Definition LockpickingMenu.h:29
NiControllerSequence * currentLockSequence
Definition LockpickingMenu.h:63
float sweetSpotAngle
Definition LockpickingMenu.h:71
static constexpr auto RTTI
Definition LockpickingMenu.h:28
bool menuCleared
Definition LockpickingMenu.h:77
ModelDBHandle lockModel
Definition LockpickingMenu.h:49
std::uint8_t pad10F
Definition LockpickingMenu.h:81
Definition MenuEventHandler.h:14
Definition MenuOpenCloseEvent.h:8
Definition MouseMoveEvent.h:8
Definition NiControllerManager.h:17
Definition NiControllerSequence.h:23
Definition NiMatrix3.h:8
Definition NiPoint3.h:6
Definition TESObjectREFR.h:114
Definition ThumbstickEvent.h:8
Definition UIMessage.h:28
Definition AbsorbEffect.h:6
UI_MESSAGE_RESULTS
Definition IMenu.h:49
constexpr std::array< REL::ID, 3 > VTABLE_LockpickingMenu
Definition Offsets_VTABLE.h:11969
constexpr REL::ID RTTI_LockpickingMenu(static_cast< std::uint64_t >(688864))
BSEventNotifyControl
Definition BSTEvent.h:12
Definition BSSoundHandle.h:10