From 15de99a6dfaed6d6c9109bfddd2b55d1f9712e29 Mon Sep 17 00:00:00 2001 From: terencehill Date: Fri, 4 Aug 2017 15:46:45 +0200 Subject: [PATCH] Tracewalk: make sure there's no obstacle while resurfacing --- qcsrc/server/bot/default/navigation.qc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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; -- 2.39.2