summaryrefslogtreecommitdiff
path: root/tunnelbridge_cmd.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-08-16 06:06:48 +0000
committertron <tron@openttd.org>2006-08-16 06:06:48 +0000
commit3f35ae15014d4c8576559c77bdca9c16f76ca663 (patch)
tree5d89dee90e04db2f5d8430d811bc9c6c1ae8a737 /tunnelbridge_cmd.c
parentfa5564db133f9c93d78346d696bc09cdbc690f58 (diff)
downloadopenttd-3f35ae15014d4c8576559c77bdca9c16f76ca663.tar.xz
(svn r5924) Revert accidently commited files
Diffstat (limited to 'tunnelbridge_cmd.c')
-rw-r--r--tunnelbridge_cmd.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/tunnelbridge_cmd.c b/tunnelbridge_cmd.c
index 3d7205a76..b37619b22 100644
--- a/tunnelbridge_cmd.c
+++ b/tunnelbridge_cmd.c
@@ -1425,6 +1425,29 @@ static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y
return 0;
}
+/** Retrieve the exit-tile of the vehicle from inside a tunnel
+ * Very similar to GetOtherTunnelEnd(), but we use the vehicle's
+ * direction for determining which end of the tunnel to find
+ * @param v the vehicle which is inside the tunnel and needs an exit
+ * @return the exit-tile of the tunnel based on the vehicle's direction */
+TileIndex GetVehicleOutOfTunnelTile(const Vehicle *v)
+{
+ TileIndex tile = v->tile;
+ DiagDirection dir = DirToDiagDir(v->direction);
+ TileIndexDiff delta = TileOffsByDir(dir);
+ byte z = v->z_pos;
+
+ dir = ReverseDiagDir(dir);
+ while (
+ !IsTunnelTile(tile) ||
+ GetTunnelDirection(tile) != dir ||
+ GetTileZ(tile) != z
+ ) {
+ tile += delta;
+ }
+
+ return tile;
+}
const TileTypeProcs _tile_type_tunnelbridge_procs = {
DrawTile_TunnelBridge, /* draw_tile_proc */