Dean Herbert
18aace177a
Fix deadlock when logging out while at the create match screen
...
Closes https://github.com/ppy/osu/issues/24275 .
2023-07-19 19:37:38 +09:00
Bartłomiej Dach
7fbd47e9ee
Fix MultiplayerMatchSubScreen
erroneously pushing exit dialog on API failure
...
If `IAPIProvider.State` changes from `Online` at any point when being on
an `OnlinePlayScreen`, it will be forcefully exited from. However,
`MultiplayerMatchSubScreen` had local logic that suppressed the exit in
order to show a confirmation dialog.
The problem is, that in the suppression logic,
`MultiplayerMatchSubScreen` was checking
`MultiplayerClient.IsConnected`, which is a SignalR flag, and was not
checking `IAPIAccess.State`, which is maintained separately. Due to
differing timeouts and failure thresholds, it is not impossible to have
`MultiplayerClient.IsConnected == true` but `IAPIAccess.State !=
APIState.Online`.
In such a case, the match subscreen would wrongly consider itself to be
still online and due to that, push useless confirmation dialogs, while
being in the process of being forcefully exited. This then caused the
dialog to cause a crash, as it was calling `.Exit()` on the screen which
would already have been exited by that point, by the force-exit flow.
2023-07-16 19:56:22 +02:00
Dean Herbert
3883c28b15
Add visual display in participants list when availability is still being established
2023-06-28 16:02:46 +09:00
Dean Herbert
91354b1570
Avoid performing any actions when BeatmapAvailability
is updated to Unknown
2023-06-28 16:01:54 +09:00
Dean Herbert
b240ce295b
Rename class and key to better match expectations
2023-06-26 13:38:34 +09:00
Bastian Pedersen
a7153478d6
Use newly create localised strings for buttons
2023-06-25 21:03:07 +02:00
Dean Herbert
df5b389629
Manual fixes to reduce warnings to zero
2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Dean Herbert
07a00e8afd
Fix typo in comment
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-06-22 00:02:02 +09:00
Dean Herbert
7b4cbea362
Allow nullable to fix test usages
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-06-22 00:01:48 +09:00
Dean Herbert
10ed3787a0
Don't show song select screen when local user doesn't have permission to add an item
2023-06-20 18:27:19 +09:00
Dean Herbert
dc1b4a39aa
Fix presenting beatmaps while in a multiplayer room not working
2023-06-20 18:23:59 +09:00
Salman Ahmed
62cb6a98ca
Remove redundant nullable suppression directives
2023-06-07 08:20:41 +03:00
Joseph Madamba
3e0bbb2432
Fix select beatmap button not highlighting when creating a multiplayer room using keyboard
2023-03-26 16:03:21 -07:00
Dean Herbert
4a7d7c6ed9
Use MaxBy
in all locations that can and update inspection level to match dotnet-build
2022-12-19 16:47:10 +09:00
Dean Herbert
27c497145f
Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0
2022-12-16 18:16:26 +09:00
Dan Balasescu
7b48c91fe2
Only show local results in multi-spectator results screen
2022-12-12 18:56:43 +09:00
Bartłomiej Dach
894ef15e79
Merge branch 'master' into update-framework
2022-11-26 16:19:36 +01:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dean Herbert
d0c4637683
Lighten colour of multiplayer create game button
2022-11-25 20:18:21 +09:00
Dean Herbert
6ad432b311
Use RoundedButton
in more places
2022-11-24 16:33:01 +09:00
Dean Herbert
53b03df93d
Combine TriangleButton
and RoundedButton
classes
2022-11-24 16:26:57 +09:00
Dean Herbert
bea2acc60e
Remove local specifications of triangle colouring
2022-11-24 16:18:15 +09:00
Dan Balasescu
dcb6357964
Add ability to remove the current item in multiplayer
2022-10-14 20:23:55 +09:00
Dan Balasescu
da8d94c4b4
Fix test failures due to scheduled operations
2022-09-27 20:24:44 +09:00
Dean Herbert
20da1051d9
Apply NRT to GameplayLeaderboard
hierarchy
...
Just some cleanup work that I wanted to do as part of my last changes.
2022-09-26 16:21:24 +09:00
Dean Herbert
a65a76f7de
Fix off-thread drawable mutation in multiplayer settings overlay when an error occurs
...
Closes #20413 .
2022-09-23 20:05:32 +09:00
Dean Herbert
29c4d06d36
Merge branch 'fix-gameplay-leaderboard-layout' into gameplay-leaderboards
2022-09-21 14:58:58 +09:00
Dean Herbert
0ac28cbecc
Fix potential crash from missing DownloadProgress
2022-09-18 23:42:16 +09:00
Dan Balasescu
2dcaf7cfd8
Fix memory leak due to missing event unbind
2022-09-18 14:25:31 +09:00
Dean Herbert
678eec1c67
Move LeaderboardFlow
to HUDOverlay
to share positioning logic
2022-09-13 18:45:11 +09:00
Dean Herbert
5894d2f0bc
Ensure gameplay leaderboard hides with rest of HUD when it should
2022-09-13 18:45:11 +09:00
Dean Herbert
d251c0b2ac
Move leaderboard implementation to Player
itself
2022-09-13 18:00:21 +09:00
Dean Herbert
ac034bffeb
Fix potential crash if multiplayer spectator load is aborted early
2022-09-13 14:21:54 +09:00
Dean Herbert
6945c43e0d
Merge pull request #20178 from smoogipoo/fix-match-creation-beatmap-select
...
Fix several weird scenarios with online play song selection
2022-09-08 23:07:09 +09:00
Dan Balasescu
9aab502adc
Merge pull request #20157 from peppy/true-gameplay-rate
...
Refactor `TrueGameplayRate` to account for only gameplay adjustments, no matter what
2022-09-08 19:54:32 +09:00
Dean Herbert
13d9b2188b
Merge pull request #20145 from smoogipoo/multiple-countdowns
...
Implement support for multiple active countdowns in multiplayer
2022-09-08 19:15:30 +09:00
Dan Balasescu
76eae73fa4
Revert unintended change
2022-09-08 17:41:23 +09:00
Dan Balasescu
c61c596c1f
Expose as readonly IAggregateAudioAdjustment
2022-09-08 17:37:02 +09:00
Dan Balasescu
b559d4ecdf
Rename GameplayAdjustments -> AdjustmentsFromMods
2022-09-08 17:14:06 +09:00
Dan Balasescu
b0b4da533a
Expose gameplay adjustments via MultiSpectatorPlayer instead
2022-09-08 16:59:20 +09:00
Dan Balasescu
208bd0f391
Give OnlinePlaySongSelect a reference PlaylistItem
2022-09-07 21:34:29 +09:00
Dan Balasescu
cb9bae1f5c
Enable NRT
2022-09-07 19:54:55 +09:00
Dean Herbert
1be3b74ff3
Fix multiplayer spectator not getting gameplay adjustments applied
2022-09-07 19:12:34 +09:00
Dan Balasescu
2923c10cd8
Rewrite rooms to store multiple active countdowns
...
Update test to the new structure
2022-09-05 19:03:26 +09:00
Salman Ahmed
e8fa872f61
Fix room status dropdown position inconsistent on online-play screens
2022-09-03 16:14:21 +03:00
Dan Balasescu
c852c54055
Consume auto skip setting during play
2022-08-31 20:24:15 +09:00
Dan Balasescu
b5ec7d06dd
Add auto-skip setting
...
Default to auto skip
2022-08-31 20:24:06 +09:00
Dean Herbert
b9d9bf3004
Merge pull request #19938 from frenzibyte/fix-multi-spectator-results-screen
...
Fix multi-spectator potentially getting stuck for passed players
2022-08-26 21:53:17 +09:00
Dean Herbert
a546aa2673
Clamp SpectatorPlayerClock
's elapsed calculation to avoid player clocks getting too far ahead
2022-08-25 21:33:33 +09:00
Dean Herbert
27b57947e4
Rename PlayerArea.GameplayClock
to SpectatorPlayerClock
for clarity
2022-08-24 17:13:14 +09:00
Dean Herbert
5f01f461b3
Ensure elapsed time is always non-zero when advancing SpectatorPlayerClock
2022-08-24 17:13:14 +09:00
Dean Herbert
af56cd0126
Fix merge breakage
2022-08-24 16:52:36 +09:00
Dean Herbert
5079e0d83d
Merge branch 'master' into no-gameplay-clock-gameplay-offset
2022-08-24 16:52:10 +09:00
Salman Ahmed
8f4a2b4936
Separate passed/failed states from calling EndGameplay
2022-08-24 10:36:13 +03:00
Dean Herbert
7f9246637a
Simplify MultiSpectatorScreen
hierarchy construction
2022-08-24 16:08:48 +09:00
Dean Herbert
7c1fc4814e
Remove unused CreateMasterGameplayClockContainer
method
2022-08-24 16:03:38 +09:00
Dean Herbert
871365bbb0
Inline ReadyToStart
action binding for added safety
2022-08-24 16:03:38 +09:00
Dean Herbert
6c50f618a3
Don't use bindable flow for masterState
2022-08-24 16:03:38 +09:00
Dean Herbert
683d49c608
Move MasterClockState
handling in to SpectatorSyncManager
2022-08-24 16:03:38 +09:00
Dean Herbert
d33d705684
Make WaitingOnFrames
non-bindable
2022-08-24 16:03:38 +09:00
Dean Herbert
d05d8aeb22
Simplify interface implementations
2022-08-24 16:03:38 +09:00
Dean Herbert
2f5be6efca
Tidy up ProcessFrame
and privatise const
2022-08-24 16:03:38 +09:00
Dean Herbert
b564c34dbc
Don't process master clock (is a noop)
2022-08-24 16:03:38 +09:00
Dean Herbert
b4eede61fb
Use readonly
instead of get-only
2022-08-24 15:28:18 +09:00
Dean Herbert
0b271fe4b3
Fix incorrect IsRunning
value
2022-08-24 15:27:31 +09:00
Dean Herbert
b6254a1f25
Remove unnecessary casting
2022-08-24 15:23:31 +09:00
Dean Herbert
a86fc6f248
Change running state of SpectatorPlayerClock
using IsRunning
2022-08-24 15:17:56 +09:00
Dean Herbert
0c9a4ec13c
Don't expose MasterClock
in SpectatorClockSyncManager
2022-08-24 15:13:08 +09:00
Dean Herbert
995e6664b6
Rename spectator clock sync classes
2022-08-24 15:13:08 +09:00
Dean Herbert
31f657fe01
Remove ISpectatorPlayerClock
interface
...
Too many levels of redirection.
One interface with one implementation is not useful, IMO.
2022-08-24 15:12:57 +09:00
Dean Herbert
882dd93942
Remove ISyncManager
interface
...
Too many levels of redirection.
One interface with one implementation is not useful, IMO.
2022-08-24 15:12:57 +09:00
Dean Herbert
22963ab951
Fix multiplayer spectator getting stuck
2022-08-24 15:12:57 +09:00
Dean Herbert
ec31f37ff7
Accept MasterGameplayClockContainer
rather than generic clock
2022-08-24 14:51:14 +09:00
Dean Herbert
85fbe7abca
Fix multiplayer spectator getting stuck
2022-08-24 13:11:53 +09:00
Dean Herbert
ec61a94dc9
Merge branch 'master' into no-gameplay-clock-gameplay-offset
2022-08-23 17:36:06 +09:00
Dean Herbert
553897f2f0
Remove AddClock
method to CreateManagedClock
2022-08-23 13:52:43 +09:00
Dean Herbert
1191b6c080
Remove unused Source_Set
implementation on ISpectatorPlayerClock
2022-08-23 13:44:41 +09:00
Dan Balasescu
c59298f0ce
Enable NRT
2022-08-22 21:55:04 +09:00
Dan Balasescu
5d3d8681d4
Invert creation of clocks in multi spectator
2022-08-22 19:14:06 +09:00
Dean Herbert
af2e82d7d5
Move operation of setting GameplayClockContainer.StartTime
to Reset
call
2022-08-22 14:11:06 +09:00
Dean Herbert
0e228791c0
Remove unnecessary Reset
call in MultiSpectatorScreen
2022-08-19 01:39:01 +09:00
Dean Herbert
6d78218142
Update usages of GameplayClockContainer.GameplayClock
to access properties directly
2022-08-15 18:08:49 +09:00
Dean Herbert
224f3eaa84
Make GameplayClockContainer
non-abstract
and use in MultiSpectatorPlayer
2022-08-15 18:08:49 +09:00
Salman Ahmed
84ef24c341
Fix multi-spectator potentially getting stuck for passed players
2022-08-06 05:41:26 +03:00
Adam Baker
cecf654a7b
Update osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSubScreen.cs
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-07-19 18:58:59 -05:00
Salman Ahmed
ae6aab2555
Merge branch 'master' into edit-map-carousel
2022-07-20 02:43:47 +03:00
Adam Baker
4164f260b3
Fix code quality errors
2022-07-19 08:12:12 -05:00
Adam Baker
5008a73774
Make add item button open to the last beatmap in queue
2022-07-19 02:04:19 -05:00
Dan Balasescu
c07f78409e
Merge pull request #19189 from peppy/peform-actions-after-reconnect
...
Fix creating multiplayer game during server migration not joining new room correctly
2022-07-19 14:46:29 +09:00
Adam Baker
59018ab5ba
Fix multiplayer queue edit button opening to the wrong beatmap
2022-07-18 23:21:16 -05:00
Salman Ahmed
2befcfedbb
Merge branch 'master' into fix-multiplayer-participant-panel-null-ruleset
2022-07-18 12:24:47 +03:00
Dean Herbert
a036632c8b
Fix potential crash when attempting to create mod display using null ruleset
2022-07-18 15:30:21 +09:00
Dean Herbert
21bf7ee448
Turn on nullability in ParticipantPanel
2022-07-18 15:27:55 +09:00
Salman Ahmed
100c53f9ef
Country
-> CountryCode
2022-07-18 08:40:34 +03:00
Dean Herbert
55a8a3563b
Change MultiplayerMatchSubScreen
to not immediately leave the room on connection loss
...
Instead, we can rely on `MultiplayerClient.Room` going `null`.
2022-07-17 21:19:10 +09:00
Salman Ahmed
e62049f4a9
Update various usages of Country
inline with new enum
2022-07-16 05:04:24 +03:00
Salman Ahmed
102d0415f1
Merge branch 'master' into drawable-playlist-item-collection
2022-07-14 00:10:49 +03:00
Dean Herbert
0434c10914
Use global WorkingBeatmap
in PlayerArea
for the time being
2022-07-11 02:57:44 +09:00
Salman Ahmed
67fa15f231
Remove no longer required context menu container in ParticipantsList
2022-07-08 01:42:55 +03:00