1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-17 12:12:54 +08:00
Commit Graph

22547 Commits

Author SHA1 Message Date
Dean Herbert
046a76cb1d Allow null users to still be displayed in the participant list
The fix here is correcting the access of `user.Country`. The deicision
to have null users display is because this is the best we can do (if
osu-web could not resolve the user). We still want the users in the
lobby to be aware of this user's presence, rather than hiding them from
view.

osu-stable does a similar thing, showing these users as `[Loading]`. I
decided to go with blank names instead because having *any* text there
causes confusion. We can iterate on this in future design updates.
2020-12-28 15:03:44 +09:00
Dean Herbert
4d61c143db Fix lookup cache throwing a null reference if no matches were successful 2020-12-28 15:03:44 +09:00
Dean Herbert
69fab7de77
Merge pull request #11307 from bdach/fix-account-creation-overlay-after-logout
Fix account creation overlay not showing up the first time after a log-out
2020-12-28 11:52:48 +09:00
Dean Herbert
1b7c72f03b
Merge branch 'master' into changelog-refactor 2020-12-28 11:00:14 +09:00
Bartłomiej Dach
2ff49f4758 Merge branch 'master' into fix-quit-user-showing-in-leaderboard 2020-12-27 13:02:40 +01:00
Bartłomiej Dach
f75dccc9e4 Explicitly use discard in value changed callback 2020-12-27 13:00:27 +01:00
Bartłomiej Dach
6b6b1514e2 Rename method to be less misleading
As it doesn't only change colour, but also width.
2020-12-27 12:58:37 +01:00
Dean Herbert
3b5260fd67
Merge branch 'master' into fix-gameplay-leaderboard-clickable-avatars 2020-12-27 19:00:38 +09:00
Dean Herbert
1b34f2115f Remove dignostics using 2020-12-27 16:57:23 +09:00
Dean Herbert
d14a8d24b5 Remove assert for now 2020-12-27 16:42:20 +09:00
Dean Herbert
fa0576f47f Move quit colour change implementation to updateColour for better coverage 2020-12-27 13:40:02 +09:00
Bartłomiej Dach
15948de2f0 Fix gameplay leaderboard avatars being clickable 2020-12-26 14:35:14 +01:00
Bartłomiej Dach
8ec7970b6a Move load-complete fade specification inside 2020-12-26 14:35:14 +01:00
Bartłomiej Dach
e8f96b2401 Bring back DrawableAvatar as a simple sprite 2020-12-26 14:35:14 +01:00
Bartłomiej Dach
0b42b4b955 Rename {Drawable -> Clickable}Avatar 2020-12-26 14:35:11 +01:00
Bartłomiej Dach
a1af749b4b
Merge branch 'master' into patch/11310 2020-12-26 13:19:13 +01:00
Bartłomiej Dach
b059b5d616 Merge branch 'master' into fix-ready-button-crash 2020-12-26 12:41:47 +01:00
Dean Herbert
b9d725ab49 Don't copy spotlight category 2020-12-26 20:13:28 +09:00
Bartłomiej Dach
04d54c40db Allow all StatefulMultiplayerClient schedules to run inline
Fixes test failures due to not allowing to do so, therefore inverting
execution order in some cases - for example, calling

        JoinRoom(room);
        LeaveRoom();

on the update thread would invert execution order due to the first being
unscheduled but the second being scheduled.
2020-12-26 12:04:10 +01:00
Bartłomiej Dach
dae27fefe4 Run user list copy inline if possible
`getRoomUsers()` was not safe to call from the update thread, as
evidenced by the test failures. This was due to the fact that the added
reset event could never actually be set from within the method, as the
wait was blocking the scheduled set from ever proceeding.

Resolve by allowing the scheduled copy & set to run inline if on the
update thread already.
2020-12-26 12:03:03 +01:00
Dean Herbert
71dcbeaf7c Mark user as quit visually on the leaderboard 2020-12-26 12:11:09 +09:00
Dean Herbert
116acc2b5e Add flow for marking user as quit for further handling 2020-12-26 11:35:51 +09:00
Dean Herbert
ff57562956 Fix multiplayer leaderboard not unsubscribing from quit users 2020-12-26 11:35:31 +09:00
Neuheit
e7339d6959 fix(osu.Game): Ensure Category property is copied in Room. 2020-12-25 21:07:33 -05:00
Dean Herbert
fe1bbb1cac Don't fail if the local user is not present in room users when updating ready button state 2020-12-26 10:49:22 +09:00
Dean Herbert
f9900720d5 Rename OnRoomChanged to OnRoomUpdated to avoid confusion 2020-12-26 10:49:02 +09:00
Dean Herbert
5ce5b6cec0 Fix non-safe thread access to room users on room join 2020-12-26 10:25:16 +09:00
Dean Herbert
e0198c36ae Fix user population happening in single file 2020-12-26 09:48:13 +09:00
Bartłomiej Dach
0aedc720f2 Extract changelog entry component 2020-12-25 21:06:03 +01:00
Bartłomiej Dach
3ac618778f Handle all changelog entry types correctly 2020-12-25 21:06:03 +01:00
Bartłomiej Dach
5f43299d37 Fix tests failing due to base logic firing
It turns out that the changelog code was semi-intentionally relying on
the request to get release streams to be slow to initially show the
listing of all streams.

Locally suppress the base tab control logic to fix this.
2020-12-25 21:06:03 +01:00
Bartłomiej Dach
0bd9f68cbd Refactor update stream colour mapping code 2020-12-25 21:06:03 +01:00
Bartłomiej Dach
2e4b1b95c2 Rename {Multiplayer -> OnlinePlay}BackgroundSprite 2020-12-25 18:07:34 +01:00
Bartłomiej Dach
ed4b8482b6 Rename {Multiplayer -> OnlinePlay}Composite 2020-12-25 18:07:34 +01:00
Bartłomiej Dach
4c43a67b68 Rename I{Multiplayer -> OnlinePlay}SubScreen 2020-12-25 18:07:34 +01:00
Bartłomiej Dach
e5064ee930 Rename {Multiplayer -> OnlinePlay}SubScreen 2020-12-25 17:02:35 +01:00
Bartłomiej Dach
eb0f125fef Rename {Multiplayer -> OnlinePlay}SubScreenStack 2020-12-25 17:00:31 +01:00
Bartłomiej Dach
4caf75850b Rename {Multiplayer -> OnlinePlay}Screen 2020-12-25 17:00:00 +01:00
Bartłomiej Dach
83fb7c7a1a Re-namespace all files in OnlinePlay directory 2020-12-25 16:50:09 +01:00
Bartłomiej Dach
e797e5ce7a Rename Multi directory to OnlinePlay 2020-12-25 16:50:02 +01:00
Dean Herbert
9de1a67e03 Move PlaylistsResultsScreen to correct namespace 2020-12-25 23:47:32 +09:00
Dean Herbert
836d1491d0 PlaylistsMultiplayer -> Playlists 2020-12-25 23:47:18 +09:00
Dean Herbert
8a36eab060 Move missed file from Play namespace 2020-12-25 23:42:02 +09:00
Bartłomiej Dach
0d8fb83d0a Ensure account creation overlay is shown after logout
Scheduling the entire API state change callback caused the scheduled
hide to fire the first time the user attempted to display the account
creation overlay after a logout, because the drawable wasn't present
before that (so its scheduler wasn't running).

It is not theoretically safe to run `Hide()` unscheduled at its present
call site (as the value change callbacks are fired on the background
API thread). This could also be fixed by setting `AlwaysPresent = true`,
but that's a pretty ugly and unperformant change to make in general.
2020-12-25 15:40:39 +01:00
Dean Herbert
e421b6d34e Update some missed variables 2020-12-25 23:36:09 +09:00
Dean Herbert
2d7f9bf290 Revert RoomCategory naming change to avoid json deserialization failures 2020-12-25 23:34:29 +09:00
Dean Herbert
e49dce2c86 Fix some missed renames 2020-12-25 15:34:13 +09:00
Dean Herbert
5d4b73baa5 RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
Dean Herbert
a1384942b1 Timeshift -> Playlists at a code level 2020-12-25 13:11:21 +09:00
Dean Herbert
4e21bd0108
Merge pull request #11286 from peppy/rename-timeshift
Rename "timeshift" to "playlists"
2020-12-25 00:45:06 +09:00
Dean Herbert
60c7c8b63b
Pluralise playlists in tip 2020-12-25 00:44:42 +09:00
Bartłomiej Dach
6ec045f235 Distinguish primary multi screen titles in header 2020-12-24 16:18:35 +01:00
Bartłomiej Dach
db1c11073f Rename back to "room" for "realtime" multiplayer 2020-12-24 16:10:29 +01:00
Bartłomiej Dach
7f0f6d86b0 Rename {room -> playlist} on playlist room screen 2020-12-24 16:08:45 +01:00
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
smoogipoo
64a32723f3 One more case 2020-12-21 16:23:42 +09:00
Dean Herbert
06d4b323d1
Merge pull request #11221 from bdach/taiko-hitobject-application
Add support for hitobject application to taiko DHOs
2020-12-21 16:23:40 +09:00
smoogipoo
6d483ff0e6 Merge branch 'fix-non-abstract-test' into realtime-multiplayer-2 2020-12-21 16:22:18 +09:00
smoogipoo
14ea49a14d Merge branch 'nullable-endsat' into realtime-multiplayer-2 2020-12-21 16:22:16 +09:00
smoogipoo
dbffe735de Merge branch 'master' into realtime-multiplayer-2 2020-12-21 16:22:14 +09:00
smoogipoo
c3d1eaf36d Make RealtimeMultiplayerTestScene abstract 2020-12-21 16:21:05 +09:00
smoogipoo
a59124dd93 Make room duration/endsat nullable 2020-12-21 16:18:39 +09:00
smoogipoo
82cf58353c Fix incorrect joinedroom null checks 2020-12-21 15:38:20 +09:00
Dean Herbert
a5bcf1dc20 Expose resources to skin via interface (and share common pieces with beatmap) 2020-12-21 15:18:52 +09:00
Dean Herbert
0ffbe12fcc Expose resources to beatmaps in a saner way 2020-12-21 14:22:34 +09:00
Dean Herbert
7c804be4d3 Rename textureStore to make its purpose more clear 2020-12-21 14:06:33 +09:00
Dean Herbert
bc212b2538
Merge branch 'master' into fix-texture-loader-usages 2020-12-21 13:51:55 +09:00
Dean Herbert
a8569fe15c Fix a couple of simple cases of incorrect TextureLoaderStore initialisation 2020-12-21 13:35:46 +09:00
Dean Herbert
27623822c4
Merge branch 'master' into realtime-ready-button 2020-12-21 11:19:03 +09:00
Bartłomiej Dach
bcd140b8df
Merge branch 'master' into realtime-ready-button 2020-12-20 18:20:57 +01:00
Bartłomiej Dach
b76ec79a70
Merge branch 'master' into realtime-participants-list 2020-12-20 18:20:22 +01:00
Bartłomiej Dach
4e8e4f0343
Merge branch 'master' into realtime-room-composite 2020-12-20 17:46:10 +01:00
smoogipoo
b31f4e9e85 Merge branch 'stateful-multiplayer-client' into realtime-multiplayer-2 2020-12-21 00:41:42 +09:00
smoogipoo
a893360c0e Reword comment 2020-12-21 00:41:14 +09:00
smoogipoo
d127494c2d Fix thread-unsafe room removal 2020-12-21 00:39:31 +09:00
smoogipoo
3af702453f Implement realtime match song select 2020-12-21 00:37:13 +09:00
smoogipoo
275efd12b8 Fix room manager reference 2020-12-21 00:21:48 +09:00
smoogipoo
959959dbed Add multiplayer client to OsuGameBase 2020-12-21 00:21:41 +09:00
smoogipoo
15480c006b Create the correct room subscreen 2020-12-21 00:21:30 +09:00
smoogipoo
5b4197a9ef Disable watching replays from realtime results screen 2020-12-21 00:14:54 +09:00
smoogipoo
07077b8f4e Add realtime player 2020-12-21 00:13:05 +09:00
smoogipoo
945ba59c8e Make timeshift player able to not allow pause 2020-12-21 00:06:44 +09:00
smoogipoo
1fdc19ee0f Add realtime match subscreen and related components 2020-12-21 00:05:38 +09:00
smoogipoo
536df074a9 Don't attempt to re-map existing beatmap/ruleset (for testing) 2020-12-21 00:02:49 +09:00
smoogipoo
55cdff5be7 Renamespace ready button 2020-12-20 23:54:04 +09:00
Bartłomiej Dach
a31e8d137f Add guard when clearing samples 2020-12-20 15:42:24 +01:00
smoogipoo
a1ba4b6979 Split MatchSubScreen into abstract component + timeshift implementation 2020-12-20 23:40:19 +09:00
smoogipoo
b9e4a7196e Add realtime lounge subscreen 2020-12-20 23:36:56 +09:00
smoogipoo
455a84c73f Add realtime multiplayer screen 2020-12-20 23:32:57 +09:00
smoogipoo
1d7d8bd6fc Hook up a realtime multiplayer client 2020-12-20 23:26:31 +09:00
smoogipoo
fdfe3c2b36 Merge branch 'realtime-ready-button' into realtime-multiplayer-2 2020-12-20 23:11:06 +09:00
smoogipoo
a2ad0b0329 Merge branch 'realtime-participants-list' into realtime-multiplayer-2 2020-12-20 23:11:06 +09:00
smoogipoo
594db76cf3 Fix compilation errors 2020-12-20 23:10:45 +09:00
smoogipoo
4ada0e17c0 Merge branch 'abstract-room-manager' into stateful-multiplayer-client 2020-12-20 23:10:05 +09:00
smoogipoo
c33e693b8e Refactor InitialRoomsReceived to avoid extra bindables 2020-12-20 23:05:17 +09:00
smoogipoo
9d13a5b06a Fix potential cross-thread list access 2020-12-20 22:53:07 +09:00
smoogipoo
f876a329b1 Fire-and-forget leave-room request 2020-12-20 22:51:33 +09:00
smoogipoo
b002c46666 Add number of ready users to button 2020-12-20 18:49:51 +09:00
smoogipoo
19db35501e Fix incorrect end date usage in timeshift ready button 2020-12-20 18:44:36 +09:00
smoogipoo
ce2560b545 Extract value into const 2020-12-20 18:36:31 +09:00
smoogipoo
45107280a0 Make TimeBetweenPolls into a bindable 2020-12-20 18:34:54 +09:00
smoogipoo
0cf078562d Split method up and remove nested scheduling 2020-12-20 18:30:00 +09:00
smoogipoo
508f73d949 Fix up comment 2020-12-20 18:25:54 +09:00
smoogipoo
8b1f5ff492 Only instantiate ruleset once 2020-12-20 18:25:23 +09:00
smoogipoo
ba4307a74c Directly return task 2020-12-20 18:24:13 +09:00
smoogipoo
724e4b83fe Fix nullability and remove early check 2020-12-20 18:21:03 +09:00
smoogipoo
fb61cdfd41 Remove unnecessary first-frame polling + address concerns 2020-12-20 18:20:45 +09:00
smoogipoo
812a1d2b4f Fix onSuccess callback potentially being called on failure 2020-12-20 18:03:30 +09:00
smoogipoo
d74485704a Reset intial rooms received on filter change 2020-12-20 17:46:45 +09:00
smoogipoo
7c7f15089a Make CreateRoomManager return the drawable version 2020-12-20 17:42:23 +09:00
smoogipoo
d20eb368f5 Make return into IEnumerable 2020-12-20 17:36:23 +09:00
smoogipoo
3a4878558f Merge branch 'master' into abstract-room-manager 2020-12-20 17:35:01 +09:00
Dean Herbert
8ac76bd524
Merge pull request #11199 from smoogipoo/refactor-player-score-creation
Asyncify player score creation and submission
2020-12-20 17:30:11 +09:00
Joehu
5b8e35c98c Make settings dropdown abstract 2020-12-19 19:04:14 -08:00
Joehu
b87f89986a Fix selected item not being highlighted on some setting dropdowns 2020-12-19 19:04:13 -08:00
Bartłomiej Dach
4e5064c4f6 Start accuracy at 1 2020-12-19 21:31:17 +01:00
Bartłomiej Dach
ee33c0be93 Extract combo & accuracy ratio calculation helpers 2020-12-19 19:08:29 +01:00
Bartłomiej Dach
c738a57b39 Fix username overflow in new leaderboard design 2020-12-19 18:48:17 +01:00
Dean Herbert
b3bff281ce
Merge branch 'master' into spectator-driven-leaderboard 2020-12-20 01:13:59 +09:00
Bartłomiej Dach
3de03d279e Merge branch 'master' into gameplay-leaderboard-update 2020-12-19 15:20:04 +01:00
Bartłomiej Dach
06a17a9d8c Rename other constant to be distinguishable 2020-12-19 15:18:05 +01:00
Bartłomiej Dach
315a957a0c Extract constant for text transition duration 2020-12-19 15:17:31 +01:00
Bartłomiej Dach
e2cc401c12 Move BDL above LoadComplete() 2020-12-19 15:05:59 +01:00
Bartłomiej Dach
d392e0f27e Extract shared rank-formatting helper 2020-12-19 15:04:22 +01:00
Bartłomiej Dach
22a2c3efdf Add back xmldoc of AddPlayer 2020-12-19 15:04:18 +01:00
Bartłomiej Dach
28ca21b432 Seal banned method & throw better exception 2020-12-19 14:50:09 +01:00
Dean Herbert
28674cedd6
Merge pull request #11196 from Grrum/alignSelectionBoxCirclesToCenterOfBorder
Align selection box circles to center of border
2020-12-19 21:22:26 +09:00
Dean Herbert
beaced3211 Remove unnecessary async state machine 2020-12-19 13:58:56 +09:00
Bartłomiej Dach
f1878eff63 Use yet another solution leveraging padding 2020-12-18 23:45:42 +01:00
smoogipoo
772dd0287e Split submission and import into two methods 2020-12-19 03:32:05 +09:00
smoogipoo
cc22efaa6b Use tcs instead of delay-wait 2020-12-19 03:17:04 +09:00
smoogipoo
6efe24695b Add the realtime multiplayer ready button 2020-12-19 02:59:11 +09:00
smoogipoo
4e0113afbf Abstractify ready button and add a timeshift implementation 2020-12-19 02:55:48 +09:00
smoogipoo
e4a54dc6cd Renamespace ready button 2020-12-19 02:52:51 +09:00
smoogipoo
11a903a206 Add test for many users and disable scrollbar 2020-12-19 02:47:24 +09:00
smoogipoo
1e5c32410a Add the realtime multiplayer participants list 2020-12-19 02:41:37 +09:00
smoogipoo
4d051818a1 Add base class for all realtime multiplayer classes 2020-12-19 02:41:23 +09:00
smoogipoo
9b08f573ba Fix room not created before being joined 2020-12-19 02:41:04 +09:00
smoogipoo
3f4a66c4ae Add realtime multiplayer test scene abstract class 2020-12-19 02:23:42 +09:00
smoogipoo
0fb8615f95 Implement room parting 2020-12-19 02:02:04 +09:00
smoogipoo
7d1fe7955e Small improvements to testable room manager 2020-12-19 01:57:40 +09:00
smoogipoo
9b0ca8fc3b Make real time room manager not poll while inside a room 2020-12-19 01:57:30 +09:00
smoogipoo
2fc5561b7e Add handling for GetRoomRequest() 2020-12-19 01:22:52 +09:00
smoogipoo
c6da680c80 Add a container for testing purposes 2020-12-19 01:19:08 +09:00
smoogipoo
c6555c53cc Add a testable realtime room manager 2020-12-19 01:17:24 +09:00
smoogipoo
50a35c0f63 Add connection/disconnection capability 2020-12-19 01:16:00 +09:00
smoogipoo
1e2163f55e Add a testable realtime multiplayer client 2020-12-19 01:14:50 +09:00
smoogipoo
a6520d3d44 Clear rooms and poll only when connected to multiplayer server 2020-12-19 01:01:09 +09:00
smoogipoo
cf2340cafb Add a realtime room manager 2020-12-19 00:53:06 +09:00
smoogipoo
9ceb090f04 Fix ambiguous reference 2020-12-19 00:53:06 +09:00
smoogipoo
ab9158c306 Add a stateful multiplayer client 2020-12-19 00:53:06 +09:00