From 0a10396c8481cb1f50b04deae7a6ac2d33aa9d22 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Tue, 9 Mar 2021 17:28:20 -0500 Subject: [PATCH] Spindash shortcut button --- src/g_game.c | 6 +++ src/g_game.h | 1 + src/g_input.c | 6 +-- src/g_input.h | 7 +-- src/m_menu.c | 129 +++++++++++++++++++++++++------------------------- 5 files changed, 79 insertions(+), 70 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index c018ef746..62cfed320 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1041,6 +1041,12 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer) if (PlayerInputDown(ssplayer, gc_drift) || (usejoystick && axis > 0)) cmd->buttons |= BT_DRIFT; + // Spindash with any button/key + // Simply holds all of the inputs for you. + axis = PlayerJoyAxis(ssplayer, AXISSPINDASH); + if (PlayerInputDown(ssplayer, gc_spindash) || (usejoystick && axis > 0)) + cmd->buttons |= (BT_ACCELERATE|BT_BRAKE|BT_DRIFT); + // rear view with any button/key axis = PlayerJoyAxis(ssplayer, AXISLOOKBACK); if (PlayerInputDown(ssplayer, gc_lookback) || (usejoystick && axis > 0)) diff --git a/src/g_game.h b/src/g_game.h index 28321adc5..7f461f583 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -109,6 +109,7 @@ typedef enum AXISFIRE = AXISDIGITAL, AXISDRIFT, + AXISSPINDASH, AXISLOOKBACK, AXISAIM, } axis_input_e; diff --git a/src/g_input.c b/src/g_input.c index 0e10ae8a9..a85219a7e 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -52,11 +52,11 @@ const INT32 gcl_brake[num_gcl_brake] = { gc_brake }; const INT32 gcl_drift[num_gcl_drift] = { gc_drift }; const INT32 gcl_spindash[num_gcl_spindash] = { - gc_accelerate, gc_drift, gc_brake + gc_accelerate, gc_drift, gc_brake, gc_spindash }; const INT32 gcl_movement[num_gcl_movement] = { - gc_accelerate, gc_drift, gc_brake, gc_turnleft, gc_turnright + gc_accelerate, gc_drift, gc_brake, gc_spindash, gc_turnleft, gc_turnright }; const INT32 gcl_item[num_gcl_item] = { @@ -64,7 +64,7 @@ const INT32 gcl_item[num_gcl_item] = { }; const INT32 gcl_full[num_gcl_full] = { - gc_accelerate, gc_drift, gc_brake, gc_turnleft, gc_turnright, + gc_accelerate, gc_drift, gc_brake, gc_spindash, gc_turnleft, gc_turnright, gc_fire, gc_aimforward, gc_aimbackward, gc_lookback }; diff --git a/src/g_input.h b/src/g_input.h index 651f95324..57941d6c1 100644 --- a/src/g_input.h +++ b/src/g_input.h @@ -78,6 +78,7 @@ typedef enum gc_accelerate, gc_drift, gc_brake, + gc_spindash, gc_fire, gc_lookback, gc_camreset, @@ -129,10 +130,10 @@ extern INT32 gamecontroldefault[MAXSPLITSCREENPLAYERS][num_gamecontrolschemes][n #define num_gcl_accelerate 1 #define num_gcl_brake 1 #define num_gcl_drift 1 -#define num_gcl_spindash 3 -#define num_gcl_movement 5 +#define num_gcl_spindash 4 +#define num_gcl_movement 6 #define num_gcl_item 3 -#define num_gcl_full 9 +#define num_gcl_full 10 extern const INT32 gcl_accelerate[num_gcl_accelerate]; extern const INT32 gcl_brake[num_gcl_brake]; diff --git a/src/m_menu.c b/src/m_menu.c index 1a3c54738..b020f1555 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -1142,6 +1142,7 @@ static menuitem_t OP_AllControlsMenu[] = {IT_CONTROL, NULL, "Turn Right", M_ChangeControl, gc_turnright }, {IT_CONTROL, NULL, "Drift", M_ChangeControl, gc_drift }, {IT_CONTROL, NULL, "Brake", M_ChangeControl, gc_brake }, + {IT_CONTROL, NULL, "Spindash", M_ChangeControl, gc_spindash }, {IT_CONTROL, NULL, "Use/Throw Item", M_ChangeControl, gc_fire }, {IT_CONTROL, NULL, "Aim Forward", M_ChangeControl, gc_aimforward }, {IT_CONTROL, NULL, "Aim Backward", M_ChangeControl, gc_aimbackward}, @@ -10403,22 +10404,22 @@ static void M_Setup1PControlsMenu(INT32 choice) OP_AllControlsMenu[0].itemaction = &OP_Joystick1Def; // Unhide P1-only controls - OP_AllControlsMenu[15].status = IT_CONTROL; // Chat - //OP_AllControlsMenu[16].status = IT_CONTROL; // Team-chat - OP_AllControlsMenu[16].status = IT_CONTROL; // Rankings - //OP_AllControlsMenu[17].status = IT_CONTROL; // Viewpoint - // 18 is Reset Camera, 19 is Toggle Chasecam - OP_AllControlsMenu[20].status = IT_CONTROL; // Pause - OP_AllControlsMenu[21].status = IT_CONTROL; // Screenshot - OP_AllControlsMenu[22].status = IT_CONTROL; // GIF - OP_AllControlsMenu[23].status = IT_CONTROL; // System Menu - OP_AllControlsMenu[24].status = IT_CONTROL; // Console - /*OP_AllControlsMenu[25].status = IT_HEADER; // Spectator Controls header - OP_AllControlsMenu[26].status = IT_SPACE; // Spectator Controls space - OP_AllControlsMenu[27].status = IT_CONTROL; // Spectate - OP_AllControlsMenu[28].status = IT_CONTROL; // Look Up - OP_AllControlsMenu[29].status = IT_CONTROL; // Look Down - OP_AllControlsMenu[30].status = IT_CONTROL; // Center View + OP_AllControlsMenu[16].status = IT_CONTROL; // Chat + //OP_AllControlsMenu[17].status = IT_CONTROL; // Team-chat + OP_AllControlsMenu[17].status = IT_CONTROL; // Rankings + //OP_AllControlsMenu[18].status = IT_CONTROL; // Viewpoint + // 19 is Reset Camera, 20 is Toggle Chasecam + OP_AllControlsMenu[21].status = IT_CONTROL; // Pause + OP_AllControlsMenu[22].status = IT_CONTROL; // Screenshot + OP_AllControlsMenu[23].status = IT_CONTROL; // GIF + OP_AllControlsMenu[24].status = IT_CONTROL; // System Menu + OP_AllControlsMenu[25].status = IT_CONTROL; // Console + /*OP_AllControlsMenu[26].status = IT_HEADER; // Spectator Controls header + OP_AllControlsMenu[27].status = IT_SPACE; // Spectator Controls space + OP_AllControlsMenu[28].status = IT_CONTROL; // Spectate + OP_AllControlsMenu[29].status = IT_CONTROL; // Look Up + OP_AllControlsMenu[30].status = IT_CONTROL; // Look Down + OP_AllControlsMenu[31].status = IT_CONTROL; // Center View */ M_SetupNextMenu(&OP_AllControlsDef); @@ -10435,22 +10436,22 @@ static void M_Setup2PControlsMenu(INT32 choice) OP_AllControlsMenu[0].itemaction = &OP_Joystick2Def; // Hide P1-only controls - OP_AllControlsMenu[15].status = IT_GRAYEDOUT2; // Chat - //OP_AllControlsMenu[16].status = IT_GRAYEDOUT2; // Team-chat - OP_AllControlsMenu[16].status = IT_GRAYEDOUT2; // Rankings - //OP_AllControlsMenu[17].status = IT_GRAYEDOUT2; // Viewpoint - // 18 is Reset Camera, 19 is Toggle Chasecam - OP_AllControlsMenu[20].status = IT_GRAYEDOUT2; // Pause - OP_AllControlsMenu[21].status = IT_GRAYEDOUT2; // Screenshot - OP_AllControlsMenu[22].status = IT_GRAYEDOUT2; // GIF - OP_AllControlsMenu[23].status = IT_GRAYEDOUT2; // System Menu - OP_AllControlsMenu[24].status = IT_GRAYEDOUT2; // Console - /*OP_AllControlsMenu[25].status = IT_GRAYEDOUT2; // Spectator Controls header - OP_AllControlsMenu[26].status = IT_GRAYEDOUT2; // Spectator Controls space - OP_AllControlsMenu[27].status = IT_GRAYEDOUT2; // Spectate - OP_AllControlsMenu[28].status = IT_GRAYEDOUT2; // Look Up - OP_AllControlsMenu[29].status = IT_GRAYEDOUT2; // Look Down - OP_AllControlsMenu[30].status = IT_GRAYEDOUT2; // Center View + OP_AllControlsMenu[16].status = IT_GRAYEDOUT2; // Chat + //OP_AllControlsMenu[17].status = IT_GRAYEDOUT2; // Team-chat + OP_AllControlsMenu[17].status = IT_GRAYEDOUT2; // Rankings + //OP_AllControlsMenu[18].status = IT_GRAYEDOUT2; // Viewpoint + // 19 is Reset Camera, 20 is Toggle Chasecam + OP_AllControlsMenu[21].status = IT_GRAYEDOUT2; // Pause + OP_AllControlsMenu[22].status = IT_GRAYEDOUT2; // Screenshot + OP_AllControlsMenu[23].status = IT_GRAYEDOUT2; // GIF + OP_AllControlsMenu[24].status = IT_GRAYEDOUT2; // System Menu + OP_AllControlsMenu[25].status = IT_GRAYEDOUT2; // Console + /*OP_AllControlsMenu[26].status = IT_GRAYEDOUT2; // Spectator Controls header + OP_AllControlsMenu[27].status = IT_GRAYEDOUT2; // Spectator Controls space + OP_AllControlsMenu[28].status = IT_GRAYEDOUT2; // Spectate + OP_AllControlsMenu[29].status = IT_GRAYEDOUT2; // Look Up + OP_AllControlsMenu[30].status = IT_GRAYEDOUT2; // Look Down + OP_AllControlsMenu[31].status = IT_GRAYEDOUT2; // Center View */ M_SetupNextMenu(&OP_AllControlsDef); @@ -10467,22 +10468,22 @@ static void M_Setup3PControlsMenu(INT32 choice) OP_AllControlsMenu[0].itemaction = &OP_Joystick3Def; // Hide P1-only controls - OP_AllControlsMenu[15].status = IT_GRAYEDOUT2; // Chat - //OP_AllControlsMenu[16].status = IT_GRAYEDOUT2; // Team-chat - OP_AllControlsMenu[16].status = IT_GRAYEDOUT2; // Rankings - //OP_AllControlsMenu[17].status = IT_GRAYEDOUT2; // Viewpoint - // 18 is Reset Camera, 19 is Toggle Chasecam - OP_AllControlsMenu[20].status = IT_GRAYEDOUT2; // Pause - OP_AllControlsMenu[21].status = IT_GRAYEDOUT2; // Screenshot - OP_AllControlsMenu[22].status = IT_GRAYEDOUT2; // GIF - OP_AllControlsMenu[23].status = IT_GRAYEDOUT2; // System Menu - OP_AllControlsMenu[24].status = IT_GRAYEDOUT2; // Console - /*OP_AllControlsMenu[25].status = IT_GRAYEDOUT2; // Spectator Controls header - OP_AllControlsMenu[26].status = IT_GRAYEDOUT2; // Spectator Controls space - OP_AllControlsMenu[27].status = IT_GRAYEDOUT2; // Spectate - OP_AllControlsMenu[28].status = IT_GRAYEDOUT2; // Look Up - OP_AllControlsMenu[29].status = IT_GRAYEDOUT2; // Look Down - OP_AllControlsMenu[30].status = IT_GRAYEDOUT2; // Center View + OP_AllControlsMenu[16].status = IT_GRAYEDOUT2; // Chat + //OP_AllControlsMenu[17].status = IT_GRAYEDOUT2; // Team-chat + OP_AllControlsMenu[17].status = IT_GRAYEDOUT2; // Rankings + //OP_AllControlsMenu[18].status = IT_GRAYEDOUT2; // Viewpoint + // 19 is Reset Camera, 20 is Toggle Chasecam + OP_AllControlsMenu[21].status = IT_GRAYEDOUT2; // Pause + OP_AllControlsMenu[22].status = IT_GRAYEDOUT2; // Screenshot + OP_AllControlsMenu[23].status = IT_GRAYEDOUT2; // GIF + OP_AllControlsMenu[24].status = IT_GRAYEDOUT2; // System Menu + OP_AllControlsMenu[25].status = IT_GRAYEDOUT2; // Console + /*OP_AllControlsMenu[26].status = IT_GRAYEDOUT2; // Spectator Controls header + OP_AllControlsMenu[27].status = IT_GRAYEDOUT2; // Spectator Controls space + OP_AllControlsMenu[28].status = IT_GRAYEDOUT2; // Spectate + OP_AllControlsMenu[29].status = IT_GRAYEDOUT2; // Look Up + OP_AllControlsMenu[30].status = IT_GRAYEDOUT2; // Look Down + OP_AllControlsMenu[31].status = IT_GRAYEDOUT2; // Center View */ M_SetupNextMenu(&OP_AllControlsDef); @@ -10499,22 +10500,22 @@ static void M_Setup4PControlsMenu(INT32 choice) OP_AllControlsMenu[0].itemaction = &OP_Joystick4Def; // Hide P1-only controls - OP_AllControlsMenu[15].status = IT_GRAYEDOUT2; // Chat - //OP_AllControlsMenu[16].status = IT_GRAYEDOUT2; // Team-chat - OP_AllControlsMenu[16].status = IT_GRAYEDOUT2; // Rankings - //OP_AllControlsMenu[17].status = IT_GRAYEDOUT2; // Viewpoint - // 18 is Reset Camera, 19 is Toggle Chasecam - OP_AllControlsMenu[20].status = IT_GRAYEDOUT2; // Pause - OP_AllControlsMenu[21].status = IT_GRAYEDOUT2; // Screenshot - OP_AllControlsMenu[22].status = IT_GRAYEDOUT2; // GIF - OP_AllControlsMenu[23].status = IT_GRAYEDOUT2; // System Menu - OP_AllControlsMenu[24].status = IT_GRAYEDOUT2; // Console - /*OP_AllControlsMenu[25].status = IT_GRAYEDOUT2; // Spectator Controls header - OP_AllControlsMenu[26].status = IT_GRAYEDOUT2; // Spectator Controls space - OP_AllControlsMenu[27].status = IT_GRAYEDOUT2; // Spectate - OP_AllControlsMenu[28].status = IT_GRAYEDOUT2; // Look Up - OP_AllControlsMenu[29].status = IT_GRAYEDOUT2; // Look Down - OP_AllControlsMenu[30].status = IT_GRAYEDOUT2; // Center View + OP_AllControlsMenu[16].status = IT_GRAYEDOUT2; // Chat + //OP_AllControlsMenu[17].status = IT_GRAYEDOUT2; // Team-chat + OP_AllControlsMenu[17].status = IT_GRAYEDOUT2; // Rankings + //OP_AllControlsMenu[18].status = IT_GRAYEDOUT2; // Viewpoint + // 19 is Reset Camera, 20 is Toggle Chasecam + OP_AllControlsMenu[21].status = IT_GRAYEDOUT2; // Pause + OP_AllControlsMenu[22].status = IT_GRAYEDOUT2; // Screenshot + OP_AllControlsMenu[23].status = IT_GRAYEDOUT2; // GIF + OP_AllControlsMenu[24].status = IT_GRAYEDOUT2; // System Menu + OP_AllControlsMenu[25].status = IT_GRAYEDOUT2; // Console + /*OP_AllControlsMenu[26].status = IT_GRAYEDOUT2; // Spectator Controls header + OP_AllControlsMenu[27].status = IT_GRAYEDOUT2; // Spectator Controls space + OP_AllControlsMenu[28].status = IT_GRAYEDOUT2; // Spectate + OP_AllControlsMenu[29].status = IT_GRAYEDOUT2; // Look Up + OP_AllControlsMenu[30].status = IT_GRAYEDOUT2; // Look Down + OP_AllControlsMenu[31].status = IT_GRAYEDOUT2; // Center View */ M_SetupNextMenu(&OP_AllControlsDef);