]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mapobjects/func/rainsnow.qc
Transifex autosync
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mapobjects / func / rainsnow.qc
index 1cce5f5c2910dc122a01411d7f2965e5aac80ccd..9e9dc64e280b500337f4a6458b206c8c769dddf1 100644 (file)
@@ -13,6 +13,7 @@ bool rainsnow_SendEntity(entity this, entity to, float sf)
        WriteShort(MSG_ENTITY, compressShortVector(this.dest));
        WriteShort(MSG_ENTITY, this.count);
        WriteByte(MSG_ENTITY, this.cnt);
+       WriteShort(MSG_ENTITY, bound(0, this.fade_end, 32767));
        return true;
 }
 
@@ -99,7 +100,8 @@ float autocvar_cl_rainsnow_maxdrawdist = 1000;
 
 void Draw_RainSnow(entity this)
 {
-       vector maxdist = '1 1 1' * autocvar_cl_rainsnow_maxdrawdist;
+       float drawdist = ((this.fade_end) ? this.fade_end : autocvar_cl_rainsnow_maxdrawdist);
+       vector maxdist = '1 1 1' * drawdist;
 
        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);
@@ -124,6 +126,7 @@ NET_HANDLE(ENT_CLIENT_RAINSNOW, bool isnew)
        this.velocity = decompressShortVector(ReadShort());
        this.count = ReadShort();
        this.glow_color = ReadByte(); // color
+       this.fade_end = ReadShort();
 
        return = true;
 
@@ -131,9 +134,9 @@ NET_HANDLE(ENT_CLIENT_RAINSNOW, bool isnew)
        this.maxs    =  0.5 * this.maxs;
        this.origin  = this.origin - this.mins;
 
+       this.solid = SOLID_NOT; // before setorigin/setsize to prevent area grid linking
        setorigin(this, this.origin);
        setsize(this, this.mins, this.maxs);
-       this.solid = SOLID_NOT;
        if (isnew) IL_PUSH(g_drawables, this);
        this.draw = Draw_RainSnow;
 }