|
@@ -307,14 +307,12 @@ static IndustryDrawTileProc * const _ind
|
|
|
static void DrawTile_Industry(TileInfo *ti)
|
|
|
{
|
|
|
IndustryGfx gfx = GetIndustryGfx(ti->tile);
|
|
|
Industry *ind = Industry::GetByTile(ti->tile);
|
|
|
const IndustryTileSpec *indts = GetIndustryTileSpec(gfx);
|
|
|
const DrawBuildingsTileStruct *dits;
|
|
|
SpriteID image;
|
|
|
PaletteID pal;
|
|
|
|
|
|
/* Retrieve pointer to the draw industry tile struct */
|
|
|
if (gfx >= NEW_INDUSTRYTILEOFFSET) {
|
|
|
/* Draw the tile using the specialized method of newgrf industrytile.
|
|
|
* DrawNewIndustry will return false if ever the resolver could not
|
|
|
* find any sprite to display. So in this case, we will jump on the
|
|
@@ -333,38 +331,32 @@ static void DrawTile_Industry(TileInfo *
|
|
|
}
|
|
|
|
|
|
dits = &_industry_draw_tile_data[gfx << 2 | (indts->anim_state ?
|
|
|
GetIndustryAnimationState(ti->tile) & INDUSTRY_COMPLETED :
|
|
|
GetIndustryConstructionStage(ti->tile))];
|
|
|
|
|
|
image = dits->ground.sprite;
|
|
|
if (HasBit(image, PALETTE_MODIFIER_COLOUR) && dits->ground.pal == PAL_NONE) {
|
|
|
pal = GENERAL_SPRITE_COLOUR(ind->random_colour);
|
|
|
} else {
|
|
|
pal = dits->ground.pal;
|
|
|
}
|
|
|
SpriteID image = dits->ground.sprite;
|
|
|
|
|
|
/* DrawFoundation() modifes ti->z and ti->tileh */
|
|
|
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED);
|
|
|
|
|
|
/* If the ground sprite is the default flat water sprite, draw also canal/river borders.
|
|
|
* Do not do this if the tile's WaterClass is 'land'. */
|
|
|
if (image == SPR_FLAT_WATER_TILE && IsIndustryTileOnWater(ti->tile)) {
|
|
|
DrawWaterClassGround(ti);
|
|
|
} else {
|
|
|
DrawGroundSprite(image, pal);
|
|
|
DrawGroundSprite(image, GroundSpritePaletteTransform(image, dits->ground.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)));
|
|
|
}
|
|
|
|
|
|
/* If industries are transparent and invisible, do not draw the upper part */
|
|
|
if (IsInvisibilitySet(TO_INDUSTRIES)) return;
|
|
|
|
|
|
/* Add industry on top of the ground? */
|
|
|
image = dits->building.sprite;
|
|
|
if (image != 0) {
|
|
|
AddSortableSpriteToDraw(image,
|
|
|
(HasBit(image, PALETTE_MODIFIER_COLOUR) && dits->building.pal == PAL_NONE) ? GENERAL_SPRITE_COLOUR(ind->random_colour) : dits->building.pal,
|
|
|
AddSortableSpriteToDraw(image, SpriteLayoutPaletteTransform(image, dits->building.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)),
|
|
|
ti->x + dits->subtile_x,
|
|
|
ti->y + dits->subtile_y,
|
|
|
dits->width,
|
|
|
dits->height,
|
|
|
dits->dz,
|
|
|
ti->z,
|