Changeset - r1246:1fc4189e63a6
[Not reviewed]
master
0 8 0
darkvater - 20 years ago 2005-01-31 11:03:23
darkvater@openttd.org
(svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
8 files changed with 47 insertions and 21 deletions:
0 comments (0 inline, 0 general)
aircraft_gui.c
Show inline comments
 
@@ -1021,8 +1021,7 @@ static void PlayerAircraftWndProc(Window
 
		/* 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) {
 
@@ -1061,6 +1060,7 @@ static void PlayerAircraftWndProc(Window
 
		case 3: /* Flip sorting method ascending/descending */
 
			vl->flags ^= VL_DESC;
 
			vl->flags |= VL_RESORT;
 
			_sorting.aircraft.order = !!(vl->flags & VL_DESC);
 
			SetWindowDirty(w);
 
			break;
 

	
 
@@ -1123,18 +1123,19 @@ static void PlayerAircraftWndProc(Window
 
			// value has changed -> resort
 
			vl->flags |= VL_RESORT;
 
			vl->sort_type = e->dropdown.index;
 
			_sorting.aircraft.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.aircraft.order << (VL_DESC - 1));
 
		vl->sort_type = _sorting.aircraft.criteria;
 
		vl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS;
 
		break;
 

	
gui.h
Show inline comments
 
@@ -126,4 +126,7 @@ VARDEF byte _station_show_coverage;
 
VARDEF PlaceProc *_place_proc;
 
VARDEF bool _no_button_sound;
 

	
 
/* vehicle_gui.c */
 
void InitializeGUI(void);
 

	
 
#endif /* GUI_H */
roadveh_gui.c
Show inline comments
 
@@ -808,8 +808,7 @@ static void PlayerRoadVehWndProc(Window 
 
		/* 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) {
 
@@ -846,6 +845,7 @@ static void PlayerRoadVehWndProc(Window 
 
		case 3: /* Flip sorting method ascending/descending */
 
			vl->flags ^= VL_DESC;
 
			vl->flags |= VL_RESORT;
 
			_sorting.roadveh.order = !!(vl->flags & VL_DESC);
 
			SetWindowDirty(w);
 
			break;
 

	
 
@@ -906,18 +906,19 @@ static void PlayerRoadVehWndProc(Window 
 
			// value has changed -> resort
 
			vl->flags |= VL_RESORT;
 
			vl->sort_type = e->dropdown.index;
 
			_sorting.roadveh.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.roadveh.order << (VL_DESC - 1));
 
		vl->sort_type = _sorting.roadveh.criteria;
 
		vl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS;
 
		break;
 

	
 
@@ -935,7 +936,6 @@ static void PlayerRoadVehWndProc(Window 
 
		}
 
		break;
 

	
 

	
 
	case WE_RESIZE:
 
		/* Update the scroll + matrix */
 
		w->vscroll.cap += e->sizing.diff.y / PLY_WND_PRC__SIZE_OF_ROW_SMALL;
ship_gui.c
Show inline comments
 
@@ -965,8 +965,7 @@ static void PlayerShipsWndProc(Window *w
 
		/* 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
 
		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
 
			// 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;
 

	
train_gui.c
Show inline comments
 
@@ -1307,8 +1307,7 @@ static void PlayerTrainsWndProc(Window *
 
		/* 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) {
 
@@ -1347,6 +1346,7 @@ static void PlayerTrainsWndProc(Window *
 
		case 3: /* Flip sorting method ascending/descending */
 
			vl->flags ^= VL_DESC;
 
			vl->flags |= VL_RESORT;
 
			_sorting.train.order = !!(vl->flags & VL_DESC);
 
			SetWindowDirty(w);
 
			break;
 

	
 
@@ -1409,18 +1409,19 @@ static void PlayerTrainsWndProc(Window *
 
			// value has changed -> resort
 
			vl->flags |= VL_RESORT;
 
			vl->sort_type = e->dropdown.index;
 
			_sorting.train.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.train.order << (VL_DESC - 1));
 
		vl->sort_type = _sorting.train.criteria;
 
		vl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS;
 
		break;
 

	
ttd.c
Show inline comments
 
@@ -721,6 +721,7 @@ int ttd_main(int argc, char* argv[])
 

	
 
	// initialize the ingame console
 
	IConsoleInit();
 
	InitializeGUI();
 
	IConsoleCmdExec("exec scripts/autoexec.scr 0");
 

	
 
	InitPlayerRandoms();
vehicle_gui.c
Show inline comments
 
@@ -1011,3 +1011,8 @@ void ShowReplaceVehicleWindow(byte vehic
 
	WP(w,replaceveh_d).vehicletype = vehicletype;
 
	w->vscroll2.cap = w->vscroll.cap;   // these two are always the same
 
}
 

	
 
void InitializeGUI(void)
 
{
 
	memset(&_sorting, 0, sizeof(_sorting));
 
}
vehicle_gui.h
Show inline comments
 
@@ -51,6 +51,20 @@ enum VehicleSortTypes {
 
	VEHAIRCRAFT		= 3
 
};
 

	
 
typedef struct Listing {
 
	bool order;	// Ascending/descending?
 
	byte criteria;	// Sorting criteria
 
} Listing;
 

	
 
typedef struct Sorting {
 
	Listing aircraft;
 
	Listing roadveh;
 
	Listing ship;
 
	Listing train;
 
} Sorting;
 

	
 
VARDEF Sorting _sorting;
 

	
 
enum {
 
  PLY_WND_PRC__OFFSET_TOP_WIDGET	= 26,
 
	PLY_WND_PRC__SIZE_OF_ROW_SMALL	= 26,
0 comments (0 inline, 0 general)