summaryrefslogtreecommitdiff
path: root/src/pathfinder/yapf/yapf_costrail.hpp
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2017-04-03 21:53:51 +0000
committerpeter1138 <peter1138@openttd.org>2017-04-03 21:53:51 +0000
commit9bc27c9a72f2af5c9526f086884526e8ae8e8f79 (patch)
treefeb1687c014736d307d23e21760900155d401ab6 /src/pathfinder/yapf/yapf_costrail.hpp
parent39fa3c7cbd000fa078bc5742748fa1c3b66de12b (diff)
downloadopenttd-9bc27c9a72f2af5c9526f086884526e8ae8e8f79.tar.xz
(svn r27844) -Change: (Yapf) Treat max cost exceeded separately from path too long condition, as destination should not be considered in the former case.
Diffstat (limited to 'src/pathfinder/yapf/yapf_costrail.hpp')
-rw-r--r--src/pathfinder/yapf/yapf_costrail.hpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp
index f8047955c..d9d89b12f 100644
--- a/src/pathfinder/yapf/yapf_costrail.hpp
+++ b/src/pathfinder/yapf/yapf_costrail.hpp
@@ -479,7 +479,7 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th
/* Finish if we already exceeded the maximum path cost (i.e. when
* searching for the nearest depot). */
if (m_max_cost > 0 && (parent_cost + segment_entry_cost + segment_cost) > m_max_cost) {
- end_segment_reason |= ESRB_PATH_TOO_LONG;
+ end_segment_reason |= ESRB_MAX_COST_EXCEEDED;
}
/* Move to the next tile/trackdir. */
@@ -555,6 +555,9 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th
} // for (;;)
+ /* Don't consider path any further it if exceeded max_cost. */
+ if (end_segment_reason & ESRB_MAX_COST_EXCEEDED) return false;
+
bool target_seen = false;
if ((end_segment_reason & ESRB_POSSIBLE_TARGET) != ESRB_NONE) {
/* Depot, station or waypoint. */