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)
|
private static double getClosestSnappedTime(TimingControlPoint timingPoint, double time, int beatDivisor)
|
||||||
{
|
{
|
||||||
double beatLength = timingPoint.BeatLength / 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>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue