Skip to content
This repository has been archived by the owner on Jun 23, 2023. It is now read-only.

Commit

Permalink
add mouse button bindings for turning left/right (#268)
Browse files Browse the repository at this point in the history
* add mouse button bindings for turning left/right

* let "turn" mouse bindings act as aliases for the respective key bindings

* addendum to the previous commit
  • Loading branch information
fabiangreffrath committed Apr 8, 2021
1 parent 5ef9e75 commit 07925d6
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 14 deletions.
24 changes: 14 additions & 10 deletions prboom2/src/g_game.c
Expand Up @@ -260,6 +260,8 @@ int mousebfire;
int mousebstrafe;
int mousebforward;
int mousebbackward;
int mousebturnright;
int mousebturnleft;
int mousebuse;
int joybfire;
int joybstrafe;
Expand Down Expand Up @@ -491,7 +493,8 @@ void G_BuildTiccmd(ticcmd_t* cmd)
// use two stage accelerative turning
// on the keyboard and joystick
if (joyxmove < 0 || joyxmove > 0 ||
gamekeydown[key_right] || gamekeydown[key_left])
gamekeydown[key_right] || gamekeydown[key_left] ||
mousebuttons[mousebturnright] || mousebuttons[mousebturnleft])
turnheld += ticdup;
else
turnheld = 0;
Expand All @@ -514,9 +517,9 @@ void G_BuildTiccmd(ticcmd_t* cmd)

if (strafe)
{
if (gamekeydown[key_right])
if (gamekeydown[key_right] || mousebuttons[mousebturnright])
side += sidemove[speed];
if (gamekeydown[key_left])
if (gamekeydown[key_left] || mousebuttons[mousebturnleft])
side -= sidemove[speed];
if (joyxmove > 0)
side += sidemove[speed];
Expand All @@ -525,9 +528,9 @@ void G_BuildTiccmd(ticcmd_t* cmd)
}
else
{
if (gamekeydown[key_right])
if (gamekeydown[key_right] || mousebuttons[mousebturnright])
cmd->angleturn -= angleturn[tspeed];
if (gamekeydown[key_left])
if (gamekeydown[key_left] || mousebuttons[mousebturnleft])
cmd->angleturn += angleturn[tspeed];
if (joyxmove > 0)
cmd->angleturn -= angleturn[tspeed];
Expand Down Expand Up @@ -4320,7 +4323,8 @@ void P_WalkTicker()
// use two stage accelerative turning
// on the keyboard and joystick
if (joyxmove < 0 || joyxmove > 0 ||
gamekeydown[key_right] || gamekeydown[key_left])
gamekeydown[key_right] || gamekeydown[key_left] ||
mousebuttons[mousebturnright] || mousebuttons[mousebturnleft])
turnheld += ticdup;
else
turnheld = 0;
Expand All @@ -4334,9 +4338,9 @@ void P_WalkTicker()

if (strafe)
{
if (gamekeydown[key_right])
if (gamekeydown[key_right] || mousebuttons[mousebturnright])
side += sidemove[speed];
if (gamekeydown[key_left])
if (gamekeydown[key_left] || mousebuttons[mousebturnleft])
side -= sidemove[speed];
if (joyxmove > 0)
side += sidemove[speed];
Expand All @@ -4345,9 +4349,9 @@ void P_WalkTicker()
}
else
{
if (gamekeydown[key_right])
if (gamekeydown[key_right] || mousebuttons[mousebturnright])
angturn -= angleturn[tspeed];
if (gamekeydown[key_left])
if (gamekeydown[key_left] || mousebuttons[mousebturnleft])
angturn += angleturn[tspeed];
if (joyxmove > 0)
angturn -= angleturn[tspeed];
Expand Down
2 changes: 2 additions & 0 deletions prboom2/src/g_game.h
Expand Up @@ -197,6 +197,8 @@ extern int mousebfire;
extern int mousebstrafe;
extern int mousebforward;
extern int mousebbackward;
extern int mousebturnright;
extern int mousebturnleft;
extern int mousebuse;
extern int joybfire;
extern int joybstrafe;
Expand Down
8 changes: 4 additions & 4 deletions prboom2/src/m_menu.c
Expand Up @@ -2458,8 +2458,8 @@ setup_menu_t keys_settings1[] = // Key Binding screen strings
{"MOVEMENT" ,S_SKIP|S_TITLE,m_null,KB_X,KB_Y},
{"FORWARD" ,S_KEY ,m_scrn,KB_X,KB_Y+1*8,{&key_up},&mousebforward},
{"BACKWARD" ,S_KEY ,m_scrn,KB_X,KB_Y+2*8,{&key_down},&mousebbackward},
{"TURN LEFT" ,S_KEY ,m_scrn,KB_X,KB_Y+3*8,{&key_left}},
{"TURN RIGHT" ,S_KEY ,m_scrn,KB_X,KB_Y+4*8,{&key_right}},
{"TURN LEFT" ,S_KEY ,m_scrn,KB_X,KB_Y+3*8,{&key_left},&mousebturnleft},
{"TURN RIGHT" ,S_KEY ,m_scrn,KB_X,KB_Y+4*8,{&key_right},&mousebturnright},
{"RUN" ,S_KEY ,m_scrn,KB_X,KB_Y+5*8,{&key_speed},0,&joybspeed},
{"STRAFE LEFT" ,S_KEY ,m_scrn,KB_X,KB_Y+6*8,{&key_strafeleft},0,&joybstrafeleft},
{"STRAFE RIGHT",S_KEY ,m_scrn,KB_X,KB_Y+7*8,{&key_straferight},0,&joybstraferight},
Expand Down Expand Up @@ -4415,8 +4415,8 @@ setup_menu_t helpstrings[] = // HELP screen strings
{"MOVEMENT" ,S_SKIP|S_TITLE,m_null,KT_X3,KT_Y3},
{"FORWARD" ,S_SKIP|S_KEY,m_null,KT_X3,KT_Y3+ 1*8,{&key_up},&mousebforward},
{"BACKWARD" ,S_SKIP|S_KEY,m_null,KT_X3,KT_Y3+ 2*8,{&key_down},&mousebbackward},
{"TURN LEFT" ,S_SKIP|S_KEY,m_null,KT_X3,KT_Y3+ 3*8,{&key_left}},
{"TURN RIGHT" ,S_SKIP|S_KEY,m_null,KT_X3,KT_Y3+ 4*8,{&key_right}},
{"TURN LEFT" ,S_SKIP|S_KEY,m_null,KT_X3,KT_Y3+ 3*8,{&key_left},&mousebturnleft},
{"TURN RIGHT" ,S_SKIP|S_KEY,m_null,KT_X3,KT_Y3+ 4*8,{&key_right},&mousebturnright},
{"RUN" ,S_SKIP|S_KEY,m_null,KT_X3,KT_Y3+ 5*8,{&key_speed},0,&joybspeed},
{"STRAFE LEFT" ,S_SKIP|S_KEY,m_null,KT_X3,KT_Y3+ 6*8,{&key_strafeleft},0,&joybstrafeleft},
{"STRAFE RIGHT",S_SKIP|S_KEY,m_null,KT_X3,KT_Y3+ 7*8,{&key_straferight},0,&joybstraferight},
Expand Down
4 changes: 4 additions & 0 deletions prboom2/src/m_misc.c
Expand Up @@ -581,6 +581,10 @@ default_t defaults[] =
def_int,ss_keys}, // mouse button number to use for forward motion
{"mouseb_backward",{&mousebbackward},{-1},-1,MAX_MOUSEB,
def_int,ss_keys}, // mouse button number to use for backward motion
{"mouseb_turnright",{&mousebturnright},{-1},-1,MAX_MOUSEB,
def_int,ss_keys}, // mouse button number to use for turning right
{"mouseb_turnleft",{&mousebturnleft},{-1},-1,MAX_MOUSEB,
def_int,ss_keys}, // mouse button number to use for turning left
{"mouseb_use", {&mousebuse},{-1},-1,MAX_MOUSEB,
def_int,ss_keys}, // mouse button number to use for using doors/switches
//jff 3/8/98 end of lower range change for -1 allowed in mouse binding
Expand Down

0 comments on commit 07925d6

Please sign in to comment.