diff options
Diffstat (limited to 'src/rail_gui.cpp')
-rw-r--r-- | src/rail_gui.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 4564ebacb..c30e63017 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -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(); |