1
0
Fork 0

(svn r14352) -Feature: Allow sorting vehicles by remaining life time.

Patch by yorick
release/0.7
belugas 2008-09-17 02:30:24 +00:00
parent 9fed67a05a
commit 217db3cb61
2 changed files with 11 additions and 0 deletions

View File

@ -380,6 +380,7 @@ STR_SORT_BY_MAX_SPEED :Maximum speed
STR_SORT_BY_MODEL :Model STR_SORT_BY_MODEL :Model
STR_SORT_BY_VALUE :Value STR_SORT_BY_VALUE :Value
STR_SORT_BY_LENGTH :Length STR_SORT_BY_LENGTH :Length
STR_SORT_BY_LIFE_TIME :Remaining life time
STR_SORT_BY_FACILITY :Station type STR_SORT_BY_FACILITY :Station type
STR_SORT_BY_WAITING :Waiting cargo value STR_SORT_BY_WAITING :Waiting cargo value
STR_SORT_BY_RATING_MAX :Cargo rating STR_SORT_BY_RATING_MAX :Cargo rating

View File

@ -57,6 +57,7 @@ static GUIVehicleList::SortFunction VehicleMaxSpeedSorter;
static GUIVehicleList::SortFunction VehicleModelSorter; static GUIVehicleList::SortFunction VehicleModelSorter;
static GUIVehicleList::SortFunction VehicleValueSorter; static GUIVehicleList::SortFunction VehicleValueSorter;
static GUIVehicleList::SortFunction VehicleLengthSorter; static GUIVehicleList::SortFunction VehicleLengthSorter;
static GUIVehicleList::SortFunction VehicleTimeToLiveSorter;
GUIVehicleList::SortFunction* const BaseVehicleListWindow::vehicle_sorter_funcs[] = { GUIVehicleList::SortFunction* const BaseVehicleListWindow::vehicle_sorter_funcs[] = {
&VehicleNumberSorter, &VehicleNumberSorter,
@ -70,6 +71,7 @@ GUIVehicleList::SortFunction* const BaseVehicleListWindow::vehicle_sorter_funcs[
&VehicleModelSorter, &VehicleModelSorter,
&VehicleValueSorter, &VehicleValueSorter,
&VehicleLengthSorter, &VehicleLengthSorter,
&VehicleTimeToLiveSorter,
}; };
const StringID BaseVehicleListWindow::vehicle_sorter_names[] = { const StringID BaseVehicleListWindow::vehicle_sorter_names[] = {
@ -84,6 +86,7 @@ const StringID BaseVehicleListWindow::vehicle_sorter_names[] = {
STR_SORT_BY_MODEL, STR_SORT_BY_MODEL,
STR_SORT_BY_VALUE, STR_SORT_BY_VALUE,
STR_SORT_BY_LENGTH, STR_SORT_BY_LENGTH,
STR_SORT_BY_LIFE_TIME,
INVALID_STRING_ID INVALID_STRING_ID
}; };
@ -629,6 +632,13 @@ static int CDECL VehicleLengthSorter(const Vehicle* const *a, const Vehicle* con
return (r != 0) ? r : VehicleNumberSorter(a, b); return (r != 0) ? r : VehicleNumberSorter(a, b);
} }
/** Sort vehicles by the time they can still live */
static int CDECL VehicleTimeToLiveSorter(const Vehicle* const *a, const Vehicle* const *b)
{
int r = ClampToI32(((*a)->max_age - (*a)->age) - ((*b)->max_age - (*b)->age));
return (r != 0) ? r : VehicleNumberSorter(a, b);
}
void InitializeGUI() void InitializeGUI()
{ {
MemSetT(&_sorting, 0); MemSetT(&_sorting, 0);