From 29985b768c5c9f5a92dc67e9b70626f3e6b9ff06 Mon Sep 17 00:00:00 2001 From: smatz Date: Wed, 18 Jun 2008 16:48:58 +0000 Subject: (svn r13565) -Change [FS#2077]: when invisibility is set, sprite sequences are now drawn until first non-opaque sprite is found (bit 14 not set) This is to balance performance, code complexity and NewGRF requirements --- src/station_cmd.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/station_cmd.cpp') diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index be9b30f16..42ed6291f 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2221,12 +2221,13 @@ static void DrawTile_Station(TileInfo *ti) DrawTramCatenary(ti, axis == AXIS_X ? ROAD_X : ROAD_Y); } - /* End now if buildings are invisible */ - if (IsInvisibilitySet(TO_BUILDINGS)) return; - const DrawTileSeqStruct *dtss; foreach_draw_tile_seq(dtss, t->seq) { SpriteID image = dtss->image.sprite; + + /* Stop drawing sprite sequence once we meet a sprite that doesn't have to be opaque */ + if (IsInvisibilitySet(TO_BUILDINGS) && !HasBit(image, SPRITE_MODIFIER_OPAQUE)) return; + if (relocation == 0 || HasBit(image, SPRITE_MODIFIER_USE_OFFSET)) { image += total_offset; } else { -- cgit v1.2.3-54-g00ecf