src/road_cmd.cpp
changeset 9085 093e03dad31f
parent 9067 88f2bc991236
child 9092 383a632de666
--- a/src/road_cmd.cpp	Sun Feb 17 20:15:20 2008 +0000
+++ b/src/road_cmd.cpp	Sun Feb 17 21:27:44 2008 +0000
@@ -1054,6 +1054,16 @@
 	/* Return if full detail is disabled, or we are zoomed fully out. */
 	if (!HasBit(_display_opt, DO_FULL_DETAIL) || _cur_dpi->zoom > ZOOM_LVL_DETAIL) return;
 
+	/* Do not draw details (street lights, trees) under low bridge */
+	if (MayHaveBridgeAbove(ti->tile) && IsBridgeAbove(ti->tile) && (roadside == ROADSIDE_TREES || roadside == ROADSIDE_STREET_LIGHTS)) {
+		uint height = GetBridgeHeight(GetNorthernBridgeEnd(ti->tile));
+		uint minz = GetTileMaxZ(ti->tile) + 2 * TILE_HEIGHT;
+
+		if (roadside == ROADSIDE_TREES) minz += TILE_HEIGHT;
+
+		if (height < minz) return;
+	}
+
 	/* Draw extra details. */
 	for (drts = _road_display_table[roadside][road]; drts->image != 0; drts++) {
 		DrawRoadDetail(drts->image, ti, drts->subcoord_x, drts->subcoord_y, 0x10);