diff --git a/include/navparser.hpp b/include/navparser.hpp index 8b96ab2a..e1e90a3c 100644 --- a/include/navparser.hpp +++ b/include/navparser.hpp @@ -25,7 +25,7 @@ bool Prepare(); void CreateMove(); void Draw(); -size_t FindInVector(size_t id); +int FindInVector(size_t id); class inactivityTracker { @@ -303,9 +303,12 @@ struct MAP : public micropather::Graph if (inactiveTracker.IsIgnored( std::pair{ area->m_id, i.area->m_id })) continue; + int id = FindInVector(i.area->m_id); + if (id == -1) + return; micropather::StateCost cost; cost.state = - static_cast(&areas.at(FindInVector(i.area->m_id))); + static_cast(&areas.at(id)); cost.cost = area->m_center.DistTo(i.area->m_center); adjacent->push_back(cost); } diff --git a/src/navparser.cpp b/src/navparser.cpp index ea4ec0e5..c3e30478 100644 --- a/src/navparser.cpp +++ b/src/navparser.cpp @@ -17,9 +17,9 @@ static std::unique_ptr TF2MAP; // Function to get place in Vector by connection ID // Todo: find an alternative for this, maybe a map for storing ptrs to the // std::vector? -size_t FindInVector(size_t id) +int FindInVector(size_t id) { - for (size_t i = 0; i < areas.size(); i++) + for (int i = 0; i < areas.size(); i++) { if (areas.at(i).m_id == id) return i;