foxygit / doom Log in
commit bef190087e4efaa75f07487accbbfac4a9ac9802
Author:     Archenoth <archenoth@gmail.com>
AuthorDate: Tue Dec 14 15:14:33 2021 -0700
Commit:     Archenoth <archenoth@gmail.com>
CommitDate: Tue Dec 14 16:20:10 2021 -0700

    Add ability to map mouse buttons to run!

    That means that in "More controls" under the mouse setup, you can now
    pick "Run" as a command you can set to a mouse button
---
 src/doom/g_game.c    | 3 ++-
 src/heretic/g_game.c | 3 ++-
 src/hexen/g_game.c   | 3 ++-
 src/m_config.c       | 7 +++++++
 src/m_controls.c     | 2 ++
 src/m_controls.h     | 1 +
 src/setup/mouse.c    | 2 ++
 src/strife/g_game.c  | 3 ++-
 8 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/doom/g_game.c b/src/doom/g_game.c
index 8159497f..c5e2e496 100644
--- a/src/doom/g_game.c
+++ b/src/doom/g_game.c
@@ -345,7 +345,8 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
     speed = key_speed >= NUMKEYS
          || joybspeed >= MAX_JOY_BUTTONS
          || gamekeydown[key_speed]
-         || joybuttons[joybspeed];
+         || joybuttons[joybspeed]
+         || mousebuttons[mousebspeed];

     forward = side = 0;

diff --git a/src/heretic/g_game.c b/src/heretic/g_game.c
index 39ee2bc2..17e8688e 100644
--- a/src/heretic/g_game.c
+++ b/src/heretic/g_game.c
@@ -310,7 +310,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
         || joybuttons[joybstrafe];
     speed = joybspeed >= MAX_JOY_BUTTONS
          || gamekeydown[key_speed]
-         || joybuttons[joybspeed];
+         || joybuttons[joybspeed]
+         || mousebuttons[mousebspeed];

     // haleyjd: removed externdriver crap

diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c
index 209cc743..b0210799 100644
--- a/src/hexen/g_game.c
+++ b/src/hexen/g_game.c
@@ -229,7 +229,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, int maketic)
     speed = key_speed >= NUMKEYS
         || joybspeed >= MAX_JOY_BUTTONS
         || gamekeydown[key_speed]
-        || joybuttons[joybspeed];
+        || joybuttons[joybspeed]
+        || mousebuttons[mousebspeed];

     // haleyjd: removed externdriver crap

diff --git a/src/m_config.c b/src/m_config.c
index 0b4f702a..adb11e45 100644
--- a/src/m_config.c
+++ b/src/m_config.c
@@ -441,6 +441,13 @@ static default_t	doom_defaults_list[] =

     CONFIG_VARIABLE_INT(mouseb_forward),

+    //!
+    // Mouse button to turn on running.  When held down, the player
+    // will run while moving.
+    //
+
+    CONFIG_VARIABLE_INT(mouseb_speed),
+
     //!
     // @game hexen strife
     //
diff --git a/src/m_controls.c b/src/m_controls.c
index 8d984072..f6f03768 100644
--- a/src/m_controls.c
+++ b/src/m_controls.c
@@ -107,6 +107,7 @@ int key_invdrop   = KEY_BACKSPACE;
 int mousebfire = 0;
 int mousebstrafe = 1;
 int mousebforward = 2;
+int mousebspeed = 3;

 int mousebjump = -1;

@@ -233,6 +234,7 @@ void M_BindBaseControls(void)
     M_BindIntVariable("mouseb_fire",        &mousebfire);
     M_BindIntVariable("mouseb_strafe",      &mousebstrafe);
     M_BindIntVariable("mouseb_forward",     &mousebforward);
+    M_BindIntVariable("mouseb_speed",       &mousebspeed);

     M_BindIntVariable("joyb_fire",          &joybfire);
     M_BindIntVariable("joyb_strafe",        &joybstrafe);
diff --git a/src/m_controls.h b/src/m_controls.h
index 1e2472b3..e8b030dc 100644
--- a/src/m_controls.h
+++ b/src/m_controls.h
@@ -136,6 +136,7 @@ extern int key_menu_screenshot;
 extern int mousebfire;
 extern int mousebstrafe;
 extern int mousebforward;
+extern int mousebspeed;

 extern int mousebjump;

diff --git a/src/setup/mouse.c b/src/setup/mouse.c
index 856d8e91..183ef5b2 100644
--- a/src/setup/mouse.c
+++ b/src/setup/mouse.c
@@ -47,6 +47,7 @@ static int *all_mouse_buttons[] = {
     &mousebjump,
     &mousebprevweapon,
     &mousebnextweapon,
+    &mousebspeed,
     &mousebinvleft,
     &mousebinvright,
     &mousebturnleft,
@@ -106,6 +107,7 @@ static void ConfigExtraButtons(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
     AddMouseControl(buttons_table, "Previous weapon", &mousebprevweapon);
     AddMouseControl(buttons_table, "Strafe on", &mousebstrafe);
     AddMouseControl(buttons_table, "Next weapon", &mousebnextweapon);
+    AddMouseControl(buttons_table, "Run on", &mousebspeed);

     if (gamemission == heretic)
     {
diff --git a/src/strife/g_game.c b/src/strife/g_game.c
index c834412c..4fb861c2 100644
--- a/src/strife/g_game.c
+++ b/src/strife/g_game.c
@@ -388,7 +388,8 @@ void G_BuildTiccmd (ticcmd_t* cmd, int maketic)
     speed = key_speed >= NUMKEYS
          || joybspeed >= MAX_JOY_BUTTONS
          || gamekeydown[key_speed]
-         || joybuttons[joybspeed];
+         || joybuttons[joybspeed]
+         || mousebuttons[mousebspeed];

     forward = side = 0;