Add order occupancy average.

Show overall average instead of % char in toggle button.
Add a sort mode.
This commit is contained in:
Jonathan G Rennison
2016-01-24 02:51:40 +00:00
parent 0cf7428f85
commit 2955610575
5 changed files with 62 additions and 5 deletions

View File

@@ -57,6 +57,7 @@ static GUIVehicleList::SortFunction VehicleValueSorter;
static GUIVehicleList::SortFunction VehicleLengthSorter;
static GUIVehicleList::SortFunction VehicleTimeToLiveSorter;
static GUIVehicleList::SortFunction VehicleTimetableDelaySorter;
static GUIVehicleList::SortFunction VehicleAverageOrderOccupancySorter;
GUIVehicleList::SortFunction * const BaseVehicleListWindow::vehicle_sorter_funcs[] = {
&VehicleNumberSorter,
@@ -72,6 +73,7 @@ GUIVehicleList::SortFunction * const BaseVehicleListWindow::vehicle_sorter_funcs
&VehicleLengthSorter,
&VehicleTimeToLiveSorter,
&VehicleTimetableDelaySorter,
&VehicleAverageOrderOccupancySorter,
};
const StringID BaseVehicleListWindow::vehicle_sorter_names[] = {
@@ -88,6 +90,7 @@ const StringID BaseVehicleListWindow::vehicle_sorter_names[] = {
STR_SORT_BY_LENGTH,
STR_SORT_BY_LIFE_TIME,
STR_SORT_BY_TIMETABLE_DELAY,
STR_SORT_BY_AVG_ORDER_OCCUPANCY,
INVALID_STRING_ID
};
@@ -1199,6 +1202,13 @@ static int CDECL VehicleTimetableDelaySorter(const Vehicle * const *a, const Veh
return (r != 0) ? r : VehicleNumberSorter(a, b);
}
/** Sort vehicles by the average order occupancy */
static int CDECL VehicleAverageOrderOccupancySorter(const Vehicle * const *a, const Vehicle * const *b)
{
int r = (*a)->GetOrderOccupancyAverage() - (*b)->GetOrderOccupancyAverage();
return (r != 0) ? r : VehicleNumberSorter(a, b);
}
void InitializeGUI()
{
MemSetT(&_sorting, 0);