Changeset - r22415:145f8191a3c3
[Not reviewed]
master
0 1 0
frosch - 8 years ago 2016-07-22 21:44:54
frosch@openttd.org
(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)
1 file changed with 18 insertions and 12 deletions:
0 comments (0 inline, 0 general)
src/smallmap_gui.cpp
Show inline comments
 
@@ -447,18 +447,6 @@ static inline uint32 GetSmallMapVehicles
 
 */
 
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]);
 
}
 
@@ -752,6 +740,24 @@ inline uint32 SmallMapWindow::GetTileCol
 
				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:
 
				break;
 
		}
0 comments (0 inline, 0 general)