Dean Herbert
6bfe973fe5
Update framework
2021-12-17 13:44:52 +09:00
Bartłomiej Dach
54790bb758
Merge branch 'master' into fix-realm-post-storage-migration-failure
2021-12-17 00:19:46 +01:00
Salman Ahmed
9a22a082ca
Merge branch 'master' into master
2021-12-16 16:58:24 +03:00
Dean Herbert
eecb1ce9f5
Avoid applying mouse down effects to menu cursor when it isn't visible
...
Closes #16114 .
2021-12-16 20:20:06 +09:00
Dean Herbert
434aa0367f
Add back .ToLocalTime()
call to DrawableDate
...
This is required because the class is used in many other places that
don't locally call it.
2021-12-16 18:25:29 +09:00
Dean Herbert
0eac655cff
Remove local screen change logging
2021-12-16 18:21:48 +09:00
Dean Herbert
aa0813ff05
Merge pull request #16109 from smoogipoo/chat-overlay-multiplayer-removal
...
Don't show multiplayer channels in chat overlay
2021-12-16 17:39:45 +09:00
Dan Balasescu
3f1d747b7a
Merge pull request #16090 from peppy/fix-scroll-speed-toast-sample-spam
...
Fix toast popups spamming samples when adjusting osu!mania scroll speed during gameplay
2021-12-16 17:31:36 +09:00
Dan Balasescu
488374b4a2
Don't show multiplayer channels in chat overlay
2021-12-16 16:41:47 +09:00
Dean Herbert
a9dbcd92a1
Split out unmanaged implementation of RealmLive
into its own class
2021-12-16 15:23:55 +09:00
Imad Dodin
b3e83a47a4
Convert to Local Time in Date Tooltip
2021-12-15 21:36:35 -08:00
Dean Herbert
e6e1366c28
Merge pull request #16094 from peppy/beatmap-card-expanded-state-fix
...
Fix beatmap card potentially collapsing when it shouldn't
2021-12-16 14:13:47 +09:00
Dean Herbert
0ec1e1e2d5
Merge pull request #16091 from MyDogsEd/fix-issue-#15869
...
Fix the taiko scroller bar appearing during cinema mod
2021-12-16 12:05:00 +09:00
Bartłomiej Dach
cbb65e1e07
Merge branch 'master' into beatmap-card-expanded-state-fix
2021-12-15 22:20:30 +01:00
Dean Herbert
cd8dfac625
Merge pull request #16097 from smoogipoo/forego-resetting-spectate-state
...
Don't reset spectating state if spectator exited after gameplay finishes
2021-12-15 22:30:41 +09:00
Dean Herbert
33cf4ba7f6
Merge pull request #16075 from smoogipoo/prevent-idle-transition-during-load
...
Add AbortGameplay() to fix state transition race conditions during multiplayer load
2021-12-15 19:59:19 +09:00
Dan Balasescu
4c53ec12e9
Merge branch 'master' into forego-resetting-spectate-state
2021-12-15 18:47:47 +09:00
Dean Herbert
2025183f5a
Merge pull request #15990 from Susko3/number-textbox-only-numbers
...
Fix `SettingsNumberBox` accepting non-number characters
2021-12-15 18:39:54 +09:00
Dean Herbert
9e82a3e79a
Merge branch 'master' into forego-resetting-spectate-state
2021-12-15 18:05:06 +09:00
Dan Balasescu
18d7b79207
Don't reset spectating state if gameplay is finished
2021-12-15 17:40:30 +09:00
Susko3
643cee4f83
Merge branch 'master' into number-textbox-only-numbers
2021-12-15 09:13:19 +01:00
Dean Herbert
694ee68725
Update resources
2021-12-15 16:59:33 +09:00
Dan Balasescu
740a6f16c7
Fix exception when updating the room's visual playlist
2021-12-15 16:53:25 +09:00
Dean Herbert
42f14667a3
Update framework
2021-12-15 16:50:55 +09:00
Dean Herbert
ad430a6277
Centralise hover state handling (and fix back-to-front conditionals)
2021-12-15 16:44:58 +09:00
Dean Herbert
6a1f535257
Refactor cancellation of expand to be more explicit
2021-12-15 16:38:19 +09:00
Dean Herbert
94d1a2aaca
Remove unnecessary collapse call from BeatmapCard
...
This is already handled at the `BeatmapCardContent` level. This call
actually causes the buggy behaviour reported in
https://github.com/ppy/osu/discussions/16085 .
2021-12-15 16:37:47 +09:00
Dean Herbert
7a9db22c52
Tidy up method naming and structure for expanded state changes
2021-12-15 16:29:12 +09:00
Dean Herbert
ef4ab74565
Also only expose Expanded
state of BeatmapCard
as read-only
2021-12-15 16:26:19 +09:00
Dean Herbert
41e6c24dad
Expose Expanded
state of BeatmapCardContent
as read-only bindable
...
This is just to reduce complexity of these interactions by ensuring that
the expanded state can only be changed by the class itself.
2021-12-15 16:26:19 +09:00
Susko3
b326ccc196
Move logic to framework and update all usages
2021-12-15 07:13:24 +01:00
JamesTheGeek
828072bcea
Fix issue #15869
...
The taiko-slider is not included in `Playfield`, so it doesn't get hidden when calling `drawableRuleSet.Playfield.Hide()`. Calling `drawableRuleSet.Hide()` hides the taiko-slider, in addition to the rest of the `Playfield`.
2021-12-14 23:23:11 -05:00
Dean Herbert
0c11fe7413
Fix toast popups spamming samples when adjusting osu!mania scroll speed during gameplay
...
Not the most robust of fixes, but as per the reasoning described in the
issue thread, a proper fix will take considerably more effort. This
intends to fix the issue first and foremost, as it sounds so bad I'd
want to mute my sound before adjusting currently.
Closes #15718 .
2021-12-15 12:45:23 +09:00
Dean Herbert
9d85beddbe
Fix null reference in some tests due to missing realm context factory
2021-12-15 11:16:37 +09:00
Dan Balasescu
2cea39a92a
Merge pull request #16083 from peppy/fix-online-availability-after-reimport
...
Fix `OnlinePlayBeatmapAvailabilityTracker` failng after modified reimport of existing beatmap
2021-12-15 08:31:02 +09:00
Dan Balasescu
ee6f125948
Merge pull request #15967 from tbrose/chat-mention-fix
...
Check word boundaries during username mention matching
2021-12-15 08:04:39 +09:00
Dan Balasescu
9ade8069a1
Rename to AbortGameplay() and handle additional states
2021-12-15 06:40:28 +09:00
Dan Balasescu
4c81fd8b7c
Merge pull request #16068 from peppy/fix-fail-animation-background-dim
...
Improve appearance of player-wide background after failing with low background dim
2021-12-15 06:32:02 +09:00
Bartłomiej Dach
00154fe86d
Merge branch 'master' into fix-menu-background-desync
2021-12-14 21:31:10 +01:00
tbrose
a831744f05
Merge remote-tracking branch 'origin/chat-mention-fix' into chat-mention-fix
2021-12-14 16:24:05 +01:00
tbrose
8e79fac389
Fixes code quality check failed
2021-12-14 16:23:51 +01:00
Dean Herbert
453ecd21b3
Fix OnlinePlayBeatmapAvailabilityTracker
potentially in incorrect state
...
Adter an import of a modified version of a beatmap (that was already
present in the local database), it's feasible that one of these trackers
would not see the state change due to the nuances of the import process.
2021-12-14 19:16:11 +09:00
Dean Herbert
04551ea61e
Merge pull request #16080 from smoogipoo/fix-storyboard-start-time
...
Fix incorrect storyboard life time start with looping commands
2021-12-14 18:33:56 +09:00
Dean Herbert
cebfeb5220
Merge pull request #16045 from smoogipoo/multiplayer-local-beatmap-query
...
Rework multiplayer's current item tracking
2021-12-14 18:33:30 +09:00
Dean Herbert
79dd9674fc
Use longer form to read better
...
Using `l.StartTime` reads like a coding issue, even though if you go
down the call chain looks to be correct.
2021-12-14 17:41:09 +09:00
Dean Herbert
8c6f50ddb1
Fix BackgroundScreenDefault
incorrectly updating current background after being inactive
...
If the beatmap was changed but then reverted to the previously displayed
map, the background may have displayed incorrectly on resuming.
Closes #15804 .
2021-12-14 16:40:50 +09:00
Dean Herbert
b6a272e31a
Add failing test coverage of BackgroundScreeNDefault
's beatmap background tracking when active/non-active
2021-12-14 16:40:34 +09:00
Dean Herbert
441b7baa93
Provide a realm factory to usages of ToLive
/RealmLive
2021-12-14 14:26:34 +09:00
Dean Herbert
f9a2db5ec6
Add accessibility to realm factory via IStorageResourceProvider
...
We might need to rename this class..
2021-12-14 14:19:49 +09:00
Dean Herbert
7e576ae9d3
Add note about how the background colour is restored
2021-12-14 13:25:19 +09:00
Dan Balasescu
357a661379
Fix storyboard sprites sometimes starting too early
2021-12-14 13:13:12 +09:00
Dan Balasescu
51b6b9d857
Merge branch 'master' into chat-mention-fix
2021-12-14 11:49:57 +09:00
Dan Balasescu
750bfae909
Fix TestMultiplayerClient not handling all users bailing from gameplay
2021-12-14 11:35:56 +09:00
Dan Balasescu
2f1dc91211
Add AbortLoad() method to abort gameplay loads
2021-12-14 11:30:42 +09:00
Dean Herbert
a076eda834
Merge pull request #16062 from smoogipoo/retry-score-submission-timeout
...
Increase score submission timeout
2021-12-14 11:03:20 +09:00
Dan Balasescu
419a34e7b4
Merge branch 'master' into test-score-refactoring
2021-12-14 07:30:06 +09:00
Dan Balasescu
7564658b5e
Reduce to 30s
2021-12-14 06:40:45 +09:00
Dean Herbert
b0d14526ea
Move test ScoreInfo
creation to TestResources
...
The main goal here is to remove the inheritance, since realm doesn't
like that. Unfortunate that we can't use object initialisers in a few of
these places, but no real way around that.
2021-12-13 16:34:50 +09:00
Dan Balasescu
70045494ba
Re-simplify code by removing BeatmapManager event instead
2021-12-13 16:09:54 +09:00
Dean Herbert
7318ff3f98
Refactor KeyBindingStore
to clean up any excess bindings for individual actions
...
While this isn't strictly required (outside of rulesets, potentially),
I think it's best that we keep these counts in a sane state.
Right now, it will remove any excess. Arguably, in the case an entry is
found with too many, we should wipe all entries and re-populate the
defaults. Interested in opinions on that before merging. See
https://github.com/ppy/osu/discussions/15925 for an example where wiping
may be the more appropriate behaviour.
2021-12-13 15:26:51 +09:00
Dean Herbert
cac684c044
Improve appearance of player-wide background after failing with low background dim
2021-12-13 14:53:11 +09:00
Dean Herbert
c097dc8048
Add note about reasoning behind MultiplayerClient.GetAPIBeatmap
call
2021-12-13 13:39:32 +09:00
Dean Herbert
3ea07b426b
Merge branch 'master' into multiplayer-local-beatmap-query
2021-12-13 13:27:34 +09:00
Dean Herbert
c375c87094
Merge pull request #16065 from frenzibyte/reorder-version-overlay
...
Display game version overlay behind the overlays layer
2021-12-13 13:25:30 +09:00
Salman Ahmed
d0fbbf110b
Expose ScreenContainer
for access in OsuGameDesktop
2021-12-13 06:52:36 +03:00
Dan Balasescu
fd979a52fe
Increase score submission request timeout to 60s
2021-12-13 07:15:21 +09:00
Dan Balasescu
2cd2b10ce1
Fix results sometimes showing incorrect score position
2021-12-13 06:54:57 +09:00
Dan Balasescu
bf3abb2455
Merge branch 'master' into multiplayer-local-beatmap-query
2021-12-12 16:37:41 +09:00
Dan Balasescu
a6e77f172d
Add some comments
2021-12-12 16:30:37 +09:00
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
Salman Ahmed
3a4266bd5e
Merge branch 'master' into update-framework
2021-12-10 17:50:33 +03: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
3b899af061
Update libraries
2021-12-10 18:46:47 +09:00
Dean Herbert
f7c5a3f506
Use similar method of consuming OnlineID
as done in beatmap classes
2021-12-10 18:34:31 +09:00
Dean Herbert
c9f6c5c673
Add MatchesOnlineID
implementation for IScoreInfo
2021-12-10 18:34:31 +09:00
Dean Herbert
5f6e887be7
Remove OnlineID
comparison from ScoreInfo.Equals
...
This matches the implementation we have for `BeatmapInfo` and
`BeatmapSetInfo`. All comparisons of `OnlineID` should be done directly
using them (ie. how it's done in `ScoreModelDownloader`).
2021-12-10 18:17:43 +09:00
Dan Balasescu
e98060ac37
Remove unused using
2021-12-10 17:55:18 +09:00
Dean Herbert
73227c084e
Update framework
2021-12-10 17:42:40 +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
c6d0d6451d
Change IScoreInfo.User
to an interface type
2021-12-10 16:11:49 +09:00
Dean Herbert
bff02bedbf
Rename APIScoreInfo
to APIScore
2021-12-10 16:11:49 +09:00
Dean Herbert
dbb08f7d46
Use OnlineID
for set operations
2021-12-10 16:11:48 +09:00
Dean Herbert
7ac63485ef
Add setter for ScoreInfo.OnlineID
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
4d1c06c061
Add support for host enqueueing in TestMultiplayerClient
2021-12-10 01:03:36 +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
Bartłomiej Dach
083ee92dee
Adjust button vertical padding
2021-12-08 22:56:28 +01:00
Bartłomiej Dach
2d739c95ea
Lay out extra card statistics in grid as per design
2021-12-08 22:56:28 +01:00
Bartłomiej Dach
3ecfaa532c
Add source field to extra beatmap card
2021-12-08 22:56:28 +01:00
Bartłomiej Dach
419fee1380
Move mapper link to bottom content
2021-12-08 22:54:11 +01:00
Bartłomiej Dach
61e04f75cc
Resize extra card to design size
2021-12-08 22:54:10 +01:00
Bartłomiej Dach
a32492cdd5
Duplicate BeatmapCard{-> Extra}
as blueprint for extra card size
2021-12-08 22:53:51 +01:00
Dan Balasescu
80b2768a5f
Mirror recent server-side changes
2021-12-09 04:18:54 +09:00
Dan Balasescu
4df2047a58
Prevent removal of expired items in TestMultiplayerClient
2021-12-09 04:12:24 +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
ce081c4acc
Fix missing propagation of OwnerId in tests
2021-12-09 02:01:17 +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
Dean Herbert
8fa73fcbf6
Move helper method to end of class
2021-12-08 18:30:08 +09:00
Susko3
de89e321c8
Add sounds for IME composition
2021-12-08 09:57:53 +01:00
Susko3
af1e97b7c7
Move playing text added samples to private helper and fix it never playing the last sample
...
`RNG.Next` is exclusive of the upper bound, meaning that the last sample would never be played.
2021-12-08 09:49:36 +01: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
Dean Herbert
2e640ff2ad
Merge pull request #15989 from bdach/fix-editor-clipboard-test-failure
...
Fix editor crashing if paste is performed while composer is loading
2021-12-08 11:18:59 +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
Susko3
0b0ff36154
Allow only number characters parseable by int.TryParse
...
char.IsNumber() is too broad, allowing full width and other numbers.
2021-12-07 20:06:22 +01:00
Bartłomiej Dach
8b7ed759e3
Merge branch 'master' into beatmap-card/scale-on-hover
2021-12-07 19:11:01 +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
25a0505c97
Scale card when expanding to better distinguish hovered card from other cards in listing
2021-12-07 23:48:14 +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
9978caab12
Update framework
2021-12-07 18:37:30 +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
cfa712473d
Use default timeout in GetPlayableBeatmap
when provided CancellationToken
is default
2021-12-07 13:33:41 +09:00
Dean Herbert
f3e9fb76fc
Add the ability to pass a CancellationToken
through DifficultyCalculator.CalculateAll
...
Was weirdly missing from this one method.
2021-12-07 13:32:47 +09:00
tbrose
882223b27f
Using static call and verbatim symbol and optimizes regex pattern for username check
2021-12-07 02:38:10 +01:00
tbrose
b6d47a41f4
Adjusted RegEx pattern to also take special characters into account
2021-12-07 02:14:40 +01:00
Salman Ahmed
974987550f
Move API request response size log to correct logging target
2021-12-07 04:01:56 +03:00
tbrose
7a0d4fca17
Fixes using Matches+Count instead of IsMatch negatively affecting performance
2021-12-07 01:41:21 +01:00
tbrose
f02e44d552
Fixes not matching coding style
2021-12-07 01:38:48 +01:00
tbrose
39594b7362
Fixes detection of mentioning of user falsely detects messages where the username is coincidentally contained in words of a message.
2021-12-06 23:32:21 +01:00
tbrose
0a6c221de4
Adds tests for checkContainsUsername function of MessageNotifier component
2021-12-06 22:07:47 +01:00
Bartłomiej Dach
999bba439f
Clarify usages of reverse child ID flow with inline comments
2021-12-06 21:02:40 +01:00
Bartłomiej Dach
82ed8eae6b
Ensure hover handling container always calls base on hover events
2021-12-06 21:02:40 +01:00
Bartłomiej Dach
ccfc361626
Apply naming suggestions
2021-12-06 21:02:38 +01:00
Bartłomiej Dach
4278a320e4
Fix skin setting resetting every launch
...
The reason this was happening was an unfortunate oversight in the
migration logic. The code that was attempting to parse the skin settings
as `int` was firing regardless of whether a skin migration from EF to
realm had already occurred. If it had occurred, the skin setting would
contain a GUID rather than an integer, and therefore fail to parse, and
therefore implicitly fallback to a EF skin ID of 0 which would be the
default skin.
Fix by not running the setting migrating logic at all when there are no
EF skins to migrate.
2021-12-06 20:12:02 +01:00
Dan Balasescu
d5cdb1bb87
Update test multiplayer client implementation
2021-12-07 00:01:07 +09:00
Dean Herbert
3e27859e4f
Update framework
2021-12-06 22:47:07 +09:00
Dan Balasescu
7ef960839b
Merge pull request #15898 from peppy/skin-export-instntiation-info
...
Serialise and deserialise `SkinInfo.InstantiationInfo` to allow for more correct imports
2021-12-06 22:08:20 +09:00
Dean Herbert
9033169177
Merge pull request #15951 from peppy/fix-failing-recorder-tests-w
...
Fix intermittent test failures in scenes using `SpectatorClient`
2021-12-06 18:40:27 +09:00
Dean Herbert
07abcf04b4
Merge branch 'master' into realm-integration/skins-filename-lookup-performance
2021-12-06 17:13:33 +09:00
Dean Herbert
68b482fc48
Merge branch 'master' into skin-export-instntiation-info
2021-12-06 17:12:42 +09:00
Dean Herbert
cf34b3f70e
Merge pull request #15859 from peppy/realm-integration/skins-rebase
...
Use realm for skins
2021-12-06 17:12:23 +09:00
Dean Herbert
7a333ffdcc
Add a paired schedule in SpectatorClient.BeginPlaying
...
Optimally, I would like to remove the `Schedule` in `EndPlaying`, but it
turns out quite a few test are relying on this at very least. Adding a
paired schedule ensure that order of operations is correct, at least.
2021-12-06 17:07:19 +09:00
Dan Balasescu
310e503b85
Merge pull request #15950 from peppy/fix-incorrect-match-current-beatmap
...
Ensure user is returned to the `RoomSubScreen` before gameplay is started
2021-12-06 16:34:46 +09:00
Dan Balasescu
991becdfa7
Merge branch 'master' into realm-integration/skins-rebase
2021-12-06 16:34:31 +09:00
Dean Herbert
a13067eaa4
Merge pull request #15929 from smoogipoo/update-test-multiplayer-client
...
Update test multiplayer client to match server implementation
2021-12-06 15:57:08 +09:00
Dean Herbert
452fa93444
Merge branch 'master' into realm-integration/skins-rebase
2021-12-06 15:21:02 +09:00
Dan Balasescu
fae41b2182
Remove one more piece of code
2021-12-06 15:17:33 +09:00
Dan Balasescu
5be74af8fe
Update addItem() implementation
2021-12-06 15:09:06 +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
Dean Herbert
ca1f96d2c2
Reword xmldoc of MultiplayerPlaylistItem.PlaylistOrder
to better match actual behaviour
2021-12-06 13:03:14 +09:00
Dean Herbert
5ff452cc9a
Update success bool to access Exception
to stop exceptions from firing outwards
2021-12-06 12:29:11 +09:00
Dean Herbert
91aa38c4f6
Change playlist lookup to fail hard when failing
2021-12-06 12:28:48 +09:00
Bartłomiej Dach
0f74389389
Add scrolling for long difficulty lists in beatmap card
2021-12-05 20:17:59 +01:00
Bartłomiej Dach
af35652b8b
Disable beatmap card expansion on solo spectator screen
2021-12-05 20:07:58 +01:00
Bartłomiej Dach
af10223ac4
Add reverse fill flows & depth specs at usage sites for correct Z-ordering
2021-12-05 20:07:46 +01:00
Bartłomiej Dach
e451e43b90
Implement input handling behaviour of beatmap card dropdown
2021-12-05 16:31:45 +01:00
Bartłomiej Dach
250e5b47b7
Move "extra info" beatmap card row to separate component
2021-12-05 15:52:19 +01:00
Bartłomiej Dach
3fea8d5e62
Implement visual behaviour of expanded card state
2021-12-05 15:48:02 +01:00
Bartłomiej Dach
a07f8c74dc
Add basic structure for composable card dropdown
2021-12-05 15:26:37 +01:00
ColdVolcano
81215b9f0e
Use correct effect points when EarlyActivationMilliseconds is not zero
2021-12-04 22:31:55 -06:00
Bartłomiej Dach
504210a6cd
Merge branch 'master' into multiplayer-room-composite-event-debounce-fix
2021-12-04 17:50:32 +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
f051720fa1
Fix score encoder being dependent on current culture
...
As it turns out, on some cultures, the "negative integer" sign is not
encoded using the U+002D HYPHEN-MINUS codepoint. For instance, Swedish
uses U+2212 MINUS SIGN instead. This was confusing the legacy decoder,
since it is correctly depending on the serialisation being
culture-independent.
To fix, ensure that the special "end replay" frame, as well as the
replay MD5 hash, are generated in a culture-invariant manner.
Thankfully the replay MD5 hash is currently being discarded in
`LegacyScoreDecoder`, so it changing in future scores should not have
any negative effect on lazer operation.
2021-12-04 17:13:43 +01: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
Dan Balasescu
85d3b70d8c
Update test multiplayer client to match server-side
2021-12-04 22:34:38 +09: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
f4e07f1483
Merge branch 'master' into diffcalc-cli-arg
2021-12-03 20:34:59 +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
Dan Balasescu
e350c68b5f
Merge pull request #15918 from peppy/volume-adjust-during-gameplay-alt-exception
...
Fix alt-scroll not adjusting volume in gameplay when scroll wheel is disabled
2021-12-03 19:09:20 +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
15db1372aa
Add missing equality implementations on IRulesetInfo
2021-12-03 18:01:45 +09:00
Dean Herbert
675ecb603f
Add IRulesetStore
to allow for transitional usage in upcoming manager classes
2021-12-03 17:57:40 +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
Dean Herbert
aaa46960b3
Reword mouse wheel disable setting to better explain its purpose
2021-12-03 17:18:07 +09:00
Dan Balasescu
9d6fe558c2
Update TestMultiplayerClient with expired item ordering
2021-12-03 17:01:33 +09:00
Dan Balasescu
487a71312e
Split out code so base methods aren't called
2021-12-03 16:40:20 +09:00
Dean Herbert
e4b296e16e
Use OptIn
serialisation on SkinInfo
to avoid writing unnecessary information
2021-12-03 16:36:27 +09:00
Dean Herbert
dad5b06e84
Avoid sending empty parameters in GetBeatmapRequest
2021-12-03 16:23:39 +09:00
Dan Balasescu
0a1304b92a
Remove gameplay_order, use existing playlist_order
2021-12-03 15:45:13 +09:00
Dean Herbert
9c717ce7ec
Merge branch 'master' into diffcalc-cli-arg
2021-12-03 15:10:55 +09:00
Dan Balasescu
b75a5b778e
Update history list to also sort by gameplay order
2021-12-03 15:05:56 +09:00
Dan Balasescu
1d2d1bfcf3
Add UpdatedAt to MultiplayerPlaylistItem
2021-12-03 15:05:56 +09:00
Dean Herbert
9803e63e6f
Update IPC usage to return null
2021-12-03 14:30:15 +09:00
Dean Herbert
6142566974
Update resources
2021-12-03 14:26:53 +09:00
Dean Herbert
abf7735b84
Update framework
2021-12-03 14:18:03 +09:00
Dan Balasescu
806ca5d4de
Update TestMultiplayerClient implementation to match server
2021-12-02 22:58:12 +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
Dan Balasescu
ba8af303cc
Add GameplayOrder to MultiplayerPlaylistItem
2021-12-02 22:33:14 +09:00
Dean Herbert
cdf2fa9930
Serialise and deserialise SkinInfo.InstantiationInfo
to allow for more correct imports
...
Until now, skins were always imported using the `LegacySkin`
instantiation type. For cases where a user has edited the lazer or
classic default (via the new skin editor), which would result in
incorrect fallback paths after exporting and importing the edited skin.
2021-12-02 18:05:16 +09:00
Dean Herbert
0e82e9355b
Ensure skin is saved immediately after becoming mutable
...
Without doing this, the JSON content is not written to the file. A user
assumption is that as soon as a skin shows up in the skin list as
exportable, it should export correctly, so it makes sense that it should
be in a sane state even if the user has not made any changes in the skin
editor yet.
Going forward, we might move more of the json serialisation logic out,
and run for consistency as part of the import process. This seems like
the simplest way to guarantee things for now, though.
2021-12-02 17:42:17 +09:00
Dean Herbert
fe99d4e984
Standardise parameter naming across all file IO methods
2021-12-02 17:19:53 +09:00
Dean Herbert
ae3038ead4
Overwrite existing files if AddFile
is called with an existing filename
2021-12-02 17:18:06 +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
5976982b12
Add missing xmldoc for MultiplayerClient
events
2021-12-02 16:45:26 +09:00
Dan Balasescu
c00684a2f7
Merge branch 'master' into new-multiplayer-playlist
2021-12-02 16:19:34 +09:00
Dean Herbert
bdddaba352
Remove unnecessary test request handling
2021-12-02 14:33:56 +09:00
Dean Herbert
624ec4580a
Ensure updateLocalRoomSettings
is only called after full population
2021-12-02 14:32:39 +09:00
Dean Herbert
505608ab12
Merge branch 'realm-integration/skins-rebase' into realm-integration/skins-filename-lookup-performance
2021-12-02 14:01:39 +09:00
Dean Herbert
e855a49833
Add test coverage of default skin edit and export
2021-12-02 14:01:18 +09:00
Dean Herbert
0a14acfd83
Fix incorrect conditional on export/mutate feasability of skin
2021-12-02 13:41:58 +09:00
Dean Herbert
65f0a80c97
Merge branch 'master' into realm-integration/skins-rebase
2021-12-02 13:37:20 +09:00
Dean Herbert
c82195390f
Update usage of SubscribeForNotifications
2021-12-02 13:24:16 +09:00
Dean Herbert
9483a3013c
Merge branch 'master' into realm-integration/skins-filename-lookup-performance
2021-12-02 13:20:56 +09:00
Dean Herbert
4f826589e5
Remove subscription logic for the time being
2021-12-02 12:20:07 +09:00
Bartłomiej Dach
8bef50cbba
Revert "Refactor migration precondition to read better"
...
Realm cannot translate `.All()` LINQ queries.
This reverts commit 0e0e8c25e8
.
2021-12-01 19:39:44 +01:00
Dean Herbert
caa88950da
Merge pull request #15889 from smoogipoo/fix-multi-test-ids
...
Fix testable online IDs starting at 0
2021-12-01 22:51:24 +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
89c47708a1
Merge branch 'master' into new-multiplayer-playlist
2021-12-01 21:35:23 +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
Dan Balasescu
c38537a51a
Initial implementation of MultiplayerPlaylist
2021-12-01 21:32:56 +09:00
Dan Balasescu
42ad726154
Merge branch 'master' into multiplayer-delayed-playlist-load-broken
2021-12-01 20:28:29 +09:00
Dan Balasescu
685bdd522e
Replace 'skin' in comments with 'instance'
2021-12-01 20:17:38 +09:00
Dan Balasescu
c225f8f84c
Merge branch 'master' into realm-subscribe-helper-methods
2021-12-01 20:15:21 +09:00
Dan Balasescu
af704dfe5b
Merge pull request #15878 from peppy/beatmap-lookup-cache
...
Cache beatmap metadata lookups used by multiplayer
2021-12-01 20:13:21 +09:00
Dan Balasescu
7224f6bac5
Fix testable online IDs starting at 0
2021-12-01 20:00:31 +09:00
Dean Herbert
bf5a186a2b
Add early abort to avoid sending empty lookup requests
2021-12-01 17:47:16 +09:00
Dean Herbert
81f82c24c3
Use new API endpoint to do batch lookups
2021-12-01 17:45:41 +09:00
Dean Herbert
09817ff161
Add missing returns
additional documentation to main method call
2021-12-01 15:27:10 +09:00
Dean Herbert
4306420922
Add extension methods to add extra safety to realm subscriptions
...
Also adjusts the naming and documentation to make it (hopefully) easier
to understand what this method/process implies.
2021-12-01 15:09:53 +09:00
Dean Herbert
1cf1543866
Fix test failures due to attempting to subscribe to non-managed instances
2021-12-01 13:50:19 +09:00
Dean Herbert
ea66cd6c5e
Add xmldoc and make realm ongoing transaction file op methods protected
instead of public
2021-12-01 12:55:21 +09:00
Dean Herbert
8ce7467e97
Fix ordering of skins in dropdown being reverse of expected
2021-12-01 12:50:47 +09:00
Dean Herbert
0e0e8c25e8
Refactor migration precondition to read better
2021-12-01 12:48:49 +09:00
Dean Herbert
370135d484
Remove outdated TODO
2021-12-01 12:47:32 +09:00
Dean Herbert
fb2310f826
Specify config file default as DEFAULT_SKIN
's guid
2021-12-01 12:45:47 +09:00
Dan Balasescu
7d0135063e
Merge pull request #15875 from peppy/fix-match-type-propagation
...
Fix match type not being propagated correctly to other users' settings
2021-12-01 11:23:28 +09:00
Dean Herbert
9411b42d0a
Cache skin filename to path mapping to reduce realm lookups during gameplay skin changes
2021-12-01 02:27:41 +09:00
Dean Herbert
03e1305b3f
Fix toast display potentially causing a child mutation before load complete
2021-12-01 01:55:17 +09:00
Dean Herbert
bba985e0e5
Merge branch 'beatmap-lookup-cache' into multiplayer-delayed-playlist-load-broken
2021-11-30 20:09:52 +09:00
Dean Herbert
0fae10500a
Fix failing tests
2021-11-30 20:09:45 +09:00
Dean Herbert
ef3d0ee0db
Merge branch 'master' into realm-integration/skins-rebase
2021-11-30 19:59:59 +09:00
Dan Balasescu
857e559f87
Merge pull request #15877 from peppy/log-response-sizes
...
Log output API request response sizes
2021-11-30 19:58:29 +09:00
Dean Herbert
e4ba66877d
Improve transitions when loading new data into a playlist panel
2021-11-30 19:54:26 +09:00
Dean Herbert
fe119da044
Add fetching of beatmap and user data when playlist panels come on screen
2021-11-30 19:52:36 +09:00
Bartłomiej Dach
95373649a4
Skip null items in star rating range display
2021-11-30 19:44:50 +09:00
Bartłomiej Dach
695167a749
Add support for null item display in DrawableRoomPlaylistItem
2021-11-30 19:44:50 +09:00
Bartłomiej Dach
23dd21339d
Delay online fetch of non-current playlist item on room join
2021-11-30 19:44:50 +09:00
Dean Herbert
01bc330d1c
Rename method to match new purpose
2021-11-30 19:42:46 +09:00
Dean Herbert
f58c5cd9c0
Update MultiplayerClient
to use BeatmapLookupCache
2021-11-30 19:36:25 +09:00
Dean Herbert
87883f1fe4
Add BeatmapLookupCache
2021-11-30 19:28:45 +09:00
Dean Herbert
23e297d414
Log output response sizes
...
Visibility is the first step towards action. Or something.
2021-11-30 19:09:13 +09:00