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