[nexuiz-commits] r6300 - in trunk/data/qcsrc: client common server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Mar 26 05:17:51 EDT 2009


Author: div0
Date: 2009-03-26 05:17:51 -0400 (Thu, 26 Mar 2009)
New Revision: 6300

Modified:
   trunk/data/qcsrc/client/sbar.qc
   trunk/data/qcsrc/common/items.qh
   trunk/data/qcsrc/server/cl_client.qc
   trunk/data/qcsrc/server/cl_physics.qc
   trunk/data/qcsrc/server/cl_weapons.qc
Log:
jetpack fuel HUD


Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc	2009-03-26 08:58:56 UTC (rev 6299)
+++ trunk/data/qcsrc/client/sbar.qc	2009-03-26 09:17:51 UTC (rev 6300)
@@ -1967,7 +1967,16 @@
 				}
 
 				// ammo
-				x = getstati(STAT_AMMO);
+				if (stat_items & IT_SHELLS)
+					x = getstati(STAT_SHELLS);
+				else if (stat_items & IT_NAILS)
+					x = getstati(STAT_NAILS);
+				else if (stat_items & IT_ROCKETS)
+					x = getstati(STAT_ROCKETS);
+				else if (stat_items & IT_CELLS)
+					x = getstati(STAT_CELLS);
+				else
+					x = 0;
 				if ((stat_items & IT_AMMO) || x != 0)
 				{
 					if (stat_items & IT_SHELLS)
@@ -1984,6 +1993,18 @@
 						Sbar_DrawXNum('224 0 0', x, 3, 24, '0.7 0 0', 1, 0);
 				}
 
+				// jetpack cells
+				if(stat_items & IT_USING_JETPACK)
+				if not(stat_items & IT_CELLS)
+				{
+					x = getstati(STAT_CELLS);
+					drawpic(sbar + '296 -30 0', "gfx/sb_cells", '24 24 0', '1 1 1', sbar_alpha_fg, 0);
+					if(x > 10)
+						Sbar_DrawXNum('224 -30 0', x, 3, 24, '0.6 0.7 0.8', 1, 0);
+					else
+						Sbar_DrawXNum('224 -30 0', x, 3, 24, '0.7 0 0', 1, 0);
+				}
+
 				if (sbar_x + 320 + 160 <= vid_conwidth)
 					Sbar_MiniDeathmatchOverlay(sbar + '320 0 0');
 				if (sbar_x > 0)
@@ -2034,7 +2055,16 @@
 				else
 					Sbar_DrawXNum('81 12 0', x, 3, 24, '0.6 0.7 0.8', 1, 0);
 
-				x = getstati(STAT_AMMO);
+				if (stat_items & IT_SHELLS)
+					x = getstati(STAT_SHELLS);
+				else if (stat_items & IT_NAILS)
+					x = getstati(STAT_NAILS);
+				else if (stat_items & IT_ROCKETS)
+					x = getstati(STAT_ROCKETS);
+				else if (stat_items & IT_CELLS)
+					x = getstati(STAT_CELLS);
+				else
+					x = 0;
 				if ((stat_items & IT_AMMO) || x != 0)
 				{
 					// (519-3*24) = 447
@@ -2052,6 +2082,18 @@
 						Sbar_DrawXNum('447 12 0', x, 3, 24, '0.7 0 0', 1, 0);
 				}
 
+				// jetpack cells
+				if(stat_items & IT_USING_JETPACK)
+				if not(stat_items & IT_CELLS)
+				{
+					x = getstati(STAT_CELLS);
+					drawpic(sbar + '519 -40 0', "gfx/sb_cells", '0 0 0', '1 1 1', sbar_alpha_fg, 0);
+					if(x > 10)
+						Sbar_DrawXNum('447 -28 0', x, 3, 24, '0.6 0.7 0.8', 1, 0);
+					else
+						Sbar_DrawXNum('447 -28 0', x, 3, 24, '0.7 0 0', 1, 0);
+				}
+
 				if (sb_lines > 24)
 					drawpic(sbar, "gfx/sbar_overlay", '0 0 0', '1 1 1', 1, DRAWFLAG_MODULATE);
 

Modified: trunk/data/qcsrc/common/items.qh
===================================================================
--- trunk/data/qcsrc/common/items.qh	2009-03-26 08:58:56 UTC (rev 6299)
+++ trunk/data/qcsrc/common/items.qh	2009-03-26 09:17:51 UTC (rev 6300)
@@ -30,6 +30,8 @@
 float	IT_UNLIMITED_AMMO         = 3;
 // both of these combined
 float	IT_CTF_SHIELDED           = 4; // set for the flag shield
+// using jetpack
+float   IT_USING_JETPACK          = 8;
 float	IT_SHELLS				= 256;
 float	IT_NAILS				= 512;
 float	IT_ROCKETS				= 1024;

Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc	2009-03-26 08:58:56 UTC (rev 6299)
+++ trunk/data/qcsrc/server/cl_client.qc	2009-03-26 09:17:51 UTC (rev 6300)
@@ -1829,7 +1829,10 @@
 void SpectateCopy(entity spectatee) {
 	self.armortype = spectatee.armortype;
 	self.armorvalue = spectatee.armorvalue;
-	self.currentammo = spectatee.currentammo;
+	self.ammo_cells = spectatee.ammo_cells;
+	self.ammo_shells = spectatee.ammo_shells;
+	self.ammo_nails = spectatee.ammo_nails;
+	self.ammo_rockets = spectatee.ammo_rockets;
 	self.effects = spectatee.effects & EFMASK_CHEAP; // eat performance
 	self.health = spectatee.health;
 	self.impulse = 0;

Modified: trunk/data/qcsrc/server/cl_physics.qc
===================================================================
--- trunk/data/qcsrc/server/cl_physics.qc	2009-03-26 08:58:56 UTC (rev 6299)
+++ trunk/data/qcsrc/server/cl_physics.qc	2009-03-26 09:17:51 UTC (rev 6300)
@@ -356,6 +356,7 @@
 	local vector wishvel, wishdir, v;
 	local float wishspeed, f, maxspd_mod, spd, maxairspd, airaccel, swampspd_mod, shtest_score, buttons;
 	string temps;
+	float buttons_prev;
 
 	buttons = self.BUTTON_ATCK + 2 * self.BUTTON_JUMP + 4 * self.BUTTON_ATCK2 + 8 * self.BUTTON_ZOOM + 16 * self.BUTTON_CROUCH + 32 * self.BUTTON_HOOK + 64 * self.BUTTON_USE;
 	if(!sv_maxidle_spectatorsareidle || self.movetype == MOVETYPE_WALK)
@@ -363,6 +364,7 @@
 		if(buttons != self.buttons_old || self.movement != self.movement_old || self.v_angle != self.v_angle_old)
 			self.parm_idlesince = time;
 	}
+	buttons_prev = self.buttons_old;
 	self.buttons_old = buttons;
 	self.movement_old = self.movement;
 	self.v_angle_old = self.v_angle;
@@ -389,6 +391,7 @@
 		bot_think();
 
 	self.modelflags &~= MF_ROCKET;
+	self.items &~= IT_USING_JETPACK;
 
 	if (self.movetype == MOVETYPE_NONE && self.disableclientprediction != 2)
 		return;
@@ -680,19 +683,18 @@
 		if (f > 0 && wishvel != '0 0 0')
 		{
 			self.velocity = self.velocity + wishvel * f * frametime;
-			float c;
-			c = self.ammo_cells;
 			self.ammo_cells -= cvar("g_jetpack_ammo") * frametime * fvel * f;
-			if(floor(c / 5) != floor(self.ammo_cells / 5))
-				sprint(self, strcat("jetpack: less than ", ftos(floor(c)), " cells left\n"));
-			else if(self.ammo_cells < 0.01 && cvar("g_jetpack_ammo"))
-				sprint(self, "jetpack: out of fuel\n");
 			self.flags &~= FL_ONGROUND;
 			self.modelflags |= MF_ROCKET;
+			self.items |= IT_USING_JETPACK;
 		}
 	}
 	else if (self.flags & FL_ONGROUND)
 	{
+		// we get here if we ran out of ammo
+		if(g_jetpack && self.BUTTON_HOOK && !(buttons_prev & 32))
+			sprint(self, "You don't have any fuel for the ^2Jetpack\n");
+
 		// walking
 		makevectors(self.v_angle_y * '0 1 0');
 		wishvel = v_forward * self.movement_x + v_right * self.movement_y;
@@ -739,6 +741,10 @@
 	}
 	else
 	{
+		// we get here if we ran out of ammo
+		if(g_jetpack && self.BUTTON_HOOK && !(buttons_prev & 32))
+			sprint(self, "You don't have any fuel for the ^2Jetpack\n");
+
 		if(maxspd_mod < 1)
 		{
 			maxairspd = sv_maxairspeed*maxspd_mod;

Modified: trunk/data/qcsrc/server/cl_weapons.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weapons.qc	2009-03-26 08:58:56 UTC (rev 6299)
+++ trunk/data/qcsrc/server/cl_weapons.qc	2009-03-26 09:17:51 UTC (rev 6300)
@@ -368,6 +368,7 @@
 	//	self.weapon_nextthink = time;
 
 	// update currentammo incase it has changed
+#if 0
 	if (self.items & IT_CELLS)
 		self.currentammo = self.ammo_cells;
 	else if (self.items & IT_ROCKETS)
@@ -378,7 +379,7 @@
 		self.currentammo = self.ammo_shells;
 	else
 		self.currentammo = 1;
-
+#endif
 };
 
 float nixnex_weapon;



More information about the nexuiz-commits mailing list