diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Taxi/TaxiPathGraph.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Entities/Taxi/TaxiPathGraph.h | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp index 3ff288b0c50..8534380a9fb 100644 --- a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp +++ b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp @@ -147,9 +147,17 @@ std::size_t TaxiPathGraph::GetCompleteNodeRoute(TaxiNodesEntry const* from, Taxi { shortestPath.clear(); std::vector<vertex_descriptor> p(boost::num_vertices(m_graph)); + std::vector<uint32> d(boost::num_vertices(m_graph)); boost::dijkstra_shortest_paths(m_graph, GetVertexIDFromNodeID(from), boost::predecessor_map(boost::make_iterator_property_map(p.begin(), boost::get(boost::vertex_index, m_graph))) + .distance_map(boost::make_iterator_property_map(d.begin(), boost::get(boost::vertex_index, m_graph))) + .vertex_index_map(boost::get(boost::vertex_index, m_graph)) + .distance_compare(std::less<uint32>()) + .distance_combine(boost::closed_plus<uint32>()) + .distance_inf(std::numeric_limits<uint32>::max()) + .distance_zero(0) + .visitor(boost::dijkstra_visitor<boost::null_visitor>()) .weight_map(boost::make_transform_value_property_map( [player](EdgeCost const& edgeCost) { return edgeCost.EvaluateDistance(player); }, boost::get(boost::edge_weight, m_graph)))); diff --git a/src/server/game/Entities/Taxi/TaxiPathGraph.h b/src/server/game/Entities/Taxi/TaxiPathGraph.h index 24ec3ce9a7e..ae71c974d5d 100644 --- a/src/server/game/Entities/Taxi/TaxiPathGraph.h +++ b/src/server/game/Entities/Taxi/TaxiPathGraph.h @@ -40,11 +40,11 @@ private: uint32 Distance; uint32 EvaluateDistance(Player const* player) const; }; - typedef boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::property<boost::vertex_index_t, uint32>, boost::property<boost::edge_weight_t, EdgeCost>> Graph; + typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::property<boost::vertex_index_t, uint32>, boost::property<boost::edge_weight_t, EdgeCost>> Graph; typedef boost::property_map<Graph, boost::edge_weight_t>::type WeightMap; typedef Graph::vertex_descriptor vertex_descriptor; typedef Graph::edge_descriptor edge_descriptor; - typedef std::pair<uint32, uint32> edge; + typedef std::pair<vertex_descriptor, vertex_descriptor> edge; TaxiPathGraph() { } ~TaxiPathGraph() { } |