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