(svn r12170) -Fix: do not draw trees along road and street lights under low bridges (spotted by _minime_)

This commit is contained in:
smatz
2008-02-17 21:27:44 +00:00
parent 6bf44158c5
commit d75cccf5d5
2 changed files with 16 additions and 0 deletions

View File

@@ -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);