public static void UISaveGameWindow_RefreshList_Postfix(ref UISaveGameWindow __instance) { if (configSortSaveScreen.Value) { __instance.entries.Sort(new GameSaveEntryReverseSorter()); for (int i = 0; i < __instance.entries.Count;) { UIGameSaveEntry entry = __instance.entries[i++]; entry.SetEntry(i, i, entry.fileInfo); } __instance.OnSelectedChange(); } }
public static void UILoadGameWindow_RefreshList_Postfix(ref UILoadGameWindow __instance) { if (configSortLoadScreen.Value) { //List<UIGameSaveEntry> sorted = __instance.entries.OrderByDescending(e => e.fileDate).ToList(); __instance.entries.Sort(new GameSaveEntryReverseSorter()); int displayIndex = 1; for (int i = 0; i < __instance.entries.Count;) { UIGameSaveEntry entry = __instance.entries[i++]; if (entry.fileInfo.Name.Equals(GameSave.LastExitFullName)) { entry.SetEntry(i, 0, entry.fileInfo); } else if (entry.fileInfo.Name.Equals(GameSave.AutoSave0FullName)) { entry.SetEntry(i, -1, entry.fileInfo); } else if (entry.fileInfo.Name.Equals(GameSave.AutoSave1FullName)) { entry.SetEntry(i, -2, entry.fileInfo); } else if (entry.fileInfo.Name.Equals(GameSave.AutoSave2FullName)) { entry.SetEntry(i, -3, entry.fileInfo); } else if (entry.fileInfo.Name.Equals(GameSave.AutoSave3FullName)) { entry.SetEntry(i, -4, entry.fileInfo); } else { entry.SetEntry(i, displayIndex++, entry.fileInfo); } } __instance.OnSelectedChange(); } }
void OnListRefreshed(List <UIGameSaveEntry> entries) { long token = 0; Logger.DevMeasureStart(ref token); // Sort the save list, descending order. entries.Sort((x, y) => y.fileDate.CompareTo(x.fileDate)); for (int i = 0; i < entries.Count; ++i) { UIGameSaveEntry entry = entries[i]; int num = i + 1; if (_getIndex(entry) != num) { // Trigger update of UI entities entry.SetEntry(num, _getFileInfo(entry)); } } Logger.DevMeasureEnd(token); }