X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ffunc%2Frainsnow.qc;h=ff49eca2c0176c899cdaf1ccd02d9669e0fd851b;hb=821767330613f134fe04791532f44e63741ee6c6;hp=cc7dc09228b872efe428a0704d62764e353f6889;hpb=87cbf00c7734cf2910502c217b5c5157511ba5ea;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/func/rainsnow.qc b/qcsrc/common/triggers/func/rainsnow.qc index cc7dc0922..ff49eca2c 100644 --- a/qcsrc/common/triggers/func/rainsnow.qc +++ b/qcsrc/common/triggers/func/rainsnow.qc @@ -1,16 +1,15 @@ +#include "rainsnow.qh" REGISTER_NET_LINKED(ENT_CLIENT_RAINSNOW) #ifdef SVQC bool rainsnow_SendEntity(entity this, entity to, float sf) { + vector myorg = this.origin + this.mins; + vector mysize = this.maxs - this.mins; WriteHeader(MSG_ENTITY, ENT_CLIENT_RAINSNOW); WriteByte(MSG_ENTITY, this.state); - WriteCoord(MSG_ENTITY, this.origin_x + this.mins_x); - WriteCoord(MSG_ENTITY, this.origin_y + this.mins_y); - WriteCoord(MSG_ENTITY, this.origin_z + this.mins_z); - WriteCoord(MSG_ENTITY, this.maxs_x - this.mins_x); - WriteCoord(MSG_ENTITY, this.maxs_y - this.mins_y); - WriteCoord(MSG_ENTITY, this.maxs_z - this.mins_z); + WriteVector(MSG_ENTITY, myorg); + WriteVector(MSG_ENTITY, mysize); WriteShort(MSG_ENTITY, compressShortVector(this.dest)); WriteShort(MSG_ENTITY, this.count); WriteByte(MSG_ENTITY, this.cnt); @@ -39,17 +38,19 @@ spawnfunc(func_rain) this.solid = SOLID_NOT; SetBrushEntityModel(this); if (!this.cnt) + { this.cnt = 12; + } if (!this.count) this.count = 2000; - this.count = 0.01 * this.count * (this.size_x / 1024) * (this.size_y / 1024); + // relative to absolute particle count + this.count = this.count * (this.size_x / 1024) * (this.size_y / 1024); if (this.count < 1) this.count = 1; if(this.count > 65535) this.count = 65535; - this.state = 1; // 1 is rain, 0 is snow - this.Version = 1; + this.state = RAINSNOW_RAIN; Net_LinkEntity(this, false, 0, rainsnow_SendEntity); } @@ -77,17 +78,19 @@ spawnfunc(func_snow) this.solid = SOLID_NOT; SetBrushEntityModel(this); if (!this.cnt) + { this.cnt = 12; + } if (!this.count) this.count = 2000; - this.count = 0.01 * this.count * (this.size_x / 1024) * (this.size_y / 1024); + // relative to absolute particle count + this.count = this.count * (this.size_x / 1024) * (this.size_y / 1024); if (this.count < 1) this.count = 1; if(this.count > 65535) this.count = 65535; - this.state = 0; // 1 is rain, 0 is snow - this.Version = 1; + this.state = RAINSNOW_SNOW; Net_LinkEntity(this, false, 0, rainsnow_SendEntity); } @@ -114,15 +117,11 @@ void Draw_Snow(entity this) NET_HANDLE(ENT_CLIENT_RAINSNOW, bool isnew) { - this.impulse = ReadByte(); // Rain, Snow, or Whatever - this.origin_x = ReadCoord(); - this.origin_y = ReadCoord(); - this.origin_z = ReadCoord(); - this.maxs_x = ReadCoord(); - this.maxs_y = ReadCoord(); - this.maxs_z = ReadCoord(); + this.state = ReadByte(); // Rain, Snow, or Whatever + this.origin = ReadVector(); + this.maxs = ReadVector(); this.velocity = decompressShortVector(ReadShort()); - this.count = ReadShort() * 10; + this.count = ReadShort(); this.glow_color = ReadByte(); // color return = true; @@ -135,7 +134,7 @@ NET_HANDLE(ENT_CLIENT_RAINSNOW, bool isnew) setsize(this, this.mins, this.maxs); this.solid = SOLID_NOT; if (isnew) IL_PUSH(g_drawables, this); - if(this.impulse) + if(this.state == RAINSNOW_RAIN) this.draw = Draw_Rain; else this.draw = Draw_Snow;