1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 09:07:25 +08:00
osu-lazer/osu.Game
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
..
Audio Fix audio previews not being adjusted in volume correctly 2021-02-17 20:51:17 +09:00
Beatmaps Add xmldoc note about path being relative 2021-04-20 13:44:06 +02:00
Collections Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +09:00
Configuration Setup configuration item for editor hit animations 2021-04-21 18:05:40 +09:00
Database Revert EF Core to version 2.2 2021-03-21 11:05:15 +01:00
Extensions Fix volume controls not supporting key repeat 2021-04-14 13:11:24 +09:00
Graphics Move foreground colour helper into OsuColour 2021-04-19 18:24:48 +02:00
Input Add simple key based time nudging support to editor 2021-04-22 18:47:04 +09:00
IO Remove empty <returns> xmldoc 2021-04-12 17:46:14 +09:00
IPC Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +09:00
Migrations Remove alt-mousewheel bindings for volume adjustment 2021-04-12 14:00:32 +09:00
Online Fix playing users not being updated on room join 2021-04-22 23:23:43 +09:00
Overlays Add support for per-ruleset sample playback when switching rulesets (via toolbar) 2021-04-22 14:43:36 +09:00
Properties
Replays Update HasFlag usages to HasFlagFast 2021-02-25 15:38:56 +09:00
Rulesets Merge pull request #12515 from frenzibyte/legacy-scores-classic-mod 2021-04-22 19:52:09 +09:00
Scoring Fix nullref 2021-04-22 18:44:14 +09:00
Screens Fix potential failure in ensureSourceClockSet() 2021-04-24 14:19:39 +02:00
Skinning Add failing test 2021-04-20 16:51:00 +09:00
Storyboards Fix storyboard sample lifetimes not set if seeked past 2021-04-20 17:14:48 +09:00
Tests Add failing test 2021-04-22 23:22:44 +09:00
Updater Update usages of config with framework changes 2021-03-17 16:10:16 +09:00
Users Fix accuracy displaying incorrectly in online contexts 2021-03-30 22:42:32 +09:00
Utils Move foreground colour helper into OsuColour 2021-04-19 18:24:48 +02:00
osu!.res
osu.Game.csproj Update framework 2021-04-24 14:38:00 +09:00
OsuGame.cs Fix sessionIdleTracker not being properly added to OsuGame 2021-04-19 01:06:26 -04:00
OsuGameBase.cs Tidy up initialisation code and avoid using DI on inherited class 2021-04-19 11:30:55 +09:00
PerformFromMenuRunner.cs Add flow to allow MatchSubScreen to handle beatmap presentation locally 2021-03-03 14:13:51 +09:00