summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tunnelbridge_cmd.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/tunnelbridge_cmd.c b/tunnelbridge_cmd.c
index 672936b36..4761c6013 100644
--- a/tunnelbridge_cmd.c
+++ b/tunnelbridge_cmd.c
@@ -630,10 +630,14 @@ static int32 DoClearTunnel(uint tile, uint32 flags)
}
if (flags & DC_EXEC) {
+ // We first need to request the direction before calling DoClearSquare
+ // else the direction is always 0.. dah!! ;)
+ byte tile_dir = _map5[tile]&3;
+ byte endtile_dir = _map5[endtile]&3;
DoClearSquare(tile);
DoClearSquare(endtile);
- UpdateSignalsOnSegment(tile, _updsignals_tunnel_dir[_map5[tile]&3]);
- UpdateSignalsOnSegment(endtile, _updsignals_tunnel_dir[_map5[endtile]&3]);
+ UpdateSignalsOnSegment(tile, _updsignals_tunnel_dir[tile_dir]);
+ UpdateSignalsOnSegment(endtile, _updsignals_tunnel_dir[endtile_dir]);
if (_map_owner[tile] == OWNER_TOWN && _game_mode != GM_EDITOR)
ChangeTownRating(t, -250, 0);
}