mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
(svn r16936) -Fix [FS#3053]: Rail station build window with NewGRFs could crash due to uninitialized string parameter.
This commit is contained in:
parent
d9cdf0f9b7
commit
8c29d9ee54
@ -1050,7 +1050,6 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SetDParam(0, GetStationClassName(_railstation.station_class));
|
|
||||||
this->DrawWidgets();
|
this->DrawWidgets();
|
||||||
|
|
||||||
/* 'Accepts' and 'Supplies' texts. */
|
/* 'Accepts' and 'Supplies' texts. */
|
||||||
@ -1066,6 +1065,21 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *resize)
|
||||||
|
{
|
||||||
|
if (widget != BRSW_NEWST_DROPDOWN) return;
|
||||||
|
|
||||||
|
Dimension d = {0, 0};
|
||||||
|
for (uint i = 0; i < GetNumStationClasses(); i++) {
|
||||||
|
if (i == STAT_CLASS_WAYP) continue;
|
||||||
|
SetDParam(0, GetStationClassName((StationClassID)i));
|
||||||
|
d = maxdim(d, GetStringBoundingBox(STR_BLACK_STRING));
|
||||||
|
}
|
||||||
|
d.width += padding.width;
|
||||||
|
d.height += padding.height;
|
||||||
|
*size = maxdim(*size, d);
|
||||||
|
}
|
||||||
|
|
||||||
virtual void DrawWidget(const Rect &r, int widget) const
|
virtual void DrawWidget(const Rect &r, int widget) const
|
||||||
{
|
{
|
||||||
DrawPixelInfo tmp_dpi;
|
DrawPixelInfo tmp_dpi;
|
||||||
@ -1114,6 +1128,11 @@ public:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case BRSW_NEWST_DROPDOWN:
|
||||||
|
SetDParam(0, GetStationClassName(_railstation.station_class));
|
||||||
|
DrawString(r.left + WD_DROPDOWNTEXT_LEFT, r.right - WD_DROPDOWNTEXT_RIGHT, r.top + WD_DROPDOWNTEXT_TOP, STR_BLACK_STRING, TC_BLACK);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1353,7 +1372,7 @@ static const NWidgetPart _nested_newstation_builder_widgets[] = {
|
|||||||
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BRSW_BACKGROUND),
|
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BRSW_BACKGROUND),
|
||||||
/* begin newstations gui additions. */
|
/* begin newstations gui additions. */
|
||||||
NWidget(NWID_SPACER), SetMinimalSize(0, 3),
|
NWidget(NWID_SPACER), SetMinimalSize(0, 3),
|
||||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, BRSW_NEWST_DROPDOWN), SetMinimalSize(134, 12), SetPadding(0, 7, 0, 7), SetDataTip(STR_BLACK_STRING, STR_SELECT_STATION_CLASS_TIP),
|
NWidget(WWT_DROPDOWN, COLOUR_GREY, BRSW_NEWST_DROPDOWN), SetMinimalSize(134, 12), SetPadding(0, 7, 0, 7), SetDataTip(STR_EMPTY, STR_SELECT_STATION_CLASS_TIP),
|
||||||
NWidget(NWID_SPACER), SetMinimalSize(0, 3),
|
NWidget(NWID_SPACER), SetMinimalSize(0, 3),
|
||||||
NWidget(NWID_HORIZONTAL), SetPIP(7, 0, 7),
|
NWidget(NWID_HORIZONTAL), SetPIP(7, 0, 7),
|
||||||
NWidget(WWT_MATRIX, COLOUR_GREY, BRSW_NEWST_LIST), SetMinimalSize(122, 71), SetDataTip(0x501, STR_SELECT_STATION_TYPE_TIP),
|
NWidget(WWT_MATRIX, COLOUR_GREY, BRSW_NEWST_LIST), SetMinimalSize(122, 71), SetDataTip(0x501, STR_SELECT_STATION_TYPE_TIP),
|
||||||
|
Loading…
Reference in New Issue
Block a user