#include <common/monsters/_mod.qh>
#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
}
}
-Gametype MapInfo_Type_FromString(string str)
+Gametype MapInfo_Type_FromString(string gtype)
{
string replacement = "";
- switch (str)
+ switch (gtype)
{
case "nexball": replacement = "nb"; break;
case "freezetag": replacement = "ft"; break;
}
if (replacement != "" && WARN_COND)
{
- LOG_WARNF("MapInfo_Type_FromString (probably %s): using deprecated name '%s'. Should use '%s'.", MapInfo_Map_bspname, str, replacement);
- str = replacement;
+ LOG_WARNF("MapInfo_Type_FromString (probably %s): using deprecated name '%s'. Should use '%s'.", MapInfo_Map_bspname, gtype, replacement);
+ gtype = replacement;
}
- FOREACH(Gametypes, it.mdl == str, return it);
+ FOREACH(Gametypes, it.mdl == gtype, return it);
return NULL;
}
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
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;
{
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