Changeset - r4651:477313d713af
[Not reviewed]
master
0 1 0
bjarni - 18 years ago 2006-09-27 14:05:15
bjarni@openttd.org
(svn r6527) -Codechange: [depot window] added asserts to ensure that widget names, widget array and array of resize info stays the same length
Really bad stuff will happen if one of them contains a different number of widgets ;)
This is meant as a protection against incorrect additions of code rather than verifying that the current code works
1 file changed with 5 insertions and 0 deletions:
0 comments (0 inline, 0 general)
depot_gui.c
Show inline comments
 
@@ -56,6 +56,7 @@ typedef enum DepotWindowWidgets {
 
	DEPOT_WIDGET_CLONE,
 
	DEPOT_WIDGET_LOCATION,
 
	DEPOT_WIDGET_RESIZE,
 
	DEPOT_WIDGET_LAST, // used to assert if DepotWindowWidgets and widget_moves got different lengths. Due to this usage, it needs to be last
 
} DepotWindowWidget;
 

	
 
/* Define how to move each widget. The order is important */
 
@@ -738,6 +739,10 @@ void ShowDepotWindow(TileIndex tile, byt
 
{
 
	Window *w;
 

	
 
	/* First we ensure that the widget counts are equal in all 3 lists to prevent bad stuff from happening */
 
	assert(lengthof(widget_moves) == lengthof(_depot_widgets));
 
	assert(lengthof(widget_moves) == DEPOT_WIDGET_LAST);
 

	
 
	switch (type) {
 
		case VEH_Train:    w = AllocateWindowDescFront(&_train_depot_desc, tile);    break;
 
		case VEH_Road:     w = AllocateWindowDescFront(&_road_depot_desc, tile);     break;
0 comments (0 inline, 0 general)