private void processStartListTill(RaceParticipant participant) { // Copy starters (copy to avoid any side effects) StartListEntry[] starters = _raceRun.GetStartListProvider().GetViewList().ToArray(); // Participant enters track if (participant != null) { // Loop over StartList until the starter has been found, remember all not started participants List <StartListEntry> toPurge = new List <StartListEntry>(); foreach (StartListEntry se in starters) { if (se.Participant == participant) { break; } toPurge.Add(se); } // Loop for (int i = 0; i < toPurge.Count() - Math.Abs(_startersTillAutoNaS); i++) { RaceParticipant rp = toPurge[i].Participant; if (!_raceRun.IsOrWasOnTrack(rp)) { _raceRun.SetResultCode(rp, RunResult.EResultCode.NaS); } } } }
private void updateNextStarter(RaceRun raceRun) { // Find current starter foreach (var sle in raceRun.GetStartListProvider().GetViewList()) { if (!raceRun.IsOrWasOnTrack(sle.Participant)) { _liveTiming.UpdateOnStart(raceRun, sle.Participant); break; } } }