summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorludde <ludde@openttd.org>2005-07-12 20:41:17 +0000
committerludde <ludde@openttd.org>2005-07-12 20:41:17 +0000
commitebe3b89b981dc0cd5256f326d720dfe234c52e95 (patch)
tree7d888c5c821cc2c3495b84a46eaaab83d3f9951c
parentf523be81d4cb9be33741b993a804b146cd76da47 (diff)
downloadopenttd-ebe3b89b981dc0cd5256f326d720dfe234c52e95.tar.xz
(svn r2554) - Fix: [pathfinding] Change to using some helper functions for checking the railtype.
-rw-r--r--pathfind.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/pathfind.c b/pathfind.c
index 9fff85d08..8c10fc581 100644
--- a/pathfind.c
+++ b/pathfind.c
@@ -690,7 +690,7 @@ restart:
// Not a regular rail tile?
// Then we can't use the code below, but revert to more general code.
- if (!IsTileType(tile, MP_RAILWAY) || (bits = _map5[tile]) & 0x80) {
+ if (!IsTileType(tile, MP_RAILWAY) || !IsPlainRailTile(tile)) {
bits = GetTileTrackStatus(tile, TRANSPORT_RAIL) & _tpfmode1_and[direction];
bits = (bits | (bits >> 8)) & 0x3F;
if (bits == 0) goto stop_search;
@@ -708,13 +708,14 @@ restart:
track = _new_track[FIND_FIRST_BIT(bits)][direction];
// Check if this rail is an upwards slope. If it is, then add a penalty.
- if ((track & 7) <= 5 && (_is_upwards_slope[GetTileSlope(tile, NULL)] & (1 << track)) ) {
+ // Small optimization here.. if (track&7)>1 then it can't be a slope so we avoid calling GetTileSlope
+ if ((track & 7) <= 1 && (_is_upwards_slope[GetTileSlope(tile, NULL)] & (1 << track)) ) {
// upwards slope. add some penalty.
si.cur_length += 2;
}
// railway tile with signals..?
- if (_map5[tile] & 0x40) {
+ if (HasSignals(tile)) {
byte m3;
m3 = _map3_lo[tile];