]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Revert tweak to touch function (has the possibility of overwhelming clients on maps...
authorMario <mario@smbclan.net>
Sat, 12 Mar 2016 12:11:43 +0000 (22:11 +1000)
committerMario <mario@smbclan.net>
Sat, 12 Mar 2016 12:11:43 +0000 (22:11 +1000)
qcsrc/common/physics/movetypes/movetypes.qc
qcsrc/common/triggers/triggers.qc

index ec2761431c7376334292451feeef9b97f95e64b7..ce469ed6a0893961c7834cf2813c48e086e6caa9 100644 (file)
@@ -343,11 +343,11 @@ void _Movetype_LinkEdict_TouchAreaGrid(entity this)  // SV_LinkEdict_TouchAreaGr
 
        entity oldother = other;
 
-       FOREACH_ENTITY_FLOAT(solid, SOLID_TRIGGER,
+       for (entity e = findradius(0.5 * (this.absmin + this.absmax), 0.5 * vlen(this.absmax - this.absmin)); e; e = e.chain)
        {
-               if(it != this && it.move_touch)
-               if(it.move_nomonsters != MOVE_NOMONSTERS && it.move_nomonsters != MOVE_WORLDONLY)
-               if(boxesoverlap(it.absmin, it.absmax, this.absmin, this.absmax))
+               if(e.solid == SOLID_TRIGGER && e != this)
+               if(e.move_nomonsters != MOVE_NOMONSTERS && e.move_nomonsters != MOVE_WORLDONLY)
+               if(e.move_touch && boxesoverlap(e.absmin, e.absmax, this.absmin, this.absmax))
                {
                        other = this;
 
@@ -356,14 +356,14 @@ void _Movetype_LinkEdict_TouchAreaGrid(entity this)  // SV_LinkEdict_TouchAreaGr
                        trace_fraction = 1;
                        trace_inwater = false;
                        trace_inopen = true;
-                       trace_endpos = it.move_origin;
+                       trace_endpos = e.move_origin;
                        trace_plane_normal = '0 0 1';
                        trace_plane_dist = 0;
                        trace_ent = this;
 
-                       WITH(entity, self, it, it.move_touch());
+                       WITH(entity, self, e, e.move_touch());
                }
-       });
+       }
 
        other = oldother;
 }
index 563364523c9396ac306515b0430f2569100208cb..29cb70a7dcc935990309119f1acf2e403806ff18 100644 (file)
@@ -296,7 +296,7 @@ void trigger_touch_generic(entity this, void() touchfunc)
 {
        entity e;
        for(e = findradius((this.absmin + this.absmax) * 0.5, vlen(this.absmax - this.absmin) * 0.5 + 1); e; e = e.chain)
-       if(e.isplayermodel || e.classname == "csqcprojectile")
+       if(e.classname == "csqcprojectile")
        {
                vector emin = e.absmin, emax = e.absmax;
                if(this.solid == SOLID_BSP)