osu/osu.Game/Screens/Play
Bartłomiej Dach e937b778f6 Fix potential failure in `ensureSourceClockSet()`
`ensureSourceClockSet()` was intended to only run when the adjustable
source hasn't been set at all yet. As it turns out permitting it to run
unconditionally can break the state of the underlying interpolated
clock. This is caused by the following factors:

* While the decoupleable clock is running, its `CurrentTime` does not
  come from either the source clock, or the internal stopwatch; it is
  instead calculated using the base `InterpolatingFramedClock` logic.

* A source change of a decoupleable clock seeks the provided source
  clock to the decoupleable's current time.

* When an interpolating clock is seeked (decoupleable clock is also
  an interpolating one), its interpolation state
  (`{Last,Current}InterpolatedTime`) are reset to 0.

* If the interpolating clock determines that its current time is too
  far away from the source's time (which was set when the source is
  changed), it will ignore the source and instead continue to use
  its current time until the source clock has caught up.

Overall, the source change is not really necessary if a source is
already there. The only reason to ensure it was set was to make sure
the first seek of the gameplay clock wasn't performed in decoupled
mode. Therefore, add a guard to make sure the source is only set if
there isn't one already.
2021-04-24 14:19:39 +02:00
..
Break
HUD Rework to create a derived tracked user data instead 2021-04-12 22:00:27 +09:00
PlayerSettings
BeatmapMetadataDisplay.cs
BreakOverlay.cs
BreakTracker.cs
ComboEffects.cs
DimmableStoryboard.cs
EpilepsyWarning.cs
FailAnimation.cs
FailOverlay.cs
GameplayBeatmap.cs
GameplayClock.cs Remove ClockToProcess, always process underlying clock 2021-04-16 20:17:21 +09:00
GameplayClockContainer.cs Fix potential failure in `ensureSourceClockSet()` 2021-04-24 14:19:39 +02:00
GameplayMenuOverlay.cs Update existing overlay containers to not block scroll input 2021-04-12 16:41:36 +09:00
HUDOverlay.cs Speed up the fade of the HUD a touch 2021-04-14 14:25:16 +09:00
HotkeyExitOverlay.cs
HotkeyRetryOverlay.cs
ISamplePlaybackDisabler.cs
KeyCounter.cs
KeyCounterAction.cs
KeyCounterDisplay.cs
KeyCounterKeyboard.cs
KeyCounterMouse.cs
KeyCounterState.cs
MasterGameplayClockContainer.cs Rename to MasterGameplayClock 2021-04-21 16:33:14 +09:00
PauseOverlay.cs
Player.cs Rename Restart() -> Reset() 2021-04-19 19:57:00 +09:00
PlayerConfiguration.cs
PlayerLoader.cs Merge pull request #12330 from Cublibre/master 2021-04-15 19:21:04 +09:00
ReplayPlayer.cs
ReplayPlayerLoader.cs
ResumeOverlay.cs
RoomSubmittingPlayer.cs
ScreenSuspensionHandler.cs Apply changes to AllowScreenSuspension bindable 2021-04-07 21:20:44 +09:00
ScreenWithBeatmapBackground.cs
SkipOverlay.cs Abstractify GameplayClockContainer 2021-04-14 17:47:11 +09:00
SoloPlayer.cs Fix scores not being accepted due to missing ruleset ID 2021-04-09 15:18:02 +09:00
SoloSpectator.cs
SongProgress.cs Update existing overlay containers to not block scroll input 2021-04-12 16:41:36 +09:00
SongProgressBar.cs
SongProgressGraph.cs
SongProgressInfo.cs
SpectatorPlayer.cs Abstractify GameplayClockContainer 2021-04-14 17:47:11 +09:00
SpectatorPlayerLoader.cs
SpectatorResultsScreen.cs
SquareGraph.cs
SubmittingPlayer.cs Don't store online IDs from score submission responses for now 2021-04-13 14:31:44 +09:00