X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Feffects.qc;h=c0c378fd1a42c4cb5fb697902e8bdca4c743539c;hp=56c83e06319ea1f6e7fc2b5f057c6bcb251e5d24;hb=6b8490ff79ca48220bd0023b5da4019d1bfdcd7d;hpb=6c4f62990980e74d4a0963b7179c7c964f535398 diff --git a/qcsrc/client/effects.qc b/qcsrc/client/effects.qc index 56c83e063..c0c378fd1 100644 --- a/qcsrc/client/effects.qc +++ b/qcsrc/client/effects.qc @@ -1,3 +1,6 @@ +#include "effects.qh" +#include "_all.qh" + /* .vector fx_start; .vector fx_end; @@ -5,9 +8,6 @@ .string fx_texture; .float fx_lifetime; -void SUB_Remove() -{ remove(self); } - void b_draw() { //Draw_CylindricLine(self.fx_start, self.fx_end, self.fx_with, self.fx_texture, 0, time * 3, '1 1 1', 0.7, DRAWFLAG_ADDITIVE, view_origin); @@ -39,7 +39,9 @@ void cl_effects_lightningarc(vector from, vector to,float seglength,float drifts if(length < 1) return; - steps = floor(length / seglength); + // Use at most 16 te_lightning1 segments, as these eat up beam list segments. + // TODO: Change this to R_BeginPolygon code, then we no longer have this limit. + steps = min(16, floor(length / seglength)); if(steps < 1) { te_lightning1(world,from,to); @@ -57,8 +59,9 @@ void cl_effects_lightningarc(vector from, vector to,float seglength,float drifts dirnew = normalize(direction * (1 - drift) + randomvec() * drift); pos = pos_l + dirnew * steplength; te_lightning1(world,pos_l,pos); - if(random() < branchfactor) - cl_effects_lightningarc(pos, pos + (dirnew * length * 0.25),seglength,drifts,drifte,min(branchfactor + branchfactor_add,1),branchfactor_add); + // WTF endless recursion if branchfactor is 1.0 (possibly due to adding branchfactor_add). FIXME + // if(random() < branchfactor) + // cl_effects_lightningarc(pos, pos + (dirnew * length * 0.25),seglength,drifts,drifte,min(branchfactor + branchfactor_add,1),branchfactor_add); pos_l = pos; } @@ -74,8 +77,8 @@ void Net_ReadLightningarc() { vector from, to; - from_x = ReadCoord(); from_y = ReadCoord(); from_z = ReadCoord(); - to_x = ReadCoord(); to_y = ReadCoord(); to_z = ReadCoord(); + from.x = ReadCoord(); from.y = ReadCoord(); from.z = ReadCoord(); + to.x = ReadCoord(); to.y = ReadCoord(); to.z = ReadCoord(); if(autocvar_cl_effects_lightningarc_simple) {