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