From 66aaa92bd1f89fd71eacf2215a6da16b8704efb9 Mon Sep 17 00:00:00 2001 From: KimLS Date: Sat, 12 May 2018 22:16:50 -0700 Subject: [PATCH] Changes to stuck handling that should result in fewer actually stuck npcs --- zone/pathing.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/zone/pathing.cpp b/zone/pathing.cpp index 9996270cb..9e14daa0d 100644 --- a/zone/pathing.cpp +++ b/zone/pathing.cpp @@ -188,12 +188,24 @@ glm::vec3 Mob::HandleStuckPath(const glm::vec3 &To, const glm::vec3 &From) bool partial = false; bool stuck = false; auto r = zone->pathing->FindRoute(To, From, partial, stuck); - Route.clear(); + Route.clear(); + + if (r.size() < 1) { + Teleport(To); + return To; + } - auto final_node = r.back(); - Route.push_back(final_node); - AdjustRoute(Route, flymode, GetZOffset()); - return (*Route.begin()).pos; + auto iter = r.rbegin(); + auto final_node = (*iter); + Teleport(final_node.pos); + + if (r.size() < 2) { + return final_node.pos; + } + else { + iter++; + return (*iter).pos; + } } void CullPoints(std::vector &points) {