コード例 #1
0
        public static SaveGameData LoadPlayers(SaveGameFile savegame)
        {
            SaveGameData saveData = new SaveGameData();

            Dictionary <int, Club_Comp> clubcomps = DataFileLoaders.GetDataFileClubCompetitionDictionary(savegame);

            Dictionary <int, string> firstnames = GetDataFileStringsDictionary(savegame, DataFileType.First_Names);

            Dictionary <int, string> secondNames = GetDataFileStringsDictionary(savegame, DataFileType.Second_Names);

            Dictionary <int, string> commonNames = GetDataFileStringsDictionary(savegame, DataFileType.Common_Names);

            Dictionary <int, Nation> nations = DataFileLoaders.GetDataFileNationDictionary(savegame);

            Dictionary <int, Club> clubs = DataFileLoaders.GetDataFileClubDictionary(savegame);

            List <Staff>            duplicates = new List <Staff>();
            Dictionary <int, Staff> staffDic   = DataFileLoaders.GetDataFileStaffDictionary(savegame, saveData, out duplicates);

            List <PlayerData> players = GetDataFilePlayerData(savegame);

            List <Player> searchablePlayers = ConstructSearchablePlayers(staffDic, players).ToList();

            saveData.GameDate    = savegame.GameDate;
            saveData.FirstNames  = firstnames;
            saveData.Surnames    = secondNames;
            saveData.CommonNames = commonNames;
            saveData.Nations     = nations;
            saveData.Clubs       = clubs;
            saveData.Players     = searchablePlayers;
            saveData.ClubComps   = clubcomps;

            return(saveData);
        }
コード例 #2
0
        public static Dictionary <int, T> GetDataFileConvertedIdDictionary <T>(ITupleConverter <T> converter, SaveGameFile savegame, DataFileType type, out List <T> duplicates) where T : class
        {
            duplicates = new List <T>();
            var fileFacts = DataFileFacts.GetDataFileFacts().First(x => x.Type == type);
            var bytes     = DataFileLoaders.GetDataFileBytes(savegame, fileFacts.Type, fileFacts.DataSize);

            Dictionary <int, T> dic        = new Dictionary <int, T>();
            List <T>            invalidIds = new List <T>();

            foreach (var item in bytes)
            {
                var converted = converter.Convert(item);

                if (converted.Item1 == -1)
                {
                    invalidIds.Add(converted.Item2 as T);
                }
                else
                {
                    if (dic.ContainsKey(converted.Item1))
                    {
                        duplicates.Add(converted.Item2 as T);
                    }
                    else
                    {
                        dic.Add(converted.Item1, converted.Item2 as T);
                    }
                }
            }

            return(dic);
        }
コード例 #3
0
        private static List <T> GetDataFileConverted <T>(SaveGameFile savegame, DataFileType type)
        {
            var fileFacts = DataFileFacts.GetDataFileFacts().First(x => x.Type == type);
            var bytes     = DataFileLoaders.GetDataFileBytes(savegame, fileFacts.Type, fileFacts.DataSize);
            var converter = ConverterFactory.CreateConverter <T>();
            var collect   = ConvertToCMObject <T>(bytes, converter).ToList();

            return(collect);
        }
コード例 #4
0
        private static Dictionary <int, string> GetDataFileStringsDictionary(SaveGameFile savegame, DataFileType type)
        {
            Dictionary <int, string> fileContents = new Dictionary <int, string>();
            var fileFacts = DataFileFacts.GetDataFileFacts().First(x => x.Type == type);
            var fileData  = DataFileLoaders.GetDataFileBytes(savegame, fileFacts.Type, fileFacts.DataSize);

            for (int i = 0; i < fileData.Count; i++)
            {
                fileContents.Add(i, ByteHandler.GetStringFromBytes(fileData[i], 0, fileFacts.StringLength));
            }

            return(fileContents);
        }
コード例 #5
0
        private static List <PlayerData> GetDataFilePlayerData(SaveGameFile savegame)
        {
            var fileFacts = DataFileFacts.GetDataFileFacts().First(x => x.Type == DataFileType.Players);
            var bytes     = DataFileLoaders.GetDataFileBytes(savegame, fileFacts.Type, fileFacts.DataSize);
            var converter = new PlayerDataConverter();
            var collect   = new List <PlayerData>();

            foreach (var source in bytes)
            {
                collect.Add(converter.Convert(source));
            }

            return(collect);
        }