mirror of
https://github.com/ppy/osu.git
synced 2024-11-06 09:07:25 +08:00
Make effect point search more efficient
This commit is contained in:
parent
eae32ca483
commit
d389808427
@ -31,7 +31,6 @@ namespace osu.Game.Rulesets.Objects
|
||||
double lastHitTime = 1 + lastObject.GetEndTime();
|
||||
|
||||
var timingPoints = beatmap.ControlPointInfo.TimingPoints;
|
||||
var effectPoints = beatmap.ControlPointInfo.EffectPoints;
|
||||
|
||||
if (timingPoints.Count == 0)
|
||||
return;
|
||||
@ -39,14 +38,13 @@ namespace osu.Game.Rulesets.Objects
|
||||
for (int i = 0; i < timingPoints.Count; i++)
|
||||
{
|
||||
TimingControlPoint currentTimingPoint = timingPoints[i];
|
||||
EffectControlPoint? currentEffectPoint = effectPoints.FirstOrDefault(p => p.Time == currentTimingPoint.Time);
|
||||
EffectControlPoint? currentEffectPoint = beatmap.ControlPointInfo.EffectPointAt(currentTimingPoint.Time);
|
||||
int currentBeat = 0;
|
||||
|
||||
// Stop on the beat before the next timing point, or if there is no next timing point stop slightly past the last object
|
||||
// Stop on the next timing point, or if there is no next timing point stop slightly past the last object
|
||||
double endTime = i < timingPoints.Count - 1 ? timingPoints[i + 1].Time : lastHitTime + currentTimingPoint.BeatLength * currentTimingPoint.TimeSignature.Numerator;
|
||||
|
||||
double startTime = currentTimingPoint.Time;
|
||||
|
||||
double barLength = currentTimingPoint.BeatLength * currentTimingPoint.TimeSignature.Numerator;
|
||||
|
||||
if (currentEffectPoint != null && currentEffectPoint.OmitFirstBarLine)
|
||||
|
Loading…
Reference in New Issue
Block a user