Add confirmation to reset controls

This commit is contained in:
TehRealSalt 2018-11-26 03:12:22 -05:00
parent 92d5a6b8fb
commit ba28f1c65f

View file

@ -1097,8 +1097,8 @@ static menuitem_t OP_ControlsMenu[] =
static menuitem_t OP_AllControlsMenu[] = static menuitem_t OP_AllControlsMenu[] =
{ {
{IT_CALL|IT_STRING, NULL, "Reset to defaults", M_ResetControls, 0}, {IT_SUBMENU|IT_STRING, NULL, "Gamepad Options...", &OP_Joystick1Def, 0},
{IT_SUBMENU|IT_STRING, NULL, "Gamepad Options...", &OP_Joystick1Def, 8}, {IT_CALL|IT_STRING, NULL, "Reset to defaults", M_ResetControls, 8},
//{IT_SPACE, NULL, NULL, NULL, 0}, //{IT_SPACE, NULL, NULL, NULL, 0},
{IT_HEADER, NULL, "Gameplay Controls", NULL, 0}, {IT_HEADER, NULL, "Gameplay Controls", NULL, 0},
{IT_SPACE, NULL, NULL, NULL, 0}, {IT_SPACE, NULL, NULL, NULL, 0},
@ -8600,7 +8600,7 @@ static void M_Setup1PControlsMenu(INT32 choice)
currentMenu->lastOn = itemOn; currentMenu->lastOn = itemOn;
// Set proper gamepad options // Set proper gamepad options
OP_AllControlsMenu[1].itemaction = &OP_Joystick1Def; OP_AllControlsMenu[0].itemaction = &OP_Joystick1Def;
// Unhide P1-only controls // Unhide P1-only controls
OP_AllControlsMenu[15].status = IT_CONTROL; // Chat OP_AllControlsMenu[15].status = IT_CONTROL; // Chat
@ -8632,7 +8632,7 @@ static void M_Setup2PControlsMenu(INT32 choice)
currentMenu->lastOn = itemOn; currentMenu->lastOn = itemOn;
// Set proper gamepad options // Set proper gamepad options
OP_AllControlsMenu[1].itemaction = &OP_Joystick2Def; OP_AllControlsMenu[0].itemaction = &OP_Joystick2Def;
// Hide P1-only controls // Hide P1-only controls
OP_AllControlsMenu[15].status = IT_GRAYEDOUT2; // Chat OP_AllControlsMenu[15].status = IT_GRAYEDOUT2; // Chat
@ -8664,7 +8664,7 @@ static void M_Setup3PControlsMenu(INT32 choice)
currentMenu->lastOn = itemOn; currentMenu->lastOn = itemOn;
// Set proper gamepad options // Set proper gamepad options
OP_AllControlsMenu[1].itemaction = &OP_Joystick3Def; OP_AllControlsMenu[0].itemaction = &OP_Joystick3Def;
// Hide P1-only controls // Hide P1-only controls
OP_AllControlsMenu[15].status = IT_GRAYEDOUT2; // Chat OP_AllControlsMenu[15].status = IT_GRAYEDOUT2; // Chat
@ -8696,7 +8696,7 @@ static void M_Setup4PControlsMenu(INT32 choice)
currentMenu->lastOn = itemOn; currentMenu->lastOn = itemOn;
// Set proper gamepad options // Set proper gamepad options
OP_AllControlsMenu[1].itemaction = &OP_Joystick4Def; OP_AllControlsMenu[0].itemaction = &OP_Joystick4Def;
// Hide P1-only controls // Hide P1-only controls
OP_AllControlsMenu[15].status = IT_GRAYEDOUT2; // Chat OP_AllControlsMenu[15].status = IT_GRAYEDOUT2; // Chat
@ -8777,10 +8777,8 @@ static void M_DrawControl(void)
M_DrawMenuTitle(); M_DrawMenuTitle();
M_CentreText(28, M_CentreText(28,
(setupcontrolplayer == 4 ? "\x86""Set controls for ""\x82""Player 4" : (setupcontrolplayer > 1 ? va("\x86""Set controls for ""\x82""Player %d", setupcontrolplayer) :
(setupcontrolplayer == 3 ? "\x86""Set controls for ""\x82""Player 3" : "\x86""Press ""\x82""ENTER""\x86"" to change, ""\x82""BACKSPACE""\x86"" to clear"));
(setupcontrolplayer == 2 ? "\x86""Set controls for ""\x82""Player 2" :
"\x86""Press ""\x82""ENTER""\x86"" to change, ""\x82""BACKSPACE""\x86"" to clear"))));
if (i) if (i)
V_DrawCharacter(currentMenu->x - 16, y-(skullAnimCounter/5), V_DrawCharacter(currentMenu->x - 16, y-(skullAnimCounter/5),
@ -8928,10 +8926,12 @@ static void M_ChangeControl(INT32 choice)
M_StartMessage(tmp, M_ChangecontrolResponse, MM_EVENTHANDLER); M_StartMessage(tmp, M_ChangecontrolResponse, MM_EVENTHANDLER);
} }
static void M_ResetControls(INT32 choice) static void M_ResetControlsResponse(INT32 ch)
{ {
INT32 i; INT32 i;
(void)choice;
if (ch != 'y' && ch != KEY_ENTER)
return;
// clear all controls // clear all controls
for (i = 0; i < num_gamecontrols; i++) for (i = 0; i < num_gamecontrols; i++)
@ -9006,6 +9006,12 @@ static void M_ResetControls(INT32 choice)
S_StartSound(NULL, sfx_s224); S_StartSound(NULL, sfx_s224);
} }
static void M_ResetControls(INT32 choice)
{
(void)choice;
M_StartMessage(va(M_GetText("Reset Player %d's controls to defaults?\n\n(Press 'Y' to confirm)\n"), setupcontrolplayer), M_ResetControlsResponse, MM_YESNO);
}
// ===== // =====
// SOUND // SOUND
// ===== // =====