From 4b1f023162ea017f5864902d1a84a26dc40d2e65 Mon Sep 17 00:00:00 2001 From: lordhavoc Date: Tue, 17 May 2005 20:11:51 +0000 Subject: [PATCH] added fadetime parameter to SUB_SetFade git-svn-id: svn://svn.icculus.org/nexuiz/trunk@407 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- qcsrc/gamec/cl_player.c | 4 ++-- qcsrc/gamec/defs.h | 1 + qcsrc/gamec/g_subs.c | 10 +++++----- qcsrc/gamec/g_violence.c | 2 +- qcsrc/gamec/w_crylink.c | 2 +- qcsrc/gamec/w_nex.c | 2 +- qcsrc/gamec/w_rocketlauncher.c | 2 +- 7 files changed, 12 insertions(+), 11 deletions(-) diff --git a/qcsrc/gamec/cl_player.c b/qcsrc/gamec/cl_player.c index 3fb88cbd1..1bfbb3952 100644 --- a/qcsrc/gamec/cl_player.c +++ b/qcsrc/gamec/cl_player.c @@ -113,7 +113,7 @@ void SpawnThrownWeapon (vector org, float w) setorigin(self, org); self.velocity = randomvec() * 100 + '0 0 200'; - //SUB_SetFade(self, time + 20); + SUB_SetFade(self, time + 20, 1); if (w == WEP_UZI) weapon_uzi (); @@ -264,7 +264,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht // call the corpse damage function just in case it wants to gib self.event_damage(inflictor, attacker, 0, deathtype, hitloc, force); // set up to fade out later - SUB_SetFade (self, time + 12 + random () * 4); + SUB_SetFade (self, time + 12 + random () * 4, 1); } } diff --git a/qcsrc/gamec/defs.h b/qcsrc/gamec/defs.h index dd4377c8f..7bbc77391 100644 --- a/qcsrc/gamec/defs.h +++ b/qcsrc/gamec/defs.h @@ -55,6 +55,7 @@ entity dest; .float dead_frame; .float die_frame; .float fade_time; +.float fade_rate; .string mdl; diff --git a/qcsrc/gamec/g_subs.c b/qcsrc/gamec/g_subs.c index 63d45a76e..37448d796 100644 --- a/qcsrc/gamec/g_subs.c +++ b/qcsrc/gamec/g_subs.c @@ -47,11 +47,10 @@ void SUB_SetFade_Think (void) { self.think = SUB_SetFade_Think; self.nextthink = self.fade_time; - self.alpha = 1 - (time - self.fade_time) * 0.5; - if (self.alpha > 1) - self.alpha = 1; - if (self.alpha < 0.01) // don't let it reach 0, lest it become fully visible again + self.alpha = 1 - (time - self.fade_time) * self.fade_rate; + if (self.alpha < 0.01) SUB_VanishOrRemove(self); + self.alpha = bound(0.01, self.alpha, 1); } /* @@ -61,11 +60,12 @@ SUB_SetFade Fade 'ent' out when time >= 'when' ================== */ -void SUB_SetFade (entity ent, float when) +void SUB_SetFade (entity ent, float when, float fadetime) { //if (ent.flags & FL_CLIENT) // && ent.deadflag != DEAD_NO) // return; //ent.alpha = 1; + ent.fade_rate = 1/fadetime; ent.fade_time = when; ent.think = SUB_SetFade_Think; ent.nextthink = when; diff --git a/qcsrc/gamec/g_violence.c b/qcsrc/gamec/g_violence.c index 2ac98fb16..17e4820ff 100644 --- a/qcsrc/gamec/g_violence.c +++ b/qcsrc/gamec/g_violence.c @@ -51,5 +51,5 @@ void TossGib (entity gib, string mdlname, vector org, vector v, float destroyont gib.velocity = v + randomvec() * 450; gib.avelocity = randomvec() * 300; - SUB_SetFade (gib, time + 12 + random () * 4); + SUB_SetFade (gib, time + 12 + random () * 4, 1); } diff --git a/qcsrc/gamec/w_crylink.c b/qcsrc/gamec/w_crylink.c index de8b21f9a..c2d04fdd4 100644 --- a/qcsrc/gamec/w_crylink.c +++ b/qcsrc/gamec/w_crylink.c @@ -45,7 +45,7 @@ void W_Crylink_Touch (void) self.think = SUB_Remove; //self.movetype = MOVETYPE_NONE; self.effects = EF_LOWPRECISION; - SUB_SetFade(self, time); + SUB_SetFade(self, time, 1); //remove (self); } diff --git a/qcsrc/gamec/w_nex.c b/qcsrc/gamec/w_nex.c index 5288e117a..0552eb371 100644 --- a/qcsrc/gamec/w_nex.c +++ b/qcsrc/gamec/w_nex.c @@ -66,7 +66,7 @@ void W_Nex_Attack (void) setmodel (flash, "models/nexflash.md3"); flash.velocity = v_forward * 20; flash.angles = vectoangles (flash.velocity); - SUB_SetFade (flash, time); + SUB_SetFade (flash, time, 0.4); flash.effects = flash.effects | EF_ADDITIVE | EF_FULLBRIGHT; } diff --git a/qcsrc/gamec/w_rocketlauncher.c b/qcsrc/gamec/w_rocketlauncher.c index e365a7a9b..93dc4a724 100644 --- a/qcsrc/gamec/w_rocketlauncher.c +++ b/qcsrc/gamec/w_rocketlauncher.c @@ -114,7 +114,7 @@ void W_Rocket_Attack (void) setmodel (flash, "models/flash.md3"); flash.velocity = v_forward * 20; flash.angles = vectoangles (flash.velocity); - SUB_SetFade (flash, time); + SUB_SetFade (flash, time, 0.4); flash.effects = flash.effects | EF_ADDITIVE | EF_FULLBRIGHT; } -- 2.39.2