From 217db3cb6171dbe108dfca22adb33b82f607771c Mon Sep 17 00:00:00 2001 From: belugas Date: Wed, 17 Sep 2008 02:30:24 +0000 Subject: (svn r14352) -Feature: Allow sorting vehicles by remaining life time. Patch by yorick --- src/lang/english.txt | 1 + src/vehicle_gui.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/lang/english.txt b/src/lang/english.txt index 01556f754..1c25ac982 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -380,6 +380,7 @@ STR_SORT_BY_MAX_SPEED :Maximum speed STR_SORT_BY_MODEL :Model STR_SORT_BY_VALUE :Value STR_SORT_BY_LENGTH :Length +STR_SORT_BY_LIFE_TIME :Remaining life time STR_SORT_BY_FACILITY :Station type STR_SORT_BY_WAITING :Waiting cargo value STR_SORT_BY_RATING_MAX :Cargo rating diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index c4bcc684a..55ddc2f21 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -57,6 +57,7 @@ static GUIVehicleList::SortFunction VehicleMaxSpeedSorter; static GUIVehicleList::SortFunction VehicleModelSorter; static GUIVehicleList::SortFunction VehicleValueSorter; static GUIVehicleList::SortFunction VehicleLengthSorter; +static GUIVehicleList::SortFunction VehicleTimeToLiveSorter; GUIVehicleList::SortFunction* const BaseVehicleListWindow::vehicle_sorter_funcs[] = { &VehicleNumberSorter, @@ -70,6 +71,7 @@ GUIVehicleList::SortFunction* const BaseVehicleListWindow::vehicle_sorter_funcs[ &VehicleModelSorter, &VehicleValueSorter, &VehicleLengthSorter, + &VehicleTimeToLiveSorter, }; const StringID BaseVehicleListWindow::vehicle_sorter_names[] = { @@ -84,6 +86,7 @@ const StringID BaseVehicleListWindow::vehicle_sorter_names[] = { STR_SORT_BY_MODEL, STR_SORT_BY_VALUE, STR_SORT_BY_LENGTH, + STR_SORT_BY_LIFE_TIME, 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); } +/** 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() { MemSetT(&_sorting, 0); -- cgit v1.2.3-54-g00ecf