Changeset - r8295:0e9a1c71876f
[Not reviewed]
master
0 3 0
peter1138 - 16 years ago 2008-01-15 10:36:51
peter1138@openttd.org
(svn r11859) -Codechange: Update newgrf station class dropdown to use new method of generating list.
3 files changed with 14 insertions and 21 deletions:
0 comments (0 inline, 0 general)
src/newgrf_station.cpp
Show inline comments
 
@@ -98,25 +98,6 @@ StringID GetStationClassName(StationClas
 
	return station_classes[sclass].name;
 
}
 

	
 
/** Build a list of station class name StringIDs to use in a dropdown list
 
 * @return Pointer to a (static) array of StringIDs
 
 */
 
StringID *BuildStationClassDropdown()
 
{
 
	/* Allow room for all station classes, plus a terminator entry */
 
	static StringID names[STAT_CLASS_MAX + 1];
 
	uint i;
 

	
 
	/* Add each name */
 
	for (i = 0; i < STAT_CLASS_MAX && station_classes[i].id != 0; i++) {
 
		names[i] = station_classes[i].name;
 
	}
 
	/* Terminate the list */
 
	names[i] = INVALID_STRING_ID;
 

	
 
	return names;
 
}
 

	
 
/**
 
 * Get the number of station classes in use.
 
 * @return Number of station classes.
src/newgrf_station.h
Show inline comments
 
@@ -102,7 +102,6 @@ void ResetStationClasses();
 
StationClassID AllocateStationClass(uint32 cls);
 
void SetStationClassName(StationClassID sclass, StringID name);
 
StringID GetStationClassName(StationClassID sclass);
 
StringID *BuildStationClassDropdown();
 

	
 
uint GetNumStationClasses();
 
uint GetNumCustomStations(StationClassID sclass);
src/rail_gui.cpp
Show inline comments
 
@@ -27,6 +27,7 @@
 
#include "sound_func.h"
 
#include "player_func.h"
 
#include "settings_type.h"
 
#include "widgets/dropdown_type.h"
 
#include "widgets/dropdown_func.h"
 

	
 
#include "bridge_map.h"
 
@@ -774,6 +775,18 @@ static void CheckSelectedSize(Window *w,
 
	}
 
}
 

	
 
static DropDownList *BuildStationClassDropDown()
 
{
 
	DropDownList *list = new DropDownList();
 

	
 
	for (uint i = 0; i < GetNumStationClasses(); i++) {
 
		if (i == STAT_CLASS_WAYP) continue;
 
		list->push_back(new DropDownListStringItem(GetStationClassName((StationClassID)i), i, false));
 
	}
 

	
 
	return list;
 
}
 

	
 
static void StationBuildWndProc(Window *w, WindowEvent *e)
 
{
 
	switch (e->event) {
 
@@ -992,7 +1005,7 @@ static void StationBuildWndProc(Window *
 

	
 
		case BRSW_NEWST_DROPDOWN:
 
		case BRSW_NEWST_DROPDOWN_TEXT:
 
			ShowDropDownMenu(w, BuildStationClassDropdown(), _railstation.station_class, 23, 0, 1 << STAT_CLASS_WAYP);
 
			ShowDropDownList(w, BuildStationClassDropDown(), _railstation.station_class, BRSW_NEWST_DROPDOWN_TEXT);
 
			break;
 

	
 
		case BRSW_NEWST_LIST: {
0 comments (0 inline, 0 general)