示例#1
0
        public static SaveGameMeta ReadMetaData(BinaryReader p_reader, Boolean p_getDifficulty)
        {
            String   text         = p_reader.ReadString();
            Int64    value        = p_reader.ReadInt64();
            Int32    p_saveNumber = p_reader.ReadInt32();
            Int32    p_type       = p_reader.ReadInt32();
            DateTime p_time;

            if (!DateTime.TryParseExact(text, "yyyy-MM-dd HH:mm", null, DateTimeStyles.None, out p_time))
            {
                LegacyLogger.Log("Cannot parse Time: " + text);
                return(default(SaveGameMeta));
            }
            SaveGameMeta result;

            if (p_getDifficulty)
            {
                result = new SaveGameMeta(p_time, TimeSpan.FromTicks(value), p_saveNumber, (ESaveGameType)p_type, GetDifficulty(p_reader));
            }
            else
            {
                result = new SaveGameMeta(p_time, TimeSpan.FromTicks(value), p_saveNumber, (ESaveGameType)p_type);
            }
            result.Loaded = true;
            return(result);
        }
        public Dictionary <String, SaveGameMeta> GetAllSaveGames(Boolean isForSaveMenu)
        {
            Dictionary <String, SaveGameMeta> dictionary = new Dictionary <String, SaveGameMeta>();

            String[] files;
            if (LegacyLogic.Instance.ModController.InModMode)
            {
                files = Directory.GetFiles(WorldManager.CurrentSaveGameFolder, "*.lsg", SearchOption.TopDirectoryOnly);
            }
            else
            {
                files = Directory.GetFiles(GamePaths.UserGamePath, "*.lsg", SearchOption.TopDirectoryOnly);
            }
            for (Int32 i = 0; i < files.Length; i++)
            {
                if (!files[i].Contains("global.lsg") && !files[i].Contains("global3.lsg") && !files[i].Contains("hints.lsg") && !files[i].Contains("CheatSave.lsg"))
                {
                    using (FileStream fileStream = new FileStream(files[i], FileMode.Open))
                    {
                        using (BinaryReader binaryReader = new BinaryReader(fileStream))
                        {
                            SaveGameMeta value = SaveGame.ReadMetaData(binaryReader, true);
                            if (value.Loaded)
                            {
                                value.Name = Path.GetFileNameWithoutExtension(files[i]);
                                if (!isForSaveMenu || value.Type != ESaveGameType.AUTO)
                                {
                                    dictionary.Add(value.Name, value);
                                }
                            }
                        }
                    }
                }
            }
            return(dictionary);
        }
示例#3
0
 public SaveGame(SaveGameMeta p_meta)
 {
     m_saveGameData = new Dictionary <String, SaveGameData>();
     m_metaData     = p_meta;
 }
示例#4
0
 public SaveGame()
 {
     m_saveGameData = new Dictionary <String, SaveGameData>();
     m_metaData     = new SaveGameMeta(DateTime.Now, default(TimeSpan), 0, ESaveGameType.NORMAL);
 }
示例#5
0
 public SaveGameMeta(DateTime p_time, TimeSpan p_playTime, Int32 p_saveNumber, ESaveGameType p_type)
 {
     this = new SaveGameMeta(p_time, p_playTime, p_saveNumber, p_type, EDifficulty.NORMAL);
 }