summaryrefslogtreecommitdiff
path: root/vehicle_gui.h
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2004-09-06 21:20:01 +0000
committerdarkvater <darkvater@openttd.org>2004-09-06 21:20:01 +0000
commit78b64ed1925c99ecc4fe26ffb4969b7001e7e095 (patch)
tree4b59ce1c3dee1ce7974571d40bc52a7526809563 /vehicle_gui.h
parentb7774b2ed3453fac2aa238bfbe9b491a3095a271 (diff)
downloadopenttd-78b64ed1925c99ecc4fe26ffb4969b7001e7e095.tar.xz
(svn r169) -Fix: move around sort-widgets a bit so it looks more natural
-Fix: savegames are sorted with newest date first by default -Codechange: refine sorter functions -Fix: fixed linux warnings (tokai)
Diffstat (limited to 'vehicle_gui.h')
-rw-r--r--vehicle_gui.h49
1 files changed, 31 insertions, 18 deletions
diff --git a/vehicle_gui.h b/vehicle_gui.h
index b6da5085f..0ca135500 100644
--- a/vehicle_gui.h
+++ b/vehicle_gui.h
@@ -5,33 +5,46 @@ void DrawVehicleProfitButton(Vehicle *v, int x, int y);
void InitializeVehiclesGuiList();
/* sorter stuff */
-int CDECL GeneralOwnerSorter (const void *a, const void *b);
-int CDECL VehicleNameSorter (const void *a, const void *b);
-int CDECL GeneralVehicleSorter(const void *a, const void *b);
-VARDEF uint32 _internal_name_sorter_id; // internal StringID for default vehicle-names
-VARDEF uint32 _last_vehicle_idx; // cached index to hopefully speed up name-sorting
-VARDEF bool _internal_sort_order; // descending/ascending
-VARDEF byte _internal_sort_type; // Miscalleneous sorting criteria
-
typedef struct SortStruct { // store owner through sorting process
uint32 index;
byte owner;
} SortStruct;
+int CDECL GeneralOwnerSorter(const void *a, const void *b);
+void VehicleSorter(SortStruct *firstelement, uint32 n, uint16 size);
+VARDEF uint32 _internal_name_sorter_id; // internal StringID for default vehicle-names
+VARDEF uint32 _last_vehicle_idx; // cached index to hopefully speed up name-sorting
+VARDEF bool _internal_sort_order; // descending/ascending
+
#define PERIODIC_RESORT_DAYS 10
+#define DEF_SORTER(yyyy) int CDECL yyyy(const void *a, const void *b)
+
+DEF_SORTER(VehicleUnsortedSorter);
+DEF_SORTER(VehicleNumberSorter);
+DEF_SORTER(VehicleNameSorter);
+DEF_SORTER(VehicleAgeSorter);
+DEF_SORTER(VehicleProfitThisYearSorter);
+DEF_SORTER(VehicleProfitLastYearSorter);
+DEF_SORTER(VehicleCargoSorter);
+DEF_SORTER(VehicleReliabilitySorter);
+DEF_SORTER(VehicleMaxSpeedSorter);
-enum VehicleSortListingTypes {
- SORT_BY_UNSORTED = 0,
- SORT_BY_NUMBER = 1,
- SORT_BY_NAME = 2,
- SORT_BY_AGE = 3,
- SORT_BY_PROFIT_THIS_YEAR = 4,
- SORT_BY_PROFIT_LAST_YEAR = 5,
- SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE = 6,
- SORT_BY_RELIABILITY = 7,
- SORT_BY_MAX_SPEED = 8
+typedef DEF_SORTER(VehicleSortListingTypeFunctions);
+
+static VehicleSortListingTypeFunctions * const _vehicle_sorter[] = {
+ &VehicleUnsortedSorter,
+ &VehicleNumberSorter,
+ &VehicleNameSorter,
+ &VehicleAgeSorter,
+ &VehicleProfitThisYearSorter,
+ &VehicleProfitLastYearSorter,
+ &VehicleCargoSorter,
+ &VehicleReliabilitySorter,
+ &VehicleMaxSpeedSorter
};
+#define SORT_BY_UNSORTED 0
+
static const uint16 _vehicle_sort_listing[] = {
STR_SORT_BY_UNSORTED,
STR_SORT_BY_NUMBER,