]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/campaign.qc
Make sure g_campaign is always reset to 0 on disconnection (without relying on the...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / campaign.qc
index 76e2cdeb8480069230118925719d77d9e105ae5b..5c26da9ed4c7e558c865a93d61368be3c3689723 100644 (file)
@@ -98,11 +98,7 @@ void CampaignPreInit()
                return;
        }
 
-       baseskill = autocvar_g_campaign_skill;
-       baseskill = baseskill + campaign_botskill[0];
-       if(baseskill < 0)
-               baseskill = 0;
-
+       baseskill = max(0, autocvar_g_campaign_skill + campaign_botskill[0]);
        campaign_forcewin = false;
 
        cvar_set("sv_public", "0");
@@ -133,6 +129,9 @@ void CampaignPreInit()
        cvar_set("skill", ftos(baseskill));
        cvar_set("bot_number", ftos(campaign_bots[0]));
 #else
+       // since g_campaign is already set to 1 by the menu when starting a campaign level, we first need
+       // to set it back to 0 before settemping it to 1 so it'll be correctly restored to 0 on disconnection
+       cvar_set("g_campaign", "0");
        cvar_settemp("g_campaign", "1");
        cvar_settemp("g_dm", "0");
        cvar_settemp("skill", ftos(baseskill));