summaryrefslogtreecommitdiff
path: root/tunnel_map.c
diff options
context:
space:
mode:
Diffstat (limited to 'tunnel_map.c')
-rw-r--r--tunnel_map.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/tunnel_map.c b/tunnel_map.c
new file mode 100644
index 000000000..d39c7ef04
--- /dev/null
+++ b/tunnel_map.c
@@ -0,0 +1,25 @@
+/* $Id$ */
+
+#include "stdafx.h"
+#include "openttd.h"
+#include "tile.h"
+#include "tunnel_map.h"
+
+TileIndex GetOtherTunnelEnd(TileIndex tile)
+{
+ DiagDirection dir = GetTunnelDirection(tile);
+ TileIndexDiff delta = TileOffsByDir(dir);
+ uint z = GetTileZ(tile);
+
+ dir = ReverseDiagDir(dir);
+ do {
+ tile += delta;
+ } while (
+ !IsTileType(tile, MP_TUNNELBRIDGE) ||
+ GB(_m[tile].m5, 4, 4) != 0 ||
+ GetTunnelDirection(tile) != dir ||
+ GetTileZ(tile) != z
+ );
+
+ return tile;
+}