r69 - trunk/basezym/progsqc

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Jul 24 23:04:51 EDT 2007


Author: Vermeulen
Date: 2007-07-24 23:04:51 -0400 (Tue, 24 Jul 2007)
New Revision: 69

Modified:
   trunk/basezym/progsqc/gamedefs.qc
   trunk/basezym/progsqc/inventory.qc
   trunk/basezym/progsqc/player.qc
   trunk/basezym/progsqc/progs.src
Log:
jetpack fuel is now displayed on the hud

Modified: trunk/basezym/progsqc/gamedefs.qc
===================================================================
--- trunk/basezym/progsqc/gamedefs.qc	2007-07-18 18:58:21 UTC (rev 68)
+++ trunk/basezym/progsqc/gamedefs.qc	2007-07-25 03:04:51 UTC (rev 69)
@@ -3,6 +3,9 @@
 .float ladder_time;
 .entity ladder_entity;
 
+
+.float jetpackfuel;
+
 .float fade_time;
 .float fade_rate;
 .vector finaldest, finalangle;

Modified: trunk/basezym/progsqc/inventory.qc
===================================================================
--- trunk/basezym/progsqc/inventory.qc	2007-07-18 18:58:21 UTC (rev 68)
+++ trunk/basezym/progsqc/inventory.qc	2007-07-25 03:04:51 UTC (rev 69)
@@ -79,6 +79,7 @@
 string iteminfo_model;
 string iteminfo_pickupsound;
 string iteminfo_name;
+string iteminfo_pickupsprite;
 float iteminfo_ammo1tracer;
 float iteminfo_ammo2tracer;
 string iteminfo_ammo1tracermodel;
@@ -121,7 +122,6 @@
 	local vector item;
 	local entity e;
 	local float d;
-	local string wname;
 	if (itemtype < 0)
 	{
 	    bprint(iteminfo_name);
@@ -142,6 +142,7 @@
 	iteminfo_name = "unknown";
 	iteminfo_pickupsound = "";
 	iteminfo_quantitymax = 0;
+	iteminfo_pickupsprite = "";
 	iteminfo_ammo1max = 0;
 	iteminfo_ammo1inventorymax = 0;
 	iteminfo_ammo1minimumtofire = 0;
@@ -196,7 +197,7 @@
 	
 	if (itemtype < ITEMTYPE_WEAP1_AMMO)
 	{
-		// set the settings for all weapons
+	   	// set the settings for all weapons
 		iteminfo_quantitymax = 1;
 		iteminfo_pickupsound = "items/pickupweapon.wav";
 		iteminfo_weapon_viewmodelanim_idle = '0 0 30';
@@ -204,6 +205,7 @@
 		iteminfo_weapon_viewmodelanim_lower = '0 0 2';
 		iteminfo_weapon_viewmodelanim_raise = '0 0 2';
 		
+		string wname;
 		wname = strcat("g_weap",ftos(itemtype + 1));
 		iteminfo_ammo1itemtype = ITEMTYPE_WEAP1_AMMO + itemtype;
 		iteminfo_ammo1damagetype = DAMAGETYPE_WEAP1 + itemtype;
@@ -212,6 +214,7 @@
 		
 		iteminfo_name = cvar_string(wname);
 		iteminfo_model = cvar_string(wname,"_model");
+		iteminfo_pickupsprite = cvar_string(wname,"_pickupsprite");
 		iteminfo_weapon_viewmodel = cvar_string(wname,"_viewmodel");
 		
 		iteminfo_ammo1damage = stov(cvar_string(wname,"_ammo1damage"));
@@ -248,11 +251,13 @@
 	}
 	else if (itemtype < ITEMTYPE_TOTAL)
 	{
+	 	string wname;
 		wname = strcat("g_weap",ftos(itemtype - ITEMTYPE_WEAP1_AMMO + 1));
 		iteminfo_name = cvar_string(wname,"_ammo_name");
 		iteminfo_model = cvar_string(wname,"_ammo_model");
-		iteminfo_pickupsound = cvar_string(wname,"_ammo_ammo_pickupsound");
-		iteminfo_quantitymax = cvar(wname,"_quantitymax");
+		iteminfo_pickupsound = cvar_string(wname,"_ammo_pickupsound");
+		iteminfo_quantitymax = cvar(wname,"_ammo_quantitymax");
+		iteminfo_pickupsprite = cvar_string(wname,"_ammo_pickupsprite");
 	}
 	else
 		error(ftos(itemtype)," Inventory_GetItemInfo: unknown itemtype\n");
@@ -348,8 +353,8 @@
 		}
 		if (iteminfo_ammo2max + iteminfo_ammo2inventorymax)
 		{
-			character.ammo_nails = iteminfo_ammo2 * 200 / (iteminfo_ammo2max + iteminfo_ammo2inventorymax);
-			character.ammo_rockets = iteminfo_ammo2inventory * 200 / (iteminfo_ammo2max + iteminfo_ammo2inventorymax);
+			character.ammo_nails = character.jetpackfuel;
+			character.ammo_rockets = 0;
 		}
 	}
 	if (character.unlimitedinventory)
@@ -549,6 +554,21 @@
 	setsize(newmis, '-4 -4 -4', '4 4 4');
 	Inventory_ModifyItem(newmis, itemtype, quantity, ammo1, ammo2);
 	// NOTE: should match viewweapon_animframefunc WS_TURNON code
+	
+	if (iteminfo_pickupsprite != "")
+	{
+	   entity wsprite;
+	   wsprite = spawn();
+	   wsprite.classname = "item";
+	   wsprite.effects = EF_LOWPRECISION;
+	   wsprite.owner = own;
+	   wsprite.touch = SUB_Remove;
+	   wsprite.movetype = MOVETYPE_TOSS;
+	   wsprite.solid = SOLID_BBOX;
+	   setmodel(wsprite, iteminfo_pickupsprite);
+	   setsize(wsprite, '-4 -4 -4', '4 4 4');
+	   setorigin(wsprite, org);
+	}
 };
 
 void() weapon_weap1 =

Modified: trunk/basezym/progsqc/player.qc
===================================================================
--- trunk/basezym/progsqc/player.qc	2007-07-18 18:58:21 UTC (rev 68)
+++ trunk/basezym/progsqc/player.qc	2007-07-25 03:04:51 UTC (rev 69)
@@ -56,6 +56,7 @@
 	setsize(pc, PL_MIN, PL_MAX);
 	pc.view_ofs = PL_VIEW_OFS;
 	pc.weapon_ofs = PL_WEAPON_OFS;
+	pc.jetpackfuel = 200;
 	pc.actoranim_BOTH_DEATH1   = '0 30 25';
 	pc.actoranim_BOTH_DEAD1    = '29 1 25';
 	pc.actoranim_BOTH_DEATH2   = '30 30 25';
@@ -229,6 +230,7 @@
 	self.gibhealth = pc.gibhealth;
 	self.paintake = pc.paintake;
 	self.unlimitedinventory = pc.unlimitedinventory;
+	self.jetpackfuel = pc.jetpackfuel;
 	self.mass = pc.mass;
 	actor_setup();
 	setsize (self, pc.mins, pc.maxs);
@@ -430,6 +432,12 @@
 {
 	local float im;
 	if (self.flags & FL_CLIENT) // only real players can respawn, not NPCs
+	
+	if (self.jetpackfuel < 200 && (!(self.jetpackactive)))
+	{
+	   self.jetpackfuel = self.jetpackfuel + 0.1;
+	}
+	
 	if (self.deadflag)
 	{
 		if (self.deadflag == DEAD_DYING)
@@ -447,6 +455,11 @@
 	if (!self.deadflag)
 	if (self.flags & FL_ONGROUND)
 	{
+	   	if (self.jetpackfuel < 200 && (!(self.jetpackactive)))
+		{
+	   	   self.jetpackfuel = self.jetpackfuel + 0.2;
+	    }
+	
 		if (self.jumpflag || self.oldvelocity_z < -200)
 		{
 			if (self.oldvelocity_z < -500)
@@ -474,7 +487,8 @@
 	{
 		if (self.button5)
 		{
-			//self.armorvalue = max(0, self.armorvalue - 20 * frametime);
+			self.jetpackfuel = max(0, self.jetpackfuel - 80 * frametime);
+			bprint(ftos(self.jetpackfuel), "\n");
 			//self.armorregentime = max(self.armorregentime, time + ACTOR_SHIELD_REGENDELAY);
 			//self.armorregenplaysound = TRUE;
 			if (!self.jetpackactive)
@@ -667,7 +681,7 @@
 				self.velocity = self.velocity + wishdir * min(f, sv_accelerate * frametime * wishspeed);
 		}
 	}
-	else if (self.button5)
+	else if (self.button5 && self.jetpackfuel > 5)
 	{
 		maxairspeed = sv_maxairspeed;
 		makevectors(self.v_angle_y * '0 1 0');
@@ -691,7 +705,7 @@
 		if (time >= self.teleport_time)
 			self.velocity = self.velocity * (1 - frametime * sv_friction) + (frametime * sv_friction) * wishspeed * 2 * wishdir + (velo_z * '0 0 1') * frametime;
 	}
-	else if (self.button6)
+	else if (self.button6 && self.jetpackfuel > 5)
 	{
 		maxairspeed = sv_maxairspeed;
 		makevectors(self.v_angle_y * '0 1 0');
@@ -701,7 +715,7 @@
 		wishspeed = vlen(wishvel);
 		if (wishspeed > maxairspeed)
 			wishspeed = maxairspeed;
-			
+					
 		if (wishvel_x > 0 || wishvel_y > 0)
 		{
 		   	velo_z = sv_gravity * ((self.jetpackacc*1.5) + 3 * (1 - wishspeed / maxairspeed));

Modified: trunk/basezym/progsqc/progs.src
===================================================================
--- trunk/basezym/progsqc/progs.src	2007-07-18 18:58:21 UTC (rev 68)
+++ trunk/basezym/progsqc/progs.src	2007-07-25 03:04:51 UTC (rev 69)
@@ -5,7 +5,6 @@
 gamedefs.qc
 
 util.qc
-jumppads.qc
 damage.qc
 decors.qc
 inventory.qc
@@ -13,4 +12,4 @@
 player.qc
 server.qc
 mapentities.qc
-
+jumppads.qc




More information about the zymotic-commits mailing list