diff options
Diffstat (limited to 'game/client/gamepad_axis.cc')
| -rw-r--r-- | game/client/gamepad_axis.cc | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/game/client/gamepad_axis.cc b/game/client/gamepad_axis.cc index dff0894..4d4d953 100644 --- a/game/client/gamepad_axis.cc +++ b/game/client/gamepad_axis.cc @@ -1,26 +1,29 @@ #include "client/pch.hh" + #include "client/gamepad_axis.hh" #include "core/constexpr.hh" #include "client/gamepad.hh" -constexpr static const char *UNKNOWN_AXIS_NAME = "UNKNOWN"; +constexpr static const char* UNKNOWN_AXIS_NAME = "UNKNOWN"; -static const std::pair<int, const char *> axis_names[] = { - { GLFW_GAMEPAD_AXIS_LEFT_X, "LEFT_X" }, - { GLFW_GAMEPAD_AXIS_LEFT_Y, "LEFT_Y" }, - { GLFW_GAMEPAD_AXIS_RIGHT_X, "RIGHT_X" }, - { GLFW_GAMEPAD_AXIS_RIGHT_Y, "RIGHT_Y" }, - { GLFW_GAMEPAD_AXIS_LEFT_TRIGGER, "LEFT_TRIG" }, - { GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER, "RIGHT_TRIG" }, +static const std::pair<int, const char*> axis_names[] = { + { GLFW_GAMEPAD_AXIS_LEFT_X, "LEFT_X" }, + { GLFW_GAMEPAD_AXIS_LEFT_Y, "LEFT_Y" }, + { GLFW_GAMEPAD_AXIS_RIGHT_X, "RIGHT_X" }, + { GLFW_GAMEPAD_AXIS_RIGHT_Y, "RIGHT_Y" }, + { GLFW_GAMEPAD_AXIS_LEFT_TRIGGER, "LEFT_TRIG" }, + { GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER, "RIGHT_TRIG" }, }; -static const char *get_axis_name(int axis) +static const char* get_axis_name(int axis) { - for(const auto &it : axis_names) { - if(it.first != axis) + for(const auto& it : axis_names) { + if(it.first != axis) { continue; + } + return it.second; } @@ -29,7 +32,6 @@ static const char *get_axis_name(int axis) ConfigGamepadAxis::ConfigGamepadAxis(void) : ConfigGamepadAxis(INVALID_GAMEPAD_AXIS, false) { - } ConfigGamepadAxis::ConfigGamepadAxis(int axis, bool inverted) @@ -40,18 +42,18 @@ ConfigGamepadAxis::ConfigGamepadAxis(int axis, bool inverted) m_full_string = fmt::format("{}:{}", m_name, m_inverted ? 1U : 0U); } -const char *ConfigGamepadAxis::get(void) const +const char* ConfigGamepadAxis::get(void) const { return m_full_string.c_str(); } -void ConfigGamepadAxis::set(const char *value) +void ConfigGamepadAxis::set(const char* value) { char new_name[64]; unsigned int new_invert; if(2 == std::sscanf(value, "%63[^:]:%u", new_name, &new_invert)) { - for(const auto &it : axis_names) { + for(const auto& it : axis_names) { if(!std::strcmp(it.second, new_name)) { m_inverted = new_invert; m_gamepad_axis = it.first; @@ -91,20 +93,22 @@ void ConfigGamepadAxis::set_inverted(bool inverted) m_full_string = fmt::format("{}:{}", m_name, m_inverted ? 1U : 0U); } -float ConfigGamepadAxis::get_value(const GLFWgamepadstate &state, float deadzone) const +float ConfigGamepadAxis::get_value(const GLFWgamepadstate& state, float deadzone) const { if(m_gamepad_axis <= cxpr::array_size(state.axes)) { auto value = state.axes[m_gamepad_axis]; - if(cxpr::abs(value) > deadzone) + + if(cxpr::abs(value) > deadzone) { return m_inverted ? -value : value; + } + return 0.0f; } return 0.0f; - } -const char *ConfigGamepadAxis::get_name(void) const +const char* ConfigGamepadAxis::get_name(void) const { return m_name; } |
