r1912 - in trunk/data/qcsrc: common server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Nov 8 11:14:06 EST 2006


Author: div0
Date: 2006-11-08 11:14:06 -0500 (Wed, 08 Nov 2006)
New Revision: 1912

Modified:
   trunk/data/qcsrc/common/campaign_common.qh
   trunk/data/qcsrc/common/campaign_file.qc
   trunk/data/qcsrc/common/campaign_setup.qc
   trunk/data/qcsrc/server/campaign.qc
Log:


Modified: trunk/data/qcsrc/common/campaign_common.qh
===================================================================
--- trunk/data/qcsrc/common/campaign_common.qh	2006-11-07 10:02:18 UTC (rev 1911)
+++ trunk/data/qcsrc/common/campaign_common.qh	2006-11-08 16:14:06 UTC (rev 1912)
@@ -19,6 +19,7 @@
 // number is also stored in campaign_entries).
 // NOTE: there MUST be a corresponding CampaignFile_Unload() to unzone the
 // strings.
+string campaign_name; // set that to the campaign you want to load before calling CampaignFile_Load
 float CampaignFile_Load(float offset, float entries);
 void CampaignFile_Unload();
 

Modified: trunk/data/qcsrc/common/campaign_file.qc
===================================================================
--- trunk/data/qcsrc/common/campaign_file.qc	2006-11-07 10:02:18 UTC (rev 1911)
+++ trunk/data/qcsrc/common/campaign_file.qc	2006-11-08 16:14:06 UTC (rev 1912)
@@ -9,6 +9,7 @@
 	float entlen;
 	float i;
 	string l, a;
+	string fn;
 
 	if(n > CAMPAIGN_MAX_ENTRIES)
 		n = CAMPAIGN_MAX_ENTRIES;
@@ -16,7 +17,8 @@
 	campaign_offset = offset;
 	campaign_entries = 0;
 
-	fh = fopen("maps/campaign.txt", FILE_READ);
+	fn = strcat("maps/campaign", campaign_name, ".txt");
+	fh = fopen(fn, FILE_READ);
 	if(fh >= 0)
 	{
 		for(lineno = 0; (l = fgets(fh)); )

Modified: trunk/data/qcsrc/common/campaign_setup.qc
===================================================================
--- trunk/data/qcsrc/common/campaign_setup.qc	2006-11-07 10:02:18 UTC (rev 1911)
+++ trunk/data/qcsrc/common/campaign_setup.qc	2006-11-08 16:14:06 UTC (rev 1912)
@@ -3,6 +3,9 @@
 	localcmd("exec game_reset.cfg\n");
 	localcmd("exec mutator_reset.cfg\n");
 	localcmd("set g_campaign 1\n");
+	localcmd("set _campaign_name \"");
+		localcmd(campaign_name);
+		localcmd("\"\n");
 	localcmd("set _campaign_index ");
 		localcmd(ftos(campaign_offset + n));
 		localcmd("\n");

Modified: trunk/data/qcsrc/server/campaign.qc
===================================================================
--- trunk/data/qcsrc/server/campaign.qc	2006-11-07 10:02:18 UTC (rev 1911)
+++ trunk/data/qcsrc/server/campaign.qc	2006-11-08 16:14:06 UTC (rev 1912)
@@ -1,16 +1,17 @@
 // campaign cvars:
 //   _campaign_index: index of CURRENT map
-//   g_campaign_index: index of current LAST map (saved)
+//   _campaign_name: name of the current campaign
+//   g_campaign(name)_index: index of current LAST map (saved)
 //   g_campaign_skill: bot skill offset
 
 float campaign_level;
 float campaign_won;
+string campaign_index_var;
 
 void(string s) CampaignBailout =
 {
 	cvar_set("g_campaign", "0");
-	bprint(strcat("campaign initialization failed: ", s, "\n"));
-	//error(strcat("campaign initialization failed: ", s, "\n"));
+	ServerConsoleEcho(strcat("campaign initialization failed: ", s), TRUE);
 	return;
 }
 
@@ -19,6 +20,8 @@
 	float baseskill;
 	string title;
 	campaign_level = cvar("_campaign_index");
+	campaign_name = strzone(cvar_string("_campaign_name"));
+	campaign_index_var = strzone(strcat("g_campaign", campaign_name, "_index"));
 	CampaignFile_Load(campaign_level, 2);
 	if(campaign_entries < 1)
 		return CampaignBailout("unknown map");
@@ -93,12 +96,16 @@
 		{
 			//localcmd("set g_campaign_index 0\n");
 			// don't reset...
-			localcmd("set g_campaign_won 1\n");
+			localcmd("set g_campaign");
+			localcmd(campaign_name);
+			localcmd("_won 1\n");
 		}
-		else if(campaign_level == cvar("g_campaign_index"))
+		else if(campaign_level == cvar(campaign_index_var))
 		{
 			// advance level
-			localcmd("set g_campaign_index ");
+			localcmd("set ");
+			localcmd(campaign_index_var);
+			localcmd(" ");
 			localcmd(ftos(campaign_level + 1));
 			localcmd("\n");
 		}
@@ -120,6 +127,9 @@
 	CampaignSetup(campaign_won);
 	CampaignFile_Unload();
 	strunzone(campaign_message);
+	strunzone(campaign_index_var);
+	strunzone(campaign_name);
+	campaign_name = "";
 }
 
 




More information about the nexuiz-commits mailing list