X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcampaign.qc;h=163337e036ce7a22ceeab2d4b5aca3b72f192fa7;hb=7b9c511da12ae85661563a1c8b803360447ba377;hp=9beb6e1f04c04a7df695f849e276b67b1bde3c3f;hpb=8bd579d6ca74881bd77ae83fd00ac81c9e0108cf;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/campaign.qc b/qcsrc/server/campaign.qc index 9beb6e1f0..163337e03 100644 --- a/qcsrc/server/campaign.qc +++ b/qcsrc/server/campaign.qc @@ -1,3 +1,10 @@ +#include "campaign.qh" +#include "cheats.qh" +#include "miscfunctions.qh" +#include "g_world.qh" + +#include "../common/campaign_common.qh" + // campaign cvars: // _campaign_index: index of CURRENT map // _campaign_name: name of the current campaign @@ -7,7 +14,7 @@ float campaign_level; float campaign_won; string campaign_index_var; -float checkrules_equality; +//float checkrules_equality; float CampaignBailout(string s) { @@ -15,13 +22,13 @@ float CampaignBailout(string s) cvar_string = cvar_string_normal; cvar_set = cvar_set_normal; cvar_set("g_campaign", "0"); - print("^4campaign initialization failed: ", s, "\n"); + LOG_INFO("^4campaign initialization failed: ", s, "\n"); if(autocvar__campaign_testrun) error("CAMPAIGN FAIL AHAHAHAHAHAHAHAHAH))"); return 1; } -string cvar_campaignwrapper_list; // string of format ; var value; var value; var value; +string cvar_campaignwrapper_list; // string of format ; var value; var value; var value; string cvar_string_campaignwrapper(string theCvar) { float p, q; @@ -66,21 +73,25 @@ void CampaignPreInit() { float baseskill; string title; - if(autocvar_sv_cheats) - { - CampaignBailout("JOLLY CHEATS AHAHAHAHAHAHAH))"); - return; - } campaign_level = autocvar__campaign_index; campaign_name = strzone(autocvar__campaign_name); campaign_index_var = strzone(strcat("g_campaign", campaign_name, "_index")); CampaignFile_Load(campaign_level, 2); + if(campaign_entries < 1) { CampaignBailout("unknown map"); return; } + if(autocvar_sv_cheats) + { + MapInfo_SwitchGameType(MapInfo_Type_FromString(campaign_gametype[0])); + CampaignFile_Unload(); + CampaignBailout("JOLLY CHEATS AHAHAHAHAHAHAH))"); + return; + } + baseskill = autocvar_g_campaign_skill; baseskill = baseskill + campaign_botskill[0]; if(baseskill < 0) @@ -114,7 +125,6 @@ void CampaignPreInit() strunzone(title); } -string GetMapname(); void CampaignPostInit() { // now some sanity checks @@ -178,25 +188,16 @@ void CampaignSaveCvar(string cvarname, float value) void CampaignPreIntermission() { - entity head; - float won; - float lost; + int won = 0; + int lost = 0; string savevar; - won = lost = 0; - - head = findchain(classname, "player"); - while(head) - { - if(IS_REAL_CLIENT(head)) - { - if(head.winning) - won = won + 1; - else - lost = lost + 1; - } - head = head.chain; - } + FOREACH_CLIENT(IS_PLAYER(it) && IS_REAL_CLIENT(it), LAMBDA( + if(it.winning) + won += 1; + else + lost += 1; + )); if(autocvar__campaign_testrun) { @@ -259,7 +260,7 @@ void CampaignPostIntermission() if(campaign_won && campaign_entries < 2) { // last map won! - print("^2test run: campaign looks GOOD\n"); + LOG_DEBUG("^2test run: campaign looks GOOD\n"); localcmd("togglemenu 1\n"); CampaignFile_Unload(); return;