Commit Graph

463 Commits

Author SHA1 Message Date
45e41aaeac Initial implementation of freemod selection overlay 2021-01-27 22:15:53 +09:00
5ff76be052 Fix potential test failures due to timing 2021-01-20 19:43:51 +09:00
4a1acdece2 Merge branch 'multiplayer-beatmap-tracker' into ready-button-clean-up 2021-01-18 20:06:47 +03:00
5f2e9c5485 Add visual test case for displaying beatmap availability states 2021-01-18 11:49:27 +03:00
2b23c8eabd Use alpha directly for checking visibility in test
`IsPresent` is no longer synonymous with being visible, after applying
the fix to the issue in question.
2021-01-17 18:08:58 +01:00
585aa87c53 Fix playlist item download button never shown back after hiding 2021-01-17 19:17:14 +03:00
edb6d3907b Merge pull request #11472 from frenzibyte/explicit-beatmap-markers
Add explicit content markers to beatmap panels and overlay
2021-01-17 21:44:10 +09:00
63c0dc9bd9 Update ready button test scene with new logic 2021-01-17 01:11:03 +03:00
7fd55efc43 Add test cases for displaying explicit beatmaps 2021-01-13 12:27:15 +03:00
422260797b Revert polling changes to fix participant list display
It turns out this polling was necessary to get extra data that isn't
included in the main listing request. It was removed deemed useless, and
in order to fix the order of rooms changing when selecting a room.
Weirdly, I can't reproduce this happening any more, and on close
inspection of the code can't see how it could happen in the first place.

For now, let's revert this change and iterate from there, if/when the
same issue arises again.

I've discussed avoiding this second poll by potentially including more
data (just `user_id`s?) in the main listing request, but not 100% sure
on this - even if the returned data is minimal it's an extra join
server-side, which could cause performance issues for large numbers of
rooms.
2021-01-12 17:26:00 +09:00
8c3955d341 Improve safety of ongoing operation tracker
Finishing an operation started via
`OngoingOperationTracker.BeginOperation()` was risky in cases where the
operation ended at a callback on another thread (which, in the case of
multiplayer, is *most* cases). In particular, if any consumer registered
a callback that mutates transforms when the operation ends, it would
result in crashes after the framework-side safety checks.

Rework `OngoingOperationTracker` into an always-present component
residing in the drawable hierarchy, and ensure that the
`operationInProgress` bindable is always updated on the update thread.
This way consumers don't have to add local schedules in multiple places.
2021-01-09 22:45:24 +01:00
b69fe8a274 Merge branch 'master' into disable-repeat-multi-actions 2021-01-09 10:15:20 +09:00
ff60d652ed Move out test ongoing operation tracker to higher level 2021-01-08 22:28:21 +01:00
81355652fa Add simple test coverage 2021-01-05 06:00:15 +03:00
deb1ad7bca Merge branch 'master' into disable-repeat-multi-actions 2021-01-04 23:38:29 +09:00
f800448c87 Move game start logic to a higher level 2020-12-30 18:15:48 +01:00
d34609b98e Rename On{ToggleReady -> ReadyClick} 2020-12-30 16:29:36 +01:00
f2163a471a Trim missed reference to deleted member 2020-12-29 11:53:42 +01:00
274730de34 Cache tracker in test scene to resolve test fails 2020-12-29 09:16:08 +01:00
e9b0652359 Move ready-up operation logic again to client
To salvage ready up button tests.
2020-12-29 09:16:02 +01:00
db52255bbe Adjust tracker usages to match new API 2020-12-29 08:20:43 +01:00
f68e4fc88f Merge branch 'master' into disable-repeat-multi-actions 2020-12-29 07:42:20 +01:00
e3a41f6118 Rename variable to make more sense
It needs to be explicitly stated that the users in this list are related
to the *joined* room. Especially since it's sharing its variable name
with `SpectatorStreamingClient` where it has the opposite meaning (is a
list of *globally* playing players).
2020-12-29 14:27:35 +09:00
af66e45311 Disable create room button after triggering join 2020-12-28 22:48:03 +01:00
47ab7c9fd6 Disable ready button after host click 2020-12-28 22:48:03 +01:00
9155671557 Merge pull request #11341 from peppy/fix-leaderboard-user-handling
Fix incorrect null handling in GameplayLeaderboard
2020-12-28 22:44:55 +09:00
2e88036f39 Merge pull request #11342 from bdach/fix-beatmap-not-reverting
Fix user changes in multi song select not reverting on exit without confirmation
2020-12-28 21:56:07 +09:00
a376a23ed7 Merge branch 'master' into fix-leaderboard-user-handling 2020-12-28 13:43:53 +01:00
fb21b7c016 Add failing test cases 2020-12-28 12:35:16 +01:00
6254907ef9 Move multiplayer leaderboard test to correct namespace 2020-12-28 20:31:08 +09:00
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
4c43a67b68 Rename I{Multiplayer -> OnlinePlay}SubScreen 2020-12-25 18:07:34 +01:00
83fb7c7a1a Re-namespace all files in OnlinePlay directory 2020-12-25 16:50:09 +01:00
e421b6d34e Update some missed variables 2020-12-25 23:36:09 +09:00
da8365f9d0 Fix other missed cases of changing inheritance 2020-12-25 14:34:47 +01:00
13c38c9b55 Fix tests failing due to wrong inheritance 2020-12-25 14:18:21 +01:00
5d4b73baa5 RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
12e4bbdc5b Reorganise test scenes into playlists specific namespace 2020-12-25 13:20:37 +09:00
a1384942b1 Timeshift -> Playlists at a code level 2020-12-25 13:11:21 +09:00
6ec045f235 Distinguish primary multi screen titles in header 2020-12-24 16:18:35 +01:00
23bf9c372c Fix naming conflict with test scenes 2020-12-22 18:26:39 +09:00
ce806dd880 Replace the ready mark display with a state display, showing all participant states 2020-12-22 18:25:45 +09:00
17d924c755 Move timeshift settings overlay to correct namespace 2020-12-22 15:52:47 +09:00
8201fa8e34 Split out common implementation and private classes in MatchSettingsOverlay 2020-12-22 15:51:24 +09:00
14ea49a14d Merge branch 'nullable-endsat' into realtime-multiplayer-2 2020-12-21 16:22:16 +09:00
a59124dd93 Make room duration/endsat nullable 2020-12-21 16:18:39 +09:00
a1ba4b6979 Split MatchSubScreen into abstract component + timeshift implementation 2020-12-20 23:40:19 +09:00
b9e4a7196e Add realtime lounge subscreen 2020-12-20 23:36:56 +09:00
c33e693b8e Refactor InitialRoomsReceived to avoid extra bindables 2020-12-20 23:05:17 +09:00
4494bb1eb5 Abstract RoomManager and Multiplayer 2020-12-19 00:52:27 +09:00