X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_subs.qc;h=fd0dc7861e20b1cee25cdfaa0545231952d78d57;hb=07c7a1ca162187cc9d8c8d4d2e05eddd0873ce92;hp=834bb47116551b4a4e013d58189c78a37dc32838;hpb=0ee74987765518ffed584a790f90607c3f3f8e71;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_subs.qc b/qcsrc/server/g_subs.qc index 834bb4711..fd0dc7861 100644 --- a/qcsrc/server/g_subs.qc +++ b/qcsrc/server/g_subs.qc @@ -481,6 +481,8 @@ void tracebox_antilag_force_wz (entity source, vector v1, vector mi, vector ma, FOR_EACH_PLAYER(player) if(player != forent) antilag_takeback(player, time - lag); + FOR_EACH_MONSTER(player) + antilag_takeback(player, time - lag); } // do the trace @@ -495,6 +497,8 @@ void tracebox_antilag_force_wz (entity source, vector v1, vector mi, vector ma, FOR_EACH_PLAYER(player) if(player != forent) antilag_restore(player); + FOR_EACH_MONSTER(player) + antilag_restore(player); } // restore shooter solid type @@ -534,7 +538,7 @@ void WarpZone_tracebox_antilag (entity source, vector v1, vector mi, vector ma, tracebox_antilag_force_wz(source, v1, mi, ma, v2, nomonst, forent, lag, TRUE); } -float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomonsters, entity forent, float stopatentity) // returns the number of traces done, for benchmarking +float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomonsters, entity forent, float stopatentity, entity ignorestopatentity) // returns the number of traces done, for benchmarking { vector pos, dir, t; float nudge; @@ -552,7 +556,7 @@ float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomon for(;;) { - if((pos - v1) * dir >= (v2 - v1) * dir) + if(pos * dir >= v2 * dir) { // went too far trace_fraction = 1; @@ -587,7 +591,7 @@ float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomon pos = t + dir * nudge; // but if we hit an entity, stop RIGHT before it - if(stopatentity && stopentity) + if(stopatentity && stopentity && stopentity != ignorestopatentity) { trace_ent = stopentity; trace_endpos = t; @@ -612,9 +616,9 @@ float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomon } } -void traceline_inverted (vector v1, vector v2, float nomonsters, entity forent, float stopatentity) +void traceline_inverted (vector v1, vector v2, float nomonsters, entity forent, float stopatentity, entity ignorestopatentity) { - tracebox_inverted(v1, '0 0 0', '0 0 0', v2, nomonsters, forent, stopatentity); + tracebox_inverted(v1, '0 0 0', '0 0 0', v2, nomonsters, forent, stopatentity, ignorestopatentity); } /*