From: FruitieX <fruitiex@gmail.com>
Date: Mon, 22 Nov 2010 16:15:23 +0000 (+0200)
Subject: add a cl_cmd cl_vyes/vno command for checking whether a vote should go through the... 
X-Git-Tag: xonotic-v0.1.0preview~80^2~6
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=6fb2b44d058723970f9fa565ed1c905e44a19cf1;p=xonotic%2Fxonotic-data.pk3dir.git

add a cl_cmd cl_vyes/vno command for checking whether a vote should go through the uid2name screen or as a normal vyes/vno
---

diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg
index 25e3209cd..90f4849d3 100644
--- a/defaultXonotic.cfg
+++ b/defaultXonotic.cfg
@@ -1074,8 +1074,8 @@ alias vdoend "vdo endmatch"
 
 alias lsmaps "cmd lsmaps" // lists all maps on server (for vmap, suggestmap, vnextmap)
 alias lsnewmaps "cmd lsnewmaps" // lists all maps on server that do not yet have a record set (race/cts)
-bind F1 vyes
-bind F2 vno
+bind F1 cl_vyes
+bind F2 cl_vno
 
 //used for spectate/observer mode
 alias spec "cmd spectate"
diff --git a/keybinds.txt b/keybinds.txt
index 028547ac2..7738584dd 100644
--- a/keybinds.txt
+++ b/keybinds.txt
@@ -38,8 +38,8 @@
 "messagemode"                           "public chat"
 "messagemode2"                          "team chat"
 "+con_chat_maximize"                    "show chat history"
-"vyes"                                  "vote YES"
-"vno"                                   "vote NO"
+"cl_cmd cl_vyes"                        "vote YES"
+"cl_cmd cl_vno"                         "vote NO"
 "ready"                                 "ready"
 ""                                      ""
 ""                                      "Client"
diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc
index ced8061ba..24ab85585 100644
--- a/qcsrc/client/Main.qc
+++ b/qcsrc/client/Main.qc
@@ -608,6 +608,35 @@ void GameCommand(string msg)
 		e.draw = DrawDebugModel;
 		e.classname = "debugmodel";
 	}
+    else if(cmd == "cl_vyes")
+    {
+        if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE) && panel_fg_alpha && !scoreboard_active) // don't lock keys before we actually see what's going on
+        {
+            vote_active = 0; // force the panel to disappear right as we have selected the value (to prevent it from fading out in the normal vote panel pos)
+            vote_prev = 0;
+            cvar_set("cl_allow_uid2name", "1");
+            vote_change = -9999;
+        }
+        else
+        {
+            localcmd("vyes\n");
+        }
+    }
+    else if(cmd == "cl_vno")
+    {
+        if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE) && panel_fg_alpha && !scoreboard_active) // don't lock keys before we actually see what's going on
+        {
+            vote_active = 0;
+            vote_prev = 0;
+            cvar_set("cl_allow_uid2name", "0");
+            vote_change = -9999;
+        }
+        else
+        {
+            localcmd("vno\n");
+        }
+    }
+
 	else
 	{
 		print("Invalid command. For a list of supported commands, try cl_cmd help.\n");
@@ -627,56 +656,6 @@ float CSQC_InputEvent(float bInputType, float nPrimary, float nSecondary)
 	local float bSkipKey;
 	bSkipKey = false;
 
-	if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE) && panel_fg_alpha && !scoreboard_active) // don't lock keys before we actually see what's going on
-	{
-		/*
-		string vyes_keys;
-		float keys;
-		vyes_keys = findkeysforcommand("vyes");
-		keys = tokenize(vyes_keys);
-
-		float i;
-		for (i = 0; i < keys; ++i)
-		{
-			print(ftos(nPrimary), " ", argv(i), "\n"); 
-			if(nPrimary == stof(argv(i)))
-			{
-				vote_active = 0;
-				cvar_set("cl_allow_uid2name", "1");
-				return TRUE;
-			}
-		}
-
-		string vno_keys;
-		vno_keys = findkeysforcommand("vno");
-		keys = tokenize(vno_keys);
-
-		float i;
-		for (i = 0; i < keys; ++i)
-		{
-			if(nPrimary == stof(argv(i)))
-			{
-				vote_active = 0;
-				cvar_set("cl_allow_uid2name", "0");
-				return TRUE;
-			}
-		}
-		*/ // If only I could grab F1-F12 in CSQC... but no
-
-		if(nPrimary == 121) // ascii value for y
-		{
-			vote_active = 0;
-			cvar_set("cl_allow_uid2name", "1");
-			return TRUE;
-		}
-		else if(nPrimary == 110) // ascii value for n
-		{
-			vote_active = 0;
-			cvar_set("cl_allow_uid2name", "0");
-			return TRUE;
-		}
-	}
-
 	if (HUD_Panel_InputEvent(bInputType, nPrimary, nSecondary))
 		return true;
 
diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc
index f77f1c1c1..7419f52b8 100644
--- a/qcsrc/client/hud.qc
+++ b/qcsrc/client/hud.qc
@@ -3893,9 +3893,6 @@ void HUD_VoteWindow(void)
 
 	active_panel = HUD_PANEL_VOTE;
 	HUD_Panel_UpdateCvars(vote);
-	vector pos, mySize;
-	pos = panel_pos;
-	mySize = panel_size;
 
 	if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE))
 	{
@@ -3903,6 +3900,11 @@ void HUD_VoteWindow(void)
 		panel_size = eX * 0.4 * vid_conwidth + eY * 0.3 * vid_conheight;
 	}
 
+    // these must be below above block
+	vector pos, mySize;
+	pos = panel_pos;
+	mySize = panel_size;
+
 	a = vote_alpha * bound(cvar("hud_panel_vote_alreadyvoted_alpha"), 1 - vote_highlighted, 1);
 	HUD_Panel_DrawBg(a);
 	a = panel_fg_alpha * a;
@@ -3941,13 +3943,9 @@ void HUD_VoteWindow(void)
 	drawcolorcodedstring_aspect(pos + eY * (2/8) * mySize_y, s, eX * mySize_x + eY * (1.75/8) * mySize_y, a, DRAWFLAG_NORMAL);
 
 	// print the yes/no counts
-	s = strcat("Yes (", getcommandkey("vyes", "vyes"), "): ", ftos(vote_yescount));
-	if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE))
-		s = strcat("Yes: (press y)");
+    s = strcat("Yes (", getcommandkey("cl_cmd cl_vyes", "cl_cmd cl_vyes"), "): ", ftos(vote_yescount));
 	drawstring_aspect(pos + eY * (4/8) * mySize_y, s, eX * 0.5 * mySize_x + eY * (1.5/8) * mySize_y, '0 1 0', a, DRAWFLAG_NORMAL);
-	s = strcat("No (", getcommandkey("vno", "vno"), "): ", ftos(vote_nocount));
-	if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE))
-		s = strcat("No: (press n)");
+    s = strcat("No (", getcommandkey("cl_cmd cl_vno", "cl_cmd cl_vno"), "): ", ftos(vote_nocount));
 	drawstring_aspect(pos + eX * 0.5 * mySize_x + eY * (4/8) * mySize_y, s, eX * 0.5 * mySize_x + eY * (1.5/8) * mySize_y, '1 0 0', a, DRAWFLAG_NORMAL);
 
 	// draw the progress bar backgrounds