Add jump & spin joystick axis

Lets you set jump/spin to Xbox controller triggers, like you can with
fire/nfire
This commit is contained in:
TehRealSalt 2017-09-17 22:30:48 -04:00
parent 5cc8734da7
commit ce0a49ede5
4 changed files with 44 additions and 11 deletions

View File

@ -724,6 +724,10 @@ void D_RegisterClientCommands(void)
CV_RegisterVar(&cv_moveaxis2);
CV_RegisterVar(&cv_lookaxis);
CV_RegisterVar(&cv_lookaxis2);
CV_RegisterVar(&cv_jumpaxis);
CV_RegisterVar(&cv_jumpaxis2);
CV_RegisterVar(&cv_spinaxis);
CV_RegisterVar(&cv_spinaxis2);
CV_RegisterVar(&cv_fireaxis);
CV_RegisterVar(&cv_fireaxis2);
CV_RegisterVar(&cv_firenaxis);

View File

@ -376,6 +376,8 @@ typedef enum
AXISLOOK,
AXISSTRAFE,
AXISDEAD, //Axises that don't want deadzones
AXISJUMP,
AXISSPIN,
AXISFIRE,
AXISFIRENORMAL,
} axis_input_e;
@ -415,6 +417,10 @@ consvar_t cv_fireaxis = {"joyaxis_fire", "None", CV_SAVE, joyaxis_cons_t, NULL,
consvar_t cv_firenaxis = {"joyaxis_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
#endif
// Yeeeah I don't think I'm gonna sort out this giant if else end chain to add defaults to these :V
consvar_t cv_jumpaxis = {"joyaxis_jump", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_spinaxis = {"joyaxis_spin", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
#if defined (_WII) || defined (WMINPUT)
consvar_t cv_turnaxis2 = {"joyaxis2_turn", "LStick.X", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_moveaxis2 = {"joyaxis2_move", "LStick.Y", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
@ -442,6 +448,9 @@ consvar_t cv_fireaxis2 = {"joyaxis2_fire", "None", CV_SAVE, joyaxis_cons_t, NULL
consvar_t cv_firenaxis2 = {"joyaxis2_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
#endif
// :rolling_eyes:
consvar_t cv_jumpaxis2 = {"joyaxis2_jump", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_spinaxis2 = {"joyaxis2_spin", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
#if MAXPLAYERS > 32
#error "please update player_name table using the new value for MAXPLAYERS"
@ -804,6 +813,12 @@ static INT32 JoyAxis(axis_input_e axissel)
case AXISSTRAFE:
axisval = cv_sideaxis.value;
break;
case AXISJUMP:
axisval = cv_jumpaxis.value;
break;
case AXISSPIN:
axisval = cv_spinaxis.value;
break;
case AXISFIRE:
axisval = cv_fireaxis.value;
break;
@ -881,6 +896,12 @@ static INT32 Joy2Axis(axis_input_e axissel)
case AXISSTRAFE:
axisval = cv_sideaxis2.value;
break;
case AXISJUMP:
axisval = cv_jumpaxis2.value;
break;
case AXISSPIN:
axisval = cv_spinaxis2.value;
break;
case AXISFIRE:
axisval = cv_fireaxis2.value;
break;
@ -1123,7 +1144,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics)
cmd->buttons |= BT_CUSTOM3;
// use with any button/key
if (PLAYER1INPUTDOWN(gc_use))
axis = JoyAxis(AXISSPIN);
if (PLAYER1INPUTDOWN(gc_use) || (cv_usejoystick.value && axis > 0))
cmd->buttons |= BT_USE;
if (PLAYER1INPUTDOWN(gc_camreset))
@ -1136,7 +1158,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics)
resetdown = false;
// jump button
if (PLAYER1INPUTDOWN(gc_jump))
axis = JoyAxis(AXISJUMP);
if (PLAYER1INPUTDOWN(gc_jump) || (cv_usejoystick.value && axis > 0))
cmd->buttons |= BT_JUMP;
// player aiming shit, ahhhh...
@ -1418,7 +1441,8 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
cmd->buttons |= BT_CUSTOM3;
// use with any button/key
if (PLAYER2INPUTDOWN(gc_use))
axis = Joy2Axis(AXISSPIN);
if (PLAYER2INPUTDOWN(gc_use) || (cv_usejoystick2.value && axis > 0))
cmd->buttons |= BT_USE;
if (PLAYER2INPUTDOWN(gc_camreset))
@ -1431,7 +1455,8 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
resetdown = false;
// jump button
if (PLAYER2INPUTDOWN(gc_jump))
axis = Joy2Axis(AXISJUMP);
if (PLAYER2INPUTDOWN(gc_jump) || (cv_usejoystick2.value && axis > 0))
cmd->buttons |= BT_JUMP;
// player aiming shit, ahhhh...

View File

@ -59,8 +59,8 @@ extern consvar_t cv_invertmouse, cv_alwaysfreelook, cv_mousemove;
extern consvar_t cv_invertmouse2, cv_alwaysfreelook2, cv_mousemove2;
extern consvar_t cv_useranalog, cv_useranalog2;
extern consvar_t cv_analog, cv_analog2;
extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_fireaxis,cv_firenaxis;
extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_fireaxis2,cv_firenaxis2;
extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_jumpaxis,cv_spinaxis,cv_fireaxis,cv_firenaxis;
extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_jumpaxis2,cv_spinaxis2,cv_fireaxis2,cv_firenaxis2;
extern consvar_t cv_ghost_bestscore, cv_ghost_besttime, cv_ghost_bestrings, cv_ghost_last, cv_ghost_guest;
// mouseaiming (looking up/down with the mouse or keyboard)

View File

@ -1130,13 +1130,15 @@ static menuitem_t OP_ChangeControlsMenu[] =
static menuitem_t OP_Joystick1Menu[] =
{
{IT_STRING | IT_CALL, NULL, "Select Joystick...", M_Setup1PJoystickMenu, 10},
{IT_STRING | IT_CALL, NULL, "Select Joystick...", M_Setup1PJoystickMenu, 10},
{IT_STRING | IT_CVAR, NULL, "Move \x17 Axis" , &cv_moveaxis , 30},
{IT_STRING | IT_CVAR, NULL, "Move \x18 Axis" , &cv_sideaxis , 40},
{IT_STRING | IT_CVAR, NULL, "Camera \x17 Axis" , &cv_lookaxis , 50},
{IT_STRING | IT_CVAR, NULL, "Camera \x18 Axis" , &cv_turnaxis , 60},
{IT_STRING | IT_CVAR, NULL, "Fire Axis" , &cv_fireaxis , 70},
{IT_STRING | IT_CVAR, NULL, "Fire Normal Axis" , &cv_firenaxis , 80},
{IT_STRING | IT_CVAR, NULL, "Jump Axis" , &cv_jumpaxis , 70},
{IT_STRING | IT_CVAR, NULL, "Spin Axis" , &cv_spinaxis , 80},
{IT_STRING | IT_CVAR, NULL, "Fire Axis" , &cv_fireaxis , 90},
{IT_STRING | IT_CVAR, NULL, "Fire Normal Axis" , &cv_firenaxis ,100},
};
static menuitem_t OP_Joystick2Menu[] =
@ -1146,8 +1148,10 @@ static menuitem_t OP_Joystick2Menu[] =
{IT_STRING | IT_CVAR, NULL, "Move \x18 Axis" , &cv_sideaxis2 , 40},
{IT_STRING | IT_CVAR, NULL, "Camera \x17 Axis" , &cv_lookaxis2 , 50},
{IT_STRING | IT_CVAR, NULL, "Camera \x18 Axis" , &cv_turnaxis2 , 60},
{IT_STRING | IT_CVAR, NULL, "Fire Axis" , &cv_fireaxis2 , 70},
{IT_STRING | IT_CVAR, NULL, "Fire Normal Axis" , &cv_firenaxis2 , 80},
{IT_STRING | IT_CVAR, NULL, "Jump Axis" , &cv_jumpaxis2 , 70},
{IT_STRING | IT_CVAR, NULL, "Spin Axis" , &cv_spinaxis2 , 80},
{IT_STRING | IT_CVAR, NULL, "Fire Axis" , &cv_fireaxis2 , 90},
{IT_STRING | IT_CVAR, NULL, "Fire Normal Axis" , &cv_firenaxis2 ,100},
};
static menuitem_t OP_JoystickSetMenu[] =