From: Rudolf Polzer <divverent@alientrap.org>
Date: Sun, 26 Dec 2010 21:31:00 +0000 (+0100)
Subject: make sure an animtime of the electro always starts when RELEASING the button
X-Git-Tag: xonotic-v0.5.0~330^2~14^2~11
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c8d0ba570569fcd945533f807dc826a1162465a7;p=xonotic%2Fxonotic-data.pk3dir.git

make sure an animtime of the electro always starts when RELEASING the button
---

diff --git a/qcsrc/server/w_electro.qc b/qcsrc/server/w_electro.qc
index a25d26631..2a6b1f393 100644
--- a/qcsrc/server/w_electro.qc
+++ b/qcsrc/server/w_electro.qc
@@ -378,6 +378,15 @@ float w_electro(float req)
 	{
 		if (self.BUTTON_ATCK)
 		{
+			if(autocvar_g_balance_electro_lightning)
+				if(self.BUTTON_ATCK_prev)
+				{
+					// prolong the animtime while the gun is being fired
+					if(self.animstate_startframe == self.anim_shoot_x && self.animstate_numframes == self.anim_shoot_y)
+						weapon_thinkf(WFRAME_DONTCHANGE, autocvar_g_balance_electro_primary_animtime, w_ready);
+					else
+						weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_electro_primary_animtime, w_ready);
+				}
 			if (weapon_prepareattack(0, (autocvar_g_balance_electro_lightning ? 0 : autocvar_g_balance_electro_primary_refire)))
 			{
 				if(autocvar_g_balance_electro_lightning)
@@ -386,19 +395,24 @@ float w_electro(float req)
 					{
 						W_Electro_Attack3();
 					}
-					self.BUTTON_ATCK_prev = 1;
+					if(!self.BUTTON_ATCK_prev)
+					{
+						weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_electro_primary_animtime, w_ready);
+						self.BUTTON_ATCK_prev = 1;
+					}
 				}
 				else
 				{
 					W_Electro_Attack();
+					weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_electro_primary_animtime, w_ready);
 				}
-				weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_electro_primary_animtime, w_ready);
 			}
 		} else {
 			if(autocvar_g_balance_electro_lightning)
 			{
 				if (self.BUTTON_ATCK_prev != 0)
 				{
+					weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_electro_primary_animtime, w_ready);
 					ATTACK_FINISHED(self) = time + autocvar_g_balance_electro_primary_refire * W_WeaponRateFactor();
 				}
 				self.BUTTON_ATCK_prev = 0;