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
parent 25f59e0489
commit bcaaf25278
1 changed files with 6 additions and 1 deletions

View File

@ -41,7 +41,12 @@ private void onSpinnerUpdate(Drawable drawable)
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));
}
}
}