X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcampaign.qc;h=5a68e96058ce0acd36724480d955d9a7213fb44f;hp=923950b5071cd4084dff6e3b3750f61560822784;hb=4a850b012b05774ec7bea9c53c5cbed0bf9bab4e;hpb=e29603d545018c97349769107c7541212dc65cd3 diff --git a/qcsrc/server/campaign.qc b/qcsrc/server/campaign.qc index 923950b50..5a68e9605 100644 --- a/qcsrc/server/campaign.qc +++ b/qcsrc/server/campaign.qc @@ -169,7 +169,7 @@ void CampaignPreIntermission() entity head; float won; float lost; - local string savevar; + string savevar; won = 0; @@ -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)