1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-07 20:47:26 +08:00
Commit Graph

22343 Commits

Author SHA1 Message Date
Dean Herbert
fa14438671
Merge pull request #11285 from peppy/resort-leaderboard-less
Re-sort the leaderboard order a maximum of once a second
2020-12-25 00:05:13 +09:00
Dean Herbert
61be6197e7
Merge pull request #11290 from bdach/looping-mp-at-end-of-game
Fix multiplayer gameplay potentially looping audio after reaching end
2020-12-25 00:04:56 +09:00
Dean Herbert
1a3ef9da6d
Merge pull request #11288 from bdach/token-failure-crash-pt2
Always create realtime-specific player elements regardless of token
2020-12-24 23:09:35 +09:00
Bartłomiej Dach
a97681a5da Proxy screen transition events to subscreens in multiplayer 2020-12-24 15:07:03 +01:00
Dean Herbert
3d28a0ccef
Merge pull request #11271 from peppy/dev-server
Prefer connecting to dev server when running in DEBUG
2020-12-24 23:01:19 +09:00
Bartłomiej Dach
76a7aabfe8 Always create realtime-specific player elements regardless of token 2020-12-24 14:32:30 +01:00
Dean Herbert
3a46e210d4 Change low-hanging references of "room" to "playlist" 2020-12-24 21:59:10 +09:00
Dean Herbert
aec25e2d73 Rename "timeshift" to "playlists"
This only covers the user-facing instances. Code and class name changes
will happen once things have calmed down.
2020-12-24 21:53:20 +09:00
Dean Herbert
f991448a3e Re-sort the leaderboard order a maximum of once a second 2020-12-24 21:49:38 +09:00
Bartłomiej Dach
d5c348b568 Remove explicit public access modifier from interface 2020-12-24 13:44:46 +01:00
Bartłomiej Dach
4270c29f60 Trim stray newline 2020-12-24 13:42:08 +01:00
Dean Herbert
21a4e6a3f9
Merge pull request #11282 from peppy/disallow-skipping
Disallow skipping in multiplayer
2020-12-24 21:31:02 +09:00
Dean Herbert
647cb8310a
Merge pull request #11281 from peppy/fix-ruleset-pollution
Schedule UpdateFilter calls to avoid operations occuring while at a sub screen
2020-12-24 21:30:47 +09:00
Dean Herbert
9b654c741b
Merge pull request #11283 from peppy/add-match-start-sound
Play a sound when starting a timeshift or multiplayer room
2020-12-24 21:30:24 +09:00
Dean Herbert
25ff32cdf8
Merge pull request #11284 from peppy/add-ready-changed-sound
Add sound when players change ready state
2020-12-24 21:30:06 +09:00
Dean Herbert
66a23c22e5 Fix various tests failing due to dependence on specific online data 2020-12-24 21:28:24 +09:00
Bartłomiej Dach
49103a4421
Merge branch 'master' into add-match-start-sound 2020-12-24 13:22:06 +01:00
Bartłomiej Dach
40b9d1bc5e Invert if & early-return to reduce nesting 2020-12-24 12:45:01 +01:00
Bartłomiej Dach
d5fc517fab
Merge branch 'master' into disallow-skipping 2020-12-24 12:35:22 +01:00
Bartłomiej Dach
ee5a6ff9fa Merge branch 'master' into improved-loading-experience 2020-12-24 11:59:46 +01:00
Bartłomiej Dach
261c250b46 Update outdated comment 2020-12-24 11:33:49 +01:00
Bartłomiej Dach
4fb2610c82
Merge branch 'master' into frame-bundle-accuracy 2020-12-24 11:20:06 +01:00
Dean Herbert
323da82477 Add website root URL and update most links to use it
For what it's worth, I intentionally didn't include news / changelog /
supporter, because these should never change.
2020-12-24 18:11:42 +09:00
Dean Herbert
eb795a2127 Move all endpoint information to a configuration class 2020-12-24 17:58:38 +09:00
Bartłomiej Dach
6750f1574f
Merge branch 'master' into disallow-multiplayer-restart-retry 2020-12-24 09:45:50 +01:00
Dean Herbert
c35454081c Add sound when players change ready state 2020-12-24 17:17:45 +09:00
Dean Herbert
3148c04fb8 Play a sound when starting a timeshift or multiplayer room 2020-12-24 16:53:25 +09:00
Dean Herbert
6bd6888a93 Disallow skipping in multiplayer for now 2020-12-24 16:29:51 +09:00
Dean Herbert
5457e4598b Schedule UpdateFilter calls to avoid operations occuring while at a sub screen 2020-12-24 16:20:38 +09:00
Dean Herbert
e86e9bfae6 Don't begin gameplay until all users are in a completely prepared state 2020-12-24 15:32:55 +09:00
Dean Herbert
d66e218318 Source display accuracy from header and remove from ScoreProcessor function 2020-12-24 14:57:23 +09:00
Dean Herbert
1f80f01b53 Add accuracy to frame bundle header 2020-12-24 14:46:52 +09:00
Dean Herbert
43370d7021
Merge pull request #11273 from bdach/duplicate-user-in-mp-room
Improve reliability of handling user joined messages
2020-12-24 14:31:44 +09:00
Dean Herbert
61a5d3ef4a Remove double handling of restart allowance on results screen (already handled locally) 2020-12-24 13:32:35 +09:00
Dean Herbert
76935b93b6 Merge branch 'master' into disallow-multiplayer-restart-retry 2020-12-24 13:31:54 +09:00
Dean Herbert
b29a5e2073
Merge pull request #11270 from bdach/better-error-handling
Improve error handling at realtime room settings screen
2020-12-24 13:23:49 +09:00
Dean Herbert
15cef44351
Merge pull request #11275 from peppy/safer-user-ids
Send multiplayer user IDs via ctor for better thread safety
2020-12-24 12:20:48 +09:00
Dean Herbert
1ac93d4eeb
Merge pull request #11268 from bdach/fix-room-song-select-stuck
Fix realtime multiplayer song select getting stuck after selecting invalid beatmap
2020-12-24 11:26:07 +09:00
Dean Herbert
d6dadd12fa Send multiplayer user IDs via ctor for better thread safety 2020-12-24 10:39:15 +09:00
Bartłomiej Dach
414f886b02 Split timeshift & multiplayer "create" buttons
Multiplayer button gets new, different "Create match" text, and disable
logic in case of a dropped connection to the multiplayer server.
2020-12-23 22:03:57 +01:00
Bartłomiej Dach
c13acb609a Move out sizing logic to multiplayer screen 2020-12-23 22:03:30 +01:00
Bartłomiej Dach
05d9f23762 Move out create room button to separate class 2020-12-23 22:03:30 +01:00
Bartłomiej Dach
a71496bc4e Sanity check received user joined messages
While test failures fixed in 9843da5 were a shortcoming of the test,
they exposed a potential vulnerable point of the multiplayer client
logic. In case of unreliable message delivery it is not unreasonable
that duplicate messages might arrive, in which case the same scenario
that failed in the tests could crash the game.

To ensure that is not the case, explicitly screen each new joined user
against the room user list, to ensure that duplicates do not show up.
`UserLeft` is already tolerant in that respect (if a user is requested
to be removed twice by the server, the second removal just won't do
anything).
2020-12-23 21:00:49 +01:00
Bartłomiej Dach
47020c8887 Add failing test cases 2020-12-23 21:00:47 +01:00
Bartłomiej Dach
152df2ad84
Merge branch 'master' into better-error-handling 2020-12-23 18:13:50 +01:00
Bartłomiej Dach
e7a91b3dca
Merge branch 'master' into fix-room-song-select-stuck 2020-12-23 18:13:27 +01:00
Bartłomiej Dach
b1fb906773 Merge branch 'master' into fix-hard-crash-on-signal-r-exceptions 2020-12-23 17:37:49 +01:00
Dean Herbert
e89583d732 Prefer connecting to dev server when running in DEBUG 2020-12-24 01:33:19 +09:00
Bartłomiej Dach
e4959489b7 Improve user-facing error messages in room settings 2020-12-23 17:10:53 +01:00
Bartłomiej Dach
3b0bf11366 Fix JoinRoom failing to return canceled token
As it turns out, `Task.FromCanceled` expects to receive an already
cancelled `CancellationToken`, which `CancellationToken.None` is not.
2020-12-23 17:01:01 +01:00
Bartłomiej Dach
6c421b873d
Merge branch 'master' into fix-multiplayer-server-disconnection-flow 2020-12-23 16:55:22 +01:00
Bartłomiej Dach
980e85ce25 Refactor player exit logic to convey intention better 2020-12-23 16:16:24 +01:00
Dean Herbert
4296f61d6c Tidy up event flow of change settings call 2020-12-23 22:39:14 +09:00
Dean Herbert
60be1bedc9
Merge pull request #11254 from frenzibyte/fix-multi-songselect-looping
Fix beatmap track not looping on multiplayer song selects
2020-12-23 22:35:11 +09:00
Bartłomiej Dach
c5692a5d6a Re-enable carousel selection after error 2020-12-23 14:19:30 +01:00
Bartłomiej Dach
582b0d2a74 Revert logic to be closer to original
Note the reversal of the order of operations in `endHandlingTrack()`
(done for extra safety, to ensure no more value changed events can be
fired at the point of cancelling looping).
2020-12-23 13:47:28 +01:00
Bartłomiej Dach
74f0c50d82 Merge branch 'fix-multiplayer-server-disconnection-flow' into fix-hard-crash-on-signal-r-exceptions 2020-12-23 13:31:36 +01:00
Bartłomiej Dach
c839892a4c Merge branch 'master' into fix-multiplayer-server-disconnection-flow 2020-12-23 11:57:43 +01:00
Bartłomiej Dach
94e4928c4b Bring back accidentally-removed license header 2020-12-23 11:27:15 +01:00
Dean Herbert
f9fd909187 Fix missed inspections 2020-12-23 18:07:38 +09:00
Bartłomiej Dach
64095307de
Merge branch 'master' into realtime-leaderboard 2020-12-23 09:56:47 +01:00
Dean Herbert
3c8f871b28 Move player constructor configuration to dedicated class; add AllowRestart parameter 2020-12-23 17:47:46 +09:00
Dean Herbert
0ddcab574f Rename method to avoid weird code analysis rule 2020-12-23 17:14:58 +09:00
Dean Herbert
7cc38f03d1 Use extension method in all call sites of fire-and-forget async usage 2020-12-23 17:10:34 +09:00
Dean Herbert
1864da00e6 Add extension method to handle cases of fire-and-forget async usage 2020-12-23 17:10:02 +09:00
Dean Herbert
c3c3364d39 Simplify error handling of JoinRoom call 2020-12-23 16:56:57 +09:00
Dean Herbert
d27b83d678 More correctly handle fire-and-forget async call 2020-12-23 16:51:11 +09:00
Dean Herbert
91021eb8c4 Remove unused using 2020-12-23 16:49:17 +09:00
Dean Herbert
d7279dab40
Merge pull request #11226 from peppy/fix-legacy-skin-texture-loader-store
Fix incorrectly provided texture loader store to skins
2020-12-23 16:41:01 +09:00
Dean Herbert
f5d27b40a8 Standardise flow for aborting realtime player exit to avoid double-exit call 2020-12-23 16:35:39 +09:00
Dean Herbert
569c4092ef Move notification to stateful client so it is only shown to the user from one location 2020-12-23 16:35:39 +09:00
Dean Herbert
a1d42dc4a0 Don't allow creating or joining a room when not connected to server 2020-12-23 16:35:39 +09:00
Dean Herbert
12df3056e6 Ensure appropriate screens handle exiting when the server gets disconnected
I would have liked for this to be handled via the `OnRoomChanged` event
flow, but this isn't present in RealtimeMatchSubScreen due to
inheritence woes.
2020-12-23 16:35:39 +09:00
Dean Herbert
00d50150de Ensure the current room is left at a mutliplayer client level on client disconnection 2020-12-23 16:35:39 +09:00
Salman Ahmed
286884421d Apply track looping and play on track change 2020-12-23 08:47:34 +03:00
Dean Herbert
b632e44bac
Merge pull request #11256 from frenzibyte/disallow-joining-ended-realtime-room
Disallow joining ended rooms in realtime multiplayer
2020-12-23 14:30:00 +09:00
Dean Herbert
be427a4ec0 Fix realtime leaderboard showing accuracy based on final base score, not rolling 2020-12-23 14:20:35 +09:00
Dean Herbert
45dcd3242d Add comment explaining why things are done where they are 2020-12-23 13:57:48 +09:00
Salman Ahmed
3aa2b22838 Add early check for room status before joining 2020-12-23 05:52:10 +03:00
Salman Ahmed
7751ef4f3e Revert previous logic of join guarding 2020-12-23 05:50:15 +03:00
Bartłomiej Dach
08d87ccb1e
Merge branch 'master' into present-recommended 2020-12-22 23:36:13 +01:00
Bartłomiej Dach
3272804704 Fix potential crash when no submission token
Can happen because `TimeshiftPlayer` will schedule a screen exit on
token retrieval failure, and `RealtimePlayer`'s BDL won't even attempt
to create a leaderboard in that case.
2020-12-22 22:34:26 +01:00
Bartłomiej Dach
3ae9dd8491 Merge branch 'master' into show-all-participant-states 2020-12-22 21:50:36 +01:00
Bartłomiej Dach
5efc3b9496 Start state display as hidden
Would otherwise flicker for a few frames when a new user was added to
the list of participants.
2020-12-22 21:49:42 +01:00
Salman Ahmed
a64ffcd294 Refrain from joining room if not allowed 2020-12-22 16:38:10 +03:00
Salman Ahmed
91d5c53643 Add method for checking room joinability 2020-12-22 16:36:17 +03:00
Salman Ahmed
e3483147e2 Move track looping logic into subscreens 2020-12-22 13:55:46 +03:00
Dean Herbert
6517acc510 Add leaderboard display to realtime player 2020-12-22 19:10:08 +09:00
Dean Herbert
5c3df55cdf
Merge pull request #11247 from frenzibyte/fix-resolution-dropdown
Fix resolution dropdown not respecting current display changes
2020-12-22 18:28:01 +09:00
Dean Herbert
ce806dd880 Replace the ready mark display with a state display, showing all participant states 2020-12-22 18:25:45 +09:00
Dean Herbert
3c33ea7f1c
Merge pull request #11239 from smoogipoo/realtime-multiplayer-2
Implement realtime multiplayer
2020-12-22 18:23:03 +09:00
Dean Herbert
4f02928601 Change sorting to better handle portrait screens 2020-12-22 17:36:56 +09:00
Dean Herbert
3d5783a0ea Improve variable names 2020-12-22 17:34:51 +09:00
Dean Herbert
a1d67f0cf6
Merge branch 'master' into fix-resolution-dropdown 2020-12-22 17:26:53 +09:00
Dean Herbert
59734229ff Remove unused using 2020-12-22 17:21:53 +09:00
Dean Herbert
7d6b2df586
Merge branch 'master' into fix-legacy-skin-texture-loader-store 2020-12-22 17:09:44 +09:00
Dean Herbert
7da3420e07
Merge pull request #11216 from Joehuu/fix-selected-highlight-on-some-dropdowns
Fix selected item not being highlighted on some setting dropdowns
2020-12-22 17:09:22 +09:00
Dean Herbert
30357a9447 Add loading layer to multi song select to show during settings confirmation 2020-12-22 17:08:04 +09:00
Dean Herbert
12876d7fb6 Add very basic error handling on ChangeSettings calls 2020-12-22 16:50:30 +09:00
smoogipoo
2d7174d99c Add padding to song select 2020-12-22 16:23:06 +09:00
Dean Herbert
3cf889b7c5 Fix some errors being completely ignored 2020-12-22 16:19:19 +09:00
Dean Herbert
34421c9232 Update framework 2020-12-22 15:58:57 +09:00
Dean Herbert
17d924c755 Move timeshift settings overlay to correct namespace 2020-12-22 15:52:47 +09:00
Dean Herbert
8201fa8e34 Split out common implementation and private classes in MatchSettingsOverlay 2020-12-22 15:51:24 +09:00
smoogipoo
27e64bdb34 Schedule callback continuations 2020-12-22 15:31:07 +09:00
smoogipoo
ab90db7c8d Fix stuck lounge on join failure 2020-12-22 15:27:49 +09:00
Dean Herbert
85e93c5dde Fix main menu multiplayer icons being back to front 2020-12-22 15:22:27 +09:00
Dean Herbert
3f966386ed Fix compile time failure due to potentially null connection 2020-12-22 15:15:32 +09:00
smoogipoo
81e2edc73f Use MRE with timeout to wait on match start 2020-12-22 14:59:11 +09:00
smoogipoo
dece41d050 Add todo 2020-12-22 14:58:47 +09:00
Dean Herbert
807c1ecd1f Refactor recommendation iteration code to read better 2020-12-22 14:57:32 +09:00
smoogipoo
3bf670510a Split into two actions 2020-12-22 14:55:25 +09:00
Dean Herbert
df5e1d83bd Allow recommender to potentially be null 2020-12-22 14:36:52 +09:00
Dean Herbert
8cc2ed3fae Move from OsuGameBase to OsuGame
Also moves to a more suitable namespace.
2020-12-22 14:28:27 +09:00
Dean Herbert
626b7615ad Move and rename some fields for better readability 2020-12-22 14:23:33 +09:00
Dean Herbert
dff865f335 Tidy up comments, code, and multiple linq enumeration 2020-12-22 14:12:02 +09:00
Salman Ahmed
dab5924a63 Fix resolution dropdown not respecting current display changes 2020-12-22 08:02:42 +03:00
Dean Herbert
d229fbba6e
Merge branch 'master' into present-recommended 2020-12-22 13:52:29 +09:00
Dean Herbert
7c5964fad8 Revert window modes to previous code to correctly apply framework restrictions 2020-12-22 13:04:39 +09:00
Dean Herbert
ce2b96afc5 Merge branch 'master' into fix-selected-highlight-on-some-dropdowns 2020-12-22 13:00:06 +09:00
Dean Herbert
9de42f8646
Merge pull request #11238 from peppy/editor-timeline-selection-ux
Improve drag and selection UX on editor timeline
2020-12-22 12:58:24 +09:00
Dean Herbert
78a53bf245
Merge pull request #11237 from peppy/fix-editor-background-sticking
Fix editor background not being correctly cleaned up on forced exit
2020-12-22 12:15:20 +09:00
Dean Herbert
b5e21a6885
Merge pull request #11233 from peppy/fix-chat-threading-crash
Fix potential cross-thread operation during chat channel load
2020-12-22 12:10:27 +09:00
Dean Herbert
a7f78d706a Merge branch 'master' into fix-legacy-skin-texture-loader-store 2020-12-22 12:09:35 +09:00
Dean Herbert
13ef097a53 Annotate potentially null parameters in protected ctor of LegacySkin 2020-12-22 12:08:40 +09:00
Dean Herbert
85518b4d99 Enforce non-null for BeatmapManager WorkingBeatmap resources 2020-12-22 12:06:10 +09:00
Dean Herbert
a97a2b2a66 Add nullability to BeatmapManager's GameHost reference 2020-12-22 12:03:25 +09:00
Dean Herbert
10c2745682 Add region specifications around implicit interface implementations 2020-12-22 12:01:09 +09:00
Bartłomiej Dach
4eec4c1fe0
Merge branch 'master' into fix-editor-background-sticking 2020-12-21 20:31:59 +01:00
Bartłomiej Dach
f96d2f4ba4
Merge branch 'master' into fix-texture-loader-usages 2020-12-21 18:35:34 +01:00
smoogipoo
c07b2d89e6 Merge branch 'master' into realtime-multiplayer-2 2020-12-21 18:44:03 +09:00
smoogipoo
8427ee1b8e Fix incorrect cached type 2020-12-21 18:42:23 +09:00
smoogipoo
0566ed1a9b Add button to main menu 2020-12-21 18:38:44 +09:00
Dean Herbert
423c6158e1 Highlight timeline drag area when hovered for better visibility 2020-12-21 18:10:11 +09:00
Dean Herbert
d1be7c23d9 Increase height of timeline drag area 2020-12-21 18:09:56 +09:00
Dean Herbert
d11d754715 Increase size of circle display on timeline 2020-12-21 18:09:37 +09:00
Dean Herbert
3e3d5b2e37
Merge pull request #11235 from smoogipoo/fix-apibeatmapset-deserialisation
Fix metadata lost in beatmapset deserialisation
2020-12-21 18:03:30 +09:00
Dean Herbert
44af32dc47
Merge pull request #11234 from smoogipoo/fix-category-serialisation
Fix room category being serialised as int
2020-12-21 18:03:10 +09:00
Dean Herbert
83f1350d7d Fix editor background not being correctly cleaned up on forced exit
Closes #11214. Should be pretty obvious why.
2020-12-21 17:49:11 +09:00
Dean Herbert
5ec64c0348
Merge pull request #11232 from smoogipoo/participant-count-serialisation
Make participant count non-nullable
2020-12-21 17:34:01 +09:00
smoogipoo
9fa1f60b7d Fix incorrect footer being used 2020-12-21 17:31:15 +09:00
Dean Herbert
1dcee2fb39
Merge pull request #11228 from smoogipoo/nullable-endsat
Make room Duration/EndDate nullable
2020-12-21 17:24:40 +09:00
smoogipoo
93cac000e5 Merge branch 'fix-apibeatmapset-deserialisation' into realtime-multiplayer-2 2020-12-21 17:16:28 +09:00
smoogipoo
eb46c9ce9b Fix metadata lost in beatmapset deserialisation 2020-12-21 17:11:30 +09:00
Dean Herbert
d5644c7f86
Merge pull request #11229 from smoogipoo/fix-non-abstract-test
Make RealtimeMultiplayerTestScene abstract
2020-12-21 16:58:04 +09:00
smoogipoo
04af072da7 Merge branch 'fix-category-serialisation' into realtime-multiplayer-2 2020-12-21 16:57:22 +09:00
smoogipoo
e23d81bfc6 Use enum property 2020-12-21 16:56:45 +09:00
smoogipoo
a021aaf546 Fix room category being serialised as ints 2020-12-21 16:42:21 +09:00
Dean Herbert
d096f2f8f6 Fix potential cross-thread operation during chat channel load
The callbacks are scheduled to the API thread, but hooked up in BDL
load. This causes a potential case of cross-thread collection
enumeration.

I've tested and it seems like the schedule logic should be fine for
short term. Longer term, we probably want to re-think how this works so
background operations aren't performed on the `DrawableChannel` in the
first place (chat shouldn't have an overhead like this when not
visible).

Closes #11231.
2020-12-21 16:39:50 +09:00
smoogipoo
5d73359bd7 Make participant count non-nullable 2020-12-21 16:35:19 +09:00