[nexuiz-commits] r7467 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Aug 19 09:06:25 EDT 2009


Author: div0
Date: 2009-08-19 09:06:23 -0400 (Wed, 19 Aug 2009)
New Revision: 7467

Modified:
   trunk/data/qcsrc/server/miscfunctions.qc
Log:
allow cl_gunalign settings for VISUAL-ONLY shot origin in shootfromcenter and shootfromeye


Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2009-08-19 12:52:48 UTC (rev 7466)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2009-08-19 13:06:23 UTC (rev 7467)
@@ -2184,6 +2184,34 @@
                  " ", ftos(tstart), " ", ftos(dt), "\n"));
 }
 
+vector shotorg_adjustfromclient(vector vecs, float y_is_right, float allowcenter)
+{
+	switch(self.owner.cvar_cl_gunalign)
+	{
+		case 1: // right
+			break;
+
+		case 2: // left
+			vecs_y = -vecs_y;
+			break;
+
+		default:
+		case 3:
+			if(allowcenter) // 2: allow center handedness
+			{
+				// center
+				vecs_y = 0;
+				vecs_z -= 4;
+			}
+			else
+			{
+				// right
+			}
+			break;
+	}
+	return vecs;
+}
+
 vector shotorg_adjust(vector vecs, float y_is_right, float visual)
 {
 	string s;
@@ -2191,36 +2219,13 @@
 
 	if (cvar("g_shootfromclient"))
 	{
-		switch(self.owner.cvar_cl_gunalign)
-		{
-			case 1: // right
-				break;
-
-			case 2: // left
-				vecs_y = -vecs_y;
-				break;
-
-			default:
-			case 3:
-				if(cvar("g_shootfromclient") >= 2) // 2: allow center handedness
-				{
-					// center
-					vecs_y = 0;
-					vecs_z -= 4;
-				}
-				else
-				{
-					// right
-				}
-				break;
-		}
+		return shotorg_adjustfromclient(vecs, y_is_right, (cvar("g_shootfromclient") >= 2));
 	}
 	else if (cvar("g_shootfromeye"))
 	{
 		if (visual)
 		{
-			vecs_y = 0;
-			vecs_z -= 4;
+			vecs = return shotorg_adjustfromclient(vecs, y_is_right, TRUE);
 		}
 		else
 		{
@@ -2230,8 +2235,15 @@
 	}
 	else if (cvar("g_shootfromcenter"))
 	{
-		vecs_y = 0;
-		vecs_z -= 4;
+		if (visual)
+		{
+			vecs = return shotorg_adjustfromclient(vecs, y_is_right, TRUE);
+		}
+		else
+		{
+			vecs_y = 0;
+			vecs_z -= 4;
+		}
 	}
 	else if ((s = cvar_string("g_shootfromfixedorigin")) != "")
 	{



More information about the nexuiz-commits mailing list