From: Rudolf Polzer <divverent@alientrap.org>
Date: Tue, 9 Nov 2010 19:29:10 +0000 (+0100)
Subject: handle running out of crylink ammo better
X-Git-Tag: xonotic-v0.1.0preview~175
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=bb75b98315e73b476d074f86fdee46888d8d56d3;p=xonotic%2Fxonotic-data.pk3dir.git

handle running out of crylink ammo better
---

diff --git a/qcsrc/server/w_crylink.qc b/qcsrc/server/w_crylink.qc
index de5abb1fd..ce68dbeba 100644
--- a/qcsrc/server/w_crylink.qc
+++ b/qcsrc/server/w_crylink.qc
@@ -482,8 +482,14 @@ float w_crylink(float req)
 					linkjoineffect.owner = self;
 					setorigin(linkjoineffect, pos);
 				}
+				self.crylink_waitrelease = 0;
+				if(!w_crylink(WR_CHECKAMMO1) && !w_crylink(WR_CHECKAMMO2))
+				{
+					// ran out of ammo!
+					self.cnt = WEP_CRYLINK;
+					self.switchweapon = w_getbestweapon(self);
+				}
 			}
-			self.crylink_waitrelease = 0;
 		}
 	}
 	else if (req == WR_PRECACHE)
@@ -498,9 +504,19 @@ float w_crylink(float req)
 	else if (req == WR_SETUP)
 		weapon_setup(WEP_CRYLINK);
 	else if (req == WR_CHECKAMMO1)
+	{
+		// don't "run out of ammo" and switch weapons while waiting for release
+		if(self.crylink_lastgroup && self.crylink_waitrelease)
+			return TRUE;
 		return self.ammo_cells >= cvar("g_balance_crylink_primary_ammo");
+	}
 	else if (req == WR_CHECKAMMO2)
+	{
+		// don't "run out of ammo" and switch weapons while waiting for release
+		if(self.crylink_lastgroup && self.crylink_waitrelease)
+			return TRUE;
 		return self.ammo_cells >= cvar("g_balance_crylink_secondary_ammo");
+	}
 	return TRUE;
 };
 #endif