os2.c
changeset 2526 29eef390cabb
parent 2338 8fadf1e5c5ea
child 2548 49c8a096033f
equal deleted inserted replaced
2525:48c6e812beb3 2526:29eef390cabb
    49 {
    49 {
    50 	const FiosItem *da = (const FiosItem *)a;
    50 	const FiosItem *da = (const FiosItem *)a;
    51 	const FiosItem *db = (const FiosItem *)b;
    51 	const FiosItem *db = (const FiosItem *)b;
    52 	int r;
    52 	int r;
    53 
    53 
    54 	if (_savegame_sort_order < 2) // sort by date
    54 	if (_savegame_sort_order & SORT_BY_NAME) {
       
    55 		r = strcasecmp(da->title, db->title);
       
    56 	} else {
    55 		r = da->mtime < db->mtime ? -1 : 1;
    57 		r = da->mtime < db->mtime ? -1 : 1;
    56 	else
    58 	}
    57 		r = strcasecmp(da->title, db->title);
    59 
    58 
    60 	if (_savegame_sort_order & SORT_DESCENDING) r = -r;
    59 	if (_savegame_sort_order & 1) r = -r;
       
    60 	return r;
    61 	return r;
    61 }
    62 }
    62 
    63 
    63 
    64 
    64 static void append_path(char *out, const char *path, const char *file)
    65 static void append_path(char *out, const char *path, const char *file)
   114 	}
   115 	}
   115 
   116 
   116 	{
   117 	{
   117 		/* XXX ugly global variables ... */
   118 		/* XXX ugly global variables ... */
   118 		byte order = _savegame_sort_order;
   119 		byte order = _savegame_sort_order;
   119 		_savegame_sort_order = 2; // sort ascending by name
   120 		_savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING;
   120 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
   121 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
   121 		_savegame_sort_order = order;
   122 		_savegame_sort_order = order;
   122 	}
   123 	}
   123 
   124 
   124 	// this is where to start sorting
   125 	// this is where to start sorting
   241 	}
   242 	}
   242 
   243 
   243 	{
   244 	{
   244 		/* XXX ugly global variables ... */
   245 		/* XXX ugly global variables ... */
   245 		byte order = _savegame_sort_order;
   246 		byte order = _savegame_sort_order;
   246 		_savegame_sort_order = 2; // sort ascending by name
   247 		_savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING;
   247 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
   248 		qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems);
   248 		_savegame_sort_order = order;
   249 		_savegame_sort_order = order;
   249 	}
   250 	}
   250 
   251 
   251 	// this is where to start sorting
   252 	// this is where to start sorting