mirror of https://github.com/ppy/osu
Make snapped time always positive
This commit is contained in:
parent
03ac2fd7d7
commit
51e21ee6f0
|
@ -183,9 +183,15 @@ public int GetClosestBeatDivisor(double time, double? referenceTime = null)
|
|||
private static double getClosestSnappedTime(TimingControlPoint timingPoint, double time, int beatDivisor)
|
||||
{
|
||||
double beatLength = timingPoint.BeatLength / beatDivisor;
|
||||
int beatLengths = (int)Math.Round((time - timingPoint.Time) / beatLength, MidpointRounding.AwayFromZero);
|
||||
double beats = (Math.Max(time, 0) - timingPoint.Time) / beatLength;
|
||||
|
||||
return timingPoint.Time + beatLengths * beatLength;
|
||||
int roundedBeats = (int)Math.Round(beats, MidpointRounding.AwayFromZero);
|
||||
double snappedTime = timingPoint.Time + roundedBeats * beatLength;
|
||||
|
||||
if (snappedTime >= 0)
|
||||
return snappedTime;
|
||||
|
||||
return snappedTime + beatLength;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
Loading…
Reference in New Issue