mirror of
https://github.com/ppy/osu
synced 2024-12-18 12:55:37 +00:00
11cf04eed1
The way spectator currently works, the `Spectator` screen is responsible for adding new frames to the replay, even when it has a child (`SpectatorPlayer`) present. There was a possibility that a new play had already started, and on returning to the Spectator screen (to initialise the new play) there would be a brief period where the Player instance is still reading from the replay, the `userBeganPlaying` call had not yet finished initialising the new target replay, and `userSentFrames` is run (asynchronously), writing frames to the previous replay using the incorrect ruleset instance). To make this work, it doesn't `Schedule` frame addition to the replay (making things a bit unsafe). Changing this itself isn't such a simple one to do, so I instead opted to fix this via locking. Closes https://github.com/ppy/osu/issues/10777. |
||
---|---|---|
.. | ||
Break | ||
HUD | ||
PlayerSettings | ||
BeatmapMetadataDisplay.cs | ||
BreakOverlay.cs | ||
BreakTracker.cs | ||
ComboEffects.cs | ||
DimmableStoryboard.cs | ||
EpilepsyWarning.cs | ||
FailAnimation.cs | ||
FailOverlay.cs | ||
GameplayBeatmap.cs | ||
GameplayClock.cs | ||
GameplayClockContainer.cs | ||
GameplayMenuOverlay.cs | ||
HotkeyExitOverlay.cs | ||
HotkeyRetryOverlay.cs | ||
HUDOverlay.cs | ||
ISamplePlaybackDisabler.cs | ||
KeyCounter.cs | ||
KeyCounterAction.cs | ||
KeyCounterDisplay.cs | ||
KeyCounterKeyboard.cs | ||
KeyCounterMouse.cs | ||
KeyCounterState.cs | ||
PauseOverlay.cs | ||
Player.cs | ||
PlayerLoader.cs | ||
ReplayPlayer.cs | ||
ReplayPlayerLoader.cs | ||
ResumeOverlay.cs | ||
ScreenSuspensionHandler.cs | ||
ScreenWithBeatmapBackground.cs | ||
SkinnableHealthDisplay.cs | ||
SkipOverlay.cs | ||
SongProgress.cs | ||
SongProgressBar.cs | ||
SongProgressGraph.cs | ||
SongProgressInfo.cs | ||
Spectator.cs | ||
SpectatorPlayer.cs | ||
SpectatorPlayerLoader.cs | ||
SpectatorResultsScreen.cs | ||
SquareGraph.cs |