X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmapinfo.qc;h=b372339f2d3d3a4b9cb87544aa0c5a11a69915e3;hb=refs%2Fheads%2Fmirceakitsune%2Fcampaign_unlock;hp=617bfe85e2cde2c78d3b0f1c8fd1e617732c34df;hpb=f24c1ab39321a756bb76d1699a775fe1e42040ab;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mapinfo.qc b/qcsrc/common/mapinfo.qc index 617bfe85e..b372339f2 100644 --- a/qcsrc/common/mapinfo.qc +++ b/qcsrc/common/mapinfo.qc @@ -9,10 +9,10 @@ #include #endif -bool autocvar_g_mapinfo_ignore_warnings; #ifdef MENUQC -#define WARN_COND (!autocvar_g_mapinfo_ignore_warnings) +#define WARN_COND false #else +bool autocvar_g_mapinfo_ignore_warnings; #define WARN_COND (!autocvar_g_mapinfo_ignore_warnings && MapInfo_Map_bspname == mi_shortname) #endif @@ -717,9 +717,11 @@ void _MapInfo_Parse_Settemp(string pFilename, string acl, float type, string s, if(type == 0) // server set { LOG_TRACE("Applying temporary setting ", t, " := ", s); + #if 0 if(cvar("g_campaign")) cvar_set(t, s); // this is a wrapper and is always temporary anyway; no need to backup old values then else + #endif cvar_settemp(t, s); } else @@ -903,6 +905,23 @@ float MapInfo_Get_ByName_NoFallbacks(string pFilename, int pAllowGenerate, Gamet else if(WARN_COND) LOG_WARN("Map ", pFilename, " supports unknown feature ", t, ", ignored"); } + else if(t == "locked") + { + t = car(s); s = cdr(s); f = stof(s); + // hide the map based on campaign status + if(f > 0) + { + // we need to have reached this level + if(cvar(strcat("g_campaign_", t, "_index")) < f); + f |= MAPINFO_FLAG_LOCKED; + } + else + { + // we need to have won the campaign + if(!cvar(strcat("g_campaign_", t, "_won"))); + f |= MAPINFO_FLAG_LOCKED; + } + } else if(t == "hidden") { MapInfo_Map_flags |= MAPINFO_FLAG_HIDDEN; @@ -1311,6 +1330,11 @@ int MapInfo_ForbiddenFlags() { int f = MAPINFO_FLAG_FORBIDDEN; +#ifdef GAMEQC + if (!cvar("g_maplist_allow_locked")) +#endif + f |= MAPINFO_FLAG_LOCKED; + #ifdef GAMEQC if (!cvar("g_maplist_allow_hidden")) #endif