r5495 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Jan 12 04:17:48 EST 2009


Author: div0
Date: 2009-01-12 04:17:42 -0500 (Mon, 12 Jan 2009)
New Revision: 5495

Modified:
   trunk/data/qcsrc/server/constants.qh
   trunk/data/qcsrc/server/t_items.qc
Log:
improved weapon stay mode so it no longer affects the porto


Modified: trunk/data/qcsrc/server/constants.qh
===================================================================
--- trunk/data/qcsrc/server/constants.qh	2009-01-12 09:10:27 UTC (rev 5494)
+++ trunk/data/qcsrc/server/constants.qh	2009-01-12 09:17:42 UTC (rev 5495)
@@ -19,6 +19,7 @@
 float	FL_POWERUP				= 16384;
 float	FL_PROJECTILE				= 32768;
 float	FL_TOSSED				= 65536;
+float   FL_NO_WEAPON_STAY       = 131072;
 
 float	MOVETYPE_NONE				= 0;
 float	MOVETYPE_ANGLENOCLIP			= 1;

Modified: trunk/data/qcsrc/server/t_items.qc
===================================================================
--- trunk/data/qcsrc/server/t_items.qc	2009-01-12 09:10:27 UTC (rev 5494)
+++ trunk/data/qcsrc/server/t_items.qc	2009-01-12 09:17:42 UTC (rev 5495)
@@ -109,11 +109,19 @@
 	else
 	{
 		if (g_weapon_stay == 1)
+		if not(item.flags & FL_NO_WEAPON_STAY)
+		if (item.flags & FL_WEAPON)
 		{
-			if (item.flags & FL_WEAPON && player.weapons & item.weapons && item.classname != "droppedweapon")
-				goto skip;
-			if (player.weapons & item.weapons && item.flags & FL_TOSSED)	// don't let players stack ammo by tossing weapons
-				goto skip;
+			if(item.classname == "droppedweapon")
+			{
+				if (player.weapons & item.weapons)	// don't let players stack ammo by tossing weapons
+					goto skip;
+			}
+			else
+			{
+				if (player.weapons & item.weapons)
+					goto skip;
+			}
 		}
 
 		// in case the player has autoswitch enabled do the following:
@@ -239,7 +247,7 @@
 
 	if (self.classname == "droppedweapon")
 		remove (self);
-	else if((self.flags & FL_WEAPON) && !self.team && g_weapon_stay)
+	else if((self.flags & FL_WEAPON) && !(self.flags & FL_NO_WEAPON_STAY) && g_weapon_stay)
 		return;
 	else
 	{
@@ -687,7 +695,15 @@
 		if(!self.ammofield)
 			self.ammofield = cvar(strcat("g_pickup_", Item_CounterFieldName(e.items)));
 	}
+	else
+	{
+		self.flags |= FL_NO_WEAPON_STAY;
+	}
 
+	// weapon stay isn't supported for teamed weapons
+	if(self.team)
+		self.flags |= FL_NO_WEAPON_STAY;
+
 	if(g_weapon_stay == 2)
 	{
 		self.ammo_shells = 0;




More information about the nexuiz-commits mailing list