public override void LoadBytes(byte[] bytes)
        {
            ByteArrayManager BAM = new ByteArrayManager(bytes);

            //Load header
            base.LoadBytes(BAM.NextBytes(24));

            this.NumPlayers   = BAM.NextByte();
            this.LobbyPlayers = new LobbyInfoData[22];

            for (int i = 0; i < 22; i++)
            {
                var lobbyInfoData = new LobbyInfoData
                {
                    AiControlled = BAM.NextByte() == 1,
                    TeamId       = CodemastersToolkit.GetTeamFromTeamId(BAM.NextByte()),
                    Nationality  = BAM.NextByte(),
                    Name         = ""
                };

                for (var t = 1; t <= 48; t++)
                {
                    var currentChar = Convert.ToChar(BAM.NextByte());
                    lobbyInfoData.Name += currentChar.ToString();
                }

                var readyStatusByte = BAM.NextByte();
                lobbyInfoData.ReadyStatus = readyStatusByte == 0 ? ReadyStatus.NotReady :
                                            readyStatusByte == 1 ? ReadyStatus.Ready : ReadyStatus.Spectating;

                this.LobbyPlayers[i] = lobbyInfoData;
            }
        }
Exemplo n.º 2
0
            public static ParticipantData Create(byte[] bytes)
            {
                ParticipantData  ReturnInstance = new ParticipantData();
                ByteArrayManager BAM            = new ByteArrayManager(bytes);

                //Get AI controlled
                byte nb = BAM.NextByte();

                if (nb == 0)
                {
                    ReturnInstance.IsAiControlled = false;
                }
                else if (nb == 1)
                {
                    ReturnInstance.IsAiControlled = true;
                }


                //Get piloting driver
                ReturnInstance.PilotingDriver = CodemastersToolkit.GetDriverFromDriverId(BAM.NextByte());

                //Get Team
                ReturnInstance.ManufacturingTeam = CodemastersToolkit.GetTeamFromTeamId(BAM.NextByte());

                //Get race number
                ReturnInstance.CarRaceNumber = BAM.NextByte();

                //Get nationallity ID
                ReturnInstance.NationalityId = BAM.NextByte();

                //Get name
                string FullName = "";
                int    t        = 1;

                for (t = 1; t <= 48; t++)
                {
                    char ThisChar = Convert.ToChar(BAM.NextByte());
                    FullName = FullName + ThisChar.ToString();
                }
                ReturnInstance.Name = FullName.Trim();

                //Get telemetry private or not.
                nb = BAM.NextByte();
                if (nb == 0)
                {
                    ReturnInstance.TelemetryPrivate = true;
                }
                else if (nb == 1)
                {
                    ReturnInstance.TelemetryPrivate = false;
                }


                return(ReturnInstance);
            }