From: terencehill Date: Fri, 4 Aug 2017 13:46:45 +0000 (+0200) Subject: Tracewalk: make sure there's no obstacle while resurfacing X-Git-Tag: xonotic-v0.8.5~2378^2~94 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=15de99a6dfaed6d6c9109bfddd2b55d1f9712e29;p=xonotic%2Fxonotic-data.pk3dir.git Tracewalk: make sure there's no obstacle while resurfacing --- diff --git a/qcsrc/server/bot/default/navigation.qc b/qcsrc/server/bot/default/navigation.qc index 72a90104a..d54503946 100644 --- a/qcsrc/server/bot/default/navigation.qc +++ b/qcsrc/server/bot/default/navigation.qc @@ -181,7 +181,15 @@ bool tracewalk(entity e, vector start, vector m1, vector m2, vector end, float e { tracebox(org, m1, m2, org - jumpheight_vec, movemode, e); if (SUBMERGED(trace_endpos)) - RESURFACE_LIMITED(trace_endpos, end.z); + { + vector v = trace_endpos; + tracebox(v, m1, m2, end, movemode, e); + if(trace_endpos.z >= end.z - 1) + { + RESURFACE_LIMITED(v, trace_endpos.z); + trace_endpos = v; + } + } else if (trace_endpos.z > org.z - jumpheight_vec.z) tracebox(trace_endpos, m1, m2, trace_endpos + jumpheight_vec, movemode, e); org = trace_endpos;