summaryrefslogtreecommitdiff
path: root/ship_gui.c
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2005-01-31 11:03:23 +0000
committerdarkvater <darkvater@openttd.org>2005-01-31 11:03:23 +0000
commitb64c375f2f9cbe0dca4f88e3fe3f613db03b84a4 (patch)
tree6cfb4e4ff6887ed491747fa9b1aa2d19063aab51 /ship_gui.c
parent7bbcf5875c2fc6a8fa80e417d65e1094947d78b8 (diff)
downloadopenttd-b64c375f2f9cbe0dca4f88e3fe3f613db03b84a4.tar.xz
(svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
Diffstat (limited to 'ship_gui.c')
-rw-r--r--ship_gui.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/ship_gui.c b/ship_gui.c
index 6966a7095..7c454b151 100644
--- a/ship_gui.c
+++ b/ship_gui.c
@@ -965,8 +965,7 @@ static void PlayerShipsWndProc(Window *w, WindowEvent *e)
/* draw sorting criteria string */
DrawString(85, 15, _vehicle_sort_listing[vl->sort_type], 0x10);
/* draw arrow pointing up/down for ascending/descending sorting */
- DoDrawString(
- vl->flags & VL_DESC ? "\xAA" : "\xA0", 69, 15, 0x10);
+ DoDrawString(vl->flags & VL_DESC ? "\xAA" : "\xA0", 69, 15, 0x10);
max = min(w->vscroll.pos + w->vscroll.cap, vl->list_length);
for (i = w->vscroll.pos; i < max; ++i) {
@@ -1005,6 +1004,7 @@ static void PlayerShipsWndProc(Window *w, WindowEvent *e)
case 3: /* Flip sorting method ascending/descending */
vl->flags ^= VL_DESC;
vl->flags |= VL_RESORT;
+ _sorting.ship.order = !!(vl->flags & VL_DESC);
SetWindowDirty(w);
break;
case 4: case 5:/* Select sorting criteria dropdown menu */
@@ -1066,18 +1066,19 @@ static void PlayerShipsWndProc(Window *w, WindowEvent *e)
// value has changed -> resort
vl->flags |= VL_RESORT;
vl->sort_type = e->dropdown.index;
+ _sorting.ship.criteria = vl->sort_type;
// enable 'Sort By' if a sorter criteria is chosen
if (vl->sort_type != SORT_BY_UNSORTED)
- w->disabled_state &= ~(1 << 3);
+ CLRBIT(w->disabled_state, 3);
}
SetWindowDirty(w);
break;
case WE_CREATE: /* set up resort timer */
vl->sort_list = NULL;
- vl->flags = VL_REBUILD;
- vl->sort_type = SORT_BY_UNSORTED;
+ vl->flags = VL_REBUILD | (_sorting.ship.order << (VL_DESC - 1));
+ vl->sort_type = _sorting.ship.criteria;
vl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS;
break;