mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-12-13 22:31:03 +00:00
Make pause key bring up the menu if it's a joy button
* Add "Pause" entry to multiplayer control panel to give joy users a way to pause in netgames
This commit is contained in:
parent
39a8a15e6d
commit
e3793f12c7
1 changed files with 30 additions and 1 deletions
31
src/m_menu.c
31
src/m_menu.c
|
@ -225,6 +225,7 @@ static void M_SelectableClearMenus(INT32 choice);
|
||||||
static void M_Retry(INT32 choice);
|
static void M_Retry(INT32 choice);
|
||||||
static void M_EndGame(INT32 choice);
|
static void M_EndGame(INT32 choice);
|
||||||
static void M_MapChange(INT32 choice);
|
static void M_MapChange(INT32 choice);
|
||||||
|
static void M_Pause(INT32 choice);
|
||||||
static void M_ChangeLevel(INT32 choice);
|
static void M_ChangeLevel(INT32 choice);
|
||||||
static void M_ConfirmSpectate(INT32 choice);
|
static void M_ConfirmSpectate(INT32 choice);
|
||||||
static void M_ConfirmEnterGame(INT32 choice);
|
static void M_ConfirmEnterGame(INT32 choice);
|
||||||
|
@ -480,6 +481,8 @@ typedef enum
|
||||||
// ---------------------
|
// ---------------------
|
||||||
static menuitem_t MPauseMenu[] =
|
static menuitem_t MPauseMenu[] =
|
||||||
{
|
{
|
||||||
|
{IT_STRING | IT_CALL, NULL, "Pause", M_Pause, 0},
|
||||||
|
|
||||||
{IT_STRING | IT_SUBMENU, NULL, "Scramble Teams...", &MISC_ScrambleTeamDef, 16},
|
{IT_STRING | IT_SUBMENU, NULL, "Scramble Teams...", &MISC_ScrambleTeamDef, 16},
|
||||||
{IT_STRING | IT_CALL, NULL, "Switch Map..." , M_MapChange, 24},
|
{IT_STRING | IT_CALL, NULL, "Switch Map..." , M_MapChange, 24},
|
||||||
|
|
||||||
|
@ -499,7 +502,8 @@ static menuitem_t MPauseMenu[] =
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
mpause_scramble = 0,
|
mpause_pause = 0,
|
||||||
|
mpause_scramble,
|
||||||
mpause_switchmap,
|
mpause_switchmap,
|
||||||
|
|
||||||
mpause_continue,
|
mpause_continue,
|
||||||
|
@ -2098,6 +2102,11 @@ boolean M_Responder(event_t *ev)
|
||||||
{
|
{
|
||||||
ch = ev->data1;
|
ch = ev->data1;
|
||||||
|
|
||||||
|
// Pause by joystick means you bring up the menu
|
||||||
|
if (ch >= KEY_JOY1 && ch < KEY_JOY1 + JOYBUTTONS + JOYHATS*4 &&
|
||||||
|
(ch == gamecontrol[gc_pause][0] || ch == gamecontrol[gc_pause][1]))
|
||||||
|
ch = KEY_ESCAPE;
|
||||||
|
|
||||||
// added 5-2-98 remap virtual keys (mouse & joystick buttons)
|
// added 5-2-98 remap virtual keys (mouse & joystick buttons)
|
||||||
switch (ch)
|
switch (ch)
|
||||||
{
|
{
|
||||||
|
@ -2212,6 +2221,11 @@ boolean M_Responder(event_t *ev)
|
||||||
// F-Keys
|
// F-Keys
|
||||||
if (!menuactive)
|
if (!menuactive)
|
||||||
{
|
{
|
||||||
|
// Pause by joystick means you bring up the menu
|
||||||
|
if (ch >= KEY_JOY1 && ch < KEY_JOY1 + JOYBUTTONS + JOYHATS*4 &&
|
||||||
|
(ch == gamecontrol[gc_pause][0] || ch == gamecontrol[gc_pause][1]))
|
||||||
|
ch = KEY_ESCAPE;
|
||||||
|
|
||||||
noFurtherInput = true;
|
noFurtherInput = true;
|
||||||
switch (ch)
|
switch (ch)
|
||||||
{
|
{
|
||||||
|
@ -2599,6 +2613,7 @@ void M_StartControlPanel(void)
|
||||||
}
|
}
|
||||||
else // multiplayer
|
else // multiplayer
|
||||||
{
|
{
|
||||||
|
MPauseMenu[mpause_pause].status = IT_DISABLED;
|
||||||
MPauseMenu[mpause_switchmap].status = IT_DISABLED;
|
MPauseMenu[mpause_switchmap].status = IT_DISABLED;
|
||||||
MPauseMenu[mpause_scramble].status = IT_DISABLED;
|
MPauseMenu[mpause_scramble].status = IT_DISABLED;
|
||||||
MPauseMenu[mpause_psetupsplit].status = IT_DISABLED;
|
MPauseMenu[mpause_psetupsplit].status = IT_DISABLED;
|
||||||
|
@ -2611,8 +2626,15 @@ void M_StartControlPanel(void)
|
||||||
if ((server || adminplayer == consoleplayer))
|
if ((server || adminplayer == consoleplayer))
|
||||||
{
|
{
|
||||||
MPauseMenu[mpause_switchmap].status = IT_STRING | IT_CALL;
|
MPauseMenu[mpause_switchmap].status = IT_STRING | IT_CALL;
|
||||||
|
if (!splitscreen)
|
||||||
|
MPauseMenu[mpause_pause].status = IT_STRING | IT_CALL; // server admin only
|
||||||
if (G_GametypeHasTeams())
|
if (G_GametypeHasTeams())
|
||||||
|
{
|
||||||
MPauseMenu[mpause_scramble].status = IT_STRING | IT_SUBMENU;
|
MPauseMenu[mpause_scramble].status = IT_STRING | IT_SUBMENU;
|
||||||
|
MPauseMenu[mpause_pause].alphaKey = MPauseMenu[mpause_scramble].alphaKey - 16; // adjust y
|
||||||
|
}
|
||||||
|
else
|
||||||
|
MPauseMenu[mpause_pause].alphaKey = MPauseMenu[mpause_switchmap].alphaKey - 16; // adjust y
|
||||||
}
|
}
|
||||||
|
|
||||||
if (splitscreen)
|
if (splitscreen)
|
||||||
|
@ -6272,6 +6294,13 @@ static void M_MapChange(INT32 choice)
|
||||||
M_SetupNextMenu(&MISC_ChangeLevelDef);
|
M_SetupNextMenu(&MISC_ChangeLevelDef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void M_Pause(INT32 choice)
|
||||||
|
{
|
||||||
|
(void)choice;
|
||||||
|
|
||||||
|
COM_ImmedExecute("pause");
|
||||||
|
}
|
||||||
|
|
||||||
static void M_StartSplitServerMenu(INT32 choice)
|
static void M_StartSplitServerMenu(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
|
|
Loading…
Reference in a new issue