From 425070c46f74fc7bb0fc9930745d63e42f98d5c2 Mon Sep 17 00:00:00 2001 From: div0 Date: Tue, 26 Aug 2008 16:58:22 +0000 Subject: [PATCH] got it to work with brush ents git-svn-id: svn://svn.icculus.org/nexuiz/trunk@4206 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/client/particles.qc | 31 ++++++++++++++++++------------- data/qcsrc/server/g_triggers.qc | 25 +++++++++++++++++++------ 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/data/qcsrc/client/particles.qc b/data/qcsrc/client/particles.qc index 226db6ae5..de814c3dc 100644 --- a/data/qcsrc/client/particles.qc +++ b/data/qcsrc/client/particles.qc @@ -1,4 +1,3 @@ -#ifdef POINTINBRUSH_WORKS vector PointInBrush_vec; entity PointInBrush_brush; entity PointInBrush_allmask; @@ -39,7 +38,6 @@ float PointInBrush(entity brush, vector point) return f; } -#endif .float cnt; // effect number .vector velocity; // particle velocity @@ -67,9 +65,7 @@ void Draw_PointParticles() p_x += random() * sz_x; p_y += random() * sz_y; p_z += random() * sz_z; -#ifdef POINTINBRUSH_WORKS if(PointInBrush(self, p)) -#endif { if(self.movedir != '0 0 0') { @@ -85,13 +81,11 @@ void Draw_PointParticles() sound(self, CHAN_AUTO, self.noise, 1, ATTN_NORM); } } -#ifdef POINTINBRUSH_WORKS else if(self.absolute) { ++fail; --i; } -#endif } self.origin = o; } @@ -115,13 +109,24 @@ void Ent_PointParticles() self.origin_x = ReadCoord(); self.origin_y = ReadCoord(); self.origin_z = ReadCoord(); - self.maxs_x = ReadCoord(); - self.maxs_y = ReadCoord(); - self.maxs_z = ReadCoord(); - - self.mins = -0.5 * self.maxs; - self.maxs = 0.5 * self.maxs; - self.origin = self.origin - self.mins; + if(self.modelindex) + { + self.mins_x = ReadCoord(); + self.mins_y = ReadCoord(); + self.mins_z = ReadCoord(); + self.maxs_x = ReadCoord(); + self.maxs_y = ReadCoord(); + self.maxs_z = ReadCoord(); + } + else + { + self.maxs_x = ReadCoord(); + self.maxs_y = ReadCoord(); + self.maxs_z = ReadCoord(); + self.mins = -0.5 * self.maxs; + self.maxs = 0.5 * self.maxs; + self.origin = self.origin - self.mins; + } self.cnt = ReadShort(); // effect number diff --git a/data/qcsrc/server/g_triggers.qc b/data/qcsrc/server/g_triggers.qc index 7bbb13cde..251fc5b7b 100644 --- a/data/qcsrc/server/g_triggers.qc +++ b/data/qcsrc/server/g_triggers.qc @@ -499,15 +499,28 @@ float pointparticles_SendEntity(entity to, float fl) if(fl & 1) { if(self.modelindex != 4.2) + { WriteShort(MSG_ENTITY, self.modelindex); + WriteCoord(MSG_ENTITY, self.origin_x); + WriteCoord(MSG_ENTITY, self.origin_y); + WriteCoord(MSG_ENTITY, self.origin_z); + WriteCoord(MSG_ENTITY, self.mins_x); + WriteCoord(MSG_ENTITY, self.mins_y); + WriteCoord(MSG_ENTITY, self.mins_z); + WriteCoord(MSG_ENTITY, self.maxs_x); + WriteCoord(MSG_ENTITY, self.maxs_y); + WriteCoord(MSG_ENTITY, self.maxs_z); + } else + { WriteShort(MSG_ENTITY, 0); - WriteCoord(MSG_ENTITY, self.origin_x + self.mins_x); - WriteCoord(MSG_ENTITY, self.origin_y + self.mins_y); - WriteCoord(MSG_ENTITY, self.origin_z + self.mins_z); - WriteCoord(MSG_ENTITY, self.maxs_x - self.mins_x); - WriteCoord(MSG_ENTITY, self.maxs_y - self.mins_y); - WriteCoord(MSG_ENTITY, self.maxs_z - self.mins_z); + WriteCoord(MSG_ENTITY, self.origin_x + self.mins_x); + WriteCoord(MSG_ENTITY, self.origin_y + self.mins_y); + WriteCoord(MSG_ENTITY, self.origin_z + self.mins_z); + WriteCoord(MSG_ENTITY, self.maxs_x - self.mins_x); + WriteCoord(MSG_ENTITY, self.maxs_y - self.mins_y); + WriteCoord(MSG_ENTITY, self.maxs_z - self.mins_z); + } WriteShort(MSG_ENTITY, self.cnt); WriteShort(MSG_ENTITY, compressShortVector(self.velocity)); WriteShort(MSG_ENTITY, compressShortVector(self.movedir)); -- 2.39.2