CommonLibSSE NG
Loading...
Searching...
No Matches
BSInputDevice.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/B/BSTHashMap.h"
6#include "RE/I/InputDevices.h"
7
8namespace RE
9{
11 {
12 public:
13 inline static constexpr auto RTTI = RTTI_BSInputDevice;
14 inline static constexpr auto VTABLE = VTABLE_BSInputDevice;
15
17 {
19 float heldDownSecs; // 08
20 std::uint32_t keycode; // 0C
21 };
22 static_assert(sizeof(InputButton) == 0x10);
23
24 ~BSInputDevice() override; // 00
25
26 // override (BSIInputDevice)
27 bool GetKeyMapping(std::uint32_t a_key, BSFixedString& a_mapping) override; // 04
28 std::uint32_t GetMappingKey(BSFixedString a_mapping) override; // 05
29 bool GetMappedKeycode(std::uint32_t a_key, std::uint32_t& outKeyCode) override; // 06
30 [[nodiscard]] bool IsEnabled() const override; // 07 - { return true; }
31
32 [[nodiscard]] bool IsKeyboard() const;
33 [[nodiscard]] bool IsMouse() const;
34 [[nodiscard]] bool IsGamepad() const;
35 [[nodiscard]] bool IsPressed(std::uint32_t a_keyCode) const;
36
37 bool LoadControlsDefinitionFile(const char* a_fileName); // loads the controls definition file from <FILENAME>.txt (usually located in 'interface\controls' folder)
38 void ResetButtonMaps(); // resets the button maps
39 void SetButtonState(std::uint32_t a_buttonId, float a_timeSinceLastPoll, bool a_buttonWasPressed, bool a_buttonIsPressed); // sets the button state for a given key code and emits a button event if necessary
40
41 // members
43 std::uint32_t pad0C; // 0C
46
47 protected:
49 };
50 static_assert(sizeof(BSInputDevice) == 0x70);
51}
Definition BSIInputDevice.h:9
Definition BSInputDevice.h:11
bool GetMappedKeycode(std::uint32_t a_key, std::uint32_t &outKeyCode) override
bool GetKeyMapping(std::uint32_t a_key, BSFixedString &a_mapping) override
bool IsEnabled() const override
std::uint32_t GetMappingKey(BSFixedString a_mapping) override
bool IsMouse() const
bool IsGamepad() const
std::uint32_t pad0C
Definition BSInputDevice.h:43
bool IsKeyboard() const
static constexpr auto RTTI
Definition BSInputDevice.h:13
bool IsPressed(std::uint32_t a_keyCode) const
~BSInputDevice() override
INPUT_DEVICE device
Definition BSInputDevice.h:42
BSTHashMap< std::uint32_t, InputButton * > deviceButtons
Definition BSInputDevice.h:44
BSTHashMap< BSFixedString, std::uint32_t > buttonNameIDMap
Definition BSInputDevice.h:45
void SetButtonState(std::uint32_t a_buttonId, float a_timeSinceLastPoll, bool a_buttonWasPressed, bool a_buttonIsPressed)
bool LoadControlsDefinitionFile(const char *a_fileName)
static constexpr auto VTABLE
Definition BSInputDevice.h:14
Definition BSTHashMap.h:21
Definition AbsorbEffect.h:6
constexpr std::array< REL::VariantID, 1 > VTABLE_BSInputDevice
Definition Offsets_VTABLE.h:5432
constexpr REL::VariantID RTTI_BSInputDevice(690308, 398163, 0x1f5fcc0)
Definition BSInputDevice.h:17
BSFixedString name
Definition BSInputDevice.h:18
float heldDownSecs
Definition BSInputDevice.h:19
std::uint32_t keycode
Definition BSInputDevice.h:20
INPUT_DEVICE
Definition InputDevices.h:8