[nexuiz-commits] r6266 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Mar 24 07:00:38 EDT 2009


Author: div0
Date: 2009-03-24 07:00:37 -0400 (Tue, 24 Mar 2009)
New Revision: 6266

Modified:
   trunk/data/qcsrc/server/campaign.qc
Log:
allow leaving campaign again :P


Modified: trunk/data/qcsrc/server/campaign.qc
===================================================================
--- trunk/data/qcsrc/server/campaign.qc	2009-03-24 10:07:06 UTC (rev 6265)
+++ trunk/data/qcsrc/server/campaign.qc	2009-03-24 11:00:37 UTC (rev 6266)
@@ -9,14 +9,14 @@
 string campaign_index_var;
 float checkrules_equality;
 
-void CampaignBailout(string s)
+float CampaignBailout(string s)
 {
-	cvar_set("g_campaign", "0");
 	cvar = cvar_builtin;
 	cvar_string = cvar_string_builtin;
 	cvar_set = cvar_set_builtin;
+	cvar_set("g_campaign", "0");
 	print("campaign initialization failed: ", s, "\n");
-	return;
+	return 1;
 }
 
 string cvar_campaignwrapper_list; // string of format ; var value; var value; var value; 
@@ -47,6 +47,19 @@
 	//print(cvar_campaignwrapper_list, "\n");
 }
 
+float Campaign_Invalid()
+{
+	string thismapname, wantedmapname;
+	thismapname = GetMapname();
+	wantedmapname = campaign_gametype[0];
+	if(MapInfo_CurrentGametype() != MapInfo_Type_FromString(wantedmapname))
+		return CampaignBailout("wrong game type!");
+	wantedmapname = campaign_mapname[0];
+	if(wantedmapname != thismapname)
+		return CampaignBailout(strcat("wrong map: ", wantedmapname, " != ", thismapname));
+	return 0;
+}
+
 void CampaignPreInit()
 {
 	float baseskill;
@@ -56,7 +69,12 @@
 	campaign_index_var = strzone(strcat("g_campaign", campaign_name, "_index"));
 	CampaignFile_Load(campaign_level, 2);
 	if(campaign_entries < 1)
-		return CampaignBailout("unknown map");
+	{
+		CampaignBailout("unknown map");
+		return;
+	}
+	if(Campaign_Invalid())
+		return;
 
 	baseskill = cvar("g_campaign_skill");
 	baseskill = baseskill + campaign_botskill[0];
@@ -88,14 +106,8 @@
 void CampaignPostInit()
 {
 	// now some sanity checks
-	string thismapname, wantedmapname;
-	thismapname = GetMapname();
-	wantedmapname = campaign_gametype[0];
-	if(MapInfo_CurrentGametype() != MapInfo_Type_FromString(wantedmapname))
-		return CampaignBailout("wrong game type!");
-	wantedmapname = campaign_mapname[0];
-	if(wantedmapname != thismapname)
-		return CampaignBailout(strcat("wrong map: ", wantedmapname, " != ", thismapname));
+	if(Campaign_Invalid())
+		return;
 	cvar_set("fraglimit", ftos(campaign_fraglimit[0]));
 	cvar_set("timelimit", "0");
 }



More information about the nexuiz-commits mailing list