From c2b1c624dd0d7909c69ddfba1eb2cf611b22cd25 Mon Sep 17 00:00:00 2001
From: frosch <frosch@openttd.org>
Date: Mon, 9 Aug 2010 07:19:44 +0000
Subject: [PATCH] (svn r20421) -Change [FS#3947]: Make snowyness of bridgehead
 depend on the tileheight at the entry edge.

---
 src/tunnelbridge_cmd.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp
index 0d064793d0..adb399af86 100644
--- a/src/tunnelbridge_cmd.cpp
+++ b/src/tunnelbridge_cmd.cpp
@@ -1396,12 +1396,17 @@ static void TileLoop_TunnelBridge(TileIndex tile)
 {
 	bool snow_or_desert = HasTunnelBridgeSnowOrDesert(tile);
 	switch (_settings_game.game_creation.landscape) {
-		case LT_ARCTIC:
-			if (snow_or_desert != (GetTileZ(tile) > GetSnowLine())) {
+		case LT_ARCTIC: {
+			/* As long as we do not have a snow density, we want to use the density
+			 * from the entry endge. For tunnels this is the lowest point for bridges the highest point.
+			 * (Independent of foundations) */
+			uint z = IsBridge(tile) ? GetTileMaxZ(tile) : GetTileZ(tile);
+			if (snow_or_desert != (z > GetSnowLine())) {
 				SetTunnelBridgeSnowOrDesert(tile, !snow_or_desert);
 				MarkTileDirtyByTile(tile);
 			}
 			break;
+		}
 
 		case LT_TROPIC:
 			if (GetTropicZone(tile) == TROPICZONE_DESERT && !snow_or_desert) {