--- a/src/station_gui.cpp Thu Jan 11 14:40:12 2007 +0000
+++ b/src/station_gui.cpp Thu Jan 11 15:30:35 2007 +0000
@@ -266,6 +266,8 @@
const PlayerID owner = (PlayerID)w->window_number;
static byte facilities = FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK;
static uint16 cargo_filter = CARGO_ALL_SELECTED;
+ static Listing station_sort = {0, 0};
+
plstations_d *sl = &WP(w, plstations_d);
switch (e->event) {
@@ -283,7 +285,8 @@
sl->sort_list = NULL;
sl->flags = SL_REBUILD;
- sl->sort_type = 0;
+ sl->sort_type = station_sort.criteria;
+ if (station_sort.order) sl->flags |= SL_ORDER;
sl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS;
break;
}
@@ -436,6 +439,7 @@
}
case STATIONLIST_WIDGET_SORTBY: /*flip sorting method asc/desc*/
sl->flags ^= SL_ORDER; //DESC-flag
+ station_sort.order = GB(sl->flags, 0, 1);
sl->flags |= SL_RESORT;
w->flags4 |= 5 << WF_TIMEOUT_SHL;
LowerWindowWidget(w, STATIONLIST_WIDGET_SORTBY);
@@ -471,6 +475,7 @@
if (sl->sort_type != e->we.dropdown.index) {
// value has changed -> resort
sl->sort_type = e->we.dropdown.index;
+ station_sort.criteria = sl->sort_type;
sl->flags |= SL_RESORT;
}
SetWindowDirty(w);