1
0
mirror of https://github.com/ppy/osu.git synced 2026-06-06 22:45:53 +08:00

Fix Spun Out mod being affected by rate-changing mods

This commit is contained in:
Bartłomiej Dach
2020-08-11 22:04:18 +02:00
Unverified
parent 25f59e0489
commit bcaaf25278
+6 -1
View File
@@ -41,7 +41,12 @@ namespace osu.Game.Rulesets.Osu.Mods
var spinner = (DrawableSpinner)drawable;
spinner.RotationTracker.Tracking = true;
spinner.RotationTracker.AddRotation(MathUtils.RadiansToDegrees((float)spinner.Clock.ElapsedFrameTime * 0.03f));
// because the spinner is under the gameplay clock, it is affected by rate adjustments on the track;
// for that reason using ElapsedFrameTime directly leads to fewer SPM with Half Time and more SPM with Double Time.
// for spinners we want the real (wall clock) elapsed time; to achieve that, unapply the clock rate locally here.
var rateIndependentElapsedTime = spinner.Clock.ElapsedFrameTime / spinner.Clock.Rate;
spinner.RotationTracker.AddRotation(MathUtils.RadiansToDegrees((float)rateIndependentElapsedTime * 0.03f));
}
}
}