Changeset - r23445:22617c604b66
[Not reviewed]
master
0 1 0
peter1138 - 5 years ago 2019-03-10 02:26:19
peter1138@openttd.org
Feature: Add rail icon to rail construction drop down list.
1 file changed with 18 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/rail_gui.cpp
Show inline comments
 
@@ -2010,7 +2010,17 @@ DropDownList *GetRailTypeDropDownList(bo
 
		*list->Append() = item;
 
	}
 

	
 
	Dimension d = { 0, 0 };
 
	RailType rt;
 
	/* Get largest icon size, to ensure text is aligned on each menu item. */
 
	if (!for_replacement) {
 
		FOR_ALL_SORTED_RAILTYPES(rt) {
 
			if (!HasBit(used_railtypes, rt)) continue;
 
			const RailtypeInfo *rti = GetRailTypeInfo(rt);
 
			d = maxdim(d, GetSpriteSize(rti->gui_sprites.build_x_rail));
 
		}
 
	}
 

	
 
	FOR_ALL_SORTED_RAILTYPES(rt) {
 
		/* If it's not used ever, don't show it to the user. */
 
		if (!HasBit(used_railtypes, rt)) continue;
 
@@ -2018,7 +2028,14 @@ DropDownList *GetRailTypeDropDownList(bo
 
		const RailtypeInfo *rti = GetRailTypeInfo(rt);
 

	
 
		StringID str = for_replacement ? rti->strings.replace_text : (rti->max_speed > 0 ? STR_TOOLBAR_RAILTYPE_VELOCITY : STR_JUST_STRING);
 
		DropDownListParamStringItem *item = new DropDownListParamStringItem(str, rt, !HasBit(c->avail_railtypes, rt));
 
		DropDownListParamStringItem *item;
 
		if (for_replacement) {
 
			item = new DropDownListParamStringItem(str, rt, !HasBit(c->avail_railtypes, rt));
 
		} else {
 
			DropDownListIconItem *iconitem = new DropDownListIconItem(rti->gui_sprites.build_x_rail, PAL_NONE, str, rt, !HasBit(c->avail_railtypes, rt));
 
			iconitem->SetDimension(d);
 
			item = iconitem;
 
		}
 
		item->SetParam(0, rti->strings.menu_text);
 
		item->SetParam(1, rti->max_speed);
 
		*list->Append() = item;
0 comments (0 inline, 0 general)