From: Mario Date: Mon, 5 Jan 2015 12:27:04 +0000 (+1100) Subject: Make a generic trigger touch function X-Git-Tag: xonotic-v0.8.1~38^2~49 X-Git-Url: http://git.xonotic.org/?a=commitdiff_plain;h=b90dca7b2798825de6bd279bcc12cd22d91fcce4;p=xonotic%2Fxonotic-data.pk3dir.git Make a generic trigger touch function --- diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index aff71b806..fcb25246f 100644 --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@ -331,6 +331,27 @@ float CSQC_InputEvent(float bInputType, float nPrimary, float nSecondary) // -------------------------------------------------------------------------- // BEGIN OPTIONAL CSQC FUNCTIONS +void trigger_touch_generic(void() touchfunc) +{ + entity e; + for(e = findradius((self.absmin + self.absmax) * 0.5, vlen(self.absmax - self.absmin) * 0.5 + 1); e; e = e.chain) + if(e.isplayermodel) + { + vector emin = e.absmin, emax = e.absmax; + if(self.solid == SOLID_BSP) + { + emin -= '1 1 1'; + emax += '1 1 1'; + } + if(boxesoverlap(emin, emax, self.absmin, self.absmax)) // quick + if(WarpZoneLib_BoxTouchesBrush(emin, emax, self, e)) // accurate + { + other = e; + touchfunc(); + } + } +} + void Ent_RemoveEntCS() { entcs_receiver[self.sv_entnum] = world; diff --git a/qcsrc/server/t_halflife.qc b/qcsrc/server/t_halflife.qc index 961ecdc0e..1f45f9c82 100644 --- a/qcsrc/server/t_halflife.qc +++ b/qcsrc/server/t_halflife.qc @@ -119,25 +119,7 @@ void func_ladder_draw() self.move_time = time; if(dt <= 0) { return; } - entity e; - - for(e = findradius((self.absmin + self.absmax) * 0.5, vlen(self.absmax - self.absmin) * 0.5 + 1); e; e = e.chain) - if(e.isplayermodel) - { - vector emin = e.absmin; - vector emax = e.absmax; - if(self.solid == SOLID_BSP) - { - emin -= '1 1 1'; - emax += '1 1 1'; - } - if(boxesoverlap(emin, emax, self.absmin, self.absmax)) // quick - if(WarpZoneLib_BoxTouchesBrush(emin, emax, self, e)) // accurate - { - other = e; - func_ladder_touch(); - } - } + trigger_touch_generic(func_ladder_touch); } void ent_func_ladder() diff --git a/qcsrc/server/t_jumppads.qc b/qcsrc/server/t_jumppads.qc index d45879491..fa2f4fe50 100644 --- a/qcsrc/server/t_jumppads.qc +++ b/qcsrc/server/t_jumppads.qc @@ -456,19 +456,11 @@ void spawnfunc_target_position() { target_push_link(); } #ifdef CSQC void trigger_push_draw() { - /*float dt = time - self.move_time; + float dt = time - self.move_time; self.move_time = time; - if(dt <= 0) - return;*/ + if(dt <= 0) { return; } - tracebox(self.origin, self.mins, self.maxs, self.origin, MOVE_NORMAL, self); - - //if(trace_fraction < 1) - if(trace_ent) - { - other = trace_ent; - trigger_push_touch(); - } + trigger_touch_generic(trigger_push_touch); } void ent_trigger_push()