Changeset - r21979:8f441a1deb2a
[Not reviewed]
master
0 25 0
frosch - 10 years ago 2015-02-01 20:54:24
frosch@openttd.org
(svn r27134) -Codechange: Simplify GUI scaling by adding UnScaleGUI() and ScaleGUITrad().
25 files changed with 177 insertions and 142 deletions:
0 comments (0 inline, 0 general)
src/aircraft_cmd.cpp
Show inline comments
 
@@ -201,13 +201,15 @@ void DrawAircraftEngine(int left, int ri
 
{
 
	SpriteID sprite = GetAircraftIcon(engine, image_type);
 
	const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
 
	preferred_x = Clamp(preferred_x, left - UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI), right - UnScaleByZoom(real_sprite->width, ZOOM_LVL_GUI) - UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI));
 
	preferred_x = Clamp(preferred_x,
 
			left - UnScaleGUI(real_sprite->x_offs),
 
			right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs));
 
	DrawSprite(sprite, pal, preferred_x, y);
 

	
 
	if (!(AircraftVehInfo(engine)->subtype & AIR_CTOL)) {
 
		SpriteID rotor_sprite = GetCustomRotorIcon(engine, image_type);
 
		if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED;
 
		DrawSprite(rotor_sprite, PAL_NONE, preferred_x, y - UnScaleByZoom(4 * 5, ZOOM_LVL_GUI));
 
		DrawSprite(rotor_sprite, PAL_NONE, preferred_x, y - ScaleGUITrad(5));
 
	}
 
}
 

	
 
@@ -224,10 +226,10 @@ void GetAircraftSpriteSize(EngineID engi
 
{
 
	const Sprite *spr = GetSprite(GetAircraftIcon(engine, image_type), ST_NORMAL);
 

	
 
	width  = UnScaleByZoom(spr->width, ZOOM_LVL_GUI);
 
	height = UnScaleByZoom(spr->height, ZOOM_LVL_GUI);
 
	xoffs  = UnScaleByZoom(spr->x_offs, ZOOM_LVL_GUI);
 
	yoffs  = UnScaleByZoom(spr->y_offs, ZOOM_LVL_GUI);
 
	width  = UnScaleGUI(spr->width);
 
	height = UnScaleGUI(spr->height);
 
	xoffs  = UnScaleGUI(spr->x_offs);
 
	yoffs  = UnScaleGUI(spr->y_offs);
 
}
 

	
 
/**
src/aircraft_gui.cpp
Show inline comments
 
@@ -86,12 +86,12 @@ void DrawAircraftImage(const Vehicle *v,
 
	SpriteID sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type);
 
	const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
 

	
 
	int width = UnScaleByZoom(real_sprite->width, ZOOM_LVL_GUI);
 
	int x_offs = UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI);
 
	int width = UnScaleGUI(real_sprite->width);
 
	int x_offs = UnScaleGUI(real_sprite->x_offs);
 
	int x = rtl ? right - width - x_offs : left - x_offs;
 
	bool helicopter = v->subtype == AIR_HELICOPTER;
 

	
 
	int y_offs = UnScaleByZoom(4 * 10, ZOOM_LVL_GUI);
 
	int y_offs = ScaleGUITrad(10);
 
	int heli_offs = 0;
 

	
 
	PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
 
@@ -100,12 +100,12 @@ void DrawAircraftImage(const Vehicle *v,
 
		const Aircraft *a = Aircraft::From(v);
 
		SpriteID rotor_sprite = GetCustomRotorSprite(a, true, image_type);
 
		if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED;
 
		heli_offs = UnScaleByZoom(4 * 5, ZOOM_LVL_GUI);
 
		heli_offs = ScaleGUITrad(5);
 
		DrawSprite(rotor_sprite, PAL_NONE, x, y + y_offs - heli_offs);
 
	}
 
	if (v->index == selection) {
 
		x += x_offs;
 
		y += UnScaleByZoom(real_sprite->y_offs, ZOOM_LVL_GUI) + y_offs - heli_offs;
 
		DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleByZoom(real_sprite->height, ZOOM_LVL_GUI) + heli_offs + 1, COLOUR_WHITE, FR_BORDERONLY);
 
		y += UnScaleGUI(real_sprite->y_offs) + y_offs - heli_offs;
 
		DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleGUI(real_sprite->height) + heli_offs + 1, COLOUR_WHITE, FR_BORDERONLY);
 
	}
 
}
src/company_gui.cpp
Show inline comments
 
@@ -529,7 +529,7 @@ public:
 

	
 
	uint Height(uint width) const
 
	{
 
		return max(FONT_HEIGHT_NORMAL, UnScaleByZoom(4 * 12, ZOOM_LVL_GUI) + 2);
 
		return max(FONT_HEIGHT_NORMAL, ScaleGUITrad(12) + 2);
 
	}
 

	
 
	bool Selectable() const
 
@@ -543,8 +543,12 @@ public:
 
		int height = bottom - top;
 
		int icon_y_offset = height / 2;
 
		int text_y_offset = (height - FONT_HEIGHT_NORMAL) / 2 + 1;
 
		DrawSprite(SPR_VEH_BUS_SIDE_VIEW, PALETTE_RECOLOUR_START + this->result, rtl ? right - 2 - UnScaleByZoom(4 * 14, ZOOM_LVL_GUI) : left + UnScaleByZoom(4 * 14, ZOOM_LVL_GUI) + 2, top + icon_y_offset);
 
		DrawString(rtl ? left + 2 : left + UnScaleByZoom(4 * 28, ZOOM_LVL_GUI) + 4, rtl ? right - UnScaleByZoom(4 * 28, ZOOM_LVL_GUI) - 4 : right - 2, top + text_y_offset, this->String(), sel ? TC_WHITE : TC_BLACK);
 
		DrawSprite(SPR_VEH_BUS_SIDE_VIEW, PALETTE_RECOLOUR_START + this->result,
 
				rtl ? right - 2 - ScaleGUITrad(14) : left + ScaleGUITrad(14) + 2,
 
				top + icon_y_offset);
 
		DrawString(rtl ? left + 2 : left + ScaleGUITrad(28) + 4,
 
				rtl ? right - ScaleGUITrad(28) - 4 : right - 2,
 
				top + text_y_offset, this->String(), sel ? TC_WHITE : TC_BLACK);
 
	}
 
};
 

	
src/depot_gui.cpp
Show inline comments
 
@@ -190,17 +190,17 @@ static void InitBlocksizeForVehicles(Veh
 
		if ((int)x + x_offs > max_extend_right) max_extend_right = x + x_offs;
 
	}
 

	
 
	int min_extend = UnScaleByZoom(16 * 4, ZOOM_LVL_GUI);
 
	int max_extend = UnScaleByZoom(98 * 4, ZOOM_LVL_GUI);
 
	int min_extend = ScaleGUITrad(16);
 
	int max_extend = ScaleGUITrad(98);
 

	
 
	switch (image_type) {
 
		case EIT_IN_DEPOT:
 
			_base_block_sizes_depot[type].height       = max<uint>(UnScaleByZoom(4 * GetVehicleHeight(type), ZOOM_LVL_GUI), max_height);
 
			_base_block_sizes_depot[type].height       = max<uint>(ScaleGUITrad(GetVehicleHeight(type)), max_height);
 
			_base_block_sizes_depot[type].extend_left  = Clamp(max_extend_left, min_extend, max_extend);
 
			_base_block_sizes_depot[type].extend_right = Clamp(max_extend_right, min_extend, max_extend);
 
			break;
 
		case EIT_PURCHASE:
 
			_base_block_sizes_purchase[type].height       = max<uint>(UnScaleByZoom(4 * GetVehicleHeight(type), ZOOM_LVL_GUI), max_height);
 
			_base_block_sizes_purchase[type].height       = max<uint>(ScaleGUITrad(GetVehicleHeight(type)), max_height);
 
			_base_block_sizes_purchase[type].extend_left  = Clamp(max_extend_left, min_extend, max_extend);
 
			_base_block_sizes_purchase[type].extend_right = Clamp(max_extend_right, min_extend, max_extend);
 
			break;
 
@@ -279,7 +279,7 @@ struct DepotWindow : Window {
 
	void DrawVehicleInDepot(const Vehicle *v, int left, int right, int y) const
 
	{
 
		bool free_wagon = false;
 
		int sprite_y = y + (this->resize.step_height - UnScaleByZoom(4 * GetVehicleHeight(v->type), ZOOM_LVL_GUI)) / 2;
 
		int sprite_y = y + (this->resize.step_height - ScaleGUITrad(GetVehicleHeight(v->type))) / 2;
 

	
 
		bool rtl = _current_text_dir == TD_RTL;
 
		int image_left  = rtl ? left  + this->count_width  : left  + this->header_width;
 
@@ -290,7 +290,7 @@ struct DepotWindow : Window {
 
				const Train *u = Train::From(v);
 
				free_wagon = u->IsFreeWagon();
 

	
 
				uint x_space = free_wagon ? UnScaleByZoom(4 * TRAININFO_DEFAULT_VEHICLE_WIDTH, ZOOM_LVL_GUI) : 0;
 
				uint x_space = free_wagon ? ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) : 0;
 
				DrawTrainImage(u, image_left + (rtl ? 0 : x_space), image_right - (rtl ? x_space : 0), sprite_y - 1,
 
						this->sel, EIT_IN_DEPOT, free_wagon ? 0 : this->hscroll->GetPosition(), this->vehicle_over);
 

	
 
@@ -429,7 +429,7 @@ struct DepotWindow : Window {
 
			pos -= this->vehicle_list.Length();
 
			*veh = this->wagon_list[pos];
 
			/* free wagons don't have an initial loco. */
 
			x -= UnScaleByZoom(VEHICLEINFO_FULL_VEHICLE_WIDTH * ZOOM_LVL_BASE, ZOOM_LVL_GUI);
 
			x -= ScaleGUITrad(VEHICLEINFO_FULL_VEHICLE_WIDTH);
 
			wagon = true;
 
		}
 

	
 
@@ -612,14 +612,14 @@ struct DepotWindow : Window {
 
				SetDParamMaxDigits(0, this->unitnumber_digits);
 
				Dimension unumber = GetStringBoundingBox(STR_BLACK_COMMA);
 
				const Sprite *spr = GetSprite(SPR_FLAG_VEH_STOPPED, ST_NORMAL);
 
				this->flag_width  = UnScaleByZoom(spr->width, ZOOM_LVL_GUI) + WD_FRAMERECT_RIGHT;
 
				this->flag_height = UnScaleByZoom(spr->height, ZOOM_LVL_GUI);
 
				this->flag_width  = UnScaleGUI(spr->width) + WD_FRAMERECT_RIGHT;
 
				this->flag_height = UnScaleGUI(spr->height);
 

	
 
				if (this->type == VEH_TRAIN || this->type == VEH_ROAD) {
 
					min_height = max<uint>(unumber.height + WD_MATRIX_TOP, UnScaleByZoom(spr->height, ZOOM_LVL_GUI));
 
					min_height = max<uint>(unumber.height + WD_MATRIX_TOP, UnScaleGUI(spr->height));
 
					this->header_width = unumber.width + this->flag_width + WD_FRAMERECT_LEFT;
 
				} else {
 
					min_height = unumber.height + UnScaleByZoom(spr->height, ZOOM_LVL_GUI) + WD_MATRIX_TOP + WD_PAR_VSEP_NORMAL + WD_MATRIX_BOTTOM;
 
					min_height = unumber.height + UnScaleGUI(spr->height) + WD_MATRIX_TOP + WD_PAR_VSEP_NORMAL + WD_MATRIX_BOTTOM;
 
					this->header_width = max<uint>(unumber.width, this->flag_width) + WD_FRAMERECT_RIGHT;
 
				}
 
				int base_width = this->count_width + this->header_width;
 
@@ -627,7 +627,7 @@ struct DepotWindow : Window {
 
				resize->height = max<uint>(GetVehicleImageCellSize(this->type, EIT_IN_DEPOT).height, min_height);
 
				if (this->type == VEH_TRAIN) {
 
					resize->width = 1;
 
					size->width = base_width + 2 * UnScaleByZoom(29 * 4, ZOOM_LVL_GUI); // about 2 parts
 
					size->width = base_width + 2 * ScaleGUITrad(29); // about 2 parts
 
					size->height = resize->height * 6;
 
				} else {
 
					resize->width = base_width + GetVehicleImageCellSize(this->type, EIT_IN_DEPOT).extend_left + GetVehicleImageCellSize(this->type, EIT_IN_DEPOT).extend_right;
 
@@ -669,7 +669,7 @@ struct DepotWindow : Window {
 

	
 
		/* determine amount of items for scroller */
 
		if (this->type == VEH_TRAIN) {
 
			uint max_width = UnScaleByZoom(VEHICLEINFO_FULL_VEHICLE_WIDTH * ZOOM_LVL_BASE, ZOOM_LVL_GUI);
 
			uint max_width = ScaleGUITrad(VEHICLEINFO_FULL_VEHICLE_WIDTH);
 
			for (uint num = 0; num < this->vehicle_list.Length(); num++) {
 
				uint width = 0;
 
				for (const Train *v = Train::From(this->vehicle_list[num]); v != NULL; v = v->Next()) {
src/dock_gui.cpp
Show inline comments
 
@@ -504,8 +504,8 @@ public:
 
		switch (widget) {
 
			case WID_BDD_X:
 
			case WID_BDD_Y:
 
				size->width  = UnScaleByZoom(96 * 4, ZOOM_LVL_GUI) + 2;
 
				size->height = UnScaleByZoom(64 * 4, ZOOM_LVL_GUI) + 2;
 
				size->width  = ScaleGUITrad(96) + 2;
 
				size->height = ScaleGUITrad(64) + 2;
 
				break;
 
		}
 
	}
 
@@ -514,10 +514,10 @@ public:
 
	{
 
		this->DrawWidgets();
 

	
 
		int x1 = UnScaleByZoom(63 * 4, ZOOM_LVL_GUI) + 1;
 
		int x2 = UnScaleByZoom(31 * 4, ZOOM_LVL_GUI) + 1;
 
		int y1 = UnScaleByZoom(17 * 4, ZOOM_LVL_GUI) + 1;
 
		int y2 = UnScaleByZoom(33 * 4, ZOOM_LVL_GUI) + 1;
 
		int x1 = ScaleGUITrad(63) + 1;
 
		int x2 = ScaleGUITrad(31) + 1;
 
		int y1 = ScaleGUITrad(17) + 1;
 
		int y2 = ScaleGUITrad(33) + 1;
 

	
 
		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_x + x1, this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_y + y1, AXIS_X, DEPOT_PART_NORTH);
 
		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_x + x2, this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_y + y2, AXIS_X, DEPOT_PART_SOUTH);
src/fontcache.cpp
Show inline comments
 
@@ -183,12 +183,12 @@ uint SpriteFontCache::GetGlyphWidth(Glyp
 
{
 
	SpriteID sprite = this->GetUnicodeGlyph(key);
 
	if (sprite == 0) sprite = this->GetUnicodeGlyph('?');
 
	return SpriteExists(sprite) ? GetSprite(sprite, ST_FONT)->width + UnScaleByZoom(4 * (this->fs != FS_NORMAL), ZOOM_LVL_GUI) : 0;
 
	return SpriteExists(sprite) ? GetSprite(sprite, ST_FONT)->width + ScaleGUITrad(this->fs != FS_NORMAL ? 1 : 0) : 0;
 
}
 

	
 
int SpriteFontCache::GetHeight() const
 
{
 
	return UnScaleByZoom(4 * this->height, ZOOM_LVL_GUI);
 
	return ScaleGUITrad(this->height);
 
}
 

	
 
bool SpriteFontCache::GetDrawGlyphShadow()
src/gfx.cpp
Show inline comments
 
@@ -1532,10 +1532,10 @@ void UpdateCursorSize()
 
	CursorVars *cv = &_cursor;
 
	const Sprite *p = GetSprite(GB(cv->sprite, 0, SPRITE_WIDTH), ST_NORMAL);
 

	
 
	cv->size.y = UnScaleByZoom(p->height, ZOOM_LVL_GUI);
 
	cv->size.x = UnScaleByZoom(p->width, ZOOM_LVL_GUI);
 
	cv->offs.x = UnScaleByZoom(p->x_offs, ZOOM_LVL_GUI);
 
	cv->offs.y = UnScaleByZoom(p->y_offs, ZOOM_LVL_GUI);
 
	cv->size.y = UnScaleGUI(p->height);
 
	cv->size.x = UnScaleGUI(p->width);
 
	cv->offs.x = UnScaleGUI(p->x_offs);
 
	cv->offs.y = UnScaleGUI(p->y_offs);
 

	
 
	cv->dirty = true;
 
}
src/gfx_func.h
Show inline comments
 
@@ -71,8 +71,6 @@ extern Dimension _resolutions[32];
 
extern Dimension _cur_resolution;
 
extern Palette _cur_palette; ///< Current palette
 

	
 
extern ZoomLevelByte _gui_zoom;
 

	
 
void HandleKeypress(uint keycode, WChar key);
 
void HandleTextInput(const char *str, bool marked = false, const char *caret = NULL, const char *insert_location = NULL, const char *replacement_end = NULL);
 
void HandleCtrlChanged();
src/misc_gui.cpp
Show inline comments
 
@@ -684,7 +684,7 @@ struct TooltipsWindow : public Window
 
		/* There is only one widget. */
 
		for (uint i = 0; i != this->paramcount; i++) SetDParam(i, this->params[i]);
 

	
 
		size->width  = min(GetStringBoundingBox(this->string_id).width, UnScaleByZoom(4 * 194, ZOOM_LVL_GUI));
 
		size->width  = min(GetStringBoundingBox(this->string_id).width, ScaleGUITrad(194));
 
		size->height = GetStringHeight(this->string_id, size->width);
 

	
 
		/* Increase slightly to have some space around the box. */
src/newgrf_debug_gui.cpp
Show inline comments
 
@@ -858,15 +858,15 @@ struct SpriteAlignerWindow : Window {
 
				const Sprite *spr = GetSprite(this->current_sprite, ST_NORMAL);
 
				int width  = r.right  - r.left + 1;
 
				int height = r.bottom - r.top  + 1;
 
				int x = r.left - UnScaleByZoom(spr->x_offs, ZOOM_LVL_GUI) + (width  - UnScaleByZoom(spr->width, ZOOM_LVL_GUI)) / 2;
 
				int y = r.top  - UnScaleByZoom(spr->y_offs, ZOOM_LVL_GUI) + (height - UnScaleByZoom(spr->height, ZOOM_LVL_GUI)) / 2;
 
				int x = r.left - UnScaleGUI(spr->x_offs) + (width  - UnScaleGUI(spr->width) ) / 2;
 
				int y = r.top  - UnScaleGUI(spr->y_offs) + (height - UnScaleGUI(spr->height)) / 2;
 

	
 
				/* And draw only the part within the sprite area */
 
				SubSprite subspr = {
 
					spr->x_offs + (spr->width  - ScaleByZoom(width,  ZOOM_LVL_GUI)) / 2 + 1,
 
					spr->y_offs + (spr->height - ScaleByZoom(height, ZOOM_LVL_GUI)) / 2 + 1,
 
					spr->x_offs + (spr->width  + ScaleByZoom(width,  ZOOM_LVL_GUI)) / 2 - 1,
 
					spr->y_offs + (spr->height + ScaleByZoom(height, ZOOM_LVL_GUI)) / 2 - 1,
 
					spr->x_offs + (spr->width  - UnScaleGUI(width) ) / 2 + 1,
 
					spr->y_offs + (spr->height - UnScaleGUI(height)) / 2 + 1,
 
					spr->x_offs + (spr->width  + UnScaleGUI(width) ) / 2 - 1,
 
					spr->y_offs + (spr->height + UnScaleGUI(height)) / 2 - 1,
 
				};
 

	
 
				DrawSprite(this->current_sprite, PAL_NONE, x, y, &subspr, ZOOM_LVL_GUI);
src/object_gui.cpp
Show inline comments
 
@@ -165,8 +165,8 @@ public:
 

	
 
				/* Determine the pixel heights. */
 
				for (size_t i = 0; i < lengthof(height); i++) {
 
					height[i] *= UnScaleByZoom(4 * TILE_HEIGHT, ZOOM_LVL_GUI);
 
					height[i] += UnScaleByZoom(4 * TILE_PIXELS, ZOOM_LVL_GUI) + 2 * OBJECT_MARGIN;
 
					height[i] *= ScaleGUITrad(TILE_HEIGHT);
 
					height[i] += ScaleGUITrad(TILE_PIXELS) + 2 * OBJECT_MARGIN;
 
				}
 

	
 
				/* Now determine the size of the minimum widgets. When there are two columns, then
 
@@ -175,9 +175,9 @@ public:
 
				 * of widgets, or just the twice the widget height of the two row ones. */
 
				size->height = max(height[0], height[1] * 2 + 2);
 
				if (two_wide) {
 
					size->width  = (3 * UnScaleByZoom(4 * TILE_PIXELS, ZOOM_LVL_GUI) + 2 * OBJECT_MARGIN) * 2 + 2;
 
					size->width  = (3 * ScaleGUITrad(TILE_PIXELS) + 2 * OBJECT_MARGIN) * 2 + 2;
 
				} else {
 
					size->width  = 4 * UnScaleByZoom(4 * TILE_PIXELS, ZOOM_LVL_GUI) + 2 * OBJECT_MARGIN;
 
					size->width  = 4 * ScaleGUITrad(TILE_PIXELS) + 2 * OBJECT_MARGIN;
 
				}
 

	
 
				/* Get the right size for the single widget based on the current spec. */
 
@@ -199,8 +199,8 @@ public:
 
				break;
 

	
 
			case WID_BO_SELECT_IMAGE:
 
				size->width  = UnScaleByZoom(4 * 64, ZOOM_LVL_GUI) + 2;
 
				size->height = UnScaleByZoom(4 * 58, ZOOM_LVL_GUI) + 2;
 
				size->width  = ScaleGUITrad(64) + 2;
 
				size->height = ScaleGUITrad(58) + 2;
 
				break;
 

	
 
			default: break;
 
@@ -243,9 +243,9 @@ public:
 
					if (spec->grf_prop.grffile == NULL) {
 
						extern const DrawTileSprites _objects[];
 
						const DrawTileSprites *dts = &_objects[spec->grf_prop.local_id];
 
						DrawOrigTileSeqInGUI((r.right - r.left) / 2 - 1, (r.bottom - r.top + matrix_height / 2) / 2 - OBJECT_MARGIN - UnScaleByZoom(4 * TILE_PIXELS, ZOOM_LVL_GUI), dts, PAL_NONE);
 
						DrawOrigTileSeqInGUI((r.right - r.left) / 2 - 1, (r.bottom - r.top + matrix_height / 2) / 2 - OBJECT_MARGIN - ScaleGUITrad(TILE_PIXELS), dts, PAL_NONE);
 
					} else {
 
						DrawNewObjectTileInGUI((r.right - r.left) / 2 - 1, (r.bottom - r.top + matrix_height / 2) / 2 - OBJECT_MARGIN - UnScaleByZoom(4 * TILE_PIXELS, ZOOM_LVL_GUI), spec, GB(widget, 16, 16));
 
						DrawNewObjectTileInGUI((r.right - r.left) / 2 - 1, (r.bottom - r.top + matrix_height / 2) / 2 - OBJECT_MARGIN - ScaleGUITrad(TILE_PIXELS), spec, GB(widget, 16, 16));
 
					}
 
					_cur_dpi = old_dpi;
 
				}
 
@@ -270,9 +270,9 @@ public:
 
					if (spec->grf_prop.grffile == NULL) {
 
						extern const DrawTileSprites _objects[];
 
						const DrawTileSprites *dts = &_objects[spec->grf_prop.local_id];
 
						DrawOrigTileSeqInGUI((r.right - r.left) / 2 - 1, r.bottom - r.top - OBJECT_MARGIN - UnScaleByZoom(4 * TILE_PIXELS, ZOOM_LVL_GUI), dts, PAL_NONE);
 
						DrawOrigTileSeqInGUI((r.right - r.left) / 2 - 1, r.bottom - r.top - OBJECT_MARGIN - ScaleGUITrad(TILE_PIXELS), dts, PAL_NONE);
 
					} else {
 
						DrawNewObjectTileInGUI((r.right - r.left) / 2 - 1, r.bottom - r.top - OBJECT_MARGIN - UnScaleByZoom(4 * TILE_PIXELS, ZOOM_LVL_GUI), spec,
 
						DrawNewObjectTileInGUI((r.right - r.left) / 2 - 1, r.bottom - r.top - OBJECT_MARGIN - ScaleGUITrad(TILE_PIXELS), spec,
 
								min(_selected_object_view, spec->views - 1));
 
					}
 
					_cur_dpi = old_dpi;
src/rail_gui.cpp
Show inline comments
 
@@ -1075,8 +1075,8 @@ public:
 
			case WID_BRAS_PLATFORM_DIR_X:
 
			case WID_BRAS_PLATFORM_DIR_Y:
 
			case WID_BRAS_IMAGE:
 
				size->width  = UnScaleByZoom(64 * 4, ZOOM_LVL_GUI) + 2;
 
				size->height = UnScaleByZoom(58 * 4, ZOOM_LVL_GUI) + 2;
 
				size->width  = ScaleGUITrad(64) + 2;
 
				size->height = ScaleGUITrad(58) + 2;
 
				break;
 

	
 
			case WID_BRAS_COVERAGE_TEXTS:
 
@@ -1100,8 +1100,8 @@ public:
 
				if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.right - r.left + 1, r.bottom - r.top + 1)) {
 
					DrawPixelInfo *old_dpi = _cur_dpi;
 
					_cur_dpi = &tmp_dpi;
 
					int x = UnScaleByZoom(31 * 4, ZOOM_LVL_GUI) + 1;
 
					int y = r.bottom - r.top - UnScaleByZoom(31 * 4, ZOOM_LVL_GUI);
 
					int x = ScaleGUITrad(31) + 1;
 
					int y = r.bottom - r.top - ScaleGUITrad(31);
 
					if (!DrawStationTile(x, y, _cur_railtype, AXIS_X, _railstation.station_class, _railstation.station_type)) {
 
						StationPickerDrawSprite(x, y, STATION_RAIL, _cur_railtype, INVALID_ROADTYPE, 2);
 
					}
 
@@ -1114,8 +1114,8 @@ public:
 
				if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.right - r.left + 1, r.bottom - r.top + 1)) {
 
					DrawPixelInfo *old_dpi = _cur_dpi;
 
					_cur_dpi = &tmp_dpi;
 
					int x = UnScaleByZoom(31 * 4, ZOOM_LVL_GUI) + 1;
 
					int y = r.bottom - r.top - UnScaleByZoom(31 * 4, ZOOM_LVL_GUI);
 
					int x = ScaleGUITrad(31) + 1;
 
					int y = r.bottom - r.top - ScaleGUITrad(31);
 
					if (!DrawStationTile(x, y, _cur_railtype, AXIS_Y, _railstation.station_class, _railstation.station_type)) {
 
						StationPickerDrawSprite(x, y, STATION_RAIL, _cur_railtype, INVALID_ROADTYPE, 3);
 
					}
 
@@ -1152,8 +1152,8 @@ public:
 
				if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.right - r.left + 1, r.bottom - r.top + 1)) {
 
					DrawPixelInfo *old_dpi = _cur_dpi;
 
					_cur_dpi = &tmp_dpi;
 
					int x = UnScaleByZoom(31 * 4, ZOOM_LVL_GUI) + 1;
 
					int y = r.bottom - r.top - UnScaleByZoom(31 * 4, ZOOM_LVL_GUI);
 
					int x = ScaleGUITrad(31) + 1;
 
					int y = r.bottom - r.top - ScaleGUITrad(31);
 
					if (!DrawStationTile(x, y, _cur_railtype, _railstation.orientation, _railstation.station_class, type)) {
 
						StationPickerDrawSprite(x, y, STATION_RAIL, _cur_railtype, INVALID_ROADTYPE, 2 + _railstation.orientation);
 
					}
 
@@ -1693,15 +1693,15 @@ struct BuildRailDepotWindow : public Pic
 
	{
 
		if (!IsInsideMM(widget, WID_BRAD_DEPOT_NE, WID_BRAD_DEPOT_NW + 1)) return;
 

	
 
		size->width  = UnScaleByZoom(64 * 4, ZOOM_LVL_GUI) + 2;
 
		size->height = UnScaleByZoom(48 * 4, ZOOM_LVL_GUI) + 2;
 
		size->width  = ScaleGUITrad(64) + 2;
 
		size->height = ScaleGUITrad(48) + 2;
 
	}
 

	
 
	virtual void DrawWidget(const Rect &r, int widget) const
 
	{
 
		if (!IsInsideMM(widget, WID_BRAD_DEPOT_NE, WID_BRAD_DEPOT_NW + 1)) return;
 

	
 
		DrawTrainDepotSprite(r.left + 1 + UnScaleByZoom(31 * 4, ZOOM_LVL_GUI), r.bottom - UnScaleByZoom(31 * 4, ZOOM_LVL_GUI), widget - WID_BRAD_DEPOT_NE + DIAGDIR_NE, _cur_railtype);
 
		DrawTrainDepotSprite(r.left + 1 + ScaleGUITrad(31), r.bottom - ScaleGUITrad(31), widget - WID_BRAD_DEPOT_NE + DIAGDIR_NE, _cur_railtype);
 
	}
 

	
 
	virtual void OnClick(Point pt, int widget, int click_count)
 
@@ -1791,8 +1791,8 @@ struct BuildRailWaypointWindow : PickerW
 
				break;
 

	
 
			case WID_BRW_WAYPOINT:
 
				size->width  = UnScaleByZoom(64 * 4, ZOOM_LVL_GUI) + 2;
 
				size->height = UnScaleByZoom(58 * 4, ZOOM_LVL_GUI) + 2;
 
				size->width  = ScaleGUITrad(64) + 2;
 
				size->height = ScaleGUITrad(58) + 2;
 
				break;
 
		}
 
	}
 
@@ -1803,7 +1803,7 @@ struct BuildRailWaypointWindow : PickerW
 
			case WID_BRW_WAYPOINT: {
 
				byte type = GB(widget, 16, 16);
 
				const StationSpec *statspec = StationClass::Get(STAT_CLASS_WAYP)->GetSpec(type);
 
				DrawWaypointSprite(r.left + 1 + UnScaleByZoom(31 * 4, ZOOM_LVL_GUI), r.bottom - UnScaleByZoom(31 * 4, ZOOM_LVL_GUI), type, _cur_railtype);
 
				DrawWaypointSprite(r.left + 1 + ScaleGUITrad(31), r.bottom - ScaleGUITrad(31), type, _cur_railtype);
 

	
 
				if (!IsStationAvailable(statspec)) {
 
					GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.bottom - 1, PC_BLACK, FILLRECT_CHECKER);
src/road_gui.cpp
Show inline comments
 
@@ -867,15 +867,15 @@ struct BuildRoadDepotWindow : public Pic
 
	{
 
		if (!IsInsideMM(widget, WID_BROD_DEPOT_NE, WID_BROD_DEPOT_NW + 1)) return;
 

	
 
		size->width  = UnScaleByZoom(64 * 4, ZOOM_LVL_GUI) + 2;
 
		size->height = UnScaleByZoom(48 * 4, ZOOM_LVL_GUI) + 2;
 
		size->width  = ScaleGUITrad(64) + 2;
 
		size->height = ScaleGUITrad(48) + 2;
 
	}
 

	
 
	virtual void DrawWidget(const Rect &r, int widget) const
 
	{
 
		if (!IsInsideMM(widget, WID_BROD_DEPOT_NE, WID_BROD_DEPOT_NW + 1)) return;
 

	
 
		DrawRoadDepotSprite(r.left + 1 + UnScaleByZoom(31 * 4, ZOOM_LVL_GUI), r.bottom - UnScaleByZoom(31 * 4, ZOOM_LVL_GUI), (DiagDirection)(widget - WID_BROD_DEPOT_NE + DIAGDIR_NE), _cur_roadtype);
 
		DrawRoadDepotSprite(r.left + 1 + ScaleGUITrad(31), r.bottom - ScaleGUITrad(31), (DiagDirection)(widget - WID_BROD_DEPOT_NE + DIAGDIR_NE), _cur_roadtype);
 
	}
 

	
 
	virtual void OnClick(Point pt, int widget, int click_count)
 
@@ -1003,8 +1003,8 @@ struct BuildRoadStationWindow : public P
 
	{
 
		if (!IsInsideMM(widget, WID_BROS_STATION_NE, WID_BROS_STATION_Y + 1)) return;
 

	
 
		size->width  = UnScaleByZoom(64 * 4, ZOOM_LVL_GUI) + 2;
 
		size->height = UnScaleByZoom(48 * 4, ZOOM_LVL_GUI) + 2;
 
		size->width  = ScaleGUITrad(64) + 2;
 
		size->height = ScaleGUITrad(48) + 2;
 
	}
 

	
 
	virtual void DrawWidget(const Rect &r, int widget) const
 
@@ -1012,7 +1012,7 @@ struct BuildRoadStationWindow : public P
 
		if (!IsInsideMM(widget, WID_BROS_STATION_NE, WID_BROS_STATION_Y + 1)) return;
 

	
 
		StationType st = (this->window_class == WC_BUS_STATION) ? STATION_BUS : STATION_TRUCK;
 
		StationPickerDrawSprite(r.left + 1 + UnScaleByZoom(31 * 4, ZOOM_LVL_GUI), r.bottom - UnScaleByZoom(31 * 4, ZOOM_LVL_GUI), st, INVALID_RAILTYPE, widget < WID_BROS_STATION_X ? ROADTYPE_ROAD : _cur_roadtype, widget - WID_BROS_STATION_NE);
 
		StationPickerDrawSprite(r.left + 1 + ScaleGUITrad(31), r.bottom - ScaleGUITrad(31), st, INVALID_RAILTYPE, widget < WID_BROS_STATION_X ? ROADTYPE_ROAD : _cur_roadtype, widget - WID_BROS_STATION_NE);
 
	}
 

	
 
	virtual void OnClick(Point pt, int widget, int click_count)
src/roadveh_cmd.cpp
Show inline comments
 
@@ -107,10 +107,10 @@ int RoadVehicle::GetDisplayImageWidth(Po
 
	int reference_width = ROADVEHINFO_DEFAULT_VEHICLE_WIDTH;
 

	
 
	if (offset != NULL) {
 
		offset->x = UnScaleByZoom(2 * reference_width, ZOOM_LVL_GUI);
 
		offset->x = ScaleGUITrad(reference_width) / 2;
 
		offset->y = 0;
 
	}
 
	return UnScaleByZoom(4 * this->gcache.cached_veh_length * reference_width / VEHICLE_LENGTH, ZOOM_LVL_GUI);
 
	return ScaleGUITrad(this->gcache.cached_veh_length * reference_width / VEHICLE_LENGTH);
 
}
 

	
 
static SpriteID GetRoadVehIcon(EngineID engine, EngineImageType image_type)
 
@@ -162,7 +162,9 @@ void DrawRoadVehEngine(int left, int rig
 
{
 
	SpriteID sprite = GetRoadVehIcon(engine, image_type);
 
	const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
 
	preferred_x = Clamp(preferred_x, left - UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI), right - UnScaleByZoom(real_sprite->width, ZOOM_LVL_GUI) - UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI));
 
	preferred_x = Clamp(preferred_x,
 
			left - UnScaleGUI(real_sprite->x_offs),
 
			right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs));
 
	DrawSprite(sprite, pal, preferred_x, y);
 
}
 

	
 
@@ -179,10 +181,10 @@ void GetRoadVehSpriteSize(EngineID engin
 
{
 
	const Sprite *spr = GetSprite(GetRoadVehIcon(engine, image_type), ST_NORMAL);
 

	
 
	width  = UnScaleByZoom(spr->width, ZOOM_LVL_GUI);
 
	height = UnScaleByZoom(spr->height, ZOOM_LVL_GUI);
 
	xoffs  = UnScaleByZoom(spr->x_offs, ZOOM_LVL_GUI);
 
	yoffs  = UnScaleByZoom(spr->y_offs, ZOOM_LVL_GUI);
 
	width  = UnScaleGUI(spr->width);
 
	height = UnScaleGUI(spr->height);
 
	xoffs  = UnScaleGUI(spr->x_offs);
 
	yoffs  = UnScaleGUI(spr->y_offs);
 
}
 

	
 
/**
src/roadveh_gui.cpp
Show inline comments
 
@@ -31,7 +31,7 @@
 
 */
 
void DrawRoadVehDetails(const Vehicle *v, int left, int right, int y)
 
{
 
	uint y_offset = v->HasArticulatedPart() ? UnScaleByZoom(4 * 15, ZOOM_LVL_GUI) : 0; // Draw the first line below the sprite of an articulated RV instead of after it.
 
	uint y_offset = v->HasArticulatedPart() ? ScaleGUITrad(15) : 0; // Draw the first line below the sprite of an articulated RV instead of after it.
 
	StringID str;
 
	Money feeder_share = 0;
 

	
 
@@ -137,7 +137,7 @@ void DrawRoadVehImage(const Vehicle *v, 
 
	DrawPixelInfo tmp_dpi, *old_dpi;
 
	int max_width = right - left + 1;
 

	
 
	if (!FillDrawPixelInfo(&tmp_dpi, left, y, max_width, UnScaleByZoom(4 * 14, ZOOM_LVL_GUI))) return;
 
	if (!FillDrawPixelInfo(&tmp_dpi, left, y, max_width, ScaleGUITrad(14))) return;
 

	
 
	old_dpi = _cur_dpi;
 
	_cur_dpi = &tmp_dpi;
 
@@ -149,14 +149,14 @@ void DrawRoadVehImage(const Vehicle *v, 
 

	
 
		if (rtl ? px + width > 0 : px - width < max_width) {
 
			PaletteID pal = (u->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(u);
 
			DrawSprite(u->GetImage(dir, image_type), pal, px + (rtl ? -offset.x : offset.x), UnScaleByZoom(4 * 6, ZOOM_LVL_GUI) + offset.y);
 
			DrawSprite(u->GetImage(dir, image_type), pal, px + (rtl ? -offset.x : offset.x), ScaleGUITrad(6) + offset.y);
 
		}
 

	
 
		px += rtl ? -width : width;
 
	}
 

	
 
	if (v->index == selection) {
 
		DrawFrameRect((rtl ? px : 0), 0, (rtl ? max_width : px) - 1, UnScaleByZoom(4 * 13, ZOOM_LVL_GUI) - 1, COLOUR_WHITE, FR_BORDERONLY);
 
		DrawFrameRect((rtl ? px : 0), 0, (rtl ? max_width : px) - 1, ScaleGUITrad(13) - 1, COLOUR_WHITE, FR_BORDERONLY);
 
	}
 

	
 
	_cur_dpi = old_dpi;
src/ship_cmd.cpp
Show inline comments
 
@@ -90,7 +90,9 @@ void DrawShipEngine(int left, int right,
 
{
 
	SpriteID sprite = GetShipIcon(engine, image_type);
 
	const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
 
	preferred_x = Clamp(preferred_x, left - UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI), right - UnScaleByZoom(real_sprite->width, ZOOM_LVL_GUI) - UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI));
 
	preferred_x = Clamp(preferred_x,
 
			left - UnScaleGUI(real_sprite->x_offs),
 
			right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs));
 
	DrawSprite(sprite, pal, preferred_x, y);
 
}
 

	
 
@@ -107,10 +109,10 @@ void GetShipSpriteSize(EngineID engine, 
 
{
 
	const Sprite *spr = GetSprite(GetShipIcon(engine, image_type), ST_NORMAL);
 

	
 
	width  = UnScaleByZoom(spr->width, ZOOM_LVL_GUI);
 
	height = UnScaleByZoom(spr->height, ZOOM_LVL_GUI);
 
	xoffs  = UnScaleByZoom(spr->x_offs, ZOOM_LVL_GUI);
 
	yoffs  = UnScaleByZoom(spr->y_offs, ZOOM_LVL_GUI);
 
	width  = UnScaleGUI(spr->width);
 
	height = UnScaleGUI(spr->height);
 
	xoffs  = UnScaleGUI(spr->x_offs);
 
	yoffs  = UnScaleGUI(spr->y_offs);
 
}
 

	
 
SpriteID Ship::GetImage(Direction direction, EngineImageType image_type) const
src/ship_gui.cpp
Show inline comments
 
@@ -38,17 +38,17 @@ void DrawShipImage(const Vehicle *v, int
 
	SpriteID sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type);
 
	const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
 

	
 
	int width = UnScaleByZoom(real_sprite->width, ZOOM_LVL_GUI);
 
	int x_offs = UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI);
 
	int width = UnScaleGUI(real_sprite->width);
 
	int x_offs = UnScaleGUI(real_sprite->x_offs);
 
	int x = rtl ? right - width - x_offs : left - x_offs;
 

	
 
	y += UnScaleByZoom(4 * 10, ZOOM_LVL_GUI);
 
	y += ScaleGUITrad(10);
 
	DrawSprite(sprite, GetVehiclePalette(v), x, y);
 

	
 
	if (v->index == selection) {
 
		x += x_offs;
 
		y += UnScaleByZoom(real_sprite->y_offs, ZOOM_LVL_GUI);
 
		DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleByZoom(real_sprite->height, ZOOM_LVL_GUI) + 1, COLOUR_WHITE, FR_BORDERONLY);
 
		y += UnScaleGUI(real_sprite->y_offs);
 
		DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleGUI(real_sprite->height) + 1, COLOUR_WHITE, FR_BORDERONLY);
 
	}
 
}
 

	
src/sprite.cpp
Show inline comments
 
@@ -119,15 +119,15 @@ void DrawCommonTileSeqInGUI(int x, int y
 

	
 
		if (dtss->IsParentSprite()) {
 
			Point pt = RemapCoords(dtss->delta_x, dtss->delta_y, dtss->delta_z);
 
			DrawSprite(image, pal, x + UnScaleByZoom(pt.x, ZOOM_LVL_GUI), y + UnScaleByZoom(pt.y, ZOOM_LVL_GUI));
 
			DrawSprite(image, pal, x + UnScaleGUI(pt.x), y + UnScaleGUI(pt.y));
 

	
 
			const Sprite *spr = GetSprite(image & SPRITE_MASK, ST_NORMAL);
 
			child_offset.x = UnScaleByZoom(pt.x + spr->x_offs, ZOOM_LVL_GUI);
 
			child_offset.y = UnScaleByZoom(pt.y + spr->y_offs, ZOOM_LVL_GUI);
 
			child_offset.x = UnScaleGUI(pt.x + spr->x_offs);
 
			child_offset.y = UnScaleGUI(pt.y + spr->y_offs);
 
		} else {
 
			int offs_x = child_offset_is_unsigned ? (uint8)dtss->delta_x : dtss->delta_x;
 
			int offs_y = child_offset_is_unsigned ? (uint8)dtss->delta_y : dtss->delta_y;
 
			DrawSprite(image, pal, x + child_offset.x + offs_x, y + child_offset.y + offs_y);
 
			DrawSprite(image, pal, x + child_offset.x + ScaleGUITrad(offs_x), y + child_offset.y + ScaleGUITrad(offs_y));
 
		}
 
	}
 
}
src/station_gui.cpp
Show inline comments
 
@@ -806,7 +806,7 @@ static const NWidgetPart _nested_station
 
 */
 
static void DrawCargoIcons(CargoID i, uint waiting, int left, int right, int y)
 
{
 
	int width = UnScaleByZoom(4 * 10, ZOOM_LVL_GUI);
 
	int width = ScaleGUITrad(10);
 
	uint num = min((waiting + (width / 2)) / width, (right - left) / width); // maximum is width / 10 icons so it won't overflow
 
	if (num == 0) return;
 

	
src/terraform_gui.cpp
Show inline comments
 
@@ -559,8 +559,8 @@ struct ScenarioEditorLandscapeGeneration
 
	{
 
		if (widget != WID_ETT_DOTS) return;
 

	
 
		size->width  = max<uint>(size->width,  UnScaleByZoom(4 * 59, ZOOM_LVL_GUI));
 
		size->height = max<uint>(size->height, UnScaleByZoom(4 * 31, ZOOM_LVL_GUI));
 
		size->width  = max<uint>(size->width,  ScaleGUITrad(59));
 
		size->height = max<uint>(size->height, ScaleGUITrad(31));
 
	}
 

	
 
	virtual void DrawWidget(const Rect &r, int widget) const
 
@@ -575,7 +575,7 @@ struct ScenarioEditorLandscapeGeneration
 

	
 
		assert(n != 0);
 
		do {
 
			DrawSprite(SPR_WHITE_POINT, PAL_NONE, center_x + UnScaleByZoom(4 * coords[0], ZOOM_LVL_GUI), center_y + UnScaleByZoom(4 * coords[1], ZOOM_LVL_GUI));
 
			DrawSprite(SPR_WHITE_POINT, PAL_NONE, center_x + ScaleGUITrad(coords[0]), center_y + ScaleGUITrad(coords[1]));
 
			coords += 2;
 
		} while (--n);
 
	}
src/train_cmd.cpp
Show inline comments
 
@@ -464,10 +464,10 @@ int Train::GetDisplayImageWidth(Point *o
 
	}
 

	
 
	if (offset != NULL) {
 
		offset->x = UnScaleByZoom(2 * reference_width, ZOOM_LVL_GUI);
 
		offset->y = UnScaleByZoom(4 * vehicle_pitch, ZOOM_LVL_GUI);
 
		offset->x = ScaleGUITrad(reference_width) / 2;
 
		offset->y = ScaleGUITrad(vehicle_pitch);
 
	}
 
	return UnScaleByZoom(4 * this->gcache.cached_veh_length * reference_width / VEHICLE_LENGTH, ZOOM_LVL_GUI);
 
	return ScaleGUITrad(this->gcache.cached_veh_length * reference_width / VEHICLE_LENGTH);
 
}
 

	
 
static SpriteID GetDefaultTrainSprite(uint8 spritenum, Direction direction)
 
@@ -514,7 +514,7 @@ static SpriteID GetRailIcon(EngineID eng
 
		SpriteID sprite = GetCustomVehicleIcon(engine, dir, image_type);
 
		if (sprite != 0) {
 
			if (e->GetGRF() != NULL) {
 
				y += UnScaleByZoom(4 * e->GetGRF()->traininfo_vehicle_pitch, ZOOM_LVL_GUI);
 
				y += ScaleGUITrad(e->GetGRF()->traininfo_vehicle_pitch);
 
			}
 
			return sprite;
 
		}
 
@@ -538,14 +538,18 @@ void DrawTrainEngine(int left, int right
 
		const Sprite *real_spritef = GetSprite(spritef, ST_NORMAL);
 
		const Sprite *real_spriter = GetSprite(spriter, ST_NORMAL);
 

	
 
		preferred_x = Clamp(preferred_x, left - UnScaleByZoom(real_spritef->x_offs, ZOOM_LVL_GUI) + UnScaleByZoom(14 * 4, ZOOM_LVL_GUI), right - UnScaleByZoom(real_spriter->width, ZOOM_LVL_GUI) - UnScaleByZoom(real_spriter->x_offs, ZOOM_LVL_GUI) - UnScaleByZoom(15 * 4, ZOOM_LVL_GUI));
 

	
 
		DrawSprite(spritef, pal, preferred_x - UnScaleByZoom(14 * 4, ZOOM_LVL_GUI), yf);
 
		DrawSprite(spriter, pal, preferred_x + UnScaleByZoom(15 * 4, ZOOM_LVL_GUI), yr);
 
		preferred_x = Clamp(preferred_x,
 
				left - UnScaleGUI(real_spritef->x_offs) + ScaleGUITrad(14),
 
				right - UnScaleGUI(real_spriter->width) - UnScaleGUI(real_spriter->x_offs) - ScaleGUITrad(15));
 

	
 
		DrawSprite(spritef, pal, preferred_x - ScaleGUITrad(14), yf);
 
		DrawSprite(spriter, pal, preferred_x + ScaleGUITrad(15), yr);
 
	} else {
 
		SpriteID sprite = GetRailIcon(engine, false, y, image_type);
 
		const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
 
		preferred_x = Clamp(preferred_x, left - UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI), right - UnScaleByZoom(real_sprite->width, ZOOM_LVL_GUI) - UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI));
 
		preferred_x = Clamp(preferred_x,
 
				left - UnScaleGUI(real_sprite->x_offs),
 
				right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs));
 
		DrawSprite(sprite, pal, preferred_x, y);
 
	}
 
}
 
@@ -566,20 +570,20 @@ void GetTrainSpriteSize(EngineID engine,
 
	SpriteID sprite = GetRailIcon(engine, false, y, image_type);
 
	const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
 

	
 
	width  = UnScaleByZoom(real_sprite->width, ZOOM_LVL_GUI);
 
	height = UnScaleByZoom(real_sprite->height, ZOOM_LVL_GUI);
 
	xoffs  = UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI);
 
	yoffs  = UnScaleByZoom(real_sprite->y_offs, ZOOM_LVL_GUI);
 
	width  = UnScaleGUI(real_sprite->width);
 
	height = UnScaleGUI(real_sprite->height);
 
	xoffs  = UnScaleGUI(real_sprite->x_offs);
 
	yoffs  = UnScaleGUI(real_sprite->y_offs);
 

	
 
	if (RailVehInfo(engine)->railveh_type == RAILVEH_MULTIHEAD) {
 
		sprite = GetRailIcon(engine, true, y, image_type);
 
		real_sprite = GetSprite(sprite, ST_NORMAL);
 

	
 
		/* Calculate values relative to an imaginary center between the two sprites. */
 
		width = UnScaleByZoom(TRAININFO_DEFAULT_VEHICLE_WIDTH * 4, ZOOM_LVL_GUI) + UnScaleByZoom(real_sprite->width, ZOOM_LVL_GUI) + UnScaleByZoom(real_sprite->x_offs, ZOOM_LVL_GUI) - xoffs;
 
		height = max<uint>(height, UnScaleByZoom(real_sprite->height, ZOOM_LVL_GUI));
 
		xoffs  = xoffs - UnScaleByZoom(TRAININFO_DEFAULT_VEHICLE_WIDTH * 4, ZOOM_LVL_GUI) / 2;
 
		yoffs  = min(yoffs, UnScaleByZoom(real_sprite->y_offs, ZOOM_LVL_GUI));
 
		width = ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) + UnScaleGUI(real_sprite->width) + UnScaleGUI(real_sprite->x_offs) - xoffs;
 
		height = max<uint>(height, UnScaleGUI(real_sprite->height));
 
		xoffs  = xoffs - ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) / 2;
 
		yoffs  = min(yoffs, UnScaleGUI(real_sprite->y_offs));
 
	}
 
}
 

	
src/train_gui.cpp
Show inline comments
 
@@ -74,7 +74,7 @@ static int HighlightDragPosition(int px,
 

	
 
	if (drag_hlight_width > 0) {
 
		GfxFillRect(drag_hlight_left + WD_FRAMERECT_LEFT, WD_FRAMERECT_TOP + 1,
 
				drag_hlight_right - WD_FRAMERECT_RIGHT, UnScaleByZoom(4 * 13, ZOOM_LVL_GUI) - WD_FRAMERECT_BOTTOM, _colour_gradient[COLOUR_GREY][7]);
 
				drag_hlight_right - WD_FRAMERECT_RIGHT, ScaleGUITrad(13) - WD_FRAMERECT_BOTTOM, _colour_gradient[COLOUR_GREY][7]);
 
	}
 

	
 
	return drag_hlight_width;
 
@@ -100,7 +100,7 @@ void DrawTrainImage(const Train *v, int 
 
	int highlight_l = 0;
 
	int highlight_r = 0;
 
	int max_width = right - left + 1;
 
	int height = UnScaleByZoom(4 * 14, ZOOM_LVL_GUI);
 
	int height = ScaleGUITrad(14);
 

	
 
	if (!FillDrawPixelInfo(&tmp_dpi, left, y, max_width, height)) return;
 

	
 
@@ -355,7 +355,7 @@ void DrawTrainDetails(const Train *v, in
 
	/* get rid of awkward offset */
 
	y -= WD_MATRIX_TOP;
 

	
 
	int sprite_height = UnScaleByZoom(4 * GetVehicleHeight(VEH_TRAIN), ZOOM_LVL_GUI);
 
	int sprite_height = ScaleGUITrad(GetVehicleHeight(VEH_TRAIN));
 
	int line_height = max(sprite_height, WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM);
 
	int sprite_y_offset = line_height / 2;
 
	int text_y_offset = (line_height - FONT_HEIGHT_NORMAL) / 2;
 
@@ -379,7 +379,7 @@ void DrawTrainDetails(const Train *v, in
 
					int pitch = 0;
 
					const Engine *e = Engine::Get(v->engine_type);
 
					if (e->GetGRF() != NULL) {
 
						pitch = UnScaleByZoom(4 * e->GetGRF()->traininfo_vehicle_pitch, ZOOM_LVL_GUI);
 
						pitch = ScaleGUITrad(e->GetGRF()->traininfo_vehicle_pitch);
 
					}
 
					PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
 
					DrawSprite(u->GetImage(dir, EIT_IN_DETAILS), pal, px + (rtl ? -offset.x : offset.x), y - line_height * vscroll_pos + sprite_y_offset + pitch);
 
@@ -389,7 +389,7 @@ void DrawTrainDetails(const Train *v, in
 
				u = u->Next();
 
			} while (u != NULL && u->IsArticulatedPart());
 

	
 
			bool separate_sprite_row = (dx > (uint)UnScaleByZoom(4 * TRAIN_DETAILS_MAX_INDENT, ZOOM_LVL_GUI));
 
			bool separate_sprite_row = (dx > (uint)ScaleGUITrad(TRAIN_DETAILS_MAX_INDENT));
 
			if (separate_sprite_row) {
 
				vscroll_pos--;
 
				dx = 0;
 
@@ -397,7 +397,7 @@ void DrawTrainDetails(const Train *v, in
 

	
 
			uint num_lines = max(1u, _cargo_summary.Length());
 
			for (uint i = 0; i < num_lines; i++) {
 
				int sprite_width = max<int>(dx, UnScaleByZoom(4 * TRAIN_DETAILS_MIN_INDENT, ZOOM_LVL_GUI)) + 3;
 
				int sprite_width = max<int>(dx, ScaleGUITrad(TRAIN_DETAILS_MIN_INDENT)) + 3;
 
				int data_left  = left + (rtl ? 0 : sprite_width);
 
				int data_right = right - (rtl ? sprite_width : 0);
 
				if (vscroll_pos <= 0 && vscroll_pos > -vscroll_cap) {
src/vehicle_gui.cpp
Show inline comments
 
@@ -665,7 +665,7 @@ struct RefitWindow : public Window {
 
				break;
 

	
 
			case WID_VR_VEHICLE_PANEL_DISPLAY:
 
				size->height = UnScaleByZoom(4 * GetVehicleHeight(Vehicle::Get(this->window_number)->type), ZOOM_LVL_GUI);
 
				size->height = ScaleGUITrad(GetVehicleHeight(Vehicle::Get(this->window_number)->type));
 
				break;
 

	
 
			case WID_VR_INFO:
 
@@ -762,7 +762,7 @@ struct RefitWindow : public Window {
 
								}
 

	
 
								if (left != right) {
 
									DrawFrameRect(left, r.top + WD_FRAMERECT_TOP, right, r.top + WD_FRAMERECT_TOP + UnScaleByZoom(4 * 14, ZOOM_LVL_GUI) - 1, COLOUR_WHITE, FR_BORDERONLY);
 
									DrawFrameRect(left, r.top + WD_FRAMERECT_TOP, right, r.top + WD_FRAMERECT_TOP + ScaleGUITrad(14) - 1, COLOUR_WHITE, FR_BORDERONLY);
 
								}
 

	
 
								left = INT32_MIN;
 
@@ -1289,8 +1289,8 @@ static void DrawSmallOrderList(const Veh
 
	if (order == NULL) return;
 

	
 
	bool rtl = _current_text_dir == TD_RTL;
 
	int l_offset = rtl ? 0 : UnScaleByZoom(4 * 6, ZOOM_LVL_GUI);
 
	int r_offset = rtl ? UnScaleByZoom(4 * 6, ZOOM_LVL_GUI) : 0;
 
	int l_offset = rtl ? 0 : ScaleGUITrad(6);
 
	int r_offset = rtl ? ScaleGUITrad(6) : 0;
 
	int i = 0;
 
	VehicleOrderID oid = start;
 

	
 
@@ -1343,7 +1343,7 @@ void DrawVehicleImage(const Vehicle *v, 
 
uint GetVehicleListHeight(VehicleType type, uint divisor)
 
{
 
	/* Name + vehicle + profit */
 
	uint base = UnScaleByZoom(4 * GetVehicleHeight(type), ZOOM_LVL_GUI) + 2 * FONT_HEIGHT_SMALL;
 
	uint base = ScaleGUITrad(GetVehicleHeight(type)) + 2 * FONT_HEIGHT_SMALL;
 
	/* Drawing of the 4 small orders + profit*/
 
	if (type >= VEH_SHIP) base = max(base, 5U * FONT_HEIGHT_SMALL);
 

	
 
@@ -1372,8 +1372,8 @@ void BaseVehicleListWindow::DrawVehicleL
 
	int text_right = right - (rtl ? text_offset :           0);
 

	
 
	bool show_orderlist = this->vli.vtype >= VEH_SHIP;
 
	int orderlist_left  = left  + (rtl ? 0 : max(UnScaleByZoom(4 * 100, ZOOM_LVL_GUI) + text_offset, width / 2));
 
	int orderlist_right = right - (rtl ? max(UnScaleByZoom(4 * 100, ZOOM_LVL_GUI) + text_offset, width / 2) : 0);
 
	int orderlist_left  = left  + (rtl ? 0 : max(ScaleGUITrad(100) + text_offset, width / 2));
 
	int orderlist_right = right - (rtl ? max(ScaleGUITrad(100) + text_offset, width / 2) : 0);
 

	
 
	int image_left  = (rtl && show_orderlist) ? orderlist_right : text_left;
 
	int image_right = (!rtl && show_orderlist) ? orderlist_left : text_right;
 
@@ -1909,7 +1909,7 @@ struct VehicleDetailsWindow : Window {
 
		uint desired_height;
 
		if (v->HasArticulatedPart()) {
 
			/* An articulated RV has its text drawn under the sprite instead of after it, hence 15 pixels extra. */
 
			desired_height = WD_FRAMERECT_TOP + UnScaleByZoom(4 * 15, ZOOM_LVL_GUI) + 3 * FONT_HEIGHT_NORMAL + 2 + WD_FRAMERECT_BOTTOM;
 
			desired_height = WD_FRAMERECT_TOP + ScaleGUITrad(15) + 3 * FONT_HEIGHT_NORMAL + 2 + WD_FRAMERECT_BOTTOM;
 
			/* Add space for the cargo amount for each part. */
 
			for (const Vehicle *u = v; u != NULL; u = u->Next()) {
 
				if (u->cargo_cap != 0) desired_height += FONT_HEIGHT_NORMAL + 1;
 
@@ -1966,7 +1966,7 @@ struct VehicleDetailsWindow : Window {
 
			}
 

	
 
			case WID_VD_MATRIX:
 
				resize->height = max(UnScaleByZoom(4 * 14, ZOOM_LVL_GUI), WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM);
 
				resize->height = max(ScaleGUITrad(14), WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM);
 
				size->height = 4 * resize->height;
 
				break;
 

	
 
@@ -2093,7 +2093,9 @@ struct VehicleDetailsWindow : Window {
 
			case WID_VD_MIDDLE_DETAILS: {
 
				/* For other vehicles, at the place of the matrix. */
 
				bool rtl = _current_text_dir == TD_RTL;
 
				uint sprite_width = max<uint>(UnScaleByZoom(GetSprite(v->GetImage(rtl ? DIR_E : DIR_W, EIT_IN_DETAILS), ST_NORMAL)->width, ZOOM_LVL_GUI), 70U) + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
 
				uint sprite_width = UnScaleGUI(
 
						max<uint>(GetSprite(v->GetImage(rtl ? DIR_E : DIR_W, EIT_IN_DETAILS), ST_NORMAL)->width, 70U)) +
 
						WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
 

	
 
				uint text_left  = r.left  + (rtl ? 0 : sprite_width);
 
				uint text_right = r.right - (rtl ? sprite_width : 0);
 
@@ -2845,7 +2847,7 @@ int GetVehicleWidth(Vehicle *v, EngineIm
 
			bool rtl = _current_text_dir == TD_RTL;
 
			SpriteID sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type);
 
			const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
 
			vehicle_width = UnScaleByZoom(real_sprite->width, ZOOM_LVL_GUI);
 
			vehicle_width = UnScaleGUI(real_sprite->width);
 

	
 
			break;
 
	}
src/zoom_func.h
Show inline comments
 
@@ -64,4 +64,24 @@ static inline int UnScaleByZoomLower(int
 
	return value >> zoom;
 
}
 

	
 
/**
 
 * Short-hand to apply GUI zoom level.
 
 * @param value Pixel amount at #ZOOM_LVL_BEGIN (full zoom in).
 
 * @return value Pixel amount at #ZOOM_LVL_GUI.
 
 */
 
static inline int UnScaleGUI(int value)
 
{
 
	return UnScaleByZoom(value, ZOOM_LVL_GUI);
 
}
 

	
 
/**
 
 * Scale traditional pixel dimensions to GUI zoom level.
 
 * @param value Pixel amount at 1x zoom level.
 
 * @return value Pixel amount at #ZOOM_LVL_GUI.
 
 */
 
static inline int ScaleGUITrad(int value)
 
{
 
	return UnScaleGUI(value * ZOOM_LVL_BASE);
 
}
 

	
 
#endif /* ZOOM_FUNC_H */
src/zoom_type.h
Show inline comments
 
@@ -52,6 +52,7 @@ DECLARE_POSTFIX_INCREMENT(ZoomLevel)
 
/** Type for storing the zoom level in a byte. */
 
typedef SimpleTinyEnumT<ZoomLevel, byte> ZoomLevelByte;
 

	
 
extern ZoomLevelByte _gui_zoom;
 
#define ZOOM_LVL_GUI (_gui_zoom)
 

	
 
#endif /* ZOOM_TYPE_H */
0 comments (0 inline, 0 general)