r5403 - in trunk/data: . qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Jan 5 03:47:33 EST 2009


Author: div0
Date: 2009-01-05 03:47:18 -0500 (Mon, 05 Jan 2009)
New Revision: 5403

Modified:
   trunk/data/defaultNexuiz.cfg
   trunk/data/qcsrc/server/cl_impulse.qc
   trunk/data/qcsrc/server/cl_weapons.qc
   trunk/data/qcsrc/server/defs.qh
   trunk/data/qcsrc/server/w_campingrifle.qc
   trunk/data/qcsrc/server/w_hook.qc
Log:
camping rifle: reload when selecting even if it's the only weapon you have;
impulse 20 = reload


Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/defaultNexuiz.cfg	2009-01-05 08:47:18 UTC (rev 5403)
@@ -634,6 +634,8 @@
 set _supports_weaponpriority 0 // set to 1 by csqc if supported, and to 0 on disconnect
 alias weapbest "impulse 13"
 
+alias reload "impulse 20"
+
 // movement
 bind w +forward
 bind a +moveleft

Modified: trunk/data/qcsrc/server/cl_impulse.qc
===================================================================
--- trunk/data/qcsrc/server/cl_impulse.qc	2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/cl_impulse.qc	2009-01-05 08:47:18 UTC (rev 5403)
@@ -70,6 +70,7 @@
  * 17: throw weapon
  * 18: next weapon according to sbar_hudselector 1 list
  * 19: previous weapon according to sbar_hudselector 1 list
+ * 20: reload if needed
  *
  * 30 to 39: create waypoints
  * 47: clear personal waypoints
@@ -119,7 +120,7 @@
 		else
 			self.impulse = imp; // retry in next frame
 	}
-	else if(imp >= 10 && imp <= 19)
+	else if(imp >= 10 && imp <= 20)
 	{
 		if(self.deadflag == DEAD_NO)
 		{
@@ -156,7 +157,10 @@
 				case 19:
 					W_PreviousWeapon (1);
 					break;
-				}
+				case 20:
+					W_Reload ();
+					break;
+			}
 		}
 		else
 			self.impulse = imp; // retry in next frame

Modified: trunk/data/qcsrc/server/cl_weapons.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weapons.qc	2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/cl_weapons.qc	2009-01-05 08:47:18 UTC (rev 5403)
@@ -1,3 +1,10 @@
+void W_Reload()
+{
+	if(self.switchweapon == self.weapon)
+	if(self.weaponentity.state == WS_READY)
+		weapon_action(self.weapon, WR_RELOAD);
+}
+
 // switch between weapons
 void W_SwitchWeapon(float imp)
 {
@@ -2,4 +9,10 @@
 	if (self.switchweapon != imp)
-	if (client_hasweapon(self, imp, TRUE, TRUE))
-		W_SwitchWeapon_Force(self, imp);
+	{
+		if (client_hasweapon(self, imp, TRUE, TRUE))
+			W_SwitchWeapon_Force(self, imp);
+	}
+	else
+	{
+		W_Reload();
+	}
 };

Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh	2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/defs.qh	2009-01-05 08:47:18 UTC (rev 5403)
@@ -220,6 +220,7 @@
 float WR_PRECACHE	    = 6; // precaches models/sounds used by this weapon
 float WR_SUICIDEMESSAGE = 7; // sets w_deathtypestring or leaves it alone (and may inspect w_deathtype for details)
 float WR_KILLMESSAGE    = 8; // sets w_deathtypestring or leaves it alone
+float WR_RELOAD         = 9; // does not need to do anything
 
 void weapon_defaultspawnfunc(float wpn);
 

Modified: trunk/data/qcsrc/server/w_campingrifle.qc
===================================================================
--- trunk/data/qcsrc/server/w_campingrifle.qc	2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/w_campingrifle.qc	2009-01-05 08:47:18 UTC (rev 5403)
@@ -6,13 +6,17 @@
 
 void W_Campingrifle_ReloadedAndReady()
 {
+	float t;
 	self.campingrifle_bulletcounter = 0;
-	ATTACK_FINISHED(self) = time;
+	t = ATTACK_FINISHED(self) - cvar("g_balance_campingrifle_reloadtime") + 1;
+	ATTACK_FINISHED(self) = t;
 	w_ready();
 }
 
 void W_Campingrifle_Reload()
 {
+	float t;
+
 	if (self.campingrifle_bulletcounter == 0)
 		return;
 	
@@ -27,7 +31,8 @@
 
 	sound (self, CHAN_WEAPON2, "weapons/campingrifle_reload.wav", VOL_BASE, ATTN_NORM);
 
-	ATTACK_FINISHED(self) = time + cvar("g_balance_campingrifle_reloadtime") + 1;
+	t = max(time, ATTACK_FINISHED(self)) + cvar("g_balance_campingrifle_reloadtime") + 1;
+	ATTACK_FINISHED(self) = t;
 
 	weapon_thinkf(WFRAME_RELOAD, cvar("g_balance_campingrifle_reloadtime"), W_Campingrifle_ReloadedAndReady);
 }
@@ -189,5 +194,9 @@
 			}
 		}
 	}
+	else if (req == WR_RELOAD)
+	{
+		W_Campingrifle_Reload();
+	}
 	return TRUE;
 };

Modified: trunk/data/qcsrc/server/w_hook.qc
===================================================================
--- trunk/data/qcsrc/server/w_hook.qc	2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/w_hook.qc	2009-01-05 08:47:18 UTC (rev 5403)
@@ -176,7 +176,7 @@
 		else
 		{
 			self.hook_time_hooked = time;				
-			self.hook_time_ammodecrease = time + cvar("g_balance_hook_primary_hooked_time_free");;
+			self.hook_time_ammodecrease = time + cvar("g_balance_hook_primary_hooked_time_free");
 		}
 
 		if (self.BUTTON_CROUCH)




More information about the nexuiz-commits mailing list