Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # HG changeset patch
- # User adf88@interia.pl
- # Date 1469211265 -7200
- # Fri Jul 22 20:14:25 2016 +0200
- # Branch trunk
- # Node ID 1bc7ffda36094e997958d816f114ca52084b2c0e
- # Parent 43b291b24c055bb2274f5358a8f75706d5eb290a
- Fix: Prevent hidden industries from overlaping and hiding visible ones.
- Change: When drawing the smallmap in 'Industries' view, give highest priority to industries to preven them from being overlapped.
- diff -r 43b291b24c05 -r 1bc7ffda3609 src/smallmap_gui.cpp
- --- a/src/smallmap_gui.cpp Mon Jul 18 17:45:36 2016 +0000
- +++ b/src/smallmap_gui.cpp Fri Jul 22 20:14:25 2016 +0200
- @@ -463,18 +463,6 @@
- */
- 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];
- return ApplyMask(_smallmap_show_heightmap ? cs->height_colours[TileHeight(tile)] : cs->default_colour, &_smallmap_vehicles_andor[t]);
- }
- @@ -755,6 +743,22 @@
- TILE_AREA_LOOP(ti, ta) {
- TileType ttype = GetEffectiveTileType(ti);
- +
- + /* Special handling of industries while in "Industries" smallmap view. */
- + if (ttype == MP_INDUSTRY && this->map_type == SMT_INDUSTRY) {
- + /* If industry is allowed to be seen, use its colour on the map */
- + 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;
- + }
- +
- if (_tiletype_importance[ttype] > importance) {
- importance = _tiletype_importance[ttype];
- tile = ti;
Add Comment
Please, Sign In to add comment