diff --git a/osu.Game/Beatmaps/Beatmap.cs b/osu.Game/Beatmaps/Beatmap.cs index 5ddfadbc96..c251943fa7 100644 --- a/osu.Game/Beatmaps/Beatmap.cs +++ b/osu.Game/Beatmaps/Beatmap.cs @@ -39,6 +39,9 @@ namespace osu.Game.Beatmaps ControlPoint timingPoint = null; foreach (var controlPoint in ControlPoints) + // Some beatmaps have the first timingPoint (accidentally) start after the first HitObject(s). + // This null check makes it so that the first ControlPoint that makes a timing change is used as + // the timingPoint for those HitObject(s). if (controlPoint.Time <= time || timingPoint == null) { if (controlPoint.TimingChange) @@ -49,6 +52,7 @@ namespace osu.Game.Beatmaps else overridePoint = controlPoint; } else break; + } return timingPoint; }