CommonLibVR
PlayerInputHandler.h
Go to the documentation of this file.
1 #pragma once
2 #include "RE/B/BSFixedString.h"
3 
4 namespace RE
5 {
6  class ButtonEvent;
7  class InputEvent;
8  class MouseMoveEvent;
9  class PlayerControlsData;
10  class ThumbstickEvent;
11 
13  {
14  public:
15  inline static constexpr auto RTTI = RTTI_PlayerInputHandler;
16  inline static constexpr auto VTABLE = VTABLE_PlayerInputHandler;
17 
18  virtual ~PlayerInputHandler() = default; // 00
19 
20  virtual bool CanProcess(InputEvent* a_event) = 0; // 01
21  virtual void ProcessThumbstick([[maybe_unused]] ThumbstickEvent* a_event, [[maybe_unused]] PlayerControlsData* a_data) {} // 02
22  virtual void ProcessMouseMove([[maybe_unused]] MouseMoveEvent* a_event, [[maybe_unused]] PlayerControlsData* a_data) {} // 03
23  virtual void ProcessButton([[maybe_unused]] ButtonEvent* a_event, [[maybe_unused]] PlayerControlsData* a_data) {} // 04
24 
25 #ifdef SKYRIMVR
26  virtual void Unk_05(void); // 05
27  virtual void Unk_06(void); // 05
28 #endif
29 
30  [[nodiscard]] bool IsInputEventHandlingEnabled() const;
31  void SetInputEventHandlingEnabled(bool a_enabled);
32 
33  // members
35  std::uint8_t pad09{ 0 }; // 09
36  std::uint16_t pad0A{ 0 }; // 0A
37  std::uint32_t pad0C{ 0 }; // 0C
38 #ifdef SKYRIMVR
39  std::uint64_t unk10; // 10
40  BSFixedString unk18; // 18
41  std::uint64_t unk20;
42 #endif
43  private:
44  KEEP_FOR_RE()
45  };
46 #ifndef SKYRIMVR
47  static_assert(sizeof(PlayerInputHandler) == 0x10);
48 #else
49  static_assert(sizeof(PlayerInputHandler) == 0x28);
50 #endif
51 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: ButtonEvent.h:16
Definition: InputEvent.h:25
Definition: MouseMoveEvent.h:8
Definition: PlayerControlsData.h:8
Definition: PlayerInputHandler.h:13
virtual void ProcessMouseMove([[maybe_unused]] MouseMoveEvent *a_event, [[maybe_unused]] PlayerControlsData *a_data)
Definition: PlayerInputHandler.h:22
static constexpr auto VTABLE
Definition: PlayerInputHandler.h:16
std::uint32_t pad0C
Definition: PlayerInputHandler.h:37
void SetInputEventHandlingEnabled(bool a_enabled)
virtual bool CanProcess(InputEvent *a_event)=0
virtual void ProcessButton([[maybe_unused]] ButtonEvent *a_event, [[maybe_unused]] PlayerControlsData *a_data)
Definition: PlayerInputHandler.h:23
bool inputEventHandlingEnabled
Definition: PlayerInputHandler.h:34
static constexpr auto RTTI
Definition: PlayerInputHandler.h:15
std::uint16_t pad0A
Definition: PlayerInputHandler.h:36
virtual ~PlayerInputHandler()=default
std::uint8_t pad09
Definition: PlayerInputHandler.h:35
virtual void ProcessThumbstick([[maybe_unused]] ThumbstickEvent *a_event, [[maybe_unused]] PlayerControlsData *a_data)
Definition: PlayerInputHandler.h:21
bool IsInputEventHandlingEnabled() const
Definition: ThumbstickEvent.h:8
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_PlayerInputHandler(static_cast< std::uint64_t >(686390))
constexpr std::array< REL::ID, 1 > VTABLE_PlayerInputHandler
Definition: Offsets_VTABLE.h:12555