Dan Balasescu
d6c08fae48
Fix incorrect global beatmap with availability changes
2021-12-11 23:08:21 +09:00
Dan Balasescu
ece2cddb7f
Fix DrawableRoomPlaylistItem lookup interfering with tests
2021-12-11 22:51:20 +09:00
Dan Balasescu
25b274c323
Fix starting gameplay too early after import
2021-12-11 22:47:50 +09:00
Dan Balasescu
1aac978a7b
Merge pull request #16029 from peppy/editor-mod-reset
...
Fix editor not resetting mods when entering
2021-12-11 20:20:11 +09:00
Dan Balasescu
63a017bc8e
Use Array.Empty instead
2021-12-11 19:33:37 +09:00
Dan Balasescu
cdb8237a4b
Merge branch 'master' into pre-realm-score-tidy
2021-12-11 19:25:39 +09:00
Dan Balasescu
6057037e35
Move playlist item beatmap population to MatchSubScreen
2021-12-10 20:08:59 +09:00
Dean Herbert
c1b3ee6bb2
Fix editor not resetting mods when entering
...
Would leave the user potentially in a test mode that is in a weird
state (ie. if cinema mod was enabled). Eventually we'll add the ability
to choose mods for test play, but that will be done in a saner way.
Closes #15870 .
2021-12-10 18:57:45 +09:00
Dean Herbert
f7c5a3f506
Use similar method of consuming OnlineID
as done in beatmap classes
2021-12-10 18:34:31 +09:00
Dan Balasescu
e98060ac37
Remove unused using
2021-12-10 17:55:18 +09:00
Dean Herbert
970a9ae074
Add update thread asserts to RoomManager
methods
2021-12-10 17:22:24 +09:00
Dean Herbert
3633494509
Merge pull request #16020 from smoogipoo/host-enqueue-2
...
Add support for enqueueing items in host-only mode, and changing arbitrary playlist items
2021-12-10 16:23:48 +09:00
Dean Herbert
dbb08f7d46
Use OnlineID
for set operations
2021-12-10 16:11:48 +09:00
Dean Herbert
bf1418bafc
Use OnlineID
instead of legacy IDs for equality and lookups
2021-12-10 16:11:48 +09:00
Dan Balasescu
4e6286920c
Merge pull request #16017 from peppy/fix-child-set-after-disposal
...
Fix potential crash due to children being mutated after disposal
2021-12-10 15:38:34 +09:00
Dan Balasescu
de0f37b08d
Separate editing and adding playlist items
2021-12-10 15:26:48 +09:00
Dean Herbert
88670c3b01
Document OpenSongSelection
and mark null param
2021-12-10 14:14:22 +09:00
Dean Herbert
50bf2f368d
Merge branch 'master' into host-enqueue-2
2021-12-10 14:09:19 +09:00
Dean Herbert
9ac8e6c81c
Add missing null check before attempting to populate bpm info
2021-12-10 13:53:48 +09:00
Dean Herbert
612f47bb9f
Add the ability to create playlists of 2 weeks ~ 3 months in duration
2021-12-10 13:45:29 +09:00
Dean Herbert
1952819db2
Merge pull request #16019 from smoogipoo/cleanup-playlist-item-buttons
...
Cleanup duplicated classes in DrawableRoomPlaylistItem
2021-12-10 12:01:26 +09:00
Dan Balasescu
35a208a478
Merge pull request #15999 from peppy/restore-user-volume-muted-notification
...
Fix the unmute notification potentially overwriting user's volume levels unnecessarily
2021-12-10 02:58:59 +09:00
Dan Balasescu
671582a925
Allow host to enqeue items and items to be edited
2021-12-10 01:15:19 +09:00
Dan Balasescu
048a495115
Add edit button to DrawableRoomPlaylistItem
2021-12-10 01:08:54 +09:00
Dan Balasescu
05aa9635a8
Privatise button again
2021-12-10 00:38:18 +09:00
Dan Balasescu
f9af239ed9
Cleanup duplicated classes in DrawableRoomPlaylistItem
2021-12-09 23:56:49 +09:00
Dean Herbert
538a822760
Merge branch 'master' into multiplayer-playlist-deletion
2021-12-09 19:04:06 +09:00
Dean Herbert
a3b53ac2f6
Change comparison to match in all locations
2021-12-09 18:58:47 +09:00
Dean Herbert
b393f83028
Merge pull request #16009 from smoogipoo/cleanup-drawable-playlist
...
Cleanup DrawableRoomPlaylist and DrawableRoomPlaylistItem
2021-12-09 18:54:16 +09:00
Dean Herbert
e7e61cd9ab
Fix potential crash due to children being mutated after disposal
...
This is a bit of an unfortunate edge case where the unbind-on-disposal
doesn't help, since the binding is happening in BDL, and the usage is in
a nested `LoadComponentAsync` call. Combine those and you have a recipe
for disaster.
2021-12-09 18:52:00 +09:00
Dean Herbert
dfe19f3509
Minor code reformatting
2021-12-09 17:53:40 +09:00
Dan Balasescu
0963b00453
Disallow item selection in playlists song select
2021-12-09 17:33:59 +09:00
Dan Balasescu
17d676200b
Xmldoc fixes from code review
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-12-09 17:33:36 +09:00
Dan Balasescu
1a0945daba
Siplify condition, allow host to always remove items
2021-12-09 14:33:50 +09:00
Dan Balasescu
8398f86440
Don't consider expired items in visibility check
2021-12-09 04:02:16 +09:00
Dan Balasescu
c34c580ad4
Add client-side + interface implementation
2021-12-09 03:08:59 +09:00
Dan Balasescu
23332995d1
Invert naming of exposed actions
2021-12-09 01:52:59 +09:00
Dan Balasescu
273042aa16
Add virtual method for creating different DrawablePlaylistItem types
2021-12-09 01:49:34 +09:00
Dan Balasescu
3b4833ca8e
A bit of cleanup + xmldocs on classes/members
2021-12-09 01:40:16 +09:00
Dan Balasescu
be2dbf42c3
Flatten DrawableRoomPlaylistWithResults into base class
2021-12-09 01:40:16 +09:00
Dan Balasescu
26f6c5e5a5
Remove ctor params from PlaylistsRoomPlaylist
2021-12-09 01:16:37 +09:00
Dan Balasescu
3be4d8b68d
Remove ctor params from DrawableRoomPlaylist/DrawablePlaylistItem
2021-12-09 01:04:56 +09:00
Dean Herbert
8d9c37a825
Merge branch 'master' into primary-key-consistency
2021-12-08 21:34:38 +09:00
Dan Balasescu
beb5d61a42
Separate playlist item deletion to Playlists-specific class
2021-12-08 20:50:25 +09:00
Dan Balasescu
65a09692da
Merge pull request #16001 from peppy/fix-own-rank-results-panel-in-multiplayer
...
Fix the local user's rank not showing on multiplayer/playlist results screen
2021-12-08 16:34:36 +09:00
Dean Herbert
872e0884c0
Fix the local user's rank not showing on multiplayer/playlist results screen
...
Applying the simple solution for now. Not sure how this will evolve over
time, but seems sane enough.
2021-12-08 15:22:10 +09:00
Dean Herbert
6ec3f41839
Fix LegacyComboCounter
not handling non-default anchor/origin specifications correctly
2021-12-08 15:07:15 +09:00
Dean Herbert
0775053a18
Fix the unmute notification potentially overwriting user's volume levels unnecessarily
...
I've also changed the cutoffs to 5% rather than zero, as this seems like
a saner method of showing this dialog. With levels 5% or less, the game
is basically inaudible.
Arguably, the cutoff can be increased to 10%.
2021-12-08 13:38:43 +09:00
Bartłomiej Dach
10dd64e07c
Fix being able to paste objects while composer is loading
...
Would lead to exceptions due to modification of `Beatmap.HitObjects`
during its enumeration by `DrawableRuleset`, which was happening as an
async load via `EditorScreenWithTimeline.CreateMainContent()`.
2021-12-07 21:00:25 +01:00
Dan Balasescu
86eacfdbd8
Merge pull request #15879 from peppy/multiplayer-delayed-playlist-load-broken
...
Load playlist panels on demand to reduce initial load time when joining a room
2021-12-08 00:42:20 +09:00
Dean Herbert
d6e68feadc
Merge pull request #15948 from bdach/beatmap-card/difficulty-dropdown
...
Add difficulty dropdown to beatmap card
2021-12-07 23:40:06 +09:00
Dan Balasescu
7e236c3a41
Remove unused dependency
2021-12-07 23:36:48 +09:00
Dan Balasescu
52230a6f00
Merge branch 'master' into multiplayer-delayed-playlist-load-broken
2021-12-07 22:45:05 +09:00
Dean Herbert
a8c20368c0
Merge pull request #15976 from smoogipoo/add-modes-to-room-panels
...
Add match type and queue mode to multiplayer room panels
2021-12-07 22:08:30 +09:00
Dan Balasescu
4683193f09
Move implementation to base class
2021-12-07 20:36:39 +09:00
Dan Balasescu
5ffe702dd6
Add match type and queue mode to multiplayer room panels
2021-12-07 18:57:13 +09:00
Dean Herbert
dea7f2308c
Fix participant panels potentially keeping a reference to an old user
...
If a user leave and then rejoins a multiplayer match while another user
is not at the lobby screen, there is a potential the `ParticipantPanel`
tracking the user will not correctly be recreated to reference the new
instance of the `MultiplayerUser`.
This happens because the `OnRoomUpdated` call is scheduled, which means
it is not running in the background, coupled with the local logic that
relies on `IEquatable(MultiplayerRoomUser)` (which in turn falls back to
a UserID comparison).
Changing this to a reference comparison is the easiest way to resolve
this. Whether we change the `IEquatable` implementation is up for
discussion.
Closes https://github.com/ppy/osu/issues/15970 .
2021-12-07 17:24:04 +09:00
Dean Herbert
0ea7a69084
Ensure user is returned to the RoomSubScreen
before gameplay is started
...
This covers the scenario where a user may be at the song select screen
while another user (the room host) starts the match. This was only made
possible with the new queue modes, so is quite a recent regression.
2021-12-06 14:03:52 +09:00
Dean Herbert
a76cfbea21
Add test coverage of incorrect beatmap being used in multiplayer when match started from song select
2021-12-06 14:03:33 +09:00
Bartłomiej Dach
af35652b8b
Disable beatmap card expansion on solo spectator screen
2021-12-05 20:07:58 +01:00
Dean Herbert
e1897f9998
Don't debounce MultiplayerRoomComposite
events
...
This avoids accidental usage which could result in data being lost or
ignored (as only the last `user` in a single frame would arrive).
This was added specifically to debounce sample playback, but given that
it's only debouncing on a single frame (hardly noticeable) I'm not going
to add back support for that yet. It should be handled by sample
playback concurrency or something more local to the usage.
2021-12-05 01:38:39 +09:00
Bartłomiej Dach
38702beabf
Merge branch 'master' into i-ruleset-store
2021-12-04 15:05:39 +01:00
Bartłomiej Dach
53a6ef22ce
Add null check to resolve inspection
2021-12-04 14:55:35 +01:00
Bartłomiej Dach
b3b239c9a1
Fix test failures due to beatmap lookup logic being active even when model is populated
2021-12-04 13:59:01 +01:00
Dean Herbert
517a344bcc
Merge branch 'master' into new-multiplayer-playlist
2021-12-04 13:16:09 +09:00
Dan Balasescu
d5803e541b
Give playlist items a PlayedAt date
2021-12-03 20:25:51 +09:00
Dan Balasescu
4145a16d5b
Merge pull request #15920 from peppy/clean-up-unused-resolves
...
Clean up unused resolved properties
2021-12-03 20:08:48 +09:00
Dean Herbert
1eed2436e6
Clean up unused resolved properties
2021-12-03 18:49:49 +09:00
Dean Herbert
2acf46154a
Remove many unused resolutions of RulesetStore
2021-12-03 18:16:29 +09:00
Dean Herbert
e75e209053
Cache and consume IRulesetStore
where feasible
2021-12-03 18:16:01 +09:00
Dean Herbert
6b73672403
Stop Player
from blocking volume adjust when Alt
it held
...
Similar case to what we already have in `OsuScrollContainer`, so there
is precedent for handling this locally in this fashion.
2021-12-03 17:18:07 +09:00
Dan Balasescu
487a71312e
Split out code so base methods aren't called
2021-12-03 16:40:20 +09:00
Dan Balasescu
0a1304b92a
Remove gameplay_order, use existing playlist_order
2021-12-03 15:45:13 +09:00
Dan Balasescu
b75a5b778e
Update history list to also sort by gameplay order
2021-12-03 15:05:56 +09:00
Dan Balasescu
933fd49cff
Fix missed callbacks due to AddOnce() schedules
2021-12-02 22:33:14 +09:00
Dan Balasescu
9760a2b087
Update MultiplayerQueueList to take advantage of GameplayOrder
2021-12-02 22:33:14 +09:00
Dean Herbert
512818648f
Add some more breathing room between tab control and queue content
2021-12-02 16:56:30 +09:00
Dean Herbert
a8e17cb3a5
Add relative size specs so partially on-screen panels still start loading
...
Without this, panels at the top of the list but not fully on-screen
wouldn't begin their metadata loading process.
2021-12-01 22:46:38 +09:00
Dean Herbert
d262baefad
Only query for the owner user metadata in the case it is actually required
2021-12-01 22:43:32 +09:00
Dean Herbert
a0ff86f5e8
Ensure all read and write operations on APIRoom
are done on the update thread
2021-12-01 22:43:03 +09:00
Dan Balasescu
e5e2ae8ab4
Fix dangling line post-rebase
2021-12-01 21:36:25 +09:00
Dan Balasescu
e87b0003fb
Fix queue mode not being bound to in all cases
2021-12-01 21:35:23 +09:00
Dan Balasescu
ad35f3434b
Fix queue list not considering expired items
2021-12-01 21:35:23 +09:00
Dan Balasescu
e2f289eeff
Xmldocs
2021-12-01 21:35:23 +09:00
Dan Balasescu
93a7726f4a
Remove now-unused parameter
2021-12-01 21:35:23 +09:00
Dan Balasescu
d70355237d
Fix selected item not bound
2021-12-01 21:35:23 +09:00
Dan Balasescu
c3dfe10a8a
Add new list to match subscreen
2021-12-01 21:35:22 +09:00
Dan Balasescu
1152c4e8e9
Fix tests
2021-12-01 21:35:22 +09:00
Dan Balasescu
7847ce6253
Redesign with tab control
2021-12-01 21:35:22 +09:00
Dan Balasescu
95050d6597
Extract class to file
2021-12-01 21:35:22 +09:00
Dan Balasescu
fc8c8685b8
Add playlist queue tests
2021-12-01 21:35:22 +09:00
Dan Balasescu
e0ca1af9b8
Remove ctor params
2021-12-01 21:35:22 +09:00
Dan Balasescu
bfd2dc28c8
Rename QueueList -> MultiplayerQueueList
2021-12-01 21:35:22 +09:00
Dan Balasescu
6b198ce112
Document simulation
2021-12-01 21:35:22 +09:00
Dan Balasescu
ef170471f0
Merge branch 'master' into new-multiplayer-playlist
2021-12-01 21:35:22 +09:00
Dan Balasescu
9806c75743
Implement better round robin algorithm
2021-12-01 21:35:12 +09:00
Dan Balasescu
68bb49fc1e
Add QueueList tests
2021-12-01 21:33:48 +09:00
Dan Balasescu
0cb35e8b18
Separate out QueueList
2021-12-01 21:33:48 +09:00
Dan Balasescu
17bc0b51aa
Merge branch 'playlist-item-add-owner' into new-multiplayer-playlist
2021-12-01 21:33:48 +09:00
Dan Balasescu
942e48ffbd
Merge branch 'master' into new-multiplayer-playlist
2021-12-01 21:33:11 +09:00