Example #1
0
        /// <summary>
        /// Convert a DB-Player to the PES format.
        /// </summary>
        /// <param name="sourcePlayer"></param>
        /// <returns></returns>
        public static Task <PESPlayer> ConvertBack(Player sourcePlayer)
        {
            PESPlayer converted = new PESPlayer()
            {
                Position      = sourcePlayer.DatabasePosition,
                Id            = System.Convert.ToUInt32(sourcePlayer.SourceId),
                Name          = sourcePlayer.Name,
                ShirtName     = sourcePlayer.ShirtName,
                AttackProwess = System.Convert.ToUInt32(sourcePlayer.AttackingProwess),
                BallControl   = System.Convert.ToUInt32(sourcePlayer.BallControl),
                Finishing     = System.Convert.ToUInt32(sourcePlayer.Finishing),
            };

            return(Task.FromResult(converted));
        }
Example #2
0
        /// <summary>
        /// Converts a PES player to the DB format.
        /// </summary>
        /// <param name="sourcePlayer"></param>
        /// <returns></returns>
        public static Task <Player> Convert(PESPlayer sourcePlayer)
        {
            Player converted = new Player()
            {
                DatabasePosition = sourcePlayer.Position,
                PlayerId         = Guid.NewGuid().ToString(),
                SourceId         = sourcePlayer.Id.ToString(),
                Name             = sourcePlayer.Name,
                ShirtName        = sourcePlayer.ShirtName,
                AttackingProwess = System.Convert.ToInt32(sourcePlayer.AttackProwess),
                BallControl      = System.Convert.ToInt32(sourcePlayer.BallControl),
                Finishing        = System.Convert.ToInt32(sourcePlayer.Finishing),
            };

            return(Task.FromResult(converted));
        }
Example #3
0
        /// <summary>
        /// Exports all players from the games database.
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public async Task <List <Player> > ReadPlayersAsync(string path)
        {
            MemoryStream memory = await this.CreateMemoryStreamAsync(path + playerPath);

            var reader = new BinaryReader(memory);

            int index;
            int length = Convert.ToInt32((reader.BaseStream.Length - 4) / playerBlock);

            List <PESPlayer> tempList = new List <PESPlayer>();

            for (int i = 0; i < length; i++)
            {
                index = (i * playerBlock) + 4;
                reader.BaseStream.Position = index;

                // Read the 11 4-Byte uint values which contain all the player data.
                uint value1  = reader.ReadUInt32();
                uint value2  = reader.ReadUInt32();
                uint value3  = reader.ReadUInt32();
                uint value4  = reader.ReadUInt32();
                uint value5  = reader.ReadUInt32();
                uint value6  = reader.ReadUInt32();
                uint value7  = reader.ReadUInt32();
                uint value8  = reader.ReadUInt32();
                uint value9  = reader.ReadUInt32();
                uint value10 = reader.ReadUInt32();
                uint value11 = reader.ReadUInt32();

                // Read names
                reader.BaseStream.Position = index + 44;
                string japName = System.Text.Encoding.UTF8.GetString(reader.ReadBytes(46)).TrimEnd('\0');

                reader.BaseStream.Position = index + 90;
                string shirtName = System.Text.Encoding.UTF8.GetString(reader.ReadBytes(46)).TrimEnd('\0');

                reader.BaseStream.Position = index + 136;
                string name = System.Text.Encoding.UTF8.GetString(reader.ReadBytes(46)).TrimEnd('\0');

                // Fill all the data into the PESPlayer object.
                PESPlayer temp = new PESPlayer()
                {
                    Position        = index,
                    Id              = value1,
                    Name            = name,
                    ShirtName       = shirtName,
                    SetPieces       = (value2 >> 26) + 40,
                    Height          = ((value2 << 6) >> 24) + 100,
                    Nationality     = (value2 << 14) >> 23,
                    Nationality2    = (value2 << 23) >> 23,
                    Clearing        = (value3 >> 26) + 40,
                    LowPass         = ((value3 << 2) >> 26) + 40,
                    LeftBack        = value4 >> 30,
                    Coverage        = ((value4 << 2) >> 26) + 40,
                    Jump            = ((value4 << 8) >> 26) + 40,
                    Header          = ((value4 << 14) >> 26) + 40,
                    BallControl     = ((value4 << 20) >> 26) + 40,
                    DefenseProwess  = ((value4 << 26) >> 26) + 40,
                    GK              = value5 >> 30,
                    Curve           = ((value5 << 2) >> 26) + 40,
                    Goalkeeping     = ((value5 << 8) >> 26) + 40,
                    Reflexes        = ((value5 << 14) >> 26) + 40,
                    BallWinning     = ((value5 << 20) >> 26) + 40,
                    Speed           = ((value5 << 26) >> 26) + 40,
                    Penalty         = (value6 >> 30) + 1,
                    Catching        = ((value6 << 2) >> 26) + 40,
                    KickingPower    = ((value6 << 8) >> 26) + 40,
                    Dribbling       = ((value6 << 14) >> 26) + 40,
                    ExplosivePower  = ((value6 << 20) >> 26) + 40,
                    Stamina         = ((value6 << 26) >> 26) + 40,
                    Attitude        = (value7 >> 30),
                    LoftedPass      = ((value7 << 2) >> 26) + 40,
                    Finishing       = ((value7 << 8) >> 26) + 40,
                    PhysicalContact = ((value7 << 14) >> 26) + 40,
                    BodyControl     = ((value7 << 20) >> 26) + 40,
                    AttackProwess   = ((value7 << 20) >> 26) + 40,
                };

                tempList.Add(temp);
            }

            return(await PlayerConverter.ConvertMany(tempList));
        }