From f5a7ce59964388570851907f16ca9e196b6dbabc Mon Sep 17 00:00:00 2001 From: div0 Date: Wed, 30 Jan 2008 18:42:40 +0000 Subject: [PATCH] bring back the harsh non-"Player" enforcement git-svn-id: svn://svn.icculus.org/nexuiz/trunk@3316 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/menu/nexuiz/dialog_multiplayer.c | 6 ++- .../nexuiz/dialog_multiplayer_playersetup.c | 14 +++++- data/qcsrc/menu/nexuiz/util.qc | 44 ++++++++++++++----- data/qcsrc/menu/nexuiz/util.qh | 1 + 4 files changed, 52 insertions(+), 13 deletions(-) diff --git a/data/qcsrc/menu/nexuiz/dialog_multiplayer.c b/data/qcsrc/menu/nexuiz/dialog_multiplayer.c index e06cc08f7..7950882e5 100644 --- a/data/qcsrc/menu/nexuiz/dialog_multiplayer.c +++ b/data/qcsrc/menu/nexuiz/dialog_multiplayer.c @@ -16,10 +16,12 @@ void fillNexuizMultiplayerDialog(entity me) mc = makeNexuizTabController(me.rows - 2); me.TR(me); me.TD(me, 1, 1, e = mc.makeTabButton(mc, "Join", makeNexuizServerListTab())); + setDependentStringNotEqual(e, "_cl_name", "Player"); me.TD(me, 1, 1, e = mc.makeTabButton(mc, "Player Setup", makeNexuizPlayerSettingsTab())); - if(cvar_string("_cl_name") == "Player") - e.onClick(e, e.onClickEntity); // lol animation + if(cvar_string("_cl_name") == "Player") + e.onClick(e, e.onClickEntity); // lol animation me.TD(me, 1, 1, e = mc.makeTabButton(mc, "Create", makeNexuizServerCreateTab())); + setDependentStringNotEqual(e, "_cl_name", "Player"); me.TR(me); me.TR(me); me.TD(me, me.rows - 2, me.columns, mc); diff --git a/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c b/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c index 898ac4fa2..c720ae441 100644 --- a/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c +++ b/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c @@ -1,10 +1,13 @@ #ifdef INTERFACE CLASS(NexuizPlayerSettingsTab) EXTENDS(NexuizTab) METHOD(NexuizPlayerSettingsTab, fill, void(entity)) + METHOD(NexuizPlayerSettingsTab, draw, void(entity)) ATTRIB(NexuizPlayerSettingsTab, title, string, "Player Setup") ATTRIB(NexuizPlayerSettingsTab, intendedWidth, float, 0.9) ATTRIB(NexuizPlayerSettingsTab, rows, float, 22) ATTRIB(NexuizPlayerSettingsTab, columns, float, 6.5) + ATTRIB(NexuizPlayerSettingsTab, playerNameLabel, entity, NULL) + ATTRIB(NexuizPlayerSettingsTab, playerNameLabelAlpha, float, 0) ENDCLASS(NexuizPlayerSettingsTab) entity makeNexuizPlayerSettingsTab(); #endif @@ -17,13 +20,22 @@ entity makeNexuizPlayerSettingsTab() me.configureDialog(me); return me; } +void drawNexuizPlayerSettingsTab(entity me) +{ + if(cvar_string("_cl_name") == "Player") + me.playerNameLabel.alpha = ((mod(time * 2, 2) < 1) ? 1 : 0); + else + me.playerNameLabel.alpha = me.playerNameLabelAlpha; + drawContainer(me); +} void fillNexuizPlayerSettingsTab(entity me) { entity e, pms, sl; float i, n; me.TR(me); - me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Player Name:")); + me.TD(me, 1, 1, me.playerNameLabel = makeNexuizTextLabel(0, "Player Name:")); + me.playerNameLabelAlpha = me.playerNameLabel.alpha; me.TD(me, 1, 2, e = makeNexuizInputBox(1, "_cl_name")); e.forbiddenCharacters = "\r\n\\\""; // don't care, isn't getting saved me.TR(me); diff --git a/data/qcsrc/menu/nexuiz/util.qc b/data/qcsrc/menu/nexuiz/util.qc index bc155ae9b..7eaf7947c 100644 --- a/data/qcsrc/menu/nexuiz/util.qc +++ b/data/qcsrc/menu/nexuiz/util.qc @@ -34,21 +34,35 @@ void loadAllCvars(entity root) .float cvar2Min_setDependent; .float cvar2Max_setDependent; .float op_setDependent; +.string cvarString_setDependent; +.string cvarValue_setDependent; void setDependent_Check(entity e) { float f; - f = cvar(e.cvar_setDependent); - if(e.cvarMin_setDependent <= e.cvarMax_setDependent) - e.disabled = ((f < e.cvarMin_setDependent) || (f > e.cvarMax_setDependent)); + string s; + if(e.cvarString_setDependent) + { + s = cvar_string(e.cvarString_setDependent); + e.disabled = (cvar_string(e.cvarString_setDependent) == e.cvarValue_setDependent); + } else - e.disabled = ((f >= e.cvarMax_setDependent) && (f <= e.cvarMin_setDependent)); - if(e.cvar2_setDependent) { - f = cvar(e.cvar2_setDependent); - if(e.cvar2Min_setDependent <= e.cvar2Max_setDependent) - e.disabled = (e.disabled + ((f < e.cvar2Min_setDependent) || (f > e.cvar2Max_setDependent)) > e.op_setDependent); - else - e.disabled = (e.disabled + ((f >= e.cvar2Max_setDependent) && (f <= e.cvar2Min_setDependent)) > e.op_setDependent); + if(e.cvar_setDependent) + { + f = cvar(e.cvar_setDependent); + if(e.cvarMin_setDependent <= e.cvarMax_setDependent) + e.disabled = ((f < e.cvarMin_setDependent) || (f > e.cvarMax_setDependent)); + else + e.disabled = ((f >= e.cvarMax_setDependent) && (f <= e.cvarMin_setDependent)); + } + if(e.cvar2_setDependent) + { + f = cvar(e.cvar2_setDependent); + if(e.cvar2Min_setDependent <= e.cvar2Max_setDependent) + e.disabled = (e.disabled + ((f < e.cvar2Min_setDependent) || (f > e.cvar2Max_setDependent)) > e.op_setDependent); + else + e.disabled = (e.disabled + ((f >= e.cvar2Max_setDependent) && (f <= e.cvar2Min_setDependent)) > e.op_setDependent); + } } } void setDependent_Draw(entity e) @@ -66,6 +80,16 @@ void setDependent(entity e, string theCvarName, float theCvarMin, float theCvarM e.draw = setDependent_Draw; setDependent_Check(e); } +void setDependentStringNotEqual(entity e, string theCvarName, string theCvarValue) +{ + e.draw_setDependent = e.draw; + e.cvarString_setDependent = theCvarName; + e.cvarValue_setDependent = theCvarValue; + e.cvar_setDependent = string_null; + e.cvar2_setDependent = string_null; + e.draw = setDependent_Draw; + setDependent_Check(e); +} void setDependentAND(entity e, string theCvarName, float theCvarMin, float theCvarMax, string theCvar2Name, float theCvar2Min, float theCvar2Max) { e.draw_setDependent = e.draw; diff --git a/data/qcsrc/menu/nexuiz/util.qh b/data/qcsrc/menu/nexuiz/util.qh index 4abf49ca4..ee23bfb50 100644 --- a/data/qcsrc/menu/nexuiz/util.qh +++ b/data/qcsrc/menu/nexuiz/util.qh @@ -5,3 +5,4 @@ void loadAllCvars(entity root); 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 setDependentStringNotEqual(entity e, string theCvarName, string theCvarValue); -- 2.39.2