mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-12 01:24:54 +00:00
(svn r27622) -Change: In industry map view, give visible industry types the highest tile priority, and hidden industry types a lower one. This way filtered and highlighted industries are not hidden by overlapping tiles in zoomed-out smallmap. (adf88)
This commit is contained in:
parent
a5b7800aca
commit
e56707bd4e
@ -447,18 +447,6 @@ static inline uint32 GetSmallMapVehiclesPixels(TileIndex tile, TileType t)
|
|||||||
*/
|
*/
|
||||||
static inline uint32 GetSmallMapIndustriesPixels(TileIndex tile, TileType t)
|
static inline uint32 GetSmallMapIndustriesPixels(TileIndex tile, TileType t)
|
||||||
{
|
{
|
||||||
if (t == MP_INDUSTRY) {
|
|
||||||
/* If industry is allowed to be seen, use its colour on the map */
|
|
||||||
IndustryType type = Industry::GetByTile(tile)->type;
|
|
||||||
if (_legend_from_industries[_industry_to_list_pos[type]].show_on_map &&
|
|
||||||
(_smallmap_industry_highlight_state || type != _smallmap_industry_highlight)) {
|
|
||||||
return (type == _smallmap_industry_highlight ? PC_WHITE : GetIndustrySpec(Industry::GetByTile(tile)->type)->map_colour) * 0x01010101;
|
|
||||||
} else {
|
|
||||||
/* Otherwise, return the colour which will make it disappear */
|
|
||||||
t = (IsTileOnWater(tile) ? MP_WATER : MP_CLEAR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const SmallMapColourScheme *cs = &_heightmap_schemes[_settings_client.gui.smallmap_land_colour];
|
const SmallMapColourScheme *cs = &_heightmap_schemes[_settings_client.gui.smallmap_land_colour];
|
||||||
return ApplyMask(_smallmap_show_heightmap ? cs->height_colours[TileHeight(tile)] : cs->default_colour, &_smallmap_vehicles_andor[t]);
|
return ApplyMask(_smallmap_show_heightmap ? cs->height_colours[TileHeight(tile)] : cs->default_colour, &_smallmap_vehicles_andor[t]);
|
||||||
}
|
}
|
||||||
@ -752,6 +740,24 @@ inline uint32 SmallMapWindow::GetTileColours(const TileArea &ta) const
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case MP_INDUSTRY:
|
||||||
|
/* Special handling of industries while in "Industries" smallmap view. */
|
||||||
|
if (this->map_type == SMT_INDUSTRY) {
|
||||||
|
/* If industry is allowed to be seen, use its colour on the map.
|
||||||
|
* This has the highest priority above any value in _tiletype_importance. */
|
||||||
|
IndustryType type = Industry::GetByTile(ti)->type;
|
||||||
|
if (_legend_from_industries[_industry_to_list_pos[type]].show_on_map) {
|
||||||
|
if (type == _smallmap_industry_highlight) {
|
||||||
|
if (_smallmap_industry_highlight_state) return MKCOLOUR_XXXX(PC_WHITE);
|
||||||
|
} else {
|
||||||
|
return GetIndustrySpec(type)->map_colour * 0x01010101;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* Otherwise make it disappear */
|
||||||
|
ttype = IsTileOnWater(ti) ? MP_WATER : MP_CLEAR;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user