]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Tweak touch handling of physics a little
authorMario <mario@smbclan.net>
Sat, 12 Mar 2016 12:00:07 +0000 (22:00 +1000)
committerMario <mario@smbclan.net>
Sat, 12 Mar 2016 12:00:07 +0000 (22:00 +1000)
qcsrc/common/physics/movetypes/movetypes.qc

index ce469ed6a0893961c7834cf2813c48e086e6caa9..ec2761431c7376334292451feeef9b97f95e64b7 100644 (file)
@@ -343,11 +343,11 @@ void _Movetype_LinkEdict_TouchAreaGrid(entity this)  // SV_LinkEdict_TouchAreaGr
 
        entity oldother = other;
 
-       for (entity e = findradius(0.5 * (this.absmin + this.absmax), 0.5 * vlen(this.absmax - this.absmin)); e; e = e.chain)
+       FOREACH_ENTITY_FLOAT(solid, SOLID_TRIGGER,
        {
-               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))
+               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))
                {
                        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 = e.move_origin;
+                       trace_endpos = it.move_origin;
                        trace_plane_normal = '0 0 1';
                        trace_plane_dist = 0;
                        trace_ent = this;
 
-                       WITH(entity, self, e, e.move_touch());
+                       WITH(entity, self, it, it.move_touch());
                }
-       }
+       });
 
        other = oldother;
 }