diff -r 30426b385cde -r 85b7662d0342 station_gui.c --- a/station_gui.c Mon Mar 19 20:05:49 2007 +0000 +++ b/station_gui.c Mon Mar 19 20:17:24 2007 +0000 @@ -134,6 +134,14 @@ return (_internal_sort_order & 1) ? sum2 - sum1 : sum1 - sum2; } +/** + * qsort-compatible version of sorting two stations by maximum rating + * @param a First object to be sorted, must be of type (const Station *) + * @param b Second object to be sorted, must be of type (const Station *) + * @return The sort order + * @retval >0 a should come before b in the list + * @retval <0 b should come before a in the list + */ static int CDECL StationRatingMaxSorter(const void *a, const void *b) { const Station* st1 = *(const Station**)a; @@ -143,8 +151,8 @@ int j; for (j = 0; j < NUM_CARGO; j++) { - if (st1->goods[j].waiting_acceptance & 0xfff) maxr1 = max(maxr1, st1->goods[j].rating); - if (st2->goods[j].waiting_acceptance & 0xfff) maxr2 = max(maxr2, st2->goods[j].rating); + if (st1->goods[j].enroute_from != INVALID_STATION) maxr1 = max(maxr1, st1->goods[j].rating); + if (st2->goods[j].enroute_from != INVALID_STATION) maxr2 = max(maxr2, st2->goods[j].rating); } return (_internal_sort_order & 1) ? maxr2 - maxr1 : maxr1 - maxr2;