Tint unused industries red/orange in zonning

This commit is contained in:
Pavel Stupnikov
2020-02-03 02:39:10 +03:00
parent 91cc303d4f
commit 2ced62738a
10 changed files with 367 additions and 27 deletions

View File

@@ -44,6 +44,8 @@
#include "table/industry_land.h"
#include "table/build_industry.h"
#include "citymania/zoning.hpp"
#include "safeguards.h"
IndustryPool _industry_pool("Industry");
@@ -348,12 +350,15 @@ static void DrawTile_Industry(TileInfo *ti)
/* DrawFoundation() modifies ti->z and ti->tileh */
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED);
auto zoning_pal = citymania::GetIndustryTileZoningPalette(ti->tile, ind);
/* 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 && IsTileOnWater(ti->tile)) {
DrawWaterClassGround(ti);
} else {
DrawGroundSprite(image, GroundSpritePaletteTransform(image, dits->ground.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)));
DrawGroundSprite(image, zoning_pal == PAL_NONE ? GroundSpritePaletteTransform(image, dits->ground.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)) : zoning_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 */
@@ -362,7 +367,7 @@ static void DrawTile_Industry(TileInfo *ti)
/* Add industry on top of the ground? */
image = dits->building.sprite;
if (image != 0) {
AddSortableSpriteToDraw(image, SpriteLayoutPaletteTransform(image, dits->building.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)),
AddSortableSpriteToDraw(image, zoning_pal == PAL_NONE ? SpriteLayoutPaletteTransform(image, dits->building.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)) : zoning_pal,
ti->x + dits->subtile_x,
ti->y + dits->subtile_y,
dits->width,