r4947 - in trunk/data: . maps qcsrc/common qcsrc/menu/nexuiz qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Oct 31 05:01:51 EDT 2008


Author: div0
Date: 2008-10-31 05:01:34 -0400 (Fri, 31 Oct 2008)
New Revision: 4947

Removed:
   trunk/data/maps/campaignmappack.txt
Modified:
   trunk/data/defaultNexuiz.cfg
   trunk/data/mutator_reset.cfg
   trunk/data/qcsrc/common/campaign_common.qh
   trunk/data/qcsrc/common/campaign_file.qc
   trunk/data/qcsrc/menu/nexuiz/campaign.c
   trunk/data/qcsrc/server/teamplay.qc
Log:
campaign fixes. Now campaign + race works.


Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2008-10-31 08:31:43 UTC (rev 4946)
+++ trunk/data/defaultNexuiz.cfg	2008-10-31 09:01:34 UTC (rev 4947)
@@ -498,7 +498,7 @@
 
 // race
 set g_race 0
-set g_race_qualifying 1
+set g_race_qualifying 2
 // Qualifying uses timelimit, and the one with the best time wins. Fraglimit is nonfunctional then.
 // Normal race uses fraglimit as a limit for the laps.
 // Special mode: g_race_qualifying 2. First runs a qualifying, after

Deleted: trunk/data/maps/campaignmappack.txt
===================================================================
--- trunk/data/maps/campaignmappack.txt	2008-10-31 08:31:43 UTC (rev 4946)
+++ trunk/data/maps/campaignmappack.txt	2008-10-31 09:01:34 UTC (rev 4947)
@@ -1,38 +0,0 @@
-"//campaign:Map pack Campaign"
-"//game","mapname","bots","skill","frag","mutator-sets","description","long description"
-"dm","q3skoredm1","3","6","15",,"q3skoredm1","By -=skOre=-."
-"dm","qbeast","3","6","20",,"qbeast","By Quint (Marco Quintavalle)."
-"dm","qdolphin","4","6","15",,"qdolphin","By Quint (Marco Quintavalle)."
-"dm","quimera","3","6","10",,"quimera","By Jose "JAJ" Arcediano."
-"dm","zpdm01","3","6","20",,"zpdm01","By ZEphYR."
-"dm","dubneoc","4","6","15",,"dubneoc","By Lasse "Dubbilan" Kolding."
-"dm","jaxtourney2","3","7","15",,"jaxtourney2","By David "Jax_Gator" Cherry."
-"dm","79drdm5_beta2","4","7","20",,"79DrDm5","By Kevin "79DieselRabbit" Worrel."
-"dm","79drgc2","4","7","15",,"79drgc2","By Kevin "79DieselRabbit" Worrel."
-"dm","quintdm3","3","7","10",,"quintdm3","By Quint (Marco Quintavalle)."
-"dm","acid3dm5","3","7","20",,"acid3dm5","By [acid]."
-"dm","ikzdm1","4","7","15",,"ikzdm1","By Iikka "Fingers" Keranen."
-"dm","geo-core","4","7","15",,"geo-core","By Q ."
-"dm","bal3dm3","3","8","20",,"bal3dm3","By Benoit "Bal" Stordeur."
-"dm","ame7q3tny1","3","8","10",,"ame7q3tny1","By Chris "amethyst7" Matz."
-"dm","hal_palindrome","3","8","15",,"hal_palindrome","By John "Hal9000" Schuch."
-"dm","redm04","3","8","15",,"redm04","By ReFlex (redm04)."
-"dm","storm3dm3","3","8","10",,"storm3dm3","By Justin Ingels."
-"dm","batcula","3","8","15",,"batcula","By nunuk."
-"dm","chronic","3","8","10",,"chronic","By MasterPlan."
-"dm","bal3dm5","3","8","10",,"bal3dm5","By Benoit "Bal" Stordeur."
-"dm","cttourney1","3","8","15",,"cttourney1","By Geit."
-"dm","distonic","3","8","20",,"distonic","By nunuk (nicolas bouvier)."
-"dm","pukka3dm2","3","8","10",,"pukka3dm2","By thefury aka sumatra."
-"dm","puma3tourney4","3","8","15",,"puma3tourney4","By =puppetmaster=."
-"dm","straledm5","3","8","15",,"straledm5","By Paul "Strahlemann" Evers."
-"dm","apocalyptica","3","8","20",,"apocalyptica","By =puppetmaster=."
-"dm","HandsOfGod","3","9","15",,"HandsOfGod","By Alex Moore."
-"dm","af3hex","3","9","15",,"af3hex","By haste (Neil Toronto)."
-"dm","ame7q3dm3","3","9","15",,"ame7q3dm3","By Chris "amethyst7" Matz."
-"dm","CMP1-dm6","3","9","15",,"CMP1-dm6","By  Yves "evil lair" Allaire."
-"dm","klzegypt","3","9","15",,"klzegypt","By Killazontherun."
-"dm","ktsdm4","3","9","15",,"ktsdm4","By Ben "Krash" Ackland."
-"dm","map-gleeb_geocomp3","3","9","20",,"map-gleeb_geocomp3","By Gleeb."
-"dm","mIKEctf2","3","9","20",,"mIKEctf2","By mIKE."
-"dm","monolith","3","9","20",,"monolith","By Sock."
\ No newline at end of file

Modified: trunk/data/mutator_reset.cfg
===================================================================
--- trunk/data/mutator_reset.cfg	2008-10-31 08:31:43 UTC (rev 4946)
+++ trunk/data/mutator_reset.cfg	2008-10-31 09:01:34 UTC (rev 4947)
@@ -9,6 +9,7 @@
 set g_norecoil 0
 set g_weaponarena 0
 set g_vampire 0
+set g_race_qualifying 2
 set slowmo 1.0
 set sv_gravity 800
 

Modified: trunk/data/qcsrc/common/campaign_common.qh
===================================================================
--- trunk/data/qcsrc/common/campaign_common.qh	2008-10-31 08:31:43 UTC (rev 4946)
+++ trunk/data/qcsrc/common/campaign_common.qh	2008-10-31 09:01:34 UTC (rev 4947)
@@ -13,6 +13,7 @@
 string campaign_mutators[CAMPAIGN_MAX_ENTRIES];
 string campaign_shortdesc[CAMPAIGN_MAX_ENTRIES];
 string campaign_longdesc[CAMPAIGN_MAX_ENTRIES];
+string campaign_title; // filled upon loading
 
 // load the campaign file, but use the given offset and limit the number of
 // entries being read. Returns the number of entries successfully read (this

Modified: trunk/data/qcsrc/common/campaign_file.qc
===================================================================
--- trunk/data/qcsrc/common/campaign_file.qc	2008-10-31 08:31:43 UTC (rev 4946)
+++ trunk/data/qcsrc/common/campaign_file.qc	2008-10-31 09:01:34 UTC (rev 4947)
@@ -16,6 +16,7 @@
 
 	campaign_offset = offset;
 	campaign_entries = 0;
+	campaign_title = string_null;
 
 	fn = strcat("maps/campaign", campaign_name, ".txt");
 	fh = fopen(fn, FILE_READ);
@@ -25,8 +26,12 @@
 		{
 			if(strlen(l) == 0)
 				continue; // empty line
+			if(substring(l, 0, 11) == "//campaign:")
+				campaign_title = substring(l, 11, strlen(l) - 11);
 			if(substring(l, 0, 2) == "//")
 				continue; // comment
+			if(substring(l, 0, 12) == "\"//campaign:")
+				campaign_title = substring(l, 12, strlen(l) - 13);
 			if(substring(l, 0, 3) == "\"//")
 				continue; // comment
 			if(lineno >= offset)
@@ -62,19 +67,26 @@
 		fclose(fh);
 	}
 
+	campaign_title = strzone(campaign_title);
+
 	return campaign_entries;
 }
 
 void CampaignFile_Unload()
 {
 	float i;
-	for(i = 0; i < campaign_entries; ++i)
+	if(campaign_title)
 	{
-		strunzone(campaign_gametype[i]);
-		strunzone(campaign_mapname[i]);
-		strunzone(campaign_mutators[i]);
-		strunzone(campaign_shortdesc[i]);
-		strunzone(campaign_longdesc[i]);
+		strunzone(campaign_title);
+		for(i = 0; i < campaign_entries; ++i)
+		{
+			strunzone(campaign_gametype[i]);
+			strunzone(campaign_mapname[i]);
+			strunzone(campaign_mutators[i]);
+			strunzone(campaign_shortdesc[i]);
+			strunzone(campaign_longdesc[i]);
+		}
+		campaign_entries = 0;
+		campaign_title = string_null;
 	}
-	campaign_entries = 0;
 }

Modified: trunk/data/qcsrc/menu/nexuiz/campaign.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/campaign.c	2008-10-31 08:31:43 UTC (rev 4946)
+++ trunk/data/qcsrc/menu/nexuiz/campaign.c	2008-10-31 09:01:34 UTC (rev 4947)
@@ -38,7 +38,6 @@
 	ATTRIB(NexuizCampaignList, buttonNext, entity, NULL)
 	ATTRIB(NexuizCampaignList, buttonPrev, entity, NULL)
 	ATTRIB(NexuizCampaignList, labelTitle, entity, NULL)
-	ATTRIB(NexuizCampaignList, campaignTitle, string, string_null)
 ENDCLASS(NexuizCampaignList)
 entity makeNexuizCampaignList();
 void CampaignList_LoadMap(entity btn, entity me);
@@ -134,6 +133,7 @@
 	campaign_name = strzone(cvar_string("g_campaign_name"));
 	me.cvarName = strzone(strcat("g_campaign", campaign_name, "_index"));
 	registercvar(me.cvarName, "", 0); // saved by server QC anyway
+	CampaignFile_Unload();
 	CampaignFile_Load(0, CAMPAIGN_MAX_ENTRIES);
 	me.campaignIndex = bound(0, cvar(me.cvarName), campaign_entries);
 	cvar_set(me.cvarName, ftos(me.campaignIndex));
@@ -142,14 +142,8 @@
 	me.nItems = min(me.campaignIndex + 2, campaign_entries);
 	me.selectedItem = min(me.campaignIndex, me.nItems - 1);
 	me.scrollPos = me.nItems * me.itemHeight - 1;
-	if(me.campaignTitle)
-		strunzone(me.campaignTitle);
-	if(campaign_name == "")
-		me.campaignTitle = strzone("Nexuiz Multiplayer Training Campaign");
-	else
-		me.campaignTitle = strzone(strreplace("_", " ", campaign_name));
 	if(me.labelTitle)
-		me.labelTitle.setText(me.labelTitle, me.campaignTitle);
+		me.labelTitle.setText(me.labelTitle, campaign_title);
 }
 
 void saveCvarsNexuizCampaignList(entity me)
@@ -194,6 +188,8 @@
 			s = substring(s, 13, strlen(s) - 17);
 			cvar_set("g_campaign_name", s);
 			me.loadCvars(me);
+			canNext = (j != n - 1);
+			canPrev = (j != 0);
 		}
 	}
 

Modified: trunk/data/qcsrc/server/teamplay.qc
===================================================================
--- trunk/data/qcsrc/server/teamplay.qc	2008-10-31 08:31:43 UTC (rev 4946)
+++ trunk/data/qcsrc/server/teamplay.qc	2008-10-31 09:01:34 UTC (rev 4947)
@@ -298,10 +298,6 @@
 		gamemode_name = "Race";
 		g_race_qualifying = cvar("g_race_qualifying");
 
-		// In campaign, only this mode makes sense...
-		if(cvar("g_campaign"))
-			g_race_qualifying = 1;
-
 		if(cvar("g_race_teams"))
 		{
 			g_race_qualifying = 0; // not supported!




More information about the nexuiz-commits mailing list