Polyphase Game Engine
Loading...
Searching...
No Matches
InputMap.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
InputTypes.h
"
4
5
#include <stdint.h>
6
#include <string>
7
#include <vector>
8
9
class
InputMap
10
{
11
public
:
12
13
static
void
Create
();
14
static
void
Destroy
();
15
static
InputMap
*
Get
();
16
17
void
ResetToDefaults
();
18
19
// Button mappings (keyboard key -> gamepad button)
20
void
SetButtonMapping
(
GamepadButtonCode
button, int32_t keyCode);
21
int32_t
GetButtonMapping
(
GamepadButtonCode
button)
const
;
22
23
// Axis mappings (keyboard keys -> gamepad axis)
24
void
SetAxisMapping
(
GamepadAxisCode
axis, int32_t positiveKey, int32_t negativeKey);
25
void
GetAxisMapping
(
GamepadAxisCode
axis, int32_t& positiveKey, int32_t& negativeKey)
const
;
26
27
// Mouse-to-axis mapping
28
void
SetAxisMouseMapping
(
GamepadAxisCode
axis,
bool
useMouseX,
bool
useMouseY,
float
sensitivity);
29
bool
GetAxisUsesMouseX
(
GamepadAxisCode
axis)
const
;
30
bool
GetAxisUsesMouseY
(
GamepadAxisCode
axis)
const
;
31
float
GetAxisMouseSensitivity
(
GamepadAxisCode
axis)
const
;
32
33
// Mouse/Pointer enable/disable for debugging
34
void
SetMouseEnabled
(
bool
enabled);
35
bool
IsMouseEnabled
()
const
;
36
void
SetPointerEnabled
(
bool
enabled);
37
bool
IsPointerEnabled
()
const
;
38
39
// Query: is this gamepad button triggered via a mapped keyboard key?
40
bool
IsButtonDownViaKeyboard
(
GamepadButtonCode
button)
const
;
41
bool
IsButtonJustDownViaKeyboard
(
GamepadButtonCode
button)
const
;
42
bool
IsButtonJustUpViaKeyboard
(
GamepadButtonCode
button)
const
;
43
44
// Query: get axis value from mapped keyboard keys and/or mouse
45
float
GetAxisValueFromMapping
(
GamepadAxisCode
axis)
const
;
46
47
// Presets (saved globally to user's AppData)
48
bool
SavePreset
(
const
std::string& name)
const
;
49
bool
LoadPreset
(
const
std::string& name);
50
bool
DeletePreset
(
const
std::string& name);
51
std::vector<std::string>
GetPresetNames
()
const
;
52
static
std::string
GetPresetsDirectory
();
53
54
// Display string helpers
55
static
const
char
*
GetKeyCodeName
(int32_t keyCode);
56
static
const
char
*
GetGamepadButtonName
(
GamepadButtonCode
button);
57
static
const
char
*
GetGamepadAxisName
(
GamepadAxisCode
axis);
58
59
private
:
60
61
static
InputMap
* sInstance;
62
63
InputMap
();
64
65
int32_t mButtonMappings[
GAMEPAD_BUTTON_COUNT
];
66
int32_t mAxisPositiveKeys[
GAMEPAD_AXIS_COUNT
];
67
int32_t mAxisNegativeKeys[
GAMEPAD_AXIS_COUNT
];
68
bool
mAxisUseMouseX[
GAMEPAD_AXIS_COUNT
];
69
bool
mAxisUseMouseY[
GAMEPAD_AXIS_COUNT
];
70
float
mAxisMouseSensitivity[
GAMEPAD_AXIS_COUNT
];
71
bool
mMouseEnabled =
true
;
72
bool
mPointerEnabled =
true
;
73
};
InputTypes.h
GamepadButtonCode
GamepadButtonCode
Definition
InputTypes.h:45
GAMEPAD_BUTTON_COUNT
@ GAMEPAD_BUTTON_COUNT
Definition
InputTypes.h:74
GamepadAxisCode
GamepadAxisCode
Definition
InputTypes.h:78
GAMEPAD_AXIS_COUNT
@ GAMEPAD_AXIS_COUNT
Definition
InputTypes.h:86
InputMap
Definition
InputMap.h:10
InputMap::GetAxisUsesMouseY
bool GetAxisUsesMouseY(GamepadAxisCode axis) const
Definition
InputMap.cpp:180
InputMap::IsButtonDownViaKeyboard
bool IsButtonDownViaKeyboard(GamepadButtonCode button) const
Definition
InputMap.cpp:203
InputMap::LoadPreset
bool LoadPreset(const std::string &name)
Definition
InputMap.cpp:543
InputMap::GetAxisMapping
void GetAxisMapping(GamepadAxisCode axis, int32_t &positiveKey, int32_t &negativeKey) const
Definition
InputMap.cpp:147
InputMap::IsButtonJustUpViaKeyboard
bool IsButtonJustUpViaKeyboard(GamepadButtonCode button) const
Definition
InputMap.cpp:229
InputMap::IsButtonJustDownViaKeyboard
bool IsButtonJustDownViaKeyboard(GamepadButtonCode button) const
Definition
InputMap.cpp:216
InputMap::GetAxisUsesMouseX
bool GetAxisUsesMouseX(GamepadAxisCode axis) const
Definition
InputMap.cpp:173
InputMap::GetKeyCodeName
static const char * GetKeyCodeName(int32_t keyCode)
Definition
InputMap.cpp:285
InputMap::Destroy
static void Destroy()
Definition
InputMap.cpp:40
InputMap::GetAxisValueFromMapping
float GetAxisValueFromMapping(GamepadAxisCode axis) const
Definition
InputMap.cpp:242
InputMap::Get
static InputMap * Get()
Definition
InputMap.cpp:49
InputMap::GetPresetsDirectory
static std::string GetPresetsDirectory()
Definition
InputMap.cpp:429
InputMap::SetPointerEnabled
void SetPointerEnabled(bool enabled)
Definition
InputMap.cpp:198
InputMap::DeletePreset
bool DeletePreset(const std::string &name)
Definition
InputMap.cpp:611
InputMap::SetButtonMapping
void SetButtonMapping(GamepadButtonCode button, int32_t keyCode)
Definition
InputMap.cpp:119
InputMap::GetGamepadButtonName
static const char * GetGamepadButtonName(GamepadButtonCode button)
Definition
InputMap.cpp:378
InputMap::IsMouseEnabled
bool IsMouseEnabled() const
Definition
InputMap.cpp:197
InputMap::IsPointerEnabled
bool IsPointerEnabled() const
Definition
InputMap.cpp:199
InputMap::GetPresetNames
std::vector< std::string > GetPresetNames() const
Definition
InputMap.cpp:617
InputMap::ResetToDefaults
void ResetToDefaults()
Definition
InputMap.cpp:59
InputMap::GetButtonMapping
int32_t GetButtonMapping(GamepadButtonCode button) const
Definition
InputMap.cpp:127
InputMap::SetAxisMouseMapping
void SetAxisMouseMapping(GamepadAxisCode axis, bool useMouseX, bool useMouseY, float sensitivity)
Definition
InputMap.cpp:163
InputMap::SetAxisMapping
void SetAxisMapping(GamepadAxisCode axis, int32_t positiveKey, int32_t negativeKey)
Definition
InputMap.cpp:138
InputMap::SetMouseEnabled
void SetMouseEnabled(bool enabled)
Definition
InputMap.cpp:196
InputMap::GetAxisMouseSensitivity
float GetAxisMouseSensitivity(GamepadAxisCode axis) const
Definition
InputMap.cpp:187
InputMap::SavePreset
bool SavePreset(const std::string &name) const
Definition
InputMap.cpp:488
InputMap::GetGamepadAxisName
static const char * GetGamepadAxisName(GamepadAxisCode axis)
Definition
InputMap.cpp:413
InputMap::Create
static void Create()
Definition
InputMap.cpp:34
Engine
Source
Input
InputMap.h
Generated by
1.9.8