From d4ed86e7bdd33b83a89cb4911ae6c14fc3c3e7f5 Mon Sep 17 00:00:00 2001 From: div0 Date: Wed, 3 Dec 2008 20:22:21 +0000 Subject: [PATCH] make deluxemapping also depend on lightmaps activated git-svn-id: svn://svn.icculus.org/nexuiz/trunk@5164 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- .../menu/nexuiz/dialog_settings_effects.c | 2 +- data/qcsrc/menu/nexuiz/util.qc | 31 +++++++++++++++++++ data/qcsrc/menu/nexuiz/util.qh | 1 + 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/data/qcsrc/menu/nexuiz/dialog_settings_effects.c b/data/qcsrc/menu/nexuiz/dialog_settings_effects.c index 90e4a26cb..a8b61b7bd 100644 --- a/data/qcsrc/menu/nexuiz/dialog_settings_effects.c +++ b/data/qcsrc/menu/nexuiz/dialog_settings_effects.c @@ -128,7 +128,7 @@ void fillNexuizEffectsSettingsTab(entity me) me.TD(me, 1, 1.5, e = makeNexuizCheckBox(0, "r_glsl_deluxemapping", "Deluxe mapping")); setDependent(e, "r_glsl", 1, 1); me.TD(me, 1, 1.5, e = makeNexuizCheckBox(0, "r_shadow_gloss", "Gloss")); - setDependentAND(e, "r_glsl", 1, 1, "r_glsl_deluxemapping", 1, 1); + setDependentAND3(e, "r_glsl", 1, 1, "r_glsl_deluxemapping", 1, 1, "mod_q3bsp_nolightmaps", 0, 0); me.TR(me); me.TR(me); diff --git a/data/qcsrc/menu/nexuiz/util.qc b/data/qcsrc/menu/nexuiz/util.qc index 5fa8c5fbf..fdf62799f 100644 --- a/data/qcsrc/menu/nexuiz/util.qc +++ b/data/qcsrc/menu/nexuiz/util.qc @@ -55,6 +55,9 @@ void makeMulti(entity e, string otherCvars) .string cvar2_setDependent; .float cvar2Min_setDependent; .float cvar2Max_setDependent; +.string cvar3_setDependent; +.float cvar3Min_setDependent; +.float cvar3Max_setDependent; .float op_setDependent; .string cvarString_setDependent; .string cvarValue_setDependent; @@ -85,6 +88,14 @@ void setDependent_Check(entity e) else e.disabled = (e.disabled + ((f >= e.cvar2Max_setDependent) && (f <= e.cvar2Min_setDependent)) > e.op_setDependent); } + if(e.cvar3_setDependent) + { + f = cvar(e.cvar3_setDependent); + if(e.cvar3Min_setDependent <= e.cvar3Max_setDependent) + e.disabled = (e.disabled + ((f < e.cvar3Min_setDependent) || (f > e.cvar3Max_setDependent)) > e.op_setDependent); + else + e.disabled = (e.disabled + ((f >= e.cvar3Max_setDependent) && (f <= e.cvar3Min_setDependent)) > e.op_setDependent); + } } } void setDependent_Draw(entity e) @@ -99,6 +110,7 @@ void setDependent(entity e, string theCvarName, float theCvarMin, float theCvarM e.cvarMin_setDependent = theCvarMin; e.cvarMax_setDependent = theCvarMax; e.cvar2_setDependent = string_null; + e.cvar3_setDependent = string_null; e.draw = setDependent_Draw; setDependent_Check(e); } @@ -109,6 +121,7 @@ void setDependentStringNotEqual(entity e, string theCvarName, string theCvarValu e.cvarValue_setDependent = theCvarValue; e.cvar_setDependent = string_null; e.cvar2_setDependent = string_null; + e.cvar3_setDependent = string_null; e.draw = setDependent_Draw; setDependent_Check(e); } @@ -121,6 +134,7 @@ void setDependentAND(entity e, string theCvarName, float theCvarMin, float theCv e.cvar2_setDependent = theCvar2Name; e.cvar2Min_setDependent = theCvar2Min; e.cvar2Max_setDependent = theCvar2Max; + e.cvar3_setDependent = string_null; e.op_setDependent = 0; e.draw = setDependent_Draw; setDependent_Check(e); @@ -134,10 +148,27 @@ void setDependentOR(entity e, string theCvarName, float theCvarMin, float theCva e.cvar2_setDependent = theCvar2Name; e.cvar2Min_setDependent = theCvar2Min; e.cvar2Max_setDependent = theCvar2Max; + e.cvar3_setDependent = string_null; e.op_setDependent = 1; e.draw = setDependent_Draw; setDependent_Check(e); } +void setDependentAND3(entity e, string theCvarName, float theCvarMin, float theCvarMax, string theCvar2Name, float theCvar2Min, float theCvar2Max, string theCvar3Name, float theCvar3Min, float theCvar3Max) +{ + e.draw_setDependent = e.draw; + e.cvar_setDependent = theCvarName; + e.cvarMin_setDependent = theCvarMin; + e.cvarMax_setDependent = theCvarMax; + e.cvar2_setDependent = theCvar2Name; + e.cvar2Min_setDependent = theCvar2Min; + e.cvar2Max_setDependent = theCvar2Max; + e.cvar3_setDependent = theCvar3Name; + e.cvar3Min_setDependent = theCvar3Min; + e.cvar3Max_setDependent = theCvar3Max; + e.op_setDependent = 0; + e.draw = setDependent_Draw; + setDependent_Check(e); +} // EXTRESPONSE SYSTEM //////////////////////////////////////////////////////// diff --git a/data/qcsrc/menu/nexuiz/util.qh b/data/qcsrc/menu/nexuiz/util.qh index 93e17e0b9..f5d1f75ce 100644 --- a/data/qcsrc/menu/nexuiz/util.qh +++ b/data/qcsrc/menu/nexuiz/util.qh @@ -7,4 +7,5 @@ void makeMulti(entity me, string otherCvars); void setDependent(entity e, string theCvarName, float theCvarMin, float theCvarMax); void setDependentAND(entity e, string theCvarName, float theCvarMin, float theCvarMax, string theCvar2Name, float theCvar2Min, float theCvar2Max); void setDependentOR(entity e, string theCvarName, float theCvarMin, float theCvarMax, string theCvar2Name, float theCvar2Min, float theCvar2Max); +void setDependentAND3(entity e, string theCvarName, float theCvarMin, float theCvarMax, string theCvar2Name, float theCvar2Min, float theCvar2Max, string theCvar3Name, float theCvar3Min, float theCvar3Max); void setDependentStringNotEqual(entity e, string theCvarName, string theCvarValue); -- 2.39.2