(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such

-Cleanup: some small things referring the change
This commit is contained in:
skidd13 2008-06-19 19:58:30 +00:00
parent 4cc9439d65
commit 32c2041f89
3 changed files with 27 additions and 25 deletions

View File

@ -385,7 +385,7 @@ public:
} }
/* Set text of sort by dropdown */ /* Set text of sort by dropdown */
this->widget[GRP_WIDGET_SORT_BY_DROPDOWN].data = _vehicle_sort_listing[this->vehicles.SortType()]; this->widget[GRP_WIDGET_SORT_BY_DROPDOWN].data = this->vehicle_sorter_names[this->vehicles.SortType()];
this->DrawWidgets(); this->DrawWidgets();
@ -478,7 +478,7 @@ public:
break; break;
case GRP_WIDGET_SORT_BY_DROPDOWN: // Select sorting criteria dropdown menu case GRP_WIDGET_SORT_BY_DROPDOWN: // Select sorting criteria dropdown menu
ShowDropDownMenu(this, _vehicle_sort_listing, this->vehicles.SortType(), GRP_WIDGET_SORT_BY_DROPDOWN, 0, (this->vehicle_type == VEH_TRAIN || this->vehicle_type == VEH_ROAD) ? 0 : (1 << 10)); ShowDropDownMenu(this, this->vehicle_sorter_names, this->vehicles.SortType(), GRP_WIDGET_SORT_BY_DROPDOWN, 0, (this->vehicle_type == VEH_TRAIN || this->vehicle_type == VEH_ROAD) ? 0 : (1 << 10));
return; return;
case GRP_WIDGET_ALL_VEHICLES: // All vehicles button case GRP_WIDGET_ALL_VEHICLES: // All vehicles button

View File

@ -45,21 +45,19 @@
Sorting _sorting; Sorting _sorting;
typedef int CDECL VehicleSortListingTypeFunction(const Vehicle* const *, const Vehicle* const *); static GUIVehicleList::SortFunction VehicleNumberSorter;
static GUIVehicleList::SortFunction VehicleNameSorter;
static GUIVehicleList::SortFunction VehicleAgeSorter;
static GUIVehicleList::SortFunction VehicleProfitThisYearSorter;
static GUIVehicleList::SortFunction VehicleProfitLastYearSorter;
static GUIVehicleList::SortFunction VehicleCargoSorter;
static GUIVehicleList::SortFunction VehicleReliabilitySorter;
static GUIVehicleList::SortFunction VehicleMaxSpeedSorter;
static GUIVehicleList::SortFunction VehicleModelSorter;
static GUIVehicleList::SortFunction VehicleValueSorter;
static GUIVehicleList::SortFunction VehicleLengthSorter;
static VehicleSortListingTypeFunction VehicleNumberSorter; GUIVehicleList::SortFunction* const VehicleListBase::vehicle_sorter_funcs[] = {
static VehicleSortListingTypeFunction VehicleNameSorter;
static VehicleSortListingTypeFunction VehicleAgeSorter;
static VehicleSortListingTypeFunction VehicleProfitThisYearSorter;
static VehicleSortListingTypeFunction VehicleProfitLastYearSorter;
static VehicleSortListingTypeFunction VehicleCargoSorter;
static VehicleSortListingTypeFunction VehicleReliabilitySorter;
static VehicleSortListingTypeFunction VehicleMaxSpeedSorter;
static VehicleSortListingTypeFunction VehicleModelSorter;
static VehicleSortListingTypeFunction VehicleValueSorter;
static VehicleSortListingTypeFunction VehicleLengthSorter;
static VehicleSortListingTypeFunction* const _vehicle_sorter[] = {
&VehicleNumberSorter, &VehicleNumberSorter,
&VehicleNameSorter, &VehicleNameSorter,
&VehicleAgeSorter, &VehicleAgeSorter,
@ -73,7 +71,7 @@ static VehicleSortListingTypeFunction* const _vehicle_sorter[] = {
&VehicleLengthSorter, &VehicleLengthSorter,
}; };
const StringID _vehicle_sort_listing[] = { const StringID VehicleListBase::vehicle_sorter_names[] = {
STR_SORT_BY_NUMBER, STR_SORT_BY_NUMBER,
STR_SORT_BY_DROPDOWN_NAME, STR_SORT_BY_DROPDOWN_NAME,
STR_SORT_BY_AGE, STR_SORT_BY_AGE,
@ -104,7 +102,7 @@ static const Vehicle *_last_vehicle[2] = { NULL, NULL };
void SortVehicleList(VehicleListBase *vl) void SortVehicleList(VehicleListBase *vl)
{ {
if (vl->vehicles.Sort(_vehicle_sorter[vl->vehicles.SortType()])) return; if (vl->vehicles.Sort()) return;
/* invalidate cached values for name sorter - vehicle names could change */ /* invalidate cached values for name sorter - vehicle names could change */
_last_vehicle[0] = _last_vehicle[1] = NULL; _last_vehicle[0] = _last_vehicle[1] = NULL;
@ -113,7 +111,7 @@ void SortVehicleList(VehicleListBase *vl)
void DepotSortList(VehicleList *list) void DepotSortList(VehicleList *list)
{ {
if (list->Length() < 2) return; if (list->Length() < 2) return;
QSortT(list->Begin(), list->Length(), _vehicle_sorter[0]); QSortT(list->Begin(), list->Length(), &VehicleNumberSorter);
} }
/** draw the vehicle profit button in the vehicle list window. */ /** draw the vehicle profit button in the vehicle list window. */
@ -933,7 +931,7 @@ struct VehicleListWindow : public Window, public VehicleListBase {
this->DrawWidgets(); this->DrawWidgets();
/* draw sorting criteria string */ /* draw sorting criteria string */
DrawString(85, 15, _vehicle_sort_listing[this->vehicles.SortType()], TC_BLACK); DrawString(85, 15, this->vehicle_sorter_names[this->vehicles.SortType()], TC_BLACK);
/* draw arrow pointing up/down for ascending/descending sorting */ /* draw arrow pointing up/down for ascending/descending sorting */
this->DrawSortButtonState(VLW_WIDGET_SORT_ORDER, this->vehicles.IsDescSortOrder() ? SBS_DOWN : SBS_UP); this->DrawSortButtonState(VLW_WIDGET_SORT_ORDER, this->vehicles.IsDescSortOrder() ? SBS_DOWN : SBS_UP);
@ -979,7 +977,7 @@ struct VehicleListWindow : public Window, public VehicleListBase {
this->SetDirty(); this->SetDirty();
break; break;
case VLW_WIDGET_SORT_BY_PULLDOWN:/* Select sorting criteria dropdown menu */ case VLW_WIDGET_SORT_BY_PULLDOWN:/* Select sorting criteria dropdown menu */
ShowDropDownMenu(this, _vehicle_sort_listing, this->vehicles.SortType(), VLW_WIDGET_SORT_BY_PULLDOWN, 0, (this->vehicle_type == VEH_TRAIN || this->vehicle_type == VEH_ROAD) ? 0 : (1 << 10)); ShowDropDownMenu(this, this->vehicle_sorter_names, this->vehicles.SortType(), VLW_WIDGET_SORT_BY_PULLDOWN, 0, (this->vehicle_type == VEH_TRAIN || this->vehicle_type == VEH_ROAD) ? 0 : (1 << 10));
return; return;
case VLW_WIDGET_LIST: { /* Matrix to show vehicles */ case VLW_WIDGET_LIST: { /* Matrix to show vehicles */
uint32 id_v = (pt.y - PLY_WND_PRC__OFFSET_TOP_WIDGET) / this->resize.step_height; uint32 id_v = (pt.y - PLY_WND_PRC__OFFSET_TOP_WIDGET) / this->resize.step_height;

View File

@ -15,10 +15,6 @@
void DrawVehicleProfitButton(const Vehicle *v, int x, int y); void DrawVehicleProfitButton(const Vehicle *v, int x, int y);
void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order); void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order);
#define PERIODIC_RESORT_DAYS 10
extern const StringID _vehicle_sort_listing[];
/** Constants of vehicle view widget indices */ /** Constants of vehicle view widget indices */
enum VehicleViewWindowWidgets { enum VehicleViewWindowWidgets {
VVW_WIDGET_CLOSEBOX = 0, VVW_WIDGET_CLOSEBOX = 0,
@ -121,6 +117,14 @@ struct VehicleListBase {
GUIVehicleList vehicles; ///< The list of vehicles GUIVehicleList vehicles; ///< The list of vehicles
Listing *sorting; ///< Pointer to the vehicle type related sorting. Listing *sorting; ///< Pointer to the vehicle type related sorting.
VehicleType vehicle_type; ///< The vehicle type that is sorted VehicleType vehicle_type; ///< The vehicle type that is sorted
static const StringID vehicle_sorter_names[];
static GUIVehicleList::SortFunction *const vehicle_sorter_funcs[];
VehicleListBase()
{
this->vehicles.SetSortFuncs(this->vehicle_sorter_funcs);
}
}; };
struct Sorting { struct Sorting {