mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-02 04:13:26 +00:00
(svn r12170) -Fix: do not draw trees along road and street lights under low bridges (spotted by _minime_)
This commit is contained in:
parent
6bf44158c5
commit
d75cccf5d5
@ -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);
|
||||
|
@ -663,10 +663,16 @@ static CommandCost DoClearBridge(TileIndex tile, uint32 flags)
|
||||
/* 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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user