From 726683e49e0662894cad899af739cddfa27f9102 Mon Sep 17 00:00:00 2001 From: div0 Date: Sun, 19 Apr 2009 14:54:49 +0000 Subject: [PATCH] properly transmit whether crylink projectiles are bouncing or not git-svn-id: svn://svn.icculus.org/nexuiz/trunk@6534 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/client/projectile.qc | 5 +++++ data/qcsrc/common/constants.qh | 1 + data/qcsrc/server/w_crylink.qc | 13 ++++++++----- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/data/qcsrc/client/projectile.qc b/data/qcsrc/client/projectile.qc index d8ac11dd5..611c9790a 100644 --- a/data/qcsrc/client/projectile.qc +++ b/data/qcsrc/client/projectile.qc @@ -256,6 +256,7 @@ void Ent_Projectile() case PROJECTILE_BULLET: setmodel(self, "models/tracer.mdl"); break; case PROJECTILE_BULLET_GLOWING: setmodel(self, "models/tracer.mdl"); break; case PROJECTILE_CRYLINK: setmodel(self, "models/plasmatrail.mdl"); break; + case PROJECTILE_CRYLINK_BOUNCING: setmodel(self, "models/plasmatrail.mdl"); break; case PROJECTILE_ELECTRO_BEAM: setmodel(self, "models/elaser.mdl"); break; case PROJECTILE_GRENADE: setmodel(self, "models/grenademodel.md3"); break; case PROJECTILE_GRENADE_BOUNCING: setmodel(self, "models/grenademodel.md3"); break; @@ -325,6 +326,10 @@ void Ent_Projectile() self.move_movetype = MOVETYPE_BOUNCE; self.move_touch = SUB_Null; break; + case PROJECTILE_CRYLINK_BOUNCING: + self.move_movetype = MOVETYPE_BOUNCE; + self.move_touch = SUB_Null; + break; default: break; } diff --git a/data/qcsrc/common/constants.qh b/data/qcsrc/common/constants.qh index ed6ae20c9..5531520d4 100644 --- a/data/qcsrc/common/constants.qh +++ b/data/qcsrc/common/constants.qh @@ -375,6 +375,7 @@ float PROJECTILE_HOOKBOMB = 15; float PROJECTILE_HAGAR = 16; float PROJECTILE_HAGAR_BOUNCING = 17; float PROJECTILE_BULLET_GLOWING = 18; +float PROJECTILE_CRYLINK_BOUNCING = 19; // Deathtypes (weapon deathtypes are the IT_* constants below) // NOTE: when adding death types, please add an explanation to Docs/spamlog.txt too. diff --git a/data/qcsrc/server/w_crylink.qc b/data/qcsrc/server/w_crylink.qc index 6138dad3b..349194291 100644 --- a/data/qcsrc/server/w_crylink.qc +++ b/data/qcsrc/server/w_crylink.qc @@ -24,8 +24,9 @@ void W_Crylink_Touch (void) self.angles = vectoangles(self.velocity); self.owner = world; self.projectiledeathtype |= HITTYPE_BOUNCE; - //self.scale = 1 + self.cnt; - UpdateCSQCProjectile(self); + // commented out as it causes a little hitch... + //if(proj.cnt == 0) + // CSQCProjectile(proj, TRUE, PROJECTILE_CRYLINK, TRUE); } void W_Crylink_Touch2 (void) @@ -50,7 +51,9 @@ void W_Crylink_Touch2 (void) self.angles = vectoangles(self.velocity); self.owner = world; self.projectiledeathtype |= HITTYPE_BOUNCE; -// self.scale = 1 + 1 * self.cnt; + // commented out as it causes a little hitch... + //if(proj.cnt == 0) + // CSQCProjectile(proj, TRUE, PROJECTILE_CRYLINK, TRUE); } void W_Crylink_Attack (void) @@ -115,7 +118,7 @@ void W_Crylink_Attack (void) proj.flags = FL_PROJECTILE; - CSQCProjectile(proj, TRUE, PROJECTILE_CRYLINK, TRUE); + CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE); counter = counter + 1; } @@ -164,7 +167,7 @@ void W_Crylink_Attack2 (void) proj.flags = FL_PROJECTILE; - CSQCProjectile(proj, TRUE, PROJECTILE_CRYLINK, TRUE); + CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE); counter = counter + 1; } -- 2.39.2