From d27999e4463edfb46158687343cd0e4f339a81a1 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 16 Jan 2010 22:25:44 +0000 Subject: (svn r18837) -Codechange: Rename DrawStationTileSeq() to DrawCommonTileSeq() and move it to separate file. --- src/sprite.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'src/sprite.h') diff --git a/src/sprite.h b/src/sprite.h index 20aa5b5d3..c0d37d9ce 100644 --- a/src/sprite.h +++ b/src/sprite.h @@ -13,6 +13,9 @@ #define SPRITE_H #include "gfx_type.h" +#include "transparency.h" + +#include "table/sprites.h" #define GENERAL_SPRITE_COLOUR(colour) ((colour) + PALETTE_RECOLOUR_START) #define COMPANY_SPRITE_COLOUR(owner) (GENERAL_SPRITE_COLOUR(_company_colours[owner])) @@ -65,6 +68,47 @@ struct DrawBuildingsTileStruct { /** Iterate through all DrawTileSeqStructs in DrawTileSprites. */ #define foreach_draw_tile_seq(idx, list) for (idx = list; ((byte) idx->delta_x) != 0x80; idx++) +void DrawCommonTileSeq(const struct TileInfo *ti, const DrawTileSprites *dts, TransparencyOption to, int32 orig_offset, uint32 newgrf_offset, SpriteID default_palette); + bool SkipSpriteData(byte type, uint16 num); +/** + * Applies PALETTE_MODIFIER_TRANSPARENT and PALETTE_MODIFIER_COLOUR to a palette entry of a sprite layout entry + * @Note for ground sprites use #GroundSpritePaletteTransform + * @Note Not useable for OTTD internal spritelayouts from table/xxx_land.h as PALETTE_MODIFIER_TRANSPARENT is only set + * when to use the default palette. + * + * @param image The sprite to draw + * @param pal The palette from the sprite layout + * @param default_pal The default recolour sprite to use (typically company colour resp. random industry/house colour) + * @return The palette to use + */ +static inline SpriteID SpriteLayoutPaletteTransform(SpriteID image, SpriteID pal, SpriteID default_pal) +{ + if (HasBit(image, PALETTE_MODIFIER_TRANSPARENT) || HasBit(image, PALETTE_MODIFIER_COLOUR)) { + return (pal != 0 ? pal : default_pal); + } else { + return PAL_NONE; + } +} + +/** + * Applies PALETTE_MODIFIER_COLOUR to a palette entry of a ground sprite + * @Note Not useable for OTTD internal spritelayouts from table/xxx_land.h as PALETTE_MODIFIER_TRANSPARENT is only set + * when to use the default palette. + * + * @param image The sprite to draw + * @param pal The palette from the sprite layout + * @param default_pal The default recolour sprite to use (typically company colour resp. random industry/house colour) + * @return The palette to use + */ +static inline SpriteID GroundSpritePaletteTransform(SpriteID image, SpriteID pal, SpriteID default_pal) +{ + if (HasBit(image, PALETTE_MODIFIER_COLOUR)) { + return (pal != 0 ? pal : default_pal); + } else { + return PAL_NONE; + } +} + #endif /* SPRITE_H */ -- cgit v1.2.3-54-g00ecf