diff options
author | tron <tron@openttd.org> | 2006-03-07 07:51:05 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-03-07 07:51:05 +0000 |
commit | 313754011d04ad4913bf4028b78d75ceb359e9b3 (patch) | |
tree | 99b7d8d8952db8e2911e906960659f1307c048e5 /tunnel_map.c | |
parent | a172b194c2473baaf5b5ea340ea4fe00b7835236 (diff) | |
download | openttd-313754011d04ad4913bf4028b78d75ceb359e9b3.tar.xz |
(svn r3779) Move CheckTunnelInWay() to a more appropriate place, invert its result and give it a less ambiguous name (IsTunnelInWay)
Diffstat (limited to 'tunnel_map.c')
-rw-r--r-- | tunnel_map.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tunnel_map.c b/tunnel_map.c index d39c7ef04..8752d8107 100644 --- a/tunnel_map.c +++ b/tunnel_map.c @@ -23,3 +23,30 @@ TileIndex GetOtherTunnelEnd(TileIndex tile) return tile; } + + +static bool IsTunnelInWayDir(TileIndex tile, uint z, DiagDirection dir) +{ + TileIndexDiff delta = TileOffsByDir(dir); + uint height; + + do { + tile -= delta; + height = GetTileZ(tile); + } while (z < height); + + return + z == height && + IsTileType(tile, MP_TUNNELBRIDGE) && + GB(_m[tile].m5, 4, 4) == 0 && + GetTunnelDirection(tile) == dir; +} + +bool IsTunnelInWay(TileIndex tile, uint z) +{ + return + IsTunnelInWayDir(tile, z, DIAGDIR_NE) || + IsTunnelInWayDir(tile, z, DIAGDIR_SE) || + IsTunnelInWayDir(tile, z, DIAGDIR_SW) || + IsTunnelInWayDir(tile, z, DIAGDIR_NW); +} |