(svn r3055) Give the savegame/scenarion sort order flags symbolic names
authortron
Mon, 17 Oct 2005 19:57:00 +0000
changeset 2526 cae4842086a9
parent 2525 9b75e9239c38
child 2527 4194f07b8347
(svn r3055) Give the savegame/scenarion sort order flags symbolic names
misc_gui.c
openttd.c
openttd.h
os2.c
unix.c
win32.c
--- a/misc_gui.c	Mon Oct 17 10:09:37 2005 +0000
+++ b/misc_gui.c	Mon Oct 17 19:57:00 2005 +0000
@@ -1246,7 +1246,11 @@
 		}
 
 		GfxFillRect(w->widget[6].left + 1, w->widget[6].top + 1, w->widget[6].right, w->widget[6].bottom, 0xD7);
-		DoDrawString(_savegame_sort_order & 1 ? DOWNARROW : UPARROW, _savegame_sort_order <= 1 ? w->widget[3].right - 9 : w->widget[2].right - 9, 15, 0x10);
+		DoDrawString(
+			_savegame_sort_order & SORT_DESCENDING ? DOWNARROW : UPARROW,
+			_savegame_sort_order & SORT_BY_NAME ? w->widget[2].right - 9 : w->widget[3].right - 9,
+			15, 16
+		);
 
 		y = w->widget[6].top + 1;
 		pos = w->vscroll.pos;
@@ -1267,13 +1271,15 @@
 	case WE_CLICK:
 		switch(e->click.widget) {
 		case 2: /* Sort save names by name */
-			_savegame_sort_order = (_savegame_sort_order == 2) ? 3 : 2;
+			_savegame_sort_order = (_savegame_sort_order == SORT_BY_NAME) ?
+				SORT_BY_NAME | SORT_DESCENDING : SORT_BY_NAME;
 			_savegame_sort_dirty = true;
 			SetWindowDirty(w);
 			break;
 
 		case 3: /* Sort save names by date */
-			_savegame_sort_order = (_savegame_sort_order == 0) ? 1 : 0;
+			_savegame_sort_order = (_savegame_sort_order == SORT_BY_DATE) ?
+				SORT_BY_DATE | SORT_DESCENDING : SORT_BY_DATE;
 			_savegame_sort_dirty = true;
 			SetWindowDirty(w);
 			break;
@@ -1489,7 +1495,11 @@
 		SetVScrollCount(w, _fios_num);
 
 		DrawWindowWidgets(w);
-		DoDrawString(_savegame_sort_order & 1 ? DOWNARROW : UPARROW, _savegame_sort_order <= 1 ? w->widget[4].right - 9 : w->widget[3].right - 9, 15, 0x10);
+		DoDrawString(
+			_savegame_sort_order & SORT_DESCENDING ? DOWNARROW : UPARROW,
+			_savegame_sort_order & SORT_BY_NAME ? w->widget[3].right - 9 : w->widget[4].right - 9,
+			15, 16
+		);
 		DrawString(4, 32, STR_4010_GENERATE_RANDOM_NEW_GAME, 9);
 
 		y = list_start;
@@ -1508,13 +1518,15 @@
 	case WE_CLICK:
 		switch(e->click.widget) {
 		case 3: /* Sort scenario names by name */
-			_savegame_sort_order = (_savegame_sort_order == 2) ? 3 : 2;
+			_savegame_sort_order = (_savegame_sort_order == SORT_BY_NAME) ?
+				SORT_BY_NAME | SORT_DESCENDING : SORT_BY_NAME;
 			_savegame_sort_dirty = true;
 			SetWindowDirty(w);
 			break;
 
 		case 4: /* Sort scenario names by date */
-			_savegame_sort_order = (_savegame_sort_order == 0) ? 1 : 0;
+			_savegame_sort_order = (_savegame_sort_order == SORT_BY_DATE) ?
+				SORT_BY_DATE | SORT_DESCENDING : SORT_BY_DATE;
 			_savegame_sort_dirty = true;
 			SetWindowDirty(w);
 			break;
--- a/openttd.c	Mon Oct 17 10:09:37 2005 +0000
+++ b/openttd.c	Mon Oct 17 19:57:00 2005 +0000
@@ -470,7 +470,7 @@
 	LoadDriver(SOUND_DRIVER, _ini_sounddriver);
 	LoadDriver(MUSIC_DRIVER, _ini_musicdriver);
 	LoadDriver(VIDEO_DRIVER, _ini_videodriver); // load video last, to prevent an empty window while sound and music loads
-	_savegame_sort_order = 1; // default sorting of savegames is by date, newest first
+	_savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING;
 
 #ifdef ENABLE_NETWORK
 	// initialize network-core
--- a/openttd.h	Mon Oct 17 10:09:37 2005 +0000
+++ b/openttd.h	Mon Oct 17 19:57:00 2005 +0000
@@ -523,6 +523,13 @@
 
 typedef void PlaceProc(TileIndex tile);
 
+enum {
+	SORT_ASCENDING  = 0,
+	SORT_DESCENDING = 1,
+	SORT_BY_DATE    = 0,
+	SORT_BY_NAME    = 2
+};
+
 VARDEF byte _savegame_sort_order;
 
 #define INVALID_UINT_TILE (uint)0xFFFFFFFF
--- a/os2.c	Mon Oct 17 10:09:37 2005 +0000
+++ b/os2.c	Mon Oct 17 19:57:00 2005 +0000
@@ -51,12 +51,13 @@
 	const FiosItem *db = (const FiosItem *)b;
 	int r;
 
-	if (_savegame_sort_order < 2) // sort by date
+	if (_savegame_sort_order & SORT_BY_NAME) {
+		r = strcasecmp(da->title, db->title);
+	} else {
 		r = da->mtime < db->mtime ? -1 : 1;
-	else
-		r = strcasecmp(da->title, db->title);
+	}
 
-	if (_savegame_sort_order & 1) r = -r;
+	if (_savegame_sort_order & SORT_DESCENDING) r = -r;
 	return r;
 }
 
@@ -116,7 +117,7 @@
 	{
 		/* XXX ugly global variables ... */
 		byte order = _savegame_sort_order;
-		_savegame_sort_order = 2; // sort ascending by name
+		_savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING;
 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
 		_savegame_sort_order = order;
 	}
@@ -243,7 +244,7 @@
 	{
 		/* XXX ugly global variables ... */
 		byte order = _savegame_sort_order;
-		_savegame_sort_order = 2; // sort ascending by name
+		_savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING;
 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
 		_savegame_sort_order = order;
 	}
--- a/unix.c	Mon Oct 17 10:09:37 2005 +0000
+++ b/unix.c	Mon Oct 17 19:57:00 2005 +0000
@@ -70,12 +70,13 @@
 	const FiosItem *db = (const FiosItem *)b;
 	int r;
 
-	if (_savegame_sort_order < 2) // sort by date
+	if (_savegame_sort_order & SORT_BY_NAME) {
+		r = strcasecmp(da->title, db->title);
+	} else {
 		r = da->mtime < db->mtime ? -1 : 1;
-	else
-		r = strcasecmp(da->title, db->title);
+	}
 
-	if (_savegame_sort_order & 1) r = -r;
+	if (_savegame_sort_order & SORT_DESCENDING) r = -r;
 	return r;
 }
 
@@ -128,7 +129,7 @@
 	{
 		/* XXX ugly global variables ... */
 		byte order = _savegame_sort_order;
-		_savegame_sort_order = 2; // sort ascending by name
+		_savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING;
 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
 		_savegame_sort_order = order;
 	}
@@ -229,7 +230,7 @@
 	{
 		/* XXX ugly global variables ... */
 		byte order = _savegame_sort_order;
-		_savegame_sort_order = 2; // sort ascending by name
+		_savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING;
 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
 		_savegame_sort_order = order;
 	}
--- a/win32.c	Mon Oct 17 10:09:37 2005 +0000
+++ b/win32.c	Mon Oct 17 19:57:00 2005 +0000
@@ -644,12 +644,13 @@
 	const FiosItem *db = (const FiosItem *)b;
 	int r;
 
-	if (_savegame_sort_order < 2) // sort by date
+	if (_savegame_sort_order & SORT_BY_NAME) {
+		r = strcasecmp(da->title, db->title);
+	} else {
 		r = da->mtime < db->mtime ? -1 : 1;
-	else
-		r = strcasecmp(da->title, db->title);
+	}
 
-	if (_savegame_sort_order & 1) r = -r;
+	if (_savegame_sort_order & SORT_DESCENDING) r = -r;
 	return r;
 }
 
@@ -698,7 +699,7 @@
 	{
 		/* XXX ugly global variables ... */
 		byte order = _savegame_sort_order;
-		_savegame_sort_order = 2; // sort ascending by name
+		_savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING;
 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
 		_savegame_sort_order = order;
 	}
@@ -812,7 +813,7 @@
 	{
 		/* XXX ugly global variables ... */
 		byte order = _savegame_sort_order;
-		_savegame_sort_order = 2; // sort ascending by name
+		_savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING;
 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
 		_savegame_sort_order = order;
 	}