diff options
author | tron <tron@openttd.org> | 2006-08-16 06:06:48 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-08-16 06:06:48 +0000 |
commit | 3f35ae15014d4c8576559c77bdca9c16f76ca663 (patch) | |
tree | 5d89dee90e04db2f5d8430d811bc9c6c1ae8a737 /tunnelbridge_cmd.c | |
parent | fa5564db133f9c93d78346d696bc09cdbc690f58 (diff) | |
download | openttd-3f35ae15014d4c8576559c77bdca9c16f76ca663.tar.xz |
(svn r5924) Revert accidently commited files
Diffstat (limited to 'tunnelbridge_cmd.c')
-rw-r--r-- | tunnelbridge_cmd.c | 23 |
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 */ |