r5832 - in trunk/data: . gfx gfx/keys qcsrc/client qcsrc/common qcsrc/menu/nexuiz qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Feb 11 03:10:21 EST 2009


Author: div0
Date: 2009-02-11 03:10:12 -0500 (Wed, 11 Feb 2009)
New Revision: 5832

Added:
   trunk/data/gfx/keys/
   trunk/data/gfx/keys/key_backward.tga
   trunk/data/gfx/keys/key_bg.tga
   trunk/data/gfx/keys/key_crouch.tga
   trunk/data/gfx/keys/key_forward.tga
   trunk/data/gfx/keys/key_jump.tga
   trunk/data/gfx/keys/key_left.tga
   trunk/data/gfx/keys/key_right.tga
Modified:
   trunk/data/defaultNexuiz.cfg
   trunk/data/qcsrc/client/View.qc
   trunk/data/qcsrc/client/sbar.qc
   trunk/data/qcsrc/common/constants.qh
   trunk/data/qcsrc/menu/nexuiz/dialog_settings_input.c
   trunk/data/qcsrc/server/cl_client.qc
   trunk/data/qcsrc/server/constants.qh
   trunk/data/qcsrc/server/defs.qh
   trunk/data/qcsrc/server/g_world.qc
Log:
showpressedkeys.

But... don't use a SLIDER for such a setting. Either make it radio buttons, or a single checkbox.


Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2009-02-11 07:41:22 UTC (rev 5831)
+++ trunk/data/defaultNexuiz.cfg	2009-02-11 08:10:12 UTC (rev 5832)
@@ -27,7 +27,7 @@
 seta g_configversion 0
 
 // default.cfg versioning (update using update-cvarcount.sh, run that every time after adding a new cvar)
-set cvar_check_default 9351678ef3ad9cea04f929f91bca7684
+set cvar_check_default 1e27a8f2f0ba60542af81e2272d39ad7
 
 // Nexuiz version (formatted for machines)
 // used to determine if a client version is compatible
@@ -1291,7 +1291,7 @@
 seta cl_teamradar_scale 4096
 seta cl_teamradar_rotation 0	"rotation mode: you set what points up. 0 = player, 1 = west, 2 = south, 3 = east, 4 = north"
 seta cl_teamradar_size "128 128"
-seta cl_teamradar_position "0 0" "1 1 would be lower right corner, 0.5 0.5 the center (ARGH) :P"
+seta cl_teamradar_position "0 0" "1 0 would be upper right corner, 0.5 0.5 the center"
 seta cl_teamradar_zoommode 0	"zoom mode: 0 = zoomed by default, 1 = zoomed when +zoom, 2 = always zoomed, 3 = always zoomed out"
 alias cl_teamradar_rotate "toggle cl_teamradar_rotation 0 1 2 3 4"
 
@@ -1410,3 +1410,6 @@
 seta cl_gentle 0	"client side gentle mode (only replaces gibs)"
 
 seta sbar_increment_maptime 0 // set to 1 if you prefer an increasing timer
+
+seta cl_showpressedkeys	0	"Show which movement keys someone is pressing: 1 for spectating, 2 for always"
+set cl_showpressedkeys_position "1 0.8"	"1 0 would be upper right corner, 0.5 0.5 the center"

Added: trunk/data/gfx/keys/key_backward.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/gfx/keys/key_backward.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/gfx/keys/key_bg.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/gfx/keys/key_bg.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/gfx/keys/key_crouch.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/gfx/keys/key_crouch.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/gfx/keys/key_forward.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/gfx/keys/key_forward.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/gfx/keys/key_jump.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/gfx/keys/key_jump.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/gfx/keys/key_left.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/gfx/keys/key_left.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/gfx/keys/key_right.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/gfx/keys/key_right.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/data/qcsrc/client/View.qc
===================================================================
--- trunk/data/qcsrc/client/View.qc	2009-02-11 07:41:22 UTC (rev 5831)
+++ trunk/data/qcsrc/client/View.qc	2009-02-11 08:10:12 UTC (rev 5832)
@@ -413,6 +413,12 @@
 			teamradar_view();
 	}
 
+	if (cvar("cl_showpressedkeys")) // draw pressed keys when spectating and playing
+	{
+		if(spectatee_status > 0 || cvar("cl_showpressedkeys") >= 2)
+			Sbar_DrawPressedKeys();
+	}
+
 	// draw sbar
 	if(cvar("r_letterbox") == 0)
 	if(cvar("viewsize") < 120)

Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc	2009-02-11 07:41:22 UTC (rev 5831)
+++ trunk/data/qcsrc/client/sbar.qc	2009-02-11 08:10:12 UTC (rev 5832)
@@ -1703,6 +1703,30 @@
 	return offset + sbar_fontsize_y * '0 1 0';
 }
 
+void Sbar_DrawPressedKeys(void)
+{
+	vector pos, bgsize;
+	float center_y;
+	float pressedkeys;
+	
+	pos = stov(cvar_string("cl_showpressedkeys_position"));
+
+	bgsize = '126 75 0';
+
+	pos = '1 0 0' * (vid_conwidth - bgsize_x) * pos_x
+	    + '0 1 0' * (vid_conheight - bgsize_y) * pos_y;
+	pos -= '-15 -6 0'; // adjust to the origin of these numbers
+	
+	pressedkeys = getstatf(STAT_PRESSED_KEYS);
+	drawpic(pos + '-15   -6   0', "gfx/keys/key_bg.tga",           bgsize, '1 1 1', .1, DRAWFLAG_NORMAL);
+	drawpic(pos + ' 83.5  9   0', "gfx/keys/key_crouch.tga",   ' 24 24 0', '1 1 1', .5 * ((pressedkeys & KEY_CROUCH) + 1), DRAWFLAG_NORMAL);
+	drawpic(pos + ' 32   -1.5 0', "gfx/keys/key_forward.tga",  ' 32 32 0', '1 1 1', .5 * ((pressedkeys & KEY_FORWARD) + 1), DRAWFLAG_NORMAL);
+	drawpic(pos + '-11.5  9   0', "gfx/keys/key_jump.tga",     ' 24 24 0', '1 1 1', .5 * ((pressedkeys & KEY_JUMP) + 1), DRAWFLAG_NORMAL);
+	drawpic(pos + ' -1   32   0', "gfx/keys/key_left.tga",     ' 32 32 0', '1 1 1', .5 * ((pressedkeys & KEY_LEFT) + 1), DRAWFLAG_NORMAL);
+	drawpic(pos + ' 32   32   0', "gfx/keys/key_backward.tga", ' 32 32 0', '1 1 1', .5 * ((pressedkeys & KEY_BACKWARD) + 1), DRAWFLAG_NORMAL);
+	drawpic(pos + ' 65   32   0', "gfx/keys/key_right.tga",    ' 32 32 0', '1 1 1', .5 * ((pressedkeys & KEY_RIGHT) + 1), DRAWFLAG_NORMAL);
+}
+
 void Sbar_Draw (void)
 {
 	float i;

Modified: trunk/data/qcsrc/common/constants.qh
===================================================================
--- trunk/data/qcsrc/common/constants.qh	2009-02-11 07:41:22 UTC (rev 5831)
+++ trunk/data/qcsrc/common/constants.qh	2009-02-11 08:10:12 UTC (rev 5832)
@@ -214,6 +214,15 @@
 const float K_MOUSE16		=	529;
 
 ///////////////////////////
+// keys pressed
+const float KEY_FORWARD		=	1;
+const float KEY_BACKWARD	=	2;
+const float KEY_LEFT		=	4;
+const float KEY_RIGHT		=	8;
+const float KEY_JUMP		=	16;
+const float KEY_CROUCH		=	32;
+
+///////////////////////////
 // cvar constants
 
 float CVAR_SAVE 	= 1;
@@ -231,6 +240,7 @@
 const float STAT_GAMESTARTTIME = 37;
 const float STAT_STRENGTH_FINISHED = 38;
 const float STAT_INVINCIBLE_FINISHED = 39;
+const float STAT_PRESSED_KEYS = 42;
 const float CTF_STATE_ATTACK = 1;
 const float CTF_STATE_DEFEND = 2;
 const float CTF_STATE_COMMANDER = 3;

Modified: trunk/data/qcsrc/menu/nexuiz/dialog_settings_input.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/dialog_settings_input.c	2009-02-11 07:41:22 UTC (rev 5831)
+++ trunk/data/qcsrc/menu/nexuiz/dialog_settings_input.c	2009-02-11 08:10:12 UTC (rev 5832)
@@ -71,5 +71,9 @@
 			e.addValue(e, "Short", "1");
 			e.addValue(e, "Long", "2");
 			e.configureNexuizTextSliderValues(e);
+	me.TR(me);
+		me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "cl_showpressedkeys", "Show pressed keys"));
+			e.noValue = 0;
+			e.yesValue = 2;
 }
 #endif

Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc	2009-02-11 07:41:22 UTC (rev 5831)
+++ trunk/data/qcsrc/server/cl_client.qc	2009-02-11 08:10:12 UTC (rev 5832)
@@ -1766,6 +1766,49 @@
 	zoomstate_set = 1;
 }
 
+void GetPressedKeys(void) {
+	if (self.movement_x > 0) // get if movement keys are pressed
+	{	// forward key pressed
+		self.pressedkeys |= KEY_FORWARD;
+		self.pressedkeys &~= KEY_BACKWARD;
+	}
+	else if (self.movement_x < 0)
+	{	// backward key pressed
+		self.pressedkeys |= KEY_BACKWARD;
+		self.pressedkeys &~= KEY_FORWARD;
+	}
+	else
+	{	// no x input
+		self.pressedkeys &~= KEY_FORWARD;
+		self.pressedkeys &~= KEY_BACKWARD;
+	}
+	
+	if (self.movement_y > 0)
+	{	// right key pressed
+		self.pressedkeys |= KEY_RIGHT;
+		self.pressedkeys &~= KEY_LEFT;
+	}
+	else if (self.movement_y < 0)
+	{	// left key pressed
+		self.pressedkeys |= KEY_LEFT;
+		self.pressedkeys &~= KEY_RIGHT;
+	}
+	else
+	{	// no y input
+		self.pressedkeys &~= KEY_RIGHT;
+		self.pressedkeys &~= KEY_LEFT;
+	}
+	
+	if (self.BUTTON_JUMP) // get if jump and crouch keys are pressed
+		self.pressedkeys |= KEY_JUMP;
+	else
+		self.pressedkeys &~= KEY_JUMP;
+	if (self.BUTTON_CROUCH)
+		self.pressedkeys |= KEY_CROUCH;
+	else
+		self.pressedkeys &~= KEY_CROUCH;
+}
+
 /*
 ======================
 spectate mode routines
@@ -1781,6 +1824,7 @@
 	self.items = spectatee.items;
 	self.strength_finished = spectatee.strength_finished;
 	self.invincible_finished = spectatee.invincible_finished;
+	self.pressedkeys = spectatee.pressedkeys;
 	self.weapons = spectatee.weapons;
 	self.switchweapon = spectatee.switchweapon;
 	self.weapon = spectatee.weapon;
@@ -2449,7 +2493,7 @@
 					self.race_penalty_nagged = 0;
 				}
 			}
-		
+		GetPressedKeys();
 	} else if (self.classname == "observer") {
 		//do nothing
 	} else if (self.classname == "spectator") {

Modified: trunk/data/qcsrc/server/constants.qh
===================================================================
--- trunk/data/qcsrc/server/constants.qh	2009-02-11 07:41:22 UTC (rev 5831)
+++ trunk/data/qcsrc/server/constants.qh	2009-02-11 08:10:12 UTC (rev 5832)
@@ -1,4 +1,4 @@
-string CVAR_CHECK_DEFAULT = "9351678ef3ad9cea04f929f91bca7684";
+string CVAR_CHECK_DEFAULT = "1e27a8f2f0ba60542af81e2272d39ad7";
 string CVAR_CHECK_WEAPONS = "4cd91ef6c8a9627168a5e85f581e1e0f";
 
 float	FALSE					= 0;

Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh	2009-02-11 07:41:22 UTC (rev 5831)
+++ trunk/data/qcsrc/server/defs.qh	2009-02-11 08:10:12 UTC (rev 5832)
@@ -492,6 +492,7 @@
 .float stat_sys_ticrate;
 .float phase;
 .float weapons;
+.float pressedkeys;
 
 .float porto_forbidden;
 

Modified: trunk/data/qcsrc/server/g_world.qc
===================================================================
--- trunk/data/qcsrc/server/g_world.qc	2009-02-11 07:41:22 UTC (rev 5831)
+++ trunk/data/qcsrc/server/g_world.qc	2009-02-11 08:10:12 UTC (rev 5832)
@@ -547,6 +547,8 @@
 	addstat(STAT_STRENGTH_FINISHED, AS_FLOAT, strength_finished);
 	addstat(STAT_INVINCIBLE_FINISHED, AS_FLOAT, invincible_finished);
 
+	addstat(STAT_PRESSED_KEYS, AS_FLOAT, pressedkeys);
+
 	next_pingtime = time + 5;
 	InitializeEntity(self, cvar_changes_init, INITPRIO_CVARS);
 




More information about the nexuiz-commits mailing list