foxygit / doom Log in
commit 7bd029058c7be03cff6a151925c1c424a4651d8b
Author:     Michael Day <contact@michaelcday.com>
AuthorDate: Thu Nov 2 22:21:47 2023 -0400
Commit:     Michael Day <contact@michaelcday.com>
CommitDate: Thu Nov 2 22:21:47 2023 -0400

    joystick: sensitivity = 0 disables input

    When *not* using analog controls, let a move, turn or look sensitivity
    value of 0 disable that input. Restore Strife look sensitivity in setup.
---
 src/doom/g_game.c    |  8 ++++----
 src/heretic/g_game.c | 10 +++++-----
 src/hexen/g_game.c   | 10 +++++-----
 src/setup/joystick.c |  2 +-
 src/strife/g_game.c  | 12 ++++++------
 5 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/src/doom/g_game.c b/src/doom/g_game.c
index b07ff570..3b881388 100644
--- a/src/doom/g_game.c
+++ b/src/doom/g_game.c
@@ -388,7 +388,7 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
             joyxmove = (joyxmove < -FRACUNIT) ? -FRACUNIT : joyxmove;
             side += FixedMul(sidemove[speed], joyxmove);
         }
-        else
+        else if (joystick_move_sensitivity)
         {
             if (joyxmove > 0)
                 side += sidemove[speed];
@@ -410,7 +410,7 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
             joyxmove = joyxmove * joystick_turn_sensitivity / 10;
             cmd->angleturn -= FixedMul(angleturn[1], joyxmove);
         }
-        else
+        else if (joystick_turn_sensitivity)
         {
             if (joyxmove > 0)
                 cmd->angleturn -= angleturn[tspeed];
@@ -437,7 +437,7 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
         joyymove = (joyymove < -FRACUNIT) ? -FRACUNIT : joyymove;
         forward -= FixedMul(forwardmove[speed], joyymove);
     }
-    else
+    else if (joystick_move_sensitivity)
     {
         if (joyymove < 0)
             forward += forwardmove[speed];
@@ -466,7 +466,7 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
         joystrafemove = (joystrafemove < -FRACUNIT) ? -FRACUNIT : joystrafemove;
         side += FixedMul(sidemove[speed], joystrafemove);
     }
-    else
+    else if (joystick_move_sensitivity)
     {
         if (joystrafemove < 0)
             side -= sidemove[speed];
diff --git a/src/heretic/g_game.c b/src/heretic/g_game.c
index 666384da..8f060923 100644
--- a/src/heretic/g_game.c
+++ b/src/heretic/g_game.c
@@ -359,7 +359,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
             joyxmove = (joyxmove < -FRACUNIT) ? -FRACUNIT : joyxmove;
             side += FixedMul(sidemove[speed], joyxmove);
         }
-        else
+        else if (joystick_move_sensitivity)
         {
             if (joyxmove > 0)
                 side += sidemove[speed];
@@ -381,7 +381,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
             joyxmove = joyxmove * joystick_turn_sensitivity / 10;
             cmd->angleturn -= FixedMul(angleturn[1], joyxmove);
         }
-        else
+        else if (joystick_turn_sensitivity)
         {
             if (joyxmove > 0)
                 cmd->angleturn -= angleturn[tspeed];
@@ -401,7 +401,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
         joyymove = (joyymove < -FRACUNIT) ? FRACUNIT : joyymove;
         forward -= FixedMul(forwardmove[speed], joyymove);
     }
-    else
+    else if (joystick_move_sensitivity)
     {
         if (joyymove < 0)
             forward += forwardmove[speed];
@@ -422,7 +422,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
         joystrafemove = (joystrafemove < -FRACUNIT) ? -FRACUNIT : joystrafemove;
         side += FixedMul(sidemove[speed], joystrafemove);
     }
-    else
+    else if (joystick_move_sensitivity)
     {
         if (joystrafemove < 0)
             side -= sidemove[speed];
@@ -445,7 +445,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
         joylook = (joylook < -FRACUNIT) ? -FRACUNIT : joylook;
         look = -FixedMul(2, joylook);
     }
-    else
+    else if (joystick_look_sensitivity)
     {
         if (joylook < 0)
         {
diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c
index 972178b9..e0b30d15 100644
--- a/src/hexen/g_game.c
+++ b/src/hexen/g_game.c
@@ -280,7 +280,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
             joyxmove = (joyxmove < -FRACUNIT) ? -FRACUNIT : joyxmove;
             side += FixedMul(sidemove[pClass][speed], joyxmove);
         }
-        else
+        else if (joystick_move_sensitivity)
         {
             if (joyxmove > 0)
             {
@@ -306,7 +306,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
             joyxmove = joyxmove * joystick_turn_sensitivity / 10;
             cmd->angleturn -= FixedMul(angleturn[1], joyxmove);
         }
-        else
+        else if (joystick_turn_sensitivity)
         {
             if (joyxmove > 0)
                 cmd->angleturn -= angleturn[tspeed];
@@ -330,7 +330,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
         joyymove = (joyymove < -FRACUNIT) ? FRACUNIT : joyymove;
         forward -= FixedMul(forwardmove[pClass][speed], joyymove);
     }
-    else
+    else if (joystick_move_sensitivity)
     {
         if (joyymove < 0)
         {
@@ -359,7 +359,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
         joystrafemove = (joystrafemove < -FRACUNIT) ? -FRACUNIT : joystrafemove;
         side += FixedMul(sidemove[pClass][speed], joystrafemove);
     }
-    else
+    else if (joystick_move_sensitivity)
     {
         if (joystrafemove < 0)
             side -= sidemove[pClass][speed];
@@ -383,7 +383,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
         joylook = (joylook < -FRACUNIT) ? -FRACUNIT : joylook;
         look = -FixedMul(2, joylook);
     }
-    else
+    else if (joystick_look_sensitivity)
     {
         if (joylook < 0)
         {
diff --git a/src/setup/joystick.c b/src/setup/joystick.c
index a9ae5920..e0cf9e88 100644
--- a/src/setup/joystick.c
+++ b/src/setup/joystick.c
@@ -1154,7 +1154,7 @@ static void AdjustAnalog(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
         TXT_NewLabel("Turn"),
         TXT_NewSpinControl(&joystick_turn_sensitivity, 0, 20),
         NULL);
-    if (gamemission == heretic || gamemission == hexen)
+    if (gamemission == heretic || gamemission == hexen || gamemission == strife)
     {
         TXT_AddWidgets(window,
             TXT_NewLabel("Look"),
diff --git a/src/strife/g_game.c b/src/strife/g_game.c
index 0eaf08e8..813f0d74 100644
--- a/src/strife/g_game.c
+++ b/src/strife/g_game.c
@@ -345,11 +345,11 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
         consistancy[consoleplayer][maketic%BACKUPTICS];

     // villsa [STRIFE] look up key
-    if(gamekeydown[key_lookup] || joylook < 0)
+    if(gamekeydown[key_lookup] || (joylook < 0 && joystick_look_sensitivity))
         cmd->buttons2 |= BT2_LOOKUP;

     // villsa [STRIFE] look down key
-    if(gamekeydown[key_lookdown] || joylook > 0)
+    if(gamekeydown[key_lookdown] || (joylook > 0 && joystick_look_sensitivity))
         cmd->buttons2 |= BT2_LOOKDOWN;

     // villsa [STRIFE] inventory use key
@@ -439,7 +439,7 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
             joyxmove = (joyxmove < -FRACUNIT) ? -FRACUNIT : joyxmove;
             side += FixedMul(sidemove[speed], joyxmove);
         }
-        else
+        else if (joystick_move_sensitivity)
         {
             if (joyxmove > 0)
                 side += sidemove[speed];
@@ -462,7 +462,7 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
             joyxmove = joyxmove * joystick_turn_sensitivity / 10;
             cmd->angleturn -= FixedMul(angleturn[1], joyxmove);
         }
-        else
+        else if (joystick_turn_sensitivity)
         {
             if (joyxmove > 0)
                 cmd->angleturn -= angleturn[tspeed];
@@ -489,7 +489,7 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
         joyymove = (joyymove < -FRACUNIT) ? FRACUNIT : joyymove;
         forward -= FixedMul(forwardmove[speed], joyymove);
     }
-    else
+    else if (joystick_move_sensitivity)
     {
         if (joyymove < 0)
             forward += forwardmove[speed];
@@ -518,7 +518,7 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
         joystrafemove = (joystrafemove < -FRACUNIT) ? -FRACUNIT : joystrafemove;
         side += FixedMul(sidemove[speed], joystrafemove);
     }
-    else
+    else if (joystick_move_sensitivity)
     {
         if (joystrafemove < 0)
             side -= sidemove[speed];