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);
                    }
                }
            }
        }
Esempio n. 2
0
 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;
         }
     }
 }