Changeset - r8589:02a107580b36
[Not reviewed]
master
0 2 0
smatz - 16 years ago 2008-02-17 21:27:44
smatz@openttd.org
(svn r12170) -Fix: do not draw trees along road and street lights under low bridges (spotted by _minime_)
2 files changed with 16 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/road_cmd.cpp
Show inline comments
 
@@ -1054,6 +1054,16 @@ static void DrawRoadBits(TileInfo* ti)
 
	/* 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);
src/tunnelbridge_cmd.cpp
Show inline comments
 
@@ -663,10 +663,16 @@ static CommandCost DoClearBridge(TileInd
 
		/* read this value before actual removal of bridge */
 
		bool rail = GetTunnelBridgeTransportType(tile) == TRANSPORT_RAIL;
 
		Owner owner = GetTileOwner(tile);
 
		uint height = GetBridgeHeight(tile);
 

	
 
		DoClearSquare(tile);
 
		DoClearSquare(endtile);
 
		for (TileIndex c = tile + delta; c != endtile; c += delta) {
 
			/* do not let trees appear from 'nowhere' after removing bridge */
 
			if (IsNormalRoadTile(c) && GetRoadside(c) == ROADSIDE_TREES) {
 
				uint minz = GetTileMaxZ(c) + 3 * TILE_HEIGHT;
 
				if (height < minz) SetRoadside(c, ROADSIDE_PAVED);
 
			}
 
			ClearBridgeMiddle(c);
 
			MarkTileDirtyByTile(c);
 
		}
0 comments (0 inline, 0 general)