(svn r21866) -Feature [FS#4394]: [NewGRF] Rail type property to influence sorting of rail types in the drop down list

This commit is contained in:
rubidium
2011-01-20 12:22:38 +00:00
parent 6a2ae92811
commit 2f6c840ebf
5 changed files with 42 additions and 0 deletions

View File

@@ -691,6 +691,17 @@ static CallBackFunction ToolbarZoomOutClick(Window *w)
/* --- Rail button menu --- */
/**
* Compare railtypes based on their sorting order.
* @param first The railtype to compare to.
* @param second The railtype to compare.
* @return True iff the first should be sorted before the second.
*/
static bool CompareRailTypes(const DropDownListItem *first, const DropDownListItem *second)
{
return GetRailTypeInfo((RailType)first->result)->sorting_order < GetRailTypeInfo((RailType)second->result)->sorting_order;
}
static CallBackFunction ToolbarBuildRailClick(Window *w)
{
RailTypes used_railtypes = RAILTYPES_NONE;
@@ -722,6 +733,7 @@ static CallBackFunction ToolbarBuildRailClick(Window *w)
item->SetParam(1, rti->max_speed);
list->push_back(item);
}
list->sort(CompareRailTypes);
ShowDropDownList(w, list, _last_built_railtype, TBN_RAILS, 140, true, true);
SndPlayFx(SND_15_BEEP);
return CBF_NONE;