mirror of https://github.com/OpenTTD/OpenTTD
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
Patch by yorickrelease/0.7
parent
9fed67a05a
commit
217db3cb61
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue