+ if (this.goalcurrent_prev && this.goalcurrent_prev.wpflags & WAYPOINTFLAG_JUMP)
+ {
+ if (time > this.bot_stop_moving_timeout
+ && fabs(deviation.y) > 20 && current_speed > maxspeed * 0.4
+ && vdist(vec2(this.origin - this.goalcurrent_prev.origin), <, 50))
+ {
+ this.bot_stop_moving_timeout = time + 0.1;
+ }
+ if (current_speed > autocvar_sv_maxspeed * 0.9
+ && vlen2(flat_diff) < vlen2(vec2(this.goalcurrent_prev.origin - destorg))
+ && vdist(vec2(this.origin - this.goalcurrent_prev.origin), >, 50)
+ && vdist(vec2(this.origin - this.goalcurrent_prev.origin), <, 150)
+ )
+ {
+ PHYS_INPUT_BUTTON_JUMP(this) = true;
+ // avoid changing route while bot is jumping a gap
+ navigation_goalrating_timeout_extend_if_needed(this, 1.5);
+ }
+ }
+ else if (!this.goalstack01 || this.goalcurrent.wpflags & (WAYPOINTFLAG_TELEPORT | WAYPOINTFLAG_LADDER))