summaryrefslogtreecommitdiff
path: root/os2.c
diff options
context:
space:
mode:
Diffstat (limited to 'os2.c')
-rw-r--r--os2.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/os2.c b/os2.c
index d4411bbb8..f414a4a1c 100644
--- a/os2.c
+++ b/os2.c
@@ -51,12 +51,13 @@ int compare_FiosItems(const void *a, const void *b)
const FiosItem *db = (const FiosItem *)b;
int r;
- if (_savegame_sort_order < 2) // sort by date
- r = da->mtime < db->mtime ? -1 : 1;
- else
+ if (_savegame_sort_order & SORT_BY_NAME) {
r = strcasecmp(da->title, db->title);
+ } else {
+ r = da->mtime < db->mtime ? -1 : 1;
+ }
- if (_savegame_sort_order & 1) r = -r;
+ if (_savegame_sort_order & SORT_DESCENDING) r = -r;
return r;
}
@@ -116,7 +117,7 @@ FiosItem *FiosGetSavegameList(int *num, int mode)
{
/* 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 @@ FiosItem *FiosGetScenarioList(int *num, int mode)
{
/* 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;
}