From 604de5e2015d4f7120c28eff9403299a11aef418 Mon Sep 17 00:00:00 2001 From: div0 Date: Thu, 9 Jul 2009 16:32:49 +0000 Subject: [PATCH] g_mapinfo_* settings git-svn-id: svn://svn.icculus.org/nexuiz/trunk@7171 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/defaultNexuiz.cfg | 3 +++ data/qcsrc/common/mapinfo.qc | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/data/defaultNexuiz.cfg b/data/defaultNexuiz.cfg index 5c3430f07..4f56bfe90 100644 --- a/data/defaultNexuiz.cfg +++ b/data/defaultNexuiz.cfg @@ -1603,3 +1603,6 @@ set sv_clforceplayermodels 1 "allow clients to use cl_forcemodels" set sv_loddistance1 1024 set sv_loddistance2 4096 seta cl_playerdetailreduction 0 "the higher, the less detailed player models are displayed (LOD)" + +set g_mapinfo_settemp_allow "" "when set, only cvars mentioned here may be changed by mapinfo files" +set g_mapinfo_settemp_deny "" "when set, cvars mentioned here may not be changed by mapinfo files" diff --git a/data/qcsrc/common/mapinfo.qc b/data/qcsrc/common/mapinfo.qc index fa82498a1..9f640bb4a 100644 --- a/data/qcsrc/common/mapinfo.qc +++ b/data/qcsrc/common/mapinfo.qc @@ -493,6 +493,10 @@ float MapInfo_Get_ByName(string pFilename, float pAllowGenerate, float pGametype string s, t; float fh, fh2; float r, f, n, i; + string allow, deny; + + allow = cvar_string("g_mapinfo_settemp_allow"); + deny = cvar_string("g_mapinfo_settemp_deny"); if(strstrofs(pFilename, "/", 0) >= 0) { @@ -680,6 +684,12 @@ float MapInfo_Get_ByName(string pFilename, float pAllowGenerate, float pGametype print("Map ", pFilename, " contains a potentially harmful setting, ignored\n"); else if not (cvar_value_issafe(s)) print("Map ", pFilename, " contains a potentially harmful setting, ignored\n"); + else if(substring(t, 0, 10) == "g_mapinfo_") + print("Map ", pFilename, " contains a potentially harmful setting, ignored\n"); + else if(allow != "" && strstrofs(strcat(" ", allow, " "), strcat(" ", t, " "), 0) < 0) + print("Map ", pFilename, " contains a denied setting, ignored\n"); + else if(deny != "" && strstrofs(strcat(" ", deny, " "), strcat(" ", t, " "), 0) >= 0) + print("Map ", pFilename, " contains a denied setting, ignored\n"); else { dprint("Applying temporary setting ", t, " := ", s, "\n"); -- 2.39.2