changeset 11666:a19168510f50 draft

(svn r16046) -Change: when sorting on cargo ratings only take a look at the ratings of the cargoes that are 'selected'.
author rubidium <rubidium@openttd.org>
date Sun, 12 Apr 2009 19:23:26 +0000
parents 933ac82c9a0b
children ae9d07bc4bd5
files src/station_gui.cpp
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/station_gui.cpp
+++ b/src/station_gui.cpp
@@ -212,6 +212,7 @@
 		byte maxr2 = 0;
 
 		for (CargoID j = 0; j < NUM_CARGO; j++) {
+			if (!HasBit(cargo_filter, j)) continue;
 			if (HasBit((*a)->goods[j].acceptance_pickup, GoodsEntry::PICKUP)) maxr1 = max(maxr1, (*a)->goods[j].rating);
 			if (HasBit((*b)->goods[j].acceptance_pickup, GoodsEntry::PICKUP)) maxr2 = max(maxr2, (*b)->goods[j].rating);
 		}
@@ -222,15 +223,16 @@
 	/** Sort stations by their rating */
 	static int CDECL StationRatingMinSorter(const Station * const *a, const Station * const *b)
 	{
-		byte minr1 = 0;
-		byte minr2 = 0;
+		byte minr1 = 255;
+		byte minr2 = 255;
 
 		for (CargoID j = 0; j < NUM_CARGO; j++) {
+			if (!HasBit(cargo_filter, j)) continue;
 			if (HasBit((*a)->goods[j].acceptance_pickup, GoodsEntry::PICKUP)) minr1 = min(minr1, (*a)->goods[j].rating);
 			if (HasBit((*b)->goods[j].acceptance_pickup, GoodsEntry::PICKUP)) minr2 = min(minr2, (*b)->goods[j].rating);
 		}
 
-		return minr1 - minr2;
+		return -(minr1 - minr2);
 	}
 
 	/** Sort the stations list */