mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-12-13 06:10:50 +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_EndGame(INT32 choice);
|
||||
static void M_MapChange(INT32 choice);
|
||||
static void M_Pause(INT32 choice);
|
||||
static void M_ChangeLevel(INT32 choice);
|
||||
static void M_ConfirmSpectate(INT32 choice);
|
||||
static void M_ConfirmEnterGame(INT32 choice);
|
||||
|
@ -480,6 +481,8 @@ typedef enum
|
|||
// ---------------------
|
||||
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_CALL, NULL, "Switch Map..." , M_MapChange, 24},
|
||||
|
||||
|
@ -499,7 +502,8 @@ static menuitem_t MPauseMenu[] =
|
|||
|
||||
typedef enum
|
||||
{
|
||||
mpause_scramble = 0,
|
||||
mpause_pause = 0,
|
||||
mpause_scramble,
|
||||
mpause_switchmap,
|
||||
|
||||
mpause_continue,
|
||||
|
@ -2098,6 +2102,11 @@ boolean M_Responder(event_t *ev)
|
|||
{
|
||||
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)
|
||||
switch (ch)
|
||||
{
|
||||
|
@ -2212,6 +2221,11 @@ boolean M_Responder(event_t *ev)
|
|||
// F-Keys
|
||||
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;
|
||||
switch (ch)
|
||||
{
|
||||
|
@ -2599,6 +2613,7 @@ void M_StartControlPanel(void)
|
|||
}
|
||||
else // multiplayer
|
||||
{
|
||||
MPauseMenu[mpause_pause].status = IT_DISABLED;
|
||||
MPauseMenu[mpause_switchmap].status = IT_DISABLED;
|
||||
MPauseMenu[mpause_scramble].status = IT_DISABLED;
|
||||
MPauseMenu[mpause_psetupsplit].status = IT_DISABLED;
|
||||
|
@ -2611,8 +2626,15 @@ void M_StartControlPanel(void)
|
|||
if ((server || adminplayer == consoleplayer))
|
||||
{
|
||||
MPauseMenu[mpause_switchmap].status = IT_STRING | IT_CALL;
|
||||
if (!splitscreen)
|
||||
MPauseMenu[mpause_pause].status = IT_STRING | IT_CALL; // server admin only
|
||||
if (G_GametypeHasTeams())
|
||||
{
|
||||
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)
|
||||
|
@ -6272,6 +6294,13 @@ static void M_MapChange(INT32 choice)
|
|||
M_SetupNextMenu(&MISC_ChangeLevelDef);
|
||||
}
|
||||
|
||||
static void M_Pause(INT32 choice)
|
||||
{
|
||||
(void)choice;
|
||||
|
||||
COM_ImmedExecute("pause");
|
||||
}
|
||||
|
||||
static void M_StartSplitServerMenu(INT32 choice)
|
||||
{
|
||||
(void)choice;
|
||||
|
|
Loading…
Reference in a new issue