From e341cc1e496261fa9778b8bde19b1eae32b9f6b7 Mon Sep 17 00:00:00 2001 From: bjarni Date: Thu, 5 Oct 2006 13:11:17 +0000 Subject: [PATCH] (svn r6652) -Feature: [depot window] depot lists are now sorted, so vehicle 1 is always first and so on This should not be a big slowdown as it's only called each time the list is generated and will normally be much faster than the list generation itself (only a small % of the total number of vehicles is in the depot) --- depot_gui.c | 3 +++ vehicle_gui.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/depot_gui.c b/depot_gui.c index bf3472509e..f7b4b93079 100644 --- a/depot_gui.c +++ b/depot_gui.c @@ -614,6 +614,8 @@ static void ResizeDepotButtons(Window *w) } } +void DepotSortList(Vehicle **v, uint16 length); + static void DepotWndProc(Window *w, WindowEvent *e) { switch (e->event) { @@ -637,6 +639,7 @@ static void DepotWndProc(Window *w, WindowEvent *e) &WP(w, depot_d).vehicle_list, &WP(w, depot_d).engine_list_length, &WP(w, depot_d).engine_count, &WP(w, depot_d).wagon_list, &WP(w, depot_d).wagon_list_length, &WP(w, depot_d).wagon_count); WP(w, depot_d).generate_list = false; + DepotSortList(WP(w, depot_d).vehicle_list, WP(w, depot_d).engine_count); #ifndef NDEBUG } else { /* Here we got a piece of code, that only checks if we got a different number of vehicles in the depot list and the number of vehicles actually being in the depot. diff --git a/vehicle_gui.c b/vehicle_gui.c index d7d1992c82..e2d6eb2adf 100644 --- a/vehicle_gui.c +++ b/vehicle_gui.c @@ -158,6 +158,11 @@ static void SortVehicleList(vehiclelist_d *vl) vl->l.flags &= ~VL_RESORT; } +void DepotSortList(Vehicle **v, uint16 length) +{ + _internal_sort_order = 0; + qsort((void*)v, length, sizeof(v[0]), _vehicle_sorter[0]); +} /* General Vehicle GUI based procedures that are independent of vehicle types */ void InitializeVehiclesGuiList(void)