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