summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-11-15 17:54:46 +0000
committerrubidium <rubidium@openttd.org>2007-11-15 17:54:46 +0000
commit59afbb034496140a84241b71a80807faba55a13f (patch)
tree255754c186c64ffb8a41a9a719f0c69c293510c8
parent5bbb31a896be7209bcfa2c063493394f92a316d5 (diff)
downloadopenttd-59afbb034496140a84241b71a80807faba55a13f.tar.xz
(svn r11437) -Change: when sorting stations by cargo sum, only sum the cargos that are selected in the filter. Patch by divide.
-rw-r--r--src/station_gui.cpp7
1 files 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;