From 59afbb034496140a84241b71a80807faba55a13f Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 15 Nov 2007 17:54:46 +0000 Subject: (svn r11437) -Change: when sorting stations by cargo sum, only sum the cargos that are selected in the filter. Patch by divide. --- src/station_gui.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/station_gui.cpp b/src/station_gui.cpp index d8722adbb..f7293fefd 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -127,6 +127,9 @@ static int CDECL StationTypeSorter(const void *a, const void *b) return (_internal_sort_order & 1) ? st2->facilities - st1->facilities : st1->facilities - st2->facilities; } +static const uint32 _cargo_filter_max = ~0; +static uint32 _cargo_filter = _cargo_filter_max; + static int CDECL StationWaitingSorter(const void *a, const void *b) { const Station* st1 = *(const Station**)a; @@ -134,6 +137,7 @@ static int CDECL StationWaitingSorter(const void *a, const void *b) Money sum1 = 0, sum2 = 0; for (CargoID j = 0; j < NUM_CARGO; j++) { + if (!HASBIT(_cargo_filter, j)) continue; if (!st1->goods[j].cargo.Empty()) sum1 += GetTransportedGoodsIncome(st1->goods[j].cargo.Count(), 20, 50, j); if (!st2->goods[j].cargo.Empty()) sum2 += GetTransportedGoodsIncome(st2->goods[j].cargo.Count(), 20, 50, j); } @@ -272,9 +276,6 @@ static void SortStationsList(plstations_d *sl) sl->flags &= ~SL_RESORT; } -static const uint32 _cargo_filter_max = ~0; -static uint32 _cargo_filter = _cargo_filter_max; - static void PlayerStationsWndProc(Window *w, WindowEvent *e) { const PlayerID owner = (PlayerID)w->window_number; -- cgit v1.2.3-70-g09d2