[nexuiz-commits] r6786 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Fri May 29 15:27:58 EDT 2009
Author: div0
Date: 2009-05-29 15:27:58 -0400 (Fri, 29 May 2009)
New Revision: 6786
Modified:
trunk/data/qcsrc/server/cl_weaponsystem.qc
trunk/data/qcsrc/server/w_crylink.qc
trunk/data/qcsrc/server/w_electro.qc
trunk/data/qcsrc/server/w_grenadelauncher.qc
trunk/data/qcsrc/server/w_hagar.qc
trunk/data/qcsrc/server/w_hlac.qc
trunk/data/qcsrc/server/w_hook.qc
trunk/data/qcsrc/server/w_laser.qc
trunk/data/qcsrc/server/w_porto.qc
trunk/data/qcsrc/server/w_rocketlauncher.qc
trunk/data/qcsrc/server/w_seeker.qc
Log:
fix grenade launcher through floor
Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -103,7 +103,7 @@
// this function calculates w_shotorg and w_shotdir based on the weapon model
// offset, trueaim and antilag, and won't put w_shotorg inside a wall.
// make sure you call makevectors first (FIXME?)
-void W_SetupShot(entity ent, float antilag, float recoil, string snd)
+void W_SetupShot_ProjectileSize(entity ent, vector mi, vector ma, float antilag, float recoil, string snd)
{
float nudge = 1; // added to traceline target and subtracted from result
local vector trueaimpoint;
@@ -130,12 +130,8 @@
dv = v_right * vecs_y + v_up * vecs_z;
w_shotorg = ent.origin + ent.view_ofs + dv;
- // move the vecs sideways as much as requested if possible
- traceline(ent.origin + ent.view_ofs, w_shotorg + normalize(dv) * nudge, MOVE_NORMAL, ent);
- w_shotorg = trace_endpos - normalize(dv) * nudge;
-
// now move the shotorg forward as much as requested if possible
- traceline(w_shotorg, w_shotorg + v_forward * (vecs_x + nudge), MOVE_NORMAL, ent);
+ tracebox(w_shotorg, mi, ma, w_shotorg + v_forward * (vecs_x + nudge), MOVE_NORMAL, ent);
w_shotorg = trace_endpos - v_forward * nudge;
// calculate the shotdir from the chosen shotorg
w_shotdir = normalize(trueaimpoint - w_shotorg);
@@ -267,6 +263,11 @@
sound (ent, CHAN_AUTO, "weapons/strength_fire.wav", VOL_BASE, ATTN_NORM);
};
+void W_SetupShot(entity ent, float antilag, float recoil, string snd)
+{
+ W_SetupShot_ProjectileSize(ent, '0 0 0', '0 0 0', antilag, recoil, snd);
+}
+
void LaserTarget_Think()
{
entity e;
Modified: trunk/data/qcsrc/server/w_crylink.qc
===================================================================
--- trunk/data/qcsrc/server/w_crylink.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_crylink.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -88,6 +88,7 @@
//proj.gravity = 0.001;
setorigin (proj, w_shotorg);
+ setsize(proj, '0 0 0', '0 0 0');
s = '0 0 0';
@@ -151,6 +152,7 @@
//proj.gravity = 0.001;
setorigin (proj, w_shotorg);
+ setsize(proj, '0 0 0', '0 0 0');
proj.velocity = (w_shotdir + (((counter + 0.5) / shots) * 2 - 1) * v_right * cvar("g_balance_crylink_secondary_spread")) * cvar("g_balance_crylink_secondary_speed");
W_SetupProjectileVelocity(proj);
Modified: trunk/data/qcsrc/server/w_electro.qc
===================================================================
--- trunk/data/qcsrc/server/w_electro.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_electro.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -69,7 +69,7 @@
{
local entity proj;
- W_SetupShot (self, FALSE, 2, "weapons/electro_fire.wav");
+ W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire.wav");
pointparticles(particleeffectnum("electro_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -92,6 +92,7 @@
W_SetupProjectileVelocity(proj);
proj.angles = vectoangles(proj.velocity);
proj.touch = W_Plasma_TouchExplode;
+ setsize(proj, '0 0 -3', '0 0 -3');
proj.flags = FL_PROJECTILE;
//sound (proj, CHAN_PAIN, "weapons/electro_fly.wav", VOL_BASE, ATTN_NORM);
@@ -104,7 +105,7 @@
{
local entity proj;
- W_SetupShot (self, FALSE, 2, "weapons/electro_fire2.wav");
+ W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire2.wav");
w_shotdir = v_forward; // no TrueAim for grenades please
pointparticles(particleeffectnum("electro_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
Modified: trunk/data/qcsrc/server/w_grenadelauncher.qc
===================================================================
--- trunk/data/qcsrc/server/w_grenadelauncher.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_grenadelauncher.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -74,7 +74,7 @@
if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
self.ammo_rockets = self.ammo_rockets - cvar("g_balance_grenadelauncher_primary_ammo");
- W_SetupShot (self, FALSE, 4, "weapons/grenade_fire.wav");
+ W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 4, "weapons/grenade_fire.wav");
w_shotdir = v_forward; // no TrueAim for grenades please
pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -88,6 +88,7 @@
gren.solid = SOLID_BBOX;
gren.projectiledeathtype = WEP_GRENADE_LAUNCHER;
setorigin(gren, w_shotorg);
+ setsize(gren, '0 0 -3', '0 0 -3');
gren.nextthink = time + cvar("g_balance_grenadelauncher_primary_lifetime");
gren.think = adaptor_think2use;
@@ -108,7 +109,7 @@
if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
self.ammo_rockets = self.ammo_rockets - cvar("g_balance_grenadelauncher_secondary_ammo");
- W_SetupShot (self, FALSE, 4, "weapons/grenade_fire.wav");
+ W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 4, "weapons/grenade_fire.wav");
w_shotdir = v_forward; // no TrueAim for grenades please
pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -121,7 +122,7 @@
gren.movetype = MOVETYPE_BOUNCE;
gren.solid = SOLID_BBOX;
gren.projectiledeathtype = WEP_GRENADE_LAUNCHER | HITTYPE_SECONDARY;
- setsize(gren, '0 0 -3', '0 0 -3'); // why, just, why?
+ setsize(gren, '0 0 -3', '0 0 -3');
setorigin(gren, w_shotorg);
gren.nextthink = time + cvar("g_balance_grenadelauncher_secondary_lifetime");
Modified: trunk/data/qcsrc/server/w_hagar.qc
===================================================================
--- trunk/data/qcsrc/server/w_hagar.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_hagar.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -65,6 +65,7 @@
missile.solid = SOLID_BBOX;
missile.projectiledeathtype = WEP_HAGAR;
setorigin (missile, w_shotorg);
+ setsize(missile, '0 0 0', '0 0 0');
//missile.takedamage = DAMAGE_YES;
//missile.damageforcescale = 4;
//missile.health = 10;
@@ -104,6 +105,7 @@
missile.solid = SOLID_BBOX;
missile.projectiledeathtype = WEP_HAGAR | HITTYPE_SECONDARY;
setorigin (missile, w_shotorg);
+ setsize(missile, '0 0 0', '0 0 0');
//missile.takedamage = DAMAGE_YES;
//missile.damageforcescale = 4;
//missile.health = 10;
Modified: trunk/data/qcsrc/server/w_hlac.qc
===================================================================
--- trunk/data/qcsrc/server/w_hlac.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_hlac.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -56,6 +56,7 @@
missile.solid = SOLID_BBOX;
setorigin (missile, w_shotorg);
+ setsize(missile, '0 0 0', '0 0 0');
missile.velocity = (w_shotdir + randomvec() * spread) * cvar("g_balance_hlac_primary_speed");
@@ -99,6 +100,7 @@
missile.solid = SOLID_BBOX;
setorigin (missile, w_shotorg);
+ setsize(missile, '0 0 0', '0 0 0');
missile.velocity = (w_shotdir + randomvec() * spread) * cvar("g_balance_hlac_secondary_speed");
Modified: trunk/data/qcsrc/server/w_hook.qc
===================================================================
--- trunk/data/qcsrc/server/w_hook.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_hook.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -71,6 +71,7 @@
gren.solid = SOLID_BBOX;
gren.projectiledeathtype = WEP_HOOK | HITTYPE_SECONDARY;
setorigin(gren, w_shotorg);
+ setsize(gren, '0 0 0', '0 0 0');
gren.nextthink = time + cvar("g_balance_hook_secondary_lifetime");
gren.think = adaptor_think2use;
Modified: trunk/data/qcsrc/server/w_laser.qc
===================================================================
--- trunk/data/qcsrc/server/w_laser.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_laser.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -37,6 +37,7 @@
missile.projectiledeathtype |= HITTYPE_SECONDARY;
setorigin (missile, w_shotorg);
+ setsize(missile, '0 0 0', '0 0 0');
if (issecondary)
missile.velocity = w_shotdir * cvar("g_balance_laser_secondary_speed");
Modified: trunk/data/qcsrc/server/w_porto.qc
===================================================================
--- trunk/data/qcsrc/server/w_porto.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_porto.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -174,6 +174,7 @@
gren.effects = EF_RED;
gren.scale = 4;
setorigin(gren, w_shotorg);
+ setsize(gren, '0 0 0', '0 0 0');
gren.nextthink = time + cvar("g_balance_porto_primary_lifetime");
gren.think = W_Porto_Think;
Modified: trunk/data/qcsrc/server/w_rocketlauncher.qc
===================================================================
--- trunk/data/qcsrc/server/w_rocketlauncher.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_rocketlauncher.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -198,7 +198,7 @@
if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
self.ammo_rockets = self.ammo_rockets - cvar("g_balance_rocketlauncher_ammo");
- W_SetupShot (self, FALSE, 5, "weapons/rocket_fire.wav");
+ W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 5, "weapons/rocket_fire.wav");
pointparticles(particleeffectnum("rocketlauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
missile = spawn ();
Modified: trunk/data/qcsrc/server/w_seeker.qc
===================================================================
--- trunk/data/qcsrc/server/w_seeker.qc 2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_seeker.qc 2009-05-29 19:27:58 UTC (rev 6786)
@@ -160,7 +160,7 @@
self.ammo_rockets = self.ammo_rockets - cvar("g_balance_seeker_missile_ammo");
makevectors(self.v_angle);
- W_SetupShot (self, FALSE, 2, "weapons/seeker_fire.wav");
+ W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/seeker_fire.wav");
w_shotorg += f_diff;
pointparticles(particleeffectnum("seeker_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -312,7 +312,7 @@
if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
self.ammo_rockets = self.ammo_rockets - cvar("g_balance_seeker_tag_ammo");
- W_SetupShot (self, FALSE, 2, "weapons/tag_fire.wav");
+ W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/tag_fire.wav");
missile = spawn();
missile.owner = self;
@@ -331,6 +331,7 @@
missile.health = 5;
setorigin (missile, w_shotorg);
+ setsize (missile, '-2 -2 -2', '2 2 2');
missile.flags = FL_PROJECTILE;
@@ -385,7 +386,7 @@
f_diff = '+1.25 +3.75 0';
break;
}
- W_SetupShot (self, FALSE, 2, "weapons/flac_fire.wav");
+ W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav");
w_shotorg += f_diff;
pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -403,6 +404,7 @@
missile.scale = 0.4; // BUG: the model is too big
missile.projectiledeathtype = WEP_SEEKER;
setorigin (missile, w_shotorg);
+ setsize (missile, '-2 -2 -2', '2 2 2');
missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY;
missile.movetype = MOVETYPE_FLY;
More information about the nexuiz-commits
mailing list