Changeset - r12489:8ba83e2ab4ed
[Not reviewed]
master
0 1 0
alberth - 15 years ago 2009-07-24 09:45:39
alberth@openttd.org
(svn r16936) -Fix [FS#3053]: Rail station build window with NewGRFs could crash due to uninitialized string parameter.
1 file changed with 21 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/rail_gui.cpp
Show inline comments
 
@@ -1050,7 +1050,6 @@ public:
 
			}
 
		}
 

	
 
		SetDParam(0, GetStationClassName(_railstation.station_class));
 
		this->DrawWidgets();
 

	
 
		/* '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
 
	{
 
		DrawPixelInfo tmp_dpi;
 
@@ -1114,6 +1128,11 @@ public:
 
				}
 
				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_newstat
 
	NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BRSW_BACKGROUND),
 
		/* begin newstations gui additions. */
 
		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_HORIZONTAL), SetPIP(7, 0, 7),
 
			NWidget(WWT_MATRIX, COLOUR_GREY, BRSW_NEWST_LIST), SetMinimalSize(122, 71), SetDataTip(0x501, STR_SELECT_STATION_TYPE_TIP),
0 comments (0 inline, 0 general)