public static void Postfix(MainMenuLoadPanel __instance, MainMenuLoadButton lb) { SaveLoadManager.GameInfo gameInfo = SaveLoadManager.main.GetGameInfo(lb.saveGame); if ((gameInfo == null) || !gameInfo.IsValid() || gameInfo.isFallback) { return; } DeathRunSaveData slotData = DeathRunUtils.FindSave(lb.saveGame); if (slotData == null) { return; } if (!"".Equals(slotData.startSave.message)) { lb.load.FindChild("SaveGameMode").GetComponent <Text>().text = slotData.startSave.message; slotData.runData.updateFromSave(slotData); string duration = Utils.PrettifyTime((int)slotData.playerSave.allLives); if (slotData.playerSave.allLives >= 60 * 60 * 24) { int total = (int)slotData.playerSave.allLives; int days = total / (60 * 60 * 24); total -= (days * 60 * 60 * 24); int hours = total / (60 * 60); total -= hours * 60 * 60; int minutes = total / 60; total -= minutes; duration = "" + days + " " + ((days == 1) ? "day" : "days") + ", " + hours + ":" + ((minutes < 10) ? "0" : "") + minutes; } duration += ". Score: " + slotData.runData.Score; lb.load.FindChild("SaveGameLength").GetComponent <Text>().text = duration; } }
public static bool LoadMostRecentSavedGame_Prefix() { SaveLoadManager.GameInfo gameInfo = null; string slotName = null; // Try get game info and slot name try { string[] activeSlotNames = SaveLoadManager.main.GetActiveSlotNames(); long num = 0L; int i = 0; int num2 = activeSlotNames.Length; while (i < num2) { SaveLoadManager.GameInfo gameInfo2 = SaveLoadManager.main.GetGameInfo(activeSlotNames[i]); if (gameInfo2.dateTicks > num) { gameInfo = gameInfo2; num = gameInfo2.dateTicks; slotName = activeSlotNames[i]; } i++; } } catch (Exception ex) { Logger.Log("WARNING: Exception caught while retrieving game info. Exception=[" + ex.ToString() + "]"); gameInfo = null; } // Load added notifications and outdoor ladder directions if needed. if (gameInfo != null) { KnownTechFixer.LoadAddedNotifications(slotName); ConstructableFixer.LoadLadderDirections(slotName); } // Give back execution to origin function. return(true); }