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; } }
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); }