summaryrefslogtreecommitdiff
path: root/bridge_map.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-03-16 05:28:15 +0000
committertron <tron@openttd.org>2006-03-16 05:28:15 +0000
commit1ac97fe0088096a265660dc5efa4478fe0db4b06 (patch)
treea01ad9ec07f1c762111d146894944d904b92ab3c /bridge_map.c
parent5bf4bbaffec438f45657d279ab71debc84f2d00c (diff)
downloadopenttd-1ac97fe0088096a265660dc5efa4478fe0db4b06.tar.xz
(svn r3898) Add functions to find a bridge end starting at a middle tile
Diffstat (limited to 'bridge_map.c')
-rw-r--r--bridge_map.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/bridge_map.c b/bridge_map.c
index dbd6ac3f4..cbb955c37 100644
--- a/bridge_map.c
+++ b/bridge_map.c
@@ -5,6 +5,26 @@
#include "bridge_map.h"
+TileIndex GetBridgeEnd(TileIndex tile, DiagDirection dir)
+{
+ TileIndexDiff delta = TileOffsByDir(dir);
+
+ assert(DiagDirToAxis(dir) == GetBridgeAxis(tile));
+
+ do {
+ tile += delta;
+ } while (!IsBridgeRamp(tile));
+
+ return tile;
+}
+
+
+TileIndex GetSouthernBridgeEnd(TileIndex t)
+{
+ return GetBridgeEnd(t, AxisToDiagDir(GetBridgeAxis(t)));
+}
+
+
TileIndex GetOtherBridgeEnd(TileIndex tile)
{
TileIndexDiff delta = TileOffsByDir(GetBridgeRampDirection(tile));