}
float autocvar_menu_force_on_disconnection;
+bool autocvar_g_campaign;
void m_draw(float width, float height)
{
if (autocvar_menu_force_on_disconnection > 0)
static float connected_time;
if (clientstate() == CS_DISCONNECTED)
{
+ if (autocvar_g_campaign)
+ {
+ // in the case player uses the disconnect command (in the console or with a key)
+ // reset g_campaign and update menu items to reflect cvar values that may have been restored after quiting the campaign
+ // see also QUITGAME_CMD
+ cvar_set("g_campaign", "0");
+ m_sync();
+ }
if (connected_time && time - connected_time > autocvar_menu_force_on_disconnection)
{
m_toggle(true);