]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Use crosshair_trace_plusvisibletriggers instead of trace_ent for dragging, which...
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Sun, 4 Dec 2011 19:30:59 +0000 (21:30 +0200)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Sun, 4 Dec 2011 19:30:59 +0000 (21:30 +0200)
qcsrc/server/cheats.qc

index c03ea7ae0915e07b5b3a1d8c6c0d68554a9b46f1..c992364e953987934dd6c6bfff795d1b0249973b 100644 (file)
@@ -704,25 +704,27 @@ float CheatFrame()
                                // it goes out of range while slinging it around.
 
                                float drag;
-                               makevectors(self.v_angle);
-                               WarpZone_TraceLine(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * autocvar_g_grab_range, MOVE_NORMAL, self);
-                               switch(trace_ent.grab)
+                               crosshair_trace_plusvisibletriggers(self);
+                               if(vlen(self.origin - trace_ent.origin) <= autocvar_g_grab_range)
                                {
-                                       case 0: // can't grab
-                                               break;
-                                       case 1: // owner can grab
-                                               if(trace_ent.owner == self || trace_ent.realowner == self)
-                                                       drag = TRUE;
-                                               break;
-                                       case 2: // owner and team mates can grab
-                                               if(!IsDifferentTeam(trace_ent.owner, self) || !IsDifferentTeam(trace_ent.realowner, self) || trace_ent.team == self.team)
+                                       switch(trace_ent.grab)
+                                       {
+                                               case 0: // can't grab
+                                                       break;
+                                               case 1: // owner can grab
+                                                       if(trace_ent.owner == self || trace_ent.realowner == self)
+                                                               drag = TRUE;
+                                                       break;
+                                               case 2: // owner and team mates can grab
+                                                       if(!IsDifferentTeam(trace_ent.owner, self) || !IsDifferentTeam(trace_ent.realowner, self) || trace_ent.team == self.team)
+                                                               drag = TRUE;
+                                                       break;
+                                               case 3: // anyone can grab
                                                        drag = TRUE;
-                                               break;
-                                       case 3: // anyone can grab
-                                               drag = TRUE;
-                                               break;
-                                       default:
-                                               break;
+                                                       break;
+                                               default:
+                                                       break;
+                                       }
                                }
                                Drag(trace_ent, drag, FALSE); // execute dragging
                        }