X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fparticles.qc;h=6e24893b02e005b08d9b3e142dad4d70e6c1efd7;hb=2edeb8354bb93aae319d75077a44c0fd0b4f6ca2;hp=e0bbeb81bf96f79c7854b560a687f5de4cf5212b;hpb=0e7ed909bffb4ff21f0c68d163edfc17487e380a;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/particles.qc b/qcsrc/client/particles.qc index e0bbeb81b..6e24893b0 100644 --- a/qcsrc/client/particles.qc +++ b/qcsrc/client/particles.qc @@ -58,7 +58,7 @@ void Draw_PointParticles() if(self.noise != "") { self.origin = p; - sound(self, CHAN_AUTO, self.noise, VOL_BASE * self.volume, self.atten); + sound(self, CH_AMBIENT, self.noise, VOL_BASE * self.volume, self.atten); } self.just_toggled = 0; } @@ -191,12 +191,12 @@ void Ent_PointParticles() .float glow_color; // palette index void Draw_Rain() { - te_particlerain(self.origin + self.mins, self.origin + self.maxs, self.velocity, self.count * drawframetime, self.glow_color); + te_particlerain(self.origin + self.mins, self.origin + self.maxs, self.velocity, floor(self.count * drawframetime + random()), self.glow_color); } void Draw_Snow() { - te_particlesnow(self.origin + self.mins, self.origin + self.maxs, self.velocity, self.count * drawframetime, self.glow_color); + te_particlesnow(self.origin + self.mins, self.origin + self.maxs, self.velocity, floor(self.count * drawframetime + random()), self.glow_color); } void Ent_RainOrSnow() @@ -286,14 +286,18 @@ void Net_ReadZCurveParticles() void Net_ReadNexgunBeamParticle() { vector shotorg, endpos; + float charge; shotorg_x = ReadCoord(); shotorg_y = ReadCoord(); shotorg_z = ReadCoord(); endpos_x = ReadCoord(); endpos_y = ReadCoord(); endpos_z = ReadCoord(); + charge = ReadByte() / 255.0; pointparticles(particleeffectnum("nex_muzzleflash"), shotorg, normalize(endpos - shotorg) * 1000, 1); //draw either the old v2.3 beam or the new beam - if (cvar("cl_particles_oldnexbeam") && (getstati(STAT_ALLOW_OLDNEXBEAM) || isdemo())) - WarpZone_TrailParticles(world, particleeffectnum("TE_TEI_G3"), shotorg, endpos); + charge = sqrt(charge); // divide evenly among trail spacing and alpha + particles_alphamin = particles_alphamax = charge; + if (autocvar_cl_particles_oldnexbeam && (getstati(STAT_ALLOW_OLDNEXBEAM) || isdemo())) + WarpZone_TrailParticles_WithMultiplier(world, particleeffectnum("TE_TEI_G3"), shotorg, endpos, charge, 1); else - WarpZone_TrailParticles(world, particleeffectnum("nex_beam"), shotorg, endpos); + WarpZone_TrailParticles_WithMultiplier(world, particleeffectnum("nex_beam"), shotorg, endpos, charge, 1); }