(svn r11437) -Change: when sorting stations by cargo sum, only sum the cargos that are selected in the filter. Patch by divide.
authorrubidium
Thu, 15 Nov 2007 17:54:46 +0000
changeset 7886 f0901496b7f1
parent 7885 706462b6f293
child 7887 b72ef3f45a38
(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
--- a/src/station_gui.cpp	Thu Nov 15 17:51:36 2007 +0000
+++ b/src/station_gui.cpp	Thu Nov 15 17:54:46 2007 +0000
@@ -127,6 +127,9 @@
 	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 @@
 	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 @@
 	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;