(svn r19431) -Codechange: Append rail type speed limit (if set) to rail type selection list, and toolbar title.

This commit is contained in:
peter1138 2010-03-16 06:18:52 +00:00
parent e3591f8a1d
commit ef8deb2edd
3 changed files with 21 additions and 2 deletions

View File

@ -4118,3 +4118,5 @@ STR_BUS :{BLACK}{BUS}
STR_LORRY :{BLACK}{LORRY}
STR_PLANE :{BLACK}{PLANE}
STR_SHIP :{BLACK}{SHIP}
STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})

View File

@ -617,6 +617,8 @@ static const RailBuildingGUIButtonData _rail_build_button_data[] = {
* @param clicked_widget Widget clicked in the toolbar
*/
struct BuildRailToolbarWindow : Window {
RailType railtype;
BuildRailToolbarWindow(const WindowDesc *desc, WindowNumber window_number, RailType railtype) : Window()
{
this->InitNested(desc);
@ -636,10 +638,11 @@ struct BuildRailToolbarWindow : Window {
*/
void SetupRailToolbar(RailType railtype)
{
this->railtype = railtype;
const RailtypeInfo *rti = GetRailTypeInfo(railtype);
assert(railtype < RAILTYPE_END);
this->GetWidget<NWidgetCore>(RTW_CAPTION)->widget_data = rti->strings.toolbar_caption;
this->GetWidget<NWidgetCore>(RTW_CAPTION)->widget_data = rti->max_speed > 0 ? STR_TOOLBAR_RAILTYPE_VELOCITY : STR_JUST_STRING;
this->GetWidget<NWidgetCore>(RTW_BUILD_NS)->widget_data = rti->gui_sprites.build_ns_rail;
this->GetWidget<NWidgetCore>(RTW_BUILD_X)->widget_data = rti->gui_sprites.build_x_rail;
this->GetWidget<NWidgetCore>(RTW_BUILD_EW)->widget_data = rti->gui_sprites.build_ew_rail;
@ -689,6 +692,15 @@ struct BuildRailToolbarWindow : Window {
}
}
virtual void SetStringParameters(int widget) const
{
if (widget == RTW_CAPTION) {
const RailtypeInfo *rti = GetRailTypeInfo(this->railtype);
SetDParam(0, rti->strings.toolbar_caption);
SetDParam(1, rti->max_speed);
}
}
virtual void OnPaint()
{
this->DrawWidgets();

View File

@ -650,7 +650,12 @@ static void ToolbarBuildRailClick(Window *w)
const RailtypeInfo *rti = GetRailTypeInfo(rt);
/* Skip rail type if it has no label */
if (rti->label == 0) continue;
list->push_back(new DropDownListStringItem(rti->strings.menu_text, rt, !HasBit(c->avail_railtypes, rt)));
StringID str = rti->max_speed > 0 ? STR_TOOLBAR_RAILTYPE_VELOCITY : STR_JUST_STRING;
DropDownListParamStringItem *item = new DropDownListParamStringItem(str, rt, !HasBit(c->avail_railtypes, rt));
item->SetParam(0, rti->strings.menu_text);
item->SetParam(1, rti->max_speed);
list->push_back(item);
}
ShowDropDownList(w, list, _last_built_railtype, TBN_RAILS, 140, true, true);
SndPlayFx(SND_15_BEEP);