Add method flow to reset applied adjustments

This commit is contained in:
Dean Herbert 2022-09-05 23:22:38 +09:00
parent e33486a766
commit 7084aeee05
3 changed files with 14 additions and 6 deletions

View File

@ -196,7 +196,9 @@ namespace osu.Game.Screens.Play
void IAdjustableClock.Reset() => Reset(); void IAdjustableClock.Reset() => Reset();
public void ResetSpeedAdjustments() => throw new NotImplementedException(); public virtual void ResetSpeedAdjustments()
{
}
double IAdjustableClock.Rate double IAdjustableClock.Rate
{ {

View File

@ -238,11 +238,14 @@ namespace osu.Game.Screens.Play
void IAdjustableAudioComponent.RemoveAdjustment(AdjustableProperty type, IBindable<double> adjustBindable) => void IAdjustableAudioComponent.RemoveAdjustment(AdjustableProperty type, IBindable<double> adjustBindable) =>
track.RemoveAdjustment(type, adjustBindable); track.RemoveAdjustment(type, adjustBindable);
public void RemoveAllAdjustments(AdjustableProperty type) public override void ResetSpeedAdjustments()
{ {
throw new NotImplementedException(); track.RemoveAllAdjustments(AdjustableProperty.Frequency);
track.RemoveAllAdjustments(AdjustableProperty.Tempo);
} }
public void RemoveAllAdjustments(AdjustableProperty type) => throw new NotImplementedException();
public void BindAdjustments(IAggregateAudioAdjustment component) => throw new NotImplementedException(); public void BindAdjustments(IAggregateAudioAdjustment component) => throw new NotImplementedException();
public void UnbindAdjustments(IAggregateAudioAdjustment component) => throw new NotImplementedException(); public void UnbindAdjustments(IAggregateAudioAdjustment component) => throw new NotImplementedException();

View File

@ -999,9 +999,12 @@ namespace osu.Game.Screens.Play
// Our mods are local copies of the global mods so they need to be re-applied to the track. // Our mods are local copies of the global mods so they need to be re-applied to the track.
// This is done through the music controller (for now), because resetting speed adjustments on the beatmap track also removes adjustments provided by DrawableTrack. // This is done through the music controller (for now), because resetting speed adjustments on the beatmap track also removes adjustments provided by DrawableTrack.
// Todo: In the future, player will receive in a track and will probably not have to worry about this... // Todo: In the future, player will receive in a track and will probably not have to worry about this...
musicController.ResetTrackAdjustments(); if (GameplayClockContainer is IAdjustableAudioComponent adjustableClock)
foreach (var mod in GameplayState.Mods.OfType<IApplicableToTrack>()) {
mod.ApplyToTrack(musicController.CurrentTrack); GameplayClockContainer.ResetSpeedAdjustments();
foreach (var mod in GameplayState.Mods.OfType<IApplicableToTrack>())
mod.ApplyToTrack(adjustableClock);
}
updateGameplayState(); updateGameplayState();