1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 19:33:01 +08:00
osu-lazer/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 Limit font weight to bold 2020-03-16 16:32:25 -07:00
HUD Rework to create a derived tracked user data instead 2021-04-12 22:00:27 +09:00
PlayerSettings Added beatmap colour settings checkbox and associated tests. 2021-01-13 00:09:22 -05:00
BeatmapMetadataDisplay.cs Flip order back to original for romanisable strings 2021-02-25 14:14:07 +09:00
BreakOverlay.cs Add spaces to comments 2020-05-04 18:36:24 -07:00
BreakTracker.cs Call break time update when loaded 2021-02-06 20:54:13 +03:00
ComboEffects.cs Fix combo break sound not playing after rewind 2020-11-13 13:38:14 +09:00
DimmableStoryboard.cs Privatise setter 2020-05-20 15:08:33 +09:00
EpilepsyWarning.cs Ensure that all changes to screen backgrounds are on the correct thread 2021-01-05 15:22:50 +09:00
FailAnimation.cs Initial sample + samplechannel rework 2021-01-19 17:11:40 +09:00
FailOverlay.cs Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
GameplayBeatmap.cs Merge branch 'master' into more-accurate-most-common-bpm 2021-02-08 18:40:58 +09:00
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
HotkeyExitOverlay.cs Apply OnRelease method signature refactorings 2020-01-22 13:22:34 +09:00
HotkeyRetryOverlay.cs Apply OnRelease method signature refactorings 2020-01-22 13:22:34 +09:00
HUDOverlay.cs Speed up the fade of the HUD a touch 2021-04-14 14:25:16 +09:00
ISamplePlaybackDisabler.cs Reverse inheritance order of SkinnableSound's pause logic 2020-09-30 15:45:14 +09:00
KeyCounter.cs Add spaces to comments 2020-05-04 18:36:24 -07:00
KeyCounterAction.cs Apply OnRelease method signature refactorings 2020-01-22 13:22:34 +09:00
KeyCounterDisplay.cs Rename to AlwaysVisible and add XMLDoc 2020-02-03 20:00:43 +03:00
KeyCounterKeyboard.cs Apply input method signature refactorings 2020-01-20 19:35:37 +09:00
KeyCounterMouse.cs Apply input method signature refactorings 2020-01-20 18:17:21 +09:00
KeyCounterState.cs Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
MasterGameplayClockContainer.cs Rename to MasterGameplayClock 2021-04-21 16:33:14 +09:00
PauseOverlay.cs Fix incorrect specification on some sample lookups 2020-10-30 11:59:41 +09:00
Player.cs Rename Restart() -> Reset() 2021-04-19 19:57:00 +09:00
PlayerConfiguration.cs Disallow skipping in multiplayer for now 2020-12-24 16:29:51 +09:00
PlayerLoader.cs Merge pull request #12330 from Cublibre/master 2021-04-15 19:21:04 +09:00
ReplayPlayer.cs Move player constructor configuration to dedicated class; add AllowRestart parameter 2020-12-23 17:47:46 +09:00
ReplayPlayerLoader.cs Add test coverage 2020-06-15 20:32:27 +09:00
ResumeOverlay.cs Make OverlayContainers with no blocking input VisibilityContainers 2019-10-14 16:27:59 -07:00
RoomSubmittingPlayer.cs Change RoomSubmittingPlayer's request implementation to return null on RoomID missing, rather than silently succeeding 2021-03-24 13:23:23 +09:00
ScreenSuspensionHandler.cs Apply changes to AllowScreenSuspension bindable 2021-04-07 21:20:44 +09:00
ScreenWithBeatmapBackground.cs Ensure that all changes to screen backgrounds are on the correct thread 2021-01-05 15:22:50 +09:00
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 Schedule spectator callbacks 2021-04-02 21:27:20 +09:00
SongProgress.cs Update existing overlay containers to not block scroll input 2021-04-12 16:41:36 +09:00
SongProgressBar.cs Add ability to seek replays/auto with arrow keys 2020-07-14 20:18:47 -07:00
SongProgressGraph.cs Remove excess parenthesis 2019-11-25 22:37:07 +09:00
SongProgressInfo.cs Tidy up clock logic using DI and a GameplayClock 2019-03-05 13:37:51 +09:00
SpectatorPlayer.cs Abstractify GameplayClockContainer 2021-04-14 17:47:11 +09:00
SpectatorPlayerLoader.cs Fix spectating when starting from a point that isn't at the beginning of the beatmap 2020-10-27 18:58:37 +09:00
SpectatorResultsScreen.cs Remove default allowRetry parameter value from ResultsScreen 2020-11-20 14:35:44 +09:00
SquareGraph.cs osu-side changes 2020-02-24 20:52:15 +09:00
SubmittingPlayer.cs Don't store online IDs from score submission responses for now 2021-04-13 14:31:44 +09:00