private void FinishLap(LapInfo lapToFinish, SimulatorDataSet dataSet) { lapToFinish.FinishLap(dataSet, DriverInfo); lapToFinish.SectorCompletedEvent -= LapSectorCompletedEvent; lapToFinish.LapCompletedEvent -= LapCompletedHandler; lapToFinish.LapInvalidatedEvent -= LapInvalidatedHandler; if (lapToFinish.LapTime == TimeSpan.Zero) { lapToFinish.Valid = false; RevertSectorChanges(lapToFinish); } if (ShouldLapBeDiscarded(lapToFinish, dataSet)) { _lapsInfo.Remove(lapToFinish); return; } if (lapToFinish.Valid && lapToFinish.LapTime != TimeSpan.Zero && (BestLap == null || lapToFinish.LapTime < BestLap.LapTime)) { BestLap = lapToFinish; } OnLapCompleted(new LapEventArgs(lapToFinish)); ComputePace(); }
private void FinishLap(LapInfo lapToFinish, SimulatorDataSet dataSet) { if (lapToFinish.Completed) { return; } lapToFinish.FinishLap(dataSet, DriverInfo); lapToFinish.SectorCompletedEvent -= LapSectorCompletedEvent; lapToFinish.LapInvalidatedEvent -= LapInvalidatedHandler; if (lapToFinish.LapTime == TimeSpan.Zero) { lapToFinish.InvalidateLap(LapInvalidationReasonKind.NoValidLapTime); RevertSectorChanges(lapToFinish); } if (ShouldLapBeDiscarded(lapToFinish, dataSet)) { _lapsInfo.Remove(lapToFinish); return; } if (lapToFinish.Valid && lapToFinish.LapTime != TimeSpan.Zero && (BestLap == null || lapToFinish.LapTime < BestLap.LapTime)) { BestLap = lapToFinish; } OnLapCompleted(new LapEventArgs(lapToFinish)); Logger.Info($"Driver {DriverInfo.DriverName}, Lap {lapToFinish.LapNumber} finnished. REASON: {lapToFinish.LapCompletionMethod}"); ComputePace(); PurgeLapsTelemetry(); }