From 2783f49267b42f42d80e2b45b8e88073de2ea2ac Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 19 Apr 2017 16:02:51 +0900 Subject: [PATCH] Fix incorrect EndTimes when processing has not been run on HitObjects before the SongProgressGraph is displayed. --- osu.Game/Screens/Play/SongProgressGraph.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/osu.Game/Screens/Play/SongProgressGraph.cs b/osu.Game/Screens/Play/SongProgressGraph.cs index 97f25e0a95..20548970e5 100644 --- a/osu.Game/Screens/Play/SongProgressGraph.cs +++ b/osu.Game/Screens/Play/SongProgressGraph.cs @@ -20,9 +20,12 @@ namespace osu.Game.Screens.Play const int granularity = 200; - var lastHit = ((objects.Last() as IHasEndTime)?.EndTime ?? objects.Last().StartTime) + 1; + var lastHit = (objects.Last() as IHasEndTime)?.EndTime ?? 0; - var interval = lastHit / granularity; + if (lastHit == 0) + lastHit = objects.Last().StartTime; + + var interval = (lastHit + 1) / granularity; var values = new int[granularity]; @@ -31,7 +34,7 @@ namespace osu.Game.Screens.Play IHasEndTime end = h as IHasEndTime; int startRange = (int)(h.StartTime / interval); - int endRange = (int)((end?.EndTime ?? h.StartTime) / interval); + int endRange = (int)((end?.EndTime > 0 ? end.EndTime : h.StartTime) / interval); for (int i = startRange; i <= endRange; i++) values[i]++; }