mirror of
https://github.com/ppy/osu.git
synced 2024-12-14 10:12:54 +08:00
Layer playback of beatmap-changed and random-beatmap samples
This commit is contained in:
parent
002cc7261b
commit
0f48c0131c
@ -154,6 +154,7 @@ namespace osu.Game.Screens.Select
|
||||
private readonly DrawablePool<DrawableCarouselBeatmapSet> setPool = new DrawablePool<DrawableCarouselBeatmapSet>(100);
|
||||
|
||||
private Sample spinSample;
|
||||
private Sample randomSelectSample;
|
||||
|
||||
private int visibleSetsCount;
|
||||
|
||||
@ -178,6 +179,7 @@ namespace osu.Game.Screens.Select
|
||||
private void load(OsuConfigManager config, AudioManager audio)
|
||||
{
|
||||
spinSample = audio.Samples.Get("SongSelect/random-spin");
|
||||
randomSelectSample = audio.Samples.Get(@"SongSelect/select-random");
|
||||
|
||||
config.BindWith(OsuSetting.RandomSelectAlgorithm, RandomAlgorithm);
|
||||
config.BindWith(OsuSetting.SongSelectRightMouseScroll, RightClickScrollingEnabled);
|
||||
@ -495,6 +497,8 @@ namespace osu.Game.Screens.Select
|
||||
var chan = spinSample.GetChannel();
|
||||
chan.Frequency.Value = 1f + Math.Min(1f, distance / visibleSetsCount);
|
||||
chan.Play();
|
||||
|
||||
randomSelectSample?.Play();
|
||||
}
|
||||
|
||||
private void select(CarouselItem item)
|
||||
|
@ -100,7 +100,6 @@ namespace osu.Game.Screens.Select
|
||||
|
||||
private Sample sampleChangeDifficulty;
|
||||
private Sample sampleChangeBeatmap;
|
||||
private Sample sampleRandomBeatmap;
|
||||
|
||||
private Container carouselContainer;
|
||||
|
||||
@ -110,8 +109,6 @@ namespace osu.Game.Screens.Select
|
||||
|
||||
private double audioFeedbackLastPlaybackTime;
|
||||
|
||||
private bool randomSelectionPending;
|
||||
|
||||
[Resolved]
|
||||
private MusicController music { get; set; }
|
||||
|
||||
@ -291,7 +288,6 @@ namespace osu.Game.Screens.Select
|
||||
|
||||
sampleChangeDifficulty = audio.Samples.Get(@"SongSelect/select-difficulty");
|
||||
sampleChangeBeatmap = audio.Samples.Get(@"SongSelect/select-expand");
|
||||
sampleRandomBeatmap = audio.Samples.Get(@"SongSelect/select-random");
|
||||
SampleConfirm = audio.Samples.Get(@"SongSelect/confirm-selection");
|
||||
|
||||
if (dialogOverlay != null)
|
||||
@ -319,16 +315,8 @@ namespace osu.Game.Screens.Select
|
||||
(new FooterButtonMods { Current = Mods }, ModSelect),
|
||||
(new FooterButtonRandom
|
||||
{
|
||||
NextRandom = () =>
|
||||
{
|
||||
randomSelectionPending = true;
|
||||
Carousel.SelectNextRandom();
|
||||
},
|
||||
PreviousRandom = () =>
|
||||
{
|
||||
randomSelectionPending = true;
|
||||
Carousel.SelectPreviousRandom();
|
||||
}
|
||||
NextRandom = () => Carousel.SelectNextRandom(),
|
||||
PreviousRandom = Carousel.SelectPreviousRandom
|
||||
}, null),
|
||||
(new FooterButtonOptions(), BeatmapOptions)
|
||||
};
|
||||
@ -498,9 +486,7 @@ namespace osu.Game.Screens.Select
|
||||
{
|
||||
if (beatmap != null && beatmapInfoPrevious != null && Time.Current - audioFeedbackLastPlaybackTime >= 50)
|
||||
{
|
||||
if (randomSelectionPending)
|
||||
sampleRandomBeatmap.Play();
|
||||
else if (beatmap.BeatmapSet?.ID == beatmapInfoPrevious.BeatmapSet?.ID)
|
||||
if (beatmap.BeatmapSet?.ID == beatmapInfoPrevious.BeatmapSet?.ID)
|
||||
sampleChangeDifficulty.Play();
|
||||
else
|
||||
sampleChangeBeatmap.Play();
|
||||
@ -508,7 +494,6 @@ namespace osu.Game.Screens.Select
|
||||
audioFeedbackLastPlaybackTime = Time.Current;
|
||||
}
|
||||
|
||||
randomSelectionPending = false;
|
||||
beatmapInfoPrevious = beatmap;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user