foxygit / doom Log in
commit b36697d511a7fef9bb1cc5b8b0c2c36fb38e87c8
Author:     Michael Day <contact@michaelcday.com>
AuthorDate: Mon Aug 7 21:54:14 2023 -0400
Commit:     Turo Lamminen <turol@users.noreply.github.com>
CommitDate: Wed Aug 23 11:42:50 2023 +0300

    Show more descriptive gamepad axis name
---
 src/setup/txt_joyaxis.c | 39 +++++++++++++++++++++++++++++++--------
 1 file changed, 31 insertions(+), 8 deletions(-)

diff --git a/src/setup/txt_joyaxis.c b/src/setup/txt_joyaxis.c
index 3e4a1858..59bc85aa 100644
--- a/src/setup/txt_joyaxis.c
+++ b/src/setup/txt_joyaxis.c
@@ -486,20 +486,43 @@ static void TXT_JoystickAxisDrawer(TXT_UNCAST_ARG(joystick_axis))
     }
 }

+static void GetAxisDescription(int axis, char *buf, size_t buf_len)
+{
+    switch (axis)
+    {
+        case SDL_CONTROLLER_AXIS_INVALID:
+            M_StringCopy(buf, "(none)", sizeof(buf));
+            break;
+
+        case SDL_CONTROLLER_AXIS_LEFTX:
+            M_StringCopy(buf, "Left X", sizeof(buf));
+            break;
+
+        case SDL_CONTROLLER_AXIS_LEFTY:
+            M_StringCopy(buf, "Left Y", sizeof(buf));
+            break;
+
+        case SDL_CONTROLLER_AXIS_RIGHTX:
+            M_StringCopy(buf, "Right X", sizeof(buf));
+            break;
+
+        case SDL_CONTROLLER_AXIS_RIGHTY:
+            M_StringCopy(buf, "Right Y", sizeof(buf));
+            break;
+
+        default:
+            M_StringCopy(buf, "(unknown)", sizeof(buf));
+            break;
+    }
+}
+
 static void TXT_GamepadAxisDrawer(TXT_UNCAST_ARG(joystick_axis))
 {
     TXT_CAST_ARG(txt_joystick_axis_t, joystick_axis);
     char buf[JOYSTICK_AXIS_WIDTH + 1];
     int i;

-    if (*joystick_axis->axis < 0)
-    {
-        M_StringCopy(buf, "(none)", sizeof(buf));
-    }
-    else
-    {
-        M_snprintf(buf, sizeof(buf), "AXIS #%i", *joystick_axis->axis);
-    }
+    GetAxisDescription(*joystick_axis->axis, buf, sizeof(buf));

     TXT_SetWidgetBG(joystick_axis);
     TXT_FGColor(TXT_COLOR_BRIGHT_WHITE);