diff options
Diffstat (limited to 'game/client/config')
| -rw-r--r-- | game/client/config/gamepad_axis.cc | 19 | ||||
| -rw-r--r-- | game/client/config/gamepad_axis.hh | 8 | ||||
| -rw-r--r-- | game/client/config/gamepad_button.cc | 12 | ||||
| -rw-r--r-- | game/client/config/gamepad_button.hh | 6 | ||||
| -rw-r--r-- | game/client/config/keybind.cc | 12 | ||||
| -rw-r--r-- | game/client/config/keybind.hh | 6 |
6 files changed, 32 insertions, 31 deletions
diff --git a/game/client/config/gamepad_axis.cc b/game/client/config/gamepad_axis.cc index a82de81..8ae74be 100644 --- a/game/client/config/gamepad_axis.cc +++ b/game/client/config/gamepad_axis.cc @@ -6,9 +6,9 @@ #include "client/io/gamepad.hh" -constexpr static const char* UNKNOWN_AXIS_NAME = "UNKNOWN"; +constexpr static std::string_view UNKNOWN_AXIS_NAME = "UNKNOWN"; -static const std::pair<int, const char*> axis_names[] = { +static const std::pair<int, std::string_view> axis_names[] = { { GLFW_GAMEPAD_AXIS_LEFT_X, "LEFT_X" }, { GLFW_GAMEPAD_AXIS_LEFT_Y, "LEFT_Y" }, { GLFW_GAMEPAD_AXIS_RIGHT_X, "RIGHT_X" }, @@ -17,7 +17,7 @@ static const std::pair<int, const char*> axis_names[] = { { GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER, "RIGHT_TRIG" }, }; -static const char* get_axis_name(int axis) +static std::string_view get_axis_name(int axis) { for(const auto& it : axis_names) { if(it.first != axis) { @@ -42,19 +42,20 @@ config::GamepadAxis::GamepadAxis(int axis, bool inverted) m_full_string = std::format("{}:{}", m_name, m_inverted ? 1U : 0U); } -const char* config::GamepadAxis::get(void) const +std::string_view config::GamepadAxis::get(void) const { - return m_full_string.c_str(); + return m_full_string; } -void config::GamepadAxis::set(const char* value) +void config::GamepadAxis::set(std::string_view value) { char new_name[64]; unsigned int new_invert; + std::string value_str(value); - if(2 == std::sscanf(value, "%63[^:]:%u", new_name, &new_invert)) { + if(2 == std::sscanf(value_str.c_str(), "%63[^:]:%u", new_name, &new_invert)) { for(const auto& it : axis_names) { - if(!std::strcmp(it.second, new_name)) { + if(0 == it.second.compare(new_name)) { m_inverted = new_invert; m_gamepad_axis = it.first; m_name = get_axis_name(m_gamepad_axis); @@ -108,7 +109,7 @@ float config::GamepadAxis::get_value(const GLFWgamepadstate& state, float deadzo return 0.0f; } -const char* config::GamepadAxis::get_name(void) const +std::string_view config::GamepadAxis::get_name(void) const { return m_name; } diff --git a/game/client/config/gamepad_axis.hh b/game/client/config/gamepad_axis.hh index 0308ce6..86a2990 100644 --- a/game/client/config/gamepad_axis.hh +++ b/game/client/config/gamepad_axis.hh @@ -14,8 +14,8 @@ public: explicit GamepadAxis(int axis, bool inverted); virtual ~GamepadAxis(void) = default; - virtual const char* get(void) const override; - virtual void set(const char* value) override; + virtual std::string_view get(void) const override; + virtual void set(std::string_view value) override; int get_axis(void) const; void set_axis(int axis); @@ -29,13 +29,13 @@ public: // this configuration value actually contain the // inversion flag. Since we're updating that flag // in the UI by means of a separate checkbox, we only need the name here - const char* get_name(void) const; + std::string_view get_name(void) const; private: bool m_inverted; int m_gamepad_axis; std::string m_full_string; - const char* m_name; + std::string_view m_name; }; } // namespace config diff --git a/game/client/config/gamepad_button.cc b/game/client/config/gamepad_button.cc index b983baa..07e4457 100644 --- a/game/client/config/gamepad_button.cc +++ b/game/client/config/gamepad_button.cc @@ -6,9 +6,9 @@ #include "client/io/gamepad.hh" -constexpr static const char* UNKNOWN_BUTTON_NAME = "UNKNOWN"; +constexpr static std::string_view UNKNOWN_BUTTON_NAME = "UNKNOWN"; -static const std::pair<int, const char*> button_names[] = { +static const std::pair<int, std::string_view> button_names[] = { { GLFW_GAMEPAD_BUTTON_A, "A" }, { GLFW_GAMEPAD_BUTTON_B, "B" }, { GLFW_GAMEPAD_BUTTON_X, "X" }, @@ -26,7 +26,7 @@ static const std::pair<int, const char*> button_names[] = { { GLFW_GAMEPAD_BUTTON_DPAD_LEFT, "DPAD_LEFT" }, }; -static const char* get_button_name(int button) +static std::string_view get_button_name(int button) { for(const auto& it : button_names) { if(it.first == button) { @@ -49,15 +49,15 @@ config::GamepadButton::GamepadButton(int button) m_name = get_button_name(button); } -const char* config::GamepadButton::get(void) const +std::string_view config::GamepadButton::get(void) const { return m_name; } -void config::GamepadButton::set(const char* value) +void config::GamepadButton::set(std::string_view value) { for(const auto& it : button_names) { - if(!std::strcmp(it.second, value)) { + if(0 == it.second.compare(value)) { m_gamepad_button = it.first; m_name = it.second; return; diff --git a/game/client/config/gamepad_button.hh b/game/client/config/gamepad_button.hh index 11566c1..e1d1224 100644 --- a/game/client/config/gamepad_button.hh +++ b/game/client/config/gamepad_button.hh @@ -14,8 +14,8 @@ public: explicit GamepadButton(int button); virtual ~GamepadButton(void) = default; - virtual const char* get(void) const override; - virtual void set(const char* value) override; + virtual std::string_view get(void) const override; + virtual void set(std::string_view value) override; int get_button(void) const; void set_button(int button); @@ -25,7 +25,7 @@ public: private: int m_gamepad_button; - const char* m_name; + std::string_view m_name; }; } // namespace config diff --git a/game/client/config/keybind.cc b/game/client/config/keybind.cc index 6bd8ef0..e254f7b 100644 --- a/game/client/config/keybind.cc +++ b/game/client/config/keybind.cc @@ -6,9 +6,9 @@ #include "client/const.hh" -constexpr static const char* UNKNOWN_KEY_NAME = "UNKNOWN"; +constexpr static std::string_view UNKNOWN_KEY_NAME = "UNKNOWN"; -static const std::pair<int, const char*> key_names[] = { +static const std::pair<int, std::string_view> key_names[] = { { GLFW_KEY_SPACE, "SPACE" }, { GLFW_KEY_APOSTROPHE, "'" }, { GLFW_KEY_COMMA, "," }, @@ -131,7 +131,7 @@ static const std::pair<int, const char*> key_names[] = { { GLFW_KEY_MENU, "MENU" }, }; -static const char* get_key_name(int keycode) +static std::string_view get_key_name(int keycode) { for(const auto& it : key_names) { if(it.first == keycode) { @@ -160,10 +160,10 @@ config::KeyBind::KeyBind(int default_value) } } -void config::KeyBind::set(const char* value) +void config::KeyBind::set(std::string_view value) { for(const auto& it : key_names) { - if((it.first != DEBUG_KEY) && !std::strcmp(it.second, value)) { + if((it.first != DEBUG_KEY) && 0 == it.second.compare(value)) { m_glfw_keycode = it.first; m_name = it.second; return; @@ -174,7 +174,7 @@ void config::KeyBind::set(const char* value) m_name = UNKNOWN_KEY_NAME; } -const char* config::KeyBind::get(void) const +std::string_view config::KeyBind::get(void) const { return m_name; } diff --git a/game/client/config/keybind.hh b/game/client/config/keybind.hh index abfb97a..0005fe4 100644 --- a/game/client/config/keybind.hh +++ b/game/client/config/keybind.hh @@ -12,8 +12,8 @@ public: explicit KeyBind(int default_value); virtual ~KeyBind(void) = default; - virtual void set(const char* value) override; - virtual const char* get(void) const override; + virtual void set(std::string_view value) override; + virtual std::string_view get(void) const override; void set_key(int keycode); int get_key(void) const; @@ -21,7 +21,7 @@ public: bool equals(int keycode) const; private: - const char* m_name; + std::string_view m_name; int m_glfw_keycode; }; } // namespace config |
