(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
This commit is contained in:
smatz
2008-06-18 16:48:58 +00:00
parent 883ffd1683
commit 811ae0ac3f
4 changed files with 13 additions and 12 deletions

View File

@@ -330,15 +330,15 @@ void DrawTileLayout(const TileInfo *ti, const SpriteGroup *group, byte stage, Ho
if (GB(image, 0, SPRITE_WIDTH) != 0) DrawGroundSprite(image, pal);
/* End now, if houses are invisible */
if (IsInvisibilitySet(TO_HOUSES)) return;
foreach_draw_tile_seq(dtss, dts->seq) {
if (GB(dtss->image.sprite, 0, SPRITE_WIDTH) == 0) continue;
image = dtss->image.sprite;
pal = dtss->image.pal;
/* Stop drawing sprite sequence once we meet a sprite that doesn't have to be opaque */
if (IsInvisibilitySet(TO_HOUSES) && !HasBit(image, SPRITE_MODIFIER_OPAQUE)) return;
if (IS_CUSTOM_SPRITE(image)) image += stage;
if ((HasBit(image, SPRITE_MODIFIER_OPAQUE) || !IsTransparencySet(TO_HOUSES)) && HasBit(image, PALETTE_MODIFIER_COLOR)) {