X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fgibs.qc;h=8c4081674795c03ce808a3c616f4b8bfc0c5da88;hb=786db02b0c9aa618c581b7c3fe7392ad114797d8;hp=779f9f7ff358ff2384cdf5cc9a0913bbfe60c332;hpb=92912178c2ec22dfe649dc3fc19c619b6d71be24;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/gibs.qc b/qcsrc/client/gibs.qc index 779f9f7ff..8c4081674 100644 --- a/qcsrc/client/gibs.qc +++ b/qcsrc/client/gibs.qc @@ -73,7 +73,7 @@ void Gib_Touch() } if(!self.silent) - sound(self, CH_PAIN, strcat("misc/gib_splat0", ftos(floor(prandom() * 4 + 1)), ".wav"), VOL_BASE, ATTN_NORM); + sound(self, CH_PAIN, strcat("misc/gib_splat0", ftos(floor(prandom() * 4 + 1)), ".wav"), VOL_BASE, ATTEN_NORM); pointparticles(particleeffectnum(strcat(species_prefix(self.cnt), "blood")), self.origin + '0 0 1', '0 0 30', 10); Gib_Delete(); @@ -89,6 +89,7 @@ void Gib_Draw() return; if(self.touch == Gib_Touch) // don't do this for the "chunk" thingie... + // TODO somehow make it spray in a direction dependent on self.angles trailparticles(self, particleeffectnum(strcat(species_prefix(self.cnt), "TR_SLIGHTBLOOD")), oldorg, self.origin); else trailparticles(self, particleeffectnum(strcat(species_prefix(self.cnt), "TR_BLOOD")), oldorg, self.origin); @@ -114,6 +115,7 @@ void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector // TODO remove some gibs according to cl_nogibs gib = RubbleNew("gib"); + gib.classname = "gib"; gib.move_movetype = MOVETYPE_BOUNCE; gib.gravity = 1; gib.solid = SOLID_CORPSE; @@ -136,9 +138,10 @@ void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector org = trace_endpos; } - gib.move_origin = gib.origin = org; + gib.move_origin = org; + setorigin(gib, org); gib.move_velocity = vconst * autocvar_cl_gibs_velocity_scale + vrand * autocvar_cl_gibs_velocity_random + '0 0 1' * autocvar_cl_gibs_velocity_up; - gib.move_avelocity = prandomvec() * vlen(gib.move_velocity); + gib.move_avelocity = prandomvec() * vlen(gib.move_velocity) * autocvar_cl_gibs_avelocity_scale; gib.move_time = time; gib.damageforcescale = autocvar_cl_gibs_damageforcescale; @@ -154,7 +157,7 @@ void Ent_GibSplash(float isNew) vector org, vel; string specstr; float issilent; - string gentle_prefix; + string gentle_prefix = "morphed_"; float c, randomvalue; @@ -175,8 +178,6 @@ void Ent_GibSplash(float isNew) gentle_prefix = ""; else if(cl_gentle_gibs == 3) gentle_prefix = "happy_"; - else - gentle_prefix = "morphed_"; } else if(autocvar_cl_particlegibs) { @@ -184,7 +185,7 @@ void Ent_GibSplash(float isNew) gentle_prefix = "particlegibs_"; } - if not(cl_gentle_gibs || autocvar_cl_gentle) + if (!(cl_gentle_gibs || autocvar_cl_gentle)) amount *= 1 - autocvar_cl_nogibs; if(autocvar_ekg) @@ -193,7 +194,7 @@ void Ent_GibSplash(float isNew) if(amount <= 0 || !isNew) return; - self.origin = org; // for the sounds + setorigin(self, org); // for the sounds specnum = (type & 0x78) / 8; // blood/gibmodel type: using four bits (0..7, bit indexes 3,4,5) issilent = (type & 0x40); @@ -204,7 +205,7 @@ void Ent_GibSplash(float isNew) { case 0x01: if(!issilent) - sound (self, CH_PAIN, "misc/gib.wav", VOL_BASE, ATTN_NORM); + sound (self, CH_PAIN, "misc/gib.wav", VOL_BASE, ATTEN_NORM); if(prandom() < amount) TossGib ("models/gibs/eye.md3", org, org, vel, prandomvec() * 150, specnum, 0, issilent);