Unravel Engine C++ Reference
Loading...
Searching...
No Matches
action_map.cpp
Go to the documentation of this file.
1#include "action_map.hpp"
2
3namespace input
4{
5// ----------------------------------------------------------------------------
6auto action_map::get_analog_value(const action_id_t& action, const input_device& device) const -> float
7{
8 switch(device.get_device_type())
9 {
11 return gamepad_map.get_analog_value(action, static_cast<const gamepad&>(device));
13 return keyboard_map.get_analog_value(action, static_cast<const keyboard&>(device));
15 return mouse_map.get_analog_value(action, static_cast<const mouse&>(device));
16 }
17
18 return 0.0f;
19}
20
21// ----------------------------------------------------------------------------
22auto action_map::get_digital_value(const action_id_t& action, const input_device& device) const -> bool
23{
24 switch(device.get_device_type())
25 {
27 return gamepad_map.get_digital_value(action, static_cast<const gamepad&>(device));
29 return keyboard_map.get_digital_value(action, static_cast<const keyboard&>(device));
31 return mouse_map.get_digital_value(action, static_cast<const mouse&>(device));
32 }
33
34 return false;
35}
36
37// ----------------------------------------------------------------------------
38auto action_map::is_pressed(const action_id_t& action, const input_device& device) const -> bool
39{
40 switch(device.get_device_type())
41 {
43 return gamepad_map.is_pressed(action, static_cast<const gamepad&>(device));
45 return keyboard_map.is_pressed(action, static_cast<const keyboard&>(device));
47 return mouse_map.is_pressed(action, static_cast<const mouse&>(device));
48 }
49
50 return false;
51}
52
53auto action_map::is_released(const action_id_t& action, const input_device& device) const -> bool
54{
55 switch(device.get_device_type())
56 {
58 return gamepad_map.is_released(action, static_cast<const gamepad&>(device));
60 return keyboard_map.is_released(action, static_cast<const keyboard&>(device));
62 return mouse_map.is_released(action, static_cast<const mouse&>(device));
63 }
64
65 return false;
66}
67
68
69auto action_map::is_down(const action_id_t& action, const input_device& device) const -> bool
70{
71 switch(device.get_device_type())
72 {
74 return gamepad_map.is_down(action, static_cast<const gamepad&>(device));
76 return keyboard_map.is_down(action, static_cast<const keyboard&>(device));
78 return mouse_map.is_down(action, static_cast<const mouse&>(device));
79 }
80
81 return false;
82}
83
84// ----------------------------------------------------------------------------
85void action_map::map(const action_id_t& action,
88 float min_analog_value,
89 float max_analog_value)
90{
91 gamepad_map.map(action, axis, range, min_analog_value, max_analog_value);
92}
93
94// ----------------------------------------------------------------------------
96{
97 gamepad_map.map(action, button);
98}
99
100// ----------------------------------------------------------------------------
101void action_map::map(const action_id_t& action, key_code key, float analog_value)
102{
103 keyboard_map.map(action, key, analog_value);
104}
105void action_map::map(const action_id_t& action, key_code key, const std::vector<key_code>& modifiers, float analog_value)
106{
107 keyboard_map.map(action, key, modifiers, analog_value);
108}
109
110void action_map::map(const action_id_t& action,
113{
114 mouse_map.map(action, axis, range);
115}
116
117// ----------------------------------------------------------------------------
119{
120 mouse_map.map(action, button);
121}
122
123} // namespace input
mouse_action_map mouse_map
auto get_analog_value(const action_id_t &action, const input_device &device) const -> float
Definition action_map.cpp:6
auto is_down(const action_id_t &action, const input_device &device) const -> bool
keyboard_action_map keyboard_map
void map(const action_id_t &action, gamepad_axis axis, axis_range range=axis_range::full, float min_analog_value=-1.0f, float max_analog_value=1.0f)
auto is_pressed(const action_id_t &action, const input_device &device) const -> bool
auto is_released(const action_id_t &action, const input_device &device) const -> bool
gamepad_action_map gamepad_map
auto get_digital_value(const action_id_t &action, const input_device &device) const -> bool
void map(const action_id_t &action, gamepad_axis axis, axis_range range=axis_range::full, float min_analog_value=-1.0f, float max_analog_value=1.0f)
void map(const action_id_t &action, key_code key, float analog_value=1.0f)
void map(const action_id_t &action, mouse_axis axis, axis_range range=axis_range::full)
key_code
Definition key.hpp:6
std::string action_id_t
Definition action_id.hpp:6