From b90dca7b2798825de6bd279bcc12cd22d91fcce4 Mon Sep 17 00:00:00 2001 From: Mario Date: Mon, 5 Jan 2015 23:27:04 +1100 Subject: [PATCH] Make a generic trigger touch function --- qcsrc/client/Main.qc | 21 +++++++++++++++++++++ qcsrc/server/t_halflife.qc | 20 +------------------- qcsrc/server/t_jumppads.qc | 14 +++----------- 3 files changed, 25 insertions(+), 30 deletions(-) diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index aff71b806b..fcb25246f5 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 961ecdc0e8..1f45f9c824 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 d458794915..fa2f4fe50a 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() -- 2.39.2