X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fcampaign_file.qc;h=0fef7816b34720448f34b36185ef14e6b40e6e45;hb=c12fb863a10d7800f2b3fb47c65b1a874dc74e2d;hp=a8bbe8e856c430a7fdfaf85e9ab5a4988c96a13d;hpb=70b84d37e2cf1d5336c327cb43593024de2a2c6c;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/campaign_file.qc b/qcsrc/common/campaign_file.qc index a8bbe8e85..0fef7816b 100644 --- a/qcsrc/common/campaign_file.qc +++ b/qcsrc/common/campaign_file.qc @@ -1,8 +1,10 @@ +#include "campaign_file.qh" + #if defined(CSQC) #elif defined(MENUQC) #elif defined(SVQC) - #include "util.qh" - #include "campaign_common.qh" + #include + #include #endif // CampaignFileLoad(offset, n) @@ -51,19 +53,22 @@ float CampaignFile_Load(int offset, float n) a = ""; \ else \ ++i -// What you're seeing here is what people will do when your compiler supports -// C-style macros but no line continuations. i = -1; // starts at -1 so I don't need postincrement; that is, i points to BEFORE the current arg! CAMPAIGN_GETARG; campaign_gametype[campaign_entries] = strzone(a); CAMPAIGN_GETARG; campaign_mapname[campaign_entries] = strzone(a); CAMPAIGN_GETARG; campaign_bots[campaign_entries] = stof(a); CAMPAIGN_GETARG; campaign_botskill[campaign_entries] = stof(a); - CAMPAIGN_GETARG; campaign_fraglimit[campaign_entries] = stof(a); - CAMPAIGN_GETARG; campaign_timelimit[campaign_entries] = stof(a); + CAMPAIGN_GETARG; campaign_fraglimit[campaign_entries] = strzone(a); + CAMPAIGN_GETARG; campaign_timelimit[campaign_entries] = strzone(a); CAMPAIGN_GETARG; campaign_mutators[campaign_entries] = strzone(a); + #ifdef SVQC + CAMPAIGN_GETARG; + CAMPAIGN_GETARG; + #else CAMPAIGN_GETARG; campaign_shortdesc[campaign_entries] = strzone(a); CAMPAIGN_GETARG; campaign_longdesc[campaign_entries] = strzone(strreplace("\\n", "\n", a)); + #endif if(i > entlen) error("syntax error in campaign file: line has not enough fields"); @@ -87,17 +92,19 @@ void CampaignFile_Unload() { if(campaign_title) { - strunzone(campaign_title); - int i; - for(i = 0; i < campaign_entries; ++i) + strfree(campaign_title); + for(int 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]); + strfree(campaign_gametype[i]); + strfree(campaign_mapname[i]); + strfree(campaign_fraglimit[i]); + strfree(campaign_timelimit[i]); + strfree(campaign_mutators[i]); + #ifndef SVQC + strfree(campaign_shortdesc[i]); + strfree(campaign_longdesc[i]); + #endif } campaign_entries = 0; - campaign_title = string_null; } }