Fixes #7955. Improves pathfinder performance a bit.

This commit is contained in:
David Jiménez
2015-04-15 23:43:14 +02:00
parent 012226c481
commit 6d96a43341

View File

@@ -104,14 +104,14 @@ namespace OpenRA.Mods.Common.Pathfinder
var neighborCell = Graph[neighborCPos];
// Cost is even higher; next direction:
if (gCost >= neighborCell.CostSoFar)
if (neighborCell.Status == CellStatus.Closed || gCost >= neighborCell.CostSoFar)
continue;
// Now we may seriously consider this direction using heuristics. If the cell has
// already been processed, we can reuse the result (just the difference between the
// estimated total and the cost so far
int hCost;
if (neighborCell.Status == CellStatus.Open || neighborCell.Status == CellStatus.Closed)
if (neighborCell.Status == CellStatus.Open)
hCost = neighborCell.EstimatedTotal - neighborCell.CostSoFar;
else
hCost = heuristic(neighborCPos);