r6090 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Mar 9 10:34:23 EDT 2009


Author: div0
Date: 2009-03-09 10:34:23 -0400 (Mon, 09 Mar 2009)
New Revision: 6090

Modified:
   trunk/data/qcsrc/server/cl_weaponsystem.qc
   trunk/data/qcsrc/server/g_hook.qc
Log:
shootfromcenter: try to display the weapon model in the middle of the screen to show to the player that this mode is active (fails for minstanex and seeker, needs model fixes)


Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc	2009-03-09 13:26:07 UTC (rev 6089)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc	2009-03-09 14:34:23 UTC (rev 6090)
@@ -45,7 +45,7 @@
 	if (cvar("g_shootfromeye"))
 		w_shotorg = ent.origin + ent.view_ofs;
 	else if (cvar("g_shootfromcenter"))
-		w_shotorg = ent.origin + ent.view_ofs + '0 0 1' * vecs_z;
+		w_shotorg = ent.origin + ent.view_ofs + v_up * vecs_z;
 	else
 		w_shotorg = ent.origin + ent.view_ofs + v_right * vecs_y + v_up * vecs_z;
 	// now move the shotorg forward as much as requested if possible
@@ -277,6 +277,26 @@
 			setmodel(self, strcat("models/weapons/w_", self.owner.weaponname, ".zym")); // precision set below
 		else
 			self.model = "";
+
+		if(cvar("g_shootfromcenter") || cvar("g_shootfromeye"))
+		{
+			entity e;
+			e = spawn();
+			e.modelindex = self.modelindex;
+			float idx;
+			vector v;
+			idx = gettagindex(e, "bone02");
+			if(idx)
+			{
+				v = gettaginfo(e, idx);
+				setorigin(self, '0 -1 0' * v_y);
+			}
+			else
+				setorigin(self, '0 0 0');
+			remove(e);
+		}
+		else
+			setorigin(self, '0 0 0');
 	}
 
 	tb = (self.effects & EF_TELEPORT_BIT);
@@ -369,7 +389,6 @@
 	self.weaponentity.think = CL_Weaponentity_Think;
 	self.weaponentity.customizeentityforclient = CL_Weaponentity_CustomizeEntityForClient;
 	self.weaponentity.nextthink = time;
-	self.weaponentity.scale = 0.61;
 
 	self.exteriorweaponentity = spawn();
 	self.exteriorweaponentity.classname = "exteriorweaponentity";

Modified: trunk/data/qcsrc/server/g_hook.qc
===================================================================
--- trunk/data/qcsrc/server/g_hook.qc	2009-03-09 13:26:07 UTC (rev 6089)
+++ trunk/data/qcsrc/server/g_hook.qc	2009-03-09 14:34:23 UTC (rev 6090)
@@ -470,7 +470,13 @@
 	if(g_grappling_hook)
 		hook_shotorigin = '8 -8 -12';
 	else
+	{
 		hook_shotorigin = '21 8 -8.5';
+		if(cvar("g_shootfromcenter"))
+			hook_shotorigin_y = 0;
+		if(cvar("g_shootfromeye"))
+			hook_shotorigin_y = hook_shotorigin_z = 0;
+	}
 }
 
 void SetGrappleHookBindings()




More information about the nexuiz-commits mailing list