- vector maxdist = '1 1 0' * autocvar_cl_rainsnow_maxdrawdist;
- maxdist.z = 5;
- if(boxesoverlap(vec2(view_origin) - maxdist, vec2(view_origin) + maxdist, vec2(this.absmin) - '0 0 5', vec2(this.absmax) + '0 0 5'))
+ vector maxdist = '1 1 1' * autocvar_cl_rainsnow_maxdrawdist;
+
+ vector effbox_min = vec_to_max(view_origin - maxdist, this.origin + this.mins);
+ vector effbox_max = vec_to_min(view_origin + maxdist, this.origin + this.maxs);
+
+ vector mysize = effbox_min + effbox_max;
+ float mycount = bound(1, 0.1 * this.count * (mysize.x / 1024) * (mysize.y / 1024), 65535);
+ //LOG_INFO(ftos(mycount));
+
+ if(boxesoverlap(view_origin - maxdist, view_origin + maxdist, this.absmin, this.absmax)) // optimisation: don't render any rain if the player is outside the view distance