Fix weigth scale of A* being applied to the whole path and estimation

Attempt to fix #8584

(cherry picked from commit bd91730347)
This commit is contained in:
Bojidar Marinov 2017-05-16 14:46:13 +03:00 committed by Rémi Verschelde
parent 89703435a1
commit 831cb5b119

View file

@ -193,8 +193,7 @@ bool AStar::_solve(Point *begin_point, Point *end_point) {
Point *n = begin_point->neighbours[i];
n->prev_point = begin_point;
n->distance = _compute_cost(n->id, begin_point->id);
n->distance *= n->weight_scale;
n->distance = _compute_cost(begin_point->id, n->id) * n->weight_scale;
n->last_pass = pass;
open_list.add(&n->list);
@ -238,8 +237,7 @@ bool AStar::_solve(Point *begin_point, Point *end_point) {
Point *e = p->neighbours[i];
float distance = _compute_cost(p->id, e->id) + p->distance;
distance *= e->weight_scale;
float distance = _compute_cost(p->id, e->id) * e->weight_scale + p->distance;
if (e->last_pass == pass) {
//oh this was visited already, can we win the cost?