Navparser: Fix not repathing if ignored

This commit is contained in:
TotallyNotElite 2018-11-16 09:40:59 +01:00
parent 6bafd6a3f5
commit 49496df9dc

View File

@ -222,7 +222,7 @@ public:
else else
return 2; return 2;
} }
static void addTime(CNavArea *begin, CNavArea *end, Timer &time) static bool addTime(CNavArea *begin, CNavArea *end, Timer &time)
{ {
// Check if connection is already known // Check if connection is already known
if (ignores.find({ begin, end }) == ignores.end()) if (ignores.find({ begin, end }) == ignores.end())
@ -239,9 +239,11 @@ public:
connection.status = explicit_ignored; connection.status = explicit_ignored;
connection.ignoreTimeout.update(); connection.ignoreTimeout.update();
logging::Info("Ignored Connection %i-%i", begin->m_id, end->m_id); logging::Info("Ignored Connection %i-%i", begin->m_id, end->m_id);
return true;
} }
return false;
} }
static void addTime(Vector &begin, Vector &end, Timer &time) static bool addTime(Vector &begin, Vector &end, Timer &time)
{ {
// todo: check nullptr // todo: check nullptr
CNavArea *begin_area = getNavArea(begin); CNavArea *begin_area = getNavArea(begin);
@ -251,9 +253,9 @@ public:
// We can't reach the destination vector. Destination vector might // We can't reach the destination vector. Destination vector might
// be out of bounds/reach. // be out of bounds/reach.
crumbs.clear(); crumbs.clear();
return; return true;
} }
addTime(begin_area, end_area, time); return addTime(begin_area, end_area, time);
} }
static void reset() static void reset()
{ {
@ -541,10 +543,14 @@ bool navTo(Vector destination, int priority, bool should_repath,
return false; return false;
std::vector<Vector> path = findPath(g_pLocalPlayer->v_Origin, destination); std::vector<Vector> path = findPath(g_pLocalPlayer->v_Origin, destination);
if (path.empty()) if (path.empty())
{
crumbs.clear();
return false; return false;
}
if (!crumbs.empty()) if (!crumbs.empty())
{ {
ignoremanager::addTime(last_area, crumbs.at(0), inactivity); if (ignoremanager::addTime(last_area, crumbs.at(0), inactivity))
ResetPather();
} }
last_area = path.at(0); last_area = path.at(0);
if (!nav_to_local) if (!nav_to_local)