private void ResolveForCount(IRun run) { int gold = 0, good = 0, bad = 0; foreach (ISegment segment in run) { var hasTime = segment.SplitTime[State.CurrentTimingMethod] != null; if (!hasTime) { continue; } var wasGold = LiveSplitStateHelper.CheckBestSegment(State, run.IndexOf(segment), State.CurrentTimingMethod); var delta = LiveSplitStateHelper.GetPreviousSegmentDelta(State, run.IndexOf(segment), State.CurrentComparison, State.CurrentTimingMethod); if (wasGold) { gold++; } if (delta < TimeSpan.Zero) { good++; } else { bad++; } } if (Settings.ResolveOnGoldSplits) { _ = ResolveCurrentPredictionAsync(gold >= Settings.ResolveOnAmount); } else if (Settings.ResolveOnGoodSplits) { _ = ResolveCurrentPredictionAsync(good >= Settings.ResolveOnAmount); } else if (Settings.ResolveOnBadSplits) { _ = ResolveCurrentPredictionAsync(bad >= Settings.ResolveOnAmount); } }