diff --git a/src/d_net.cpp b/src/d_net.cpp index 0095d0f31..d1c353e89 100644 --- a/src/d_net.cpp +++ b/src/d_net.cpp @@ -159,8 +159,14 @@ CVAR(Bool, vid_lowerinbackground, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) CVAR(Bool, net_ticbalance, false, CVAR_SERVERINFO | CVAR_NOSAVE) // Currently deprecated, but may be brought back later. CVAR(Bool, net_extratic, false, CVAR_SERVERINFO | CVAR_NOSAVE) -CVAR(Bool, net_disablepause, false, CVAR_SERVERINFO | CVAR_NOSAVE) CVAR(Bool, net_repeatableactioncooldown, true, CVAR_SERVERINFO | CVAR_NOSAVE) +CUSTOM_CVAR(Int, net_disablepause, 0, CVAR_SERVERINFO | CVAR_NOSAVE) +{ + if (self < 0) + self = 0; + else if (self > 2) + self = 2; +} CUSTOM_CVAR(Int, net_cutscenereadytype, RT_VOTE, CVAR_SERVERINFO | CVAR_NOSAVE) { if (self < RT_VOTE) diff --git a/src/g_game.cpp b/src/g_game.cpp index 5dc05e8ce..d11a9af57 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -127,7 +127,7 @@ CVAR (Bool, cl_waitforsave, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG); CVAR (Bool, enablescriptscreenshot, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG); CVAR (Bool, cl_restartondeath, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG); EXTERN_CVAR (Float, con_midtime); -EXTERN_CVAR(Bool, net_disablepause) +EXTERN_CVAR(Int, net_disablepause) //========================================================================== // @@ -351,10 +351,18 @@ CCMD (land) CCMD (pause) { - if (netgame && !players[consoleplayer].settings_controller && net_disablepause) + if (netgame) { - Printf("Only settings controllers can currently (un)pause the game\n"); - return; + if (net_disablepause == 2 && (!paused || !players[consoleplayer].settings_controller)) + { + Printf("Pausing the game is currently disabled\n"); + return; + } + else if (net_disablepause == 1 && !players[consoleplayer].settings_controller) + { + Printf("Only settings controllers can currently (un)pause the game\n"); + return; + } } sendpause = true; diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index 4e7413357..7564b1262 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -2440,7 +2440,7 @@ OptionMenu NetworkOptions protected StaticText " " StaticText "$NETMNU_HOSTOPTIONS", 1 Option "$NETMNU_EXTRATICS", "net_extratic", "OnOff" - Option "$NETMNU_DISABLEPAUSE", "net_disablepause", "OnOff" + Option "$NETMNU_DISABLEPAUSE", "net_disablepause", "PauseTypes" Option "$NETMNU_READYTYPE", "net_cutscenereadytype", "ReadyTypes" Slider "$NETMNU_READYPERCENT", "net_cutscenereadypercent", "0", "1", "0.05", 2 NumberField "$NETMNU_READYCOUNTDOWN", "net_cutscenecountdown", 0, 300, 5 @@ -2448,6 +2448,13 @@ OptionMenu NetworkOptions protected } +OptionValue "PauseTypes" +{ + 0, "$OPTVAL_OFF" + 1, "$OPTVAL_HOSTONLY" + 2, "$OPTVAL_ON" +} + OptionValue "ReadyTypes" { 0, "$OPTVAL_VOTE"