]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/campaign.qc
Merge remote branch 'origin/samual/balancesamual'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / campaign.qc
index 8a01a23b2474d87319c3485bc61a018cce60753a..9a36546716d6dc644512e2536a1f449791be55c8 100644 (file)
@@ -64,13 +64,13 @@ void CampaignPreInit()
 {
        float baseskill;
        string title;
-       if(cvar("sv_cheats"))
+       if(autocvar_sv_cheats)
        {
                CampaignBailout("JOLLY CHEATS AHAHAHAHAHAHAH))");
                return;
        }
-       campaign_level = cvar("_campaign_index");
-       campaign_name = strzone(cvar_string("_campaign_name"));
+       campaign_level = autocvar__campaign_index;
+       campaign_name = strzone(autocvar__campaign_name);
        campaign_index_var = strzone(strcat("g_campaign", campaign_name, "_index"));
        CampaignFile_Load(campaign_level, 2);
        if(campaign_entries < 1)
@@ -79,7 +79,7 @@ void CampaignPreInit()
                return;
        }
 
-       baseskill = cvar("g_campaign_skill");
+       baseskill = autocvar_g_campaign_skill;
        baseskill = baseskill + campaign_botskill[0];
        if(baseskill < 0)
                baseskill = 0;
@@ -101,7 +101,7 @@ void CampaignPreInit()
 
        // copy sv_gravity cvar, as the engine needs it too (sorry, this will mess
        // with the menu a little still...)
-       cvar_set_normal("sv_gravity", cvar_string("sv_gravity"));
+       cvar_set_normal("sv_gravity", ftos(autocvar_sv_gravity));
 
        if(Campaign_Invalid())
                return;
@@ -119,9 +119,9 @@ void CampaignPostInit()
        if(Campaign_Invalid())
                return;
        cvar_set("fraglimit", ftos(campaign_fraglimit[0]));
-       cvar_set("timelimit", "0");
+       cvar_set("timelimit", ftos(campaign_timelimit[0]));
        cvar_set_normal("fraglimit", ftos(campaign_fraglimit[0]));
-       cvar_set_normal("timelimit", "0");
+       cvar_set_normal("timelimit", ftos(campaign_timelimit[0]));
 }
 
 void CampaignSaveCvar(string cvarname, float value)
@@ -188,8 +188,23 @@ void CampaignPreIntermission()
 
        if(won == 1 && lost == 0 && checkrules_equality == 0 && cheatcount_total == 0)
        {
-               campaign_won = 1;
-               bprint("The current level has been WON.\n");
+               if(autocvar_timelimit != 0 && autocvar_fraglimit != 0 && time > autocvar_timelimit * 60) // checks if the timelimit has expired.
+               {
+                       campaign_won = 0;
+                       bprint("Time's up! The current level has been LOST.\n");
+                       // sound!
+               }
+               else
+               {
+                       campaign_won = 1;
+                       bprint("The current level has been WON.\n");
+                       // sound!
+               }
+       }
+       else if(autocvar_timelimit != 0 && time > autocvar_timelimit * 60)
+       {
+               campaign_won = 0;
+               bprint("Time's up! The current level has been LOST.\n");
                // sound!
        }
        else
@@ -249,3 +264,4 @@ void CampaignLevelWarp(float n)
                error("Sorry, cheater. You are NOT WELCOME.");
        CampaignFile_Unload();
 }
+