return 0;
}
+int Campaign_GetLevelNum()
+{
+ return campaign_level + 1;
+}
+
+string Campaign_GetMessage()
+{
+ return strcat(campaign_shortdesc[0], "\n^3\n", campaign_longdesc[0]);
+}
+
void CampaignPreInit()
{
float baseskill;
- string title;
campaign_level = autocvar__campaign_index;
campaign_name = strzone(autocvar__campaign_name);
campaign_index_var = strzone(strcat("g_campaign", campaign_name, "_index"));
return;
}
- baseskill = autocvar_g_campaign_skill;
- baseskill = baseskill + campaign_botskill[0];
- if(baseskill < 0)
- baseskill = 0;
-
+ baseskill = max(0, autocvar_g_campaign_skill + campaign_botskill[0]);
campaign_forcewin = false;
cvar_set("sv_public", "0");
{
string arg = argv(j);
if(arg == "") continue;
- _MapInfo_Parse_Settemp(mapname, MAPINFO_SETTEMP_ACL_USER, 0, arg, 0); // no recursion!
+ _MapInfo_Parse_Settemp(mapname, MAPINFO_SETTEMP_ACL_USER, 0, arg, 1);
}
}
#endif
if(Campaign_Invalid())
return;
-
- title = campaign_shortdesc[0];
- title = strzone(strcat("Level ", ftos(campaign_level + 1), ": ", title));
- campaign_message = strzone(strcat(title, "\n^3\n", campaign_longdesc[0], "\n\n^1press jump to enter the game"));
- strunzone(title);
}
void CampaignPostInit()
if(autocvar__campaign_testrun)
{
cvar_set("fraglimit", "0");
+ cvar_set("leadlimit", "0");
cvar_set("timelimit", "0.01");
cvar_set_normal("fraglimit", "0");
+ cvar_set_normal("leadlimit", "0");
cvar_set_normal("timelimit", "0.01");
}
else
{
- cvar_set("fraglimit", ftos(campaign_fraglimit[0]));
- cvar_set("timelimit", ftos(campaign_timelimit[0]));
- cvar_set_normal("fraglimit", ftos(campaign_fraglimit[0]));
- cvar_set_normal("timelimit", ftos(campaign_timelimit[0]));
+ // "default" uses implicit values, "" or "0" means no limit
+ tokenizebyseparator(campaign_fraglimit[0], "+");
+ if(argv(0) != "default") {
+ cvar_set("fraglimit", argv(0));
+ cvar_set_normal("fraglimit", argv(0));
+ }
+ if(argv(1) != "default") {
+ cvar_set("leadlimit", argv(1));
+ cvar_set_normal("leadlimit", argv(1));
+ }
+ if(campaign_timelimit[0] != "default") {
+ cvar_set("timelimit", campaign_timelimit[0]);
+ cvar_set_normal("timelimit", campaign_timelimit[0]);
+ }
}
}
CampaignSetup(campaign_won);
CampaignFile_Unload();
- strunzone(campaign_message);
strunzone(campaign_index_var);
strunzone(campaign_name);
campaign_name = "";