X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcampaign.qc;h=5a68e96058ce0acd36724480d955d9a7213fb44f;hp=300d01a7a56607b031a28e5e0d419c2dbadd42ea;hb=616650bb18362024afeed71fed91d33dc1708d09;hpb=f0d3b4fa8ab12a5b30bfc43f972bda35a9310691 diff --git a/qcsrc/server/campaign.qc b/qcsrc/server/campaign.qc index 300d01a7a..5a68e9605 100644 --- a/qcsrc/server/campaign.qc +++ b/qcsrc/server/campaign.qc @@ -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,14 +101,14 @@ 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; title = campaign_shortdesc[0]; title = strzone(strcat("Level ", ftos(campaign_level + 1), ": ", title)); - campaign_message = strzone(strcat("\n\n\n\n\n\n\n\n\n\n^1\n", title, "\n^3\n", campaign_longdesc[0], "\n\n^1press jump to enter the game")); + campaign_message = strzone(strcat(title, "\n^3\n", campaign_longdesc[0], "\n\n^1press jump to enter the game")); strunzone(title); } @@ -169,7 +169,7 @@ void CampaignPreIntermission() entity head; float won; float lost; - local string savevar; + string savevar; won = 0; @@ -188,7 +188,7 @@ void CampaignPreIntermission() if(won == 1 && lost == 0 && checkrules_equality == 0 && cheatcount_total == 0) { - if(cvar("timelimit") != 0 && time > cvar("timelimit") * 60) // checks if the timelimit has expired. + 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"); @@ -196,12 +196,12 @@ void CampaignPreIntermission() } else { - campaign_won = 1; - bprint("The current level has been WON.\n"); - // sound! + campaign_won = 1; + bprint("The current level has been WON.\n"); + // sound! } } - else if(cvar("timelimit") != 0 && time > cvar("timelimit") * 60) + else if(autocvar_timelimit != 0 && time > autocvar_timelimit * 60) { campaign_won = 0; bprint("Time's up! The current level has been LOST.\n"); @@ -219,10 +219,13 @@ void CampaignPreIntermission() if(campaign_entries < 2) { // I have won - savevar = strcat("g_campaign", campaign_name, "_won"); - CampaignSaveCvar(savevar, 1); - // advance level (for menu to show it right) - CampaignSaveCvar(campaign_index_var, campaign_level + 1); + if(campaign_level == cvar_normal(campaign_index_var)) + { + savevar = strcat("g_campaign", campaign_name, "_won"); + CampaignSaveCvar(savevar, 1); + // advance level (for menu to show it right) + CampaignSaveCvar(campaign_index_var, campaign_level + 1); + } } else if(campaign_level == cvar_normal(campaign_index_var)) { @@ -256,6 +259,8 @@ void CampaignPostIntermission() void CampaignLevelWarp(float n) { + if(n < 0) + n = campaign_level + 1; CampaignFile_Unload(); CampaignFile_Load(n, 1); if(campaign_entries)