Dan Balasescu
c70dd2edfc
Merge pull request #11569 from peppy/fix-editor-new-beatmap-crash
...
Fix a potential crash when exiting the editor before a new beatmap is added to the database
2021-02-01 21:01:51 +09:00
smoogipoo
97e3023df9
Renamespace/rename MatchSongSelect -> PlaylistsSongSelect
2021-02-01 20:16:58 +09:00
smoogipoo
e5ca9b1e50
Remove usage of removed method
2021-02-01 19:28:33 +09:00
smoogipoo
9c4c47599f
Merge branch 'master' into freemods
2021-02-01 19:28:10 +09:00
smoogipoo
ee92ec0a5c
Disallow local user mod customisation
2021-02-01 18:54:47 +09:00
smoogipoo
89a42d60fb
General cleanup
2021-02-01 18:50:32 +09:00
smoogipoo
3a906a89fc
Pin mod position in participant panels
2021-02-01 18:27:15 +09:00
smoogipoo
51cb288717
Reduce mod selection height
2021-02-01 18:18:59 +09:00
smoogipoo
e134af82f5
Stack freemods for the local user
2021-02-01 18:16:38 +09:00
smoogipoo
3e74f8fd9e
Disable customisation of freemods, move stacking to property
2021-02-01 18:11:20 +09:00
smoogipoo
3cd30d284e
Renamespace
2021-02-01 18:08:49 +09:00
smoogipoo
f538963607
Extra mods -> user mods
2021-02-01 17:57:32 +09:00
smoogipoo
ac2a995041
Add user and panel states
2021-02-01 17:54:56 +09:00
Dean Herbert
328bd191d4
Merge pull request #11561 from Mysfit/fix-storyboard-samples
...
Fix storyboard samples continuing to play when the beatmap is paused or intro is skipped
2021-02-01 17:48:08 +09:00
Dean Herbert
1d8de2f718
Rename class to better match purpose
2021-02-01 17:32:54 +09:00
Dean Herbert
c73a05d0b5
Merge branch 'master' into multiplayer-beatmap-tracker
2021-02-01 17:24:24 +09:00
smoogipoo
0909c73ead
Once again disallow DT/etc as allowable mods
2021-02-01 15:07:56 +09:00
smoogipoo
b43e529964
Fix allowed mods being copied into required mods
2021-02-01 15:07:43 +09:00
smoogipoo
426569c2a9
Move common song select implementation for online play
2021-02-01 14:57:39 +09:00
smoogipoo
b846146f16
Update mods when resuming room subscreen
2021-02-01 13:58:44 +09:00
smoogipoo
4ae10b1e1c
Add initial UI for selecting extra mods
2021-02-01 13:40:59 +09:00
smoogipoo
e02e3cf19a
Disallow selecting DT/HT/WU/WD as allowable freemods
2021-02-01 13:35:48 +09:00
smoogipoo
797a810287
Allow unstacking mods
2021-02-01 13:24:56 +09:00
smoogipoo
230b347c1e
Move ModSelectOverlay.IsValidMod to a property
2021-02-01 12:18:11 +09:00
Bartłomiej Dach
90ba8ae234
Don't part room if join task was cancelled
2021-01-30 23:39:01 +01:00
Bartłomiej Dach
5f320cd426
Move lease check inside schedule
...
Theoretically safer due to avoiding a potential data race (change in
`leasedInProgress` between the time of the check and start of schedule
execution).
2021-01-30 21:03:09 +01:00
Bartłomiej Dach
96f56d1c94
Return tracker lease via UnbindAll()
...
Improves reliability by being fail-safe in case of multiple returns,
which can happen if the operation tracker is part of a screen being
exited (as is the case with its current primary usage in multiplayer).
2021-01-30 21:00:13 +01:00
Dean Herbert
a61444690e
Remove all usage of CatchUnobservedExceptions
...
This should no longer be required with the recent framework side change
that stops a game from crashing on unobserved exceptions
(https://github.com/ppy/osu-framework/pull/4171 ).
2021-01-29 16:32:29 +09:00
smoogipoo
b79d1c7b81
Add mods to footer
2021-01-27 22:33:03 +09:00
smoogipoo
ff8ee379fb
Fix possible nullref
2021-01-27 22:27:31 +09:00
smoogipoo
4c256f1fb3
Actually populate the playlist item
2021-01-27 22:23:38 +09:00
smoogipoo
45e41aaeac
Initial implementation of freemod selection overlay
2021-01-27 22:15:53 +09:00
smoogipoo
4019cc38e5
Allow footer buttons to be customised
2021-01-27 22:03:51 +09:00
smoogipoo
91d34d86f7
Abstractify ModSelectOverlay
2021-01-27 22:02:23 +09:00
Dan Balasescu
30f7e4c794
Merge branch 'master' into fix-timeline-parts-working-beatmap
2021-01-25 21:22:45 +09:00
Dean Herbert
b489e92c9e
Fix TimelineParts not using correct beatmap
2021-01-25 18:44:36 +09:00
Dean Herbert
4ac362ee1a
Move cloning local to editor
2021-01-25 18:29:00 +09:00
Dean Herbert
f054b38105
Merge branch 'master' into revert-beatmap-controlpointinfo-cloning
2021-01-25 18:25:53 +09:00
Dan Balasescu
803ada42ea
Merge pull request #11595 from peppy/leaderboard-bind-handlers-later
...
Bind MultiplayerGameplayLeaderboard to player updates later in load process
2021-01-25 18:18:54 +09:00
Dean Herbert
91ce3df3a9
Bind MultiplayerGameplayLeaderboard to player updates later in load process
2021-01-25 17:44:01 +09:00
Dean Herbert
10e8b7082e
Rework logic to avoid custom disposal early return handling
2021-01-25 16:53:58 +09:00
Bartłomiej Dach
d22f557a3b
Remove possibility of double-disposal interference
2021-01-23 16:14:58 +01:00
Bartłomiej Dach
7f89d9117d
Make disposal of tracker idempotent for operations
2021-01-23 16:04:12 +01:00
Bartłomiej Dach
18b309a195
Make disposal of tracker operation idempotent
2021-01-23 16:02:51 +01:00
Bartłomiej Dach
360f26c13d
Merge branch 'master' into scroll-to-20
2021-01-22 19:58:36 +01:00
Dean Herbert
b44bd8c4ee
Remove unused using statement
2021-01-22 18:03:33 +09:00
Dean Herbert
a9c8f9bd4a
Fix a potential crash when exiting the editor before a new beatmap is added to the database
2021-01-22 17:47:38 +09:00
Mysfit
b220939650
Fix storyboard samples continuing to play when the beatmap is paused or the intro is skipped.
2021-01-21 17:10:11 -05:00
Dan Balasescu
0fa0e70bff
Merge branch 'master' into leave-channel-on-exiting-multiplayer
2021-01-21 19:04:33 +09:00
Dan Balasescu
04095cd5b9
Merge branch 'master' into fix-editor-scroll-interruption
2021-01-21 17:46:18 +09:00
Dan Balasescu
9eb74e86ed
Apply comment suggestion
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-21 17:40:15 +09:00
Dean Herbert
e6980688f6
Leave the multiplayer channel when leaving multiplayer
2021-01-21 15:42:23 +09:00
Dean Herbert
a6516e3be5
Merge branch 'master' into scroll-to-20
2021-01-21 14:28:17 +09:00
Dean Herbert
7c4a072568
Merge branch 'master' into scroll-to-20
2021-01-21 13:48:26 +09:00
vmaggioli
5ee3a5f230
Use AlmostEquals
2021-01-20 13:00:25 -05:00
vmaggioli
ce3c2f07dc
Fix zero length spinners and sliders
2021-01-20 12:19:52 -05:00
Dan Balasescu
7da7079ef2
Merge pull request #11537 from Mysfit/mp-initial-creation-screen-fix
...
Fix match/playlist room screen showing briefly behind initial room settings window on creation.
2021-01-20 22:05:14 +09:00
Dan Balasescu
455383c3c0
Merge pull request #11528 from peppy/fix-autoplay-in-multiplayer
...
Fix multiplayer mod select showing autoplay as a choice
2021-01-20 21:49:16 +09:00
smoogipoo
eb85efcea2
Add check to playlists too
2021-01-20 20:59:28 +09:00
Dan Balasescu
250727cbd1
Merge branch 'master' into mp-initial-creation-screen-fix
2021-01-20 20:53:33 +09:00
Salman Ahmed
34612ae233
Forward internal management to a container alongside tracker
2021-01-19 20:01:22 +03:00
Mysfit
052e9eef02
Added inline comments
2021-01-19 09:16:39 -05:00
Mysfit
33677f5770
Use BindValueChanged to show main content for new multiplayer and playlist rooms when the settings overlay is hidden.
2021-01-19 08:52:43 -05:00
Mysfit
6d1d488831
Revert "Use the client.RoomUpdated action instead of binding the value of the settings overlay visibility and creating an event from it based on its ValueChanged action."
...
This reverts commit cbfb999c28
.
2021-01-19 08:24:14 -05:00
Mysfit
9b7187e3c8
Revert "Use fades instead of event listening. Fixed same issue in the playlist room creation."
...
This reverts commit 3a7608275d
.
2021-01-19 08:23:31 -05:00
Mysfit
3a7608275d
Use fades instead of event listening. Fixed same issue in the playlist room creation.
2021-01-19 00:35:56 -05:00
Mysfit
cbfb999c28
Use the client.RoomUpdated action instead of binding the value of the settings overlay visibility and creating an event from it based on its ValueChanged action.
2021-01-18 17:13:24 -05:00
Bartłomiej Dach
b35d224efb
Merge branch 'master' into less-black-confirm-to-exit
2021-01-18 23:03:24 +01:00
Mysfit
5233a0449a
Hide main room subscreen on initial mp room creation. Toggle mp room subscreen visibility based on settings overlay visibility before room is created.
2021-01-18 16:08:06 -05:00
Salman Ahmed
4a1acdece2
Merge branch 'multiplayer-beatmap-tracker' into ready-button-clean-up
2021-01-18 20:06:47 +03:00
Salman Ahmed
dc91cebce9
Merge branch 'master' into multiplayer-beatmap-tracker
2021-01-18 19:15:45 +03:00
Dean Herbert
fda271d9d9
Merge pull request #11520 from frenzibyte/fix-item-download-button
...
Fix playlist item download button never shown back after hiding
2021-01-18 23:37:33 +09:00
Salman Ahmed
e6ceaad732
Revert user state back to idle upon availability change
2021-01-18 17:23:51 +03:00
Dean Herbert
0560eb4120
Reduce final fill alpha of main menu confirm-to-exit
2021-01-18 18:22:21 +09:00
Dean Herbert
0b165dce4b
Fix multiplayer mod select showing autoplay as a choice
2021-01-18 17:50:32 +09:00
Salman Ahmed
6deb10e075
Add UI state display for each client's beatmap availability
2021-01-18 11:10:02 +03:00
Salman Ahmed
4e6c1a3906
Update client beatmap availability in-line with tracker
2021-01-18 10:51:39 +03:00
Dean Herbert
1364de1166
Merge branch 'master' into beatmap-colour-setting
2021-01-18 16:07:46 +09:00
Salman Ahmed
585aa87c53
Fix playlist item download button never shown back after hiding
2021-01-17 19:17:14 +03:00
Dean Herbert
5fd644fc57
Unify variable names
2021-01-17 22:42:48 +09:00
Dean Herbert
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
Bartłomiej Dach
1d7be6a604
Merge branch 'master' into android-multiple-import-support-suppot
2021-01-16 23:13:11 +01:00
Salman Ahmed
59ae50b0e5
Clean up ready button logic into using MultiplayerBeatmapTracker
2021-01-17 01:11:03 +03:00
Salman Ahmed
cf23781036
Cache beatmap tracker and bind to selected item in RoomSubScreen
2021-01-17 00:01:11 +03:00
Dean Herbert
d6e6b4bbee
Revert forced cloning of ControlPointInfo
...
This reverts commit 3c3e860dbc
.
Closes https://github.com/ppy/osu/issues/11491 .
2021-01-15 17:34:59 +09:00
Dean Herbert
831c06a3c7
Expose and consume boolean covering whether an ongoing smooth seek is running
2021-01-15 16:14:38 +09:00
Dean Herbert
04fa32bc34
Rename and add xmldoc for smooth seeking method
2021-01-15 16:14:21 +09:00
Dean Herbert
ed78be825f
Fix editor timeline not snapping on non-precise wheel scroll
...
For wheel input with precision, we still prefer exact tracking for now.
May change this in the future based on feedback from mappers, but it
makes little sense to do non-snapped scrolling when input is coming from
a non-precise source.
2021-01-15 15:47:42 +09:00
Dan Balasescu
40f020c683
Merge pull request #11494 from peppy/fix-beatmap-carousel-incorrect-sample
...
Fix the beatmap carousel playing the difficulty change sample on beatmap change
2021-01-15 14:47:00 +09:00
smoogipoo
24e991a5ef
Actually return beat length and not BPM
2021-01-15 14:35:09 +09:00
smoogipoo
c6e9a6cd5a
Make most common BPM more accurate
2021-01-15 14:28:49 +09:00
Dean Herbert
0a65ae8f1e
Fix the beatmap carousel playing the difficulty change sample on beatmap change
2021-01-15 14:07:24 +09:00
Dan Balasescu
67b5ebadf5
Merge branch 'master' into fix-is-connected-thread-safety
2021-01-15 12:56:21 +09:00
Dan Balasescu
3e8732a59f
Merge branch 'master' into fix-participants-list
2021-01-14 21:30:53 +09:00
Salman Ahmed
1f12b2bd09
Rename download state Downloaded
to Importing
2021-01-13 18:04:53 +03:00
Salman Ahmed
1502b07ea8
Add explicit pill to playlist items
2021-01-13 12:27:15 +03:00
Mysfit
5f10bcce02
Added beatmap colour settings checkbox and associated tests.
2021-01-13 00:09:22 -05:00
Bartłomiej Dach
2d3cacca11
Fix non-hosts crashing on load requested
...
`onLoadRequested()` always released the `readyClickOperation` ongoing
operation, without checking whether it actually needs to/should (it
should only do so if the action initiating the operation was starting
the game by the host). This would crash all other consumers, who already
released the operation when their ready-up operation completed server
side.
To resolve, relax the constraint such that the operation can be ended
multiple times in any order. At the end of the day the thing that
matters is that the operation is done and the ready button is unblocked.
2021-01-13 00:58:53 +01:00
Dean Herbert
7298adc9d9
Fix non-threadsafe usage of MultiplayerClient.IsConnected
2021-01-12 19:04:16 +09:00
Dean Herbert
b51b07c3a9
Fix unstable multiplayer room ordering when selection is made
2021-01-12 18:05:29 +09:00
Dean Herbert
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
Dean Herbert
4e32b0d6de
Merge branch 'master' into ongoing-operation-tracker-safety
2021-01-10 23:05:03 +09:00
Dean Herbert
e81f9e358e
Merge pull request #11448 from bdach/fix-editor-enter-crash
...
Fix editor crashing on enter if login overlay was previously opened
2021-01-10 12:59:47 +09:00
Bartłomiej Dach
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
Dean Herbert
b69fe8a274
Merge branch 'master' into disable-repeat-multi-actions
2021-01-09 10:15:20 +09:00
Bartłomiej Dach
c2eeb822b8
Rename {joiningRoom -> operationInProgress}
2021-01-08 22:23:38 +01:00
Bartłomiej Dach
dad5dd3667
Remove unnecessary permissiveness wrt null
2021-01-08 22:21:54 +01:00
Bartłomiej Dach
284d30d336
Move screen activity update to LoadComplete()
...
Fixes a potential crash when moving from main menu to editor after
having previously opened the login settings overlay. Setting the
activity in BDL as done before is unsafe, as that set can trigger value
change callbacks, which in turn can trigger adding transforms, which
should always be done on the update thread.
Semantically it also makes sense, as the user activity should change
once the screen they're moving to has actually loaded and displayed to
the user.
2021-01-08 21:18:15 +01:00
Dean Herbert
edd328c8fe
Move bindable closer to source class
2021-01-08 17:24:55 +09:00
Dean Herbert
22981a667c
Merge branch 'master' into fix-transform-mutation-mod-selection
2021-01-08 11:16:22 +09:00
Dean Herbert
4973e23003
Merge branch 'master' into fix-transform-mutation-mod-selection
2021-01-08 11:16:15 +09:00
Dean Herbert
2cfd1e8b47
Merge branch 'master' into fix-control-point-pollution
2021-01-08 00:02:45 +09:00
Dean Herbert
3c3e860dbc
Move ControlPointInfo copying to base Beatmap.Clone method (and remove setter)
2021-01-07 23:52:04 +09:00
Dean Herbert
77b55212a3
Change access of beatmap to use working for consistency in file
2021-01-07 19:11:51 +09:00
Dean Herbert
42643fbaf6
Use already resolved EditorBeatmap rather than resolving a second time locally
2021-01-07 19:10:19 +09:00
Bartłomiej Dach
4998aaaa98
Remove outdated warning disable
...
Does not trigger any more on Rider 2020.3.2.
2021-01-06 18:38:25 +01:00
Bartłomiej Dach
4c2caec72e
Merge branch 'master' into remove-osu-direct
2021-01-06 16:49:38 +01:00
Dean Herbert
35be7ec0e1
Add back button but rename to "browse"
2021-01-06 23:28:14 +09:00
Dean Herbert
cfbfb8d58b
Revert "Remove related events"
...
This reverts commit 59025e9d50
.
2021-01-06 23:21:46 +09:00
Dean Herbert
59025e9d50
Remove related events
2021-01-06 23:09:58 +09:00
Dean Herbert
32accc8eab
Remove "osu!direct" button
2021-01-06 22:56:10 +09:00
Bartłomiej Dach
7651d4554a
Merge branch 'master' into fix-transform-carousel
2021-01-06 13:49:05 +01:00
Bartłomiej Dach
43b9fde457
Add some nullability annotations for good measure
2021-01-06 13:15:15 +01:00
Dean Herbert
99701a6d9b
Add null check on beatmapContainer for safety
2021-01-06 21:06:33 +09:00
Dean Herbert
ffafdf2209
Merge branch 'master' into fix-transform-carousel
2021-01-06 21:03:22 +09:00
Bartłomiej Dach
25b4628672
Merge branch 'master' into fix-transform-mutation-from-background
2021-01-06 11:04:51 +01:00
Dean Herbert
07cff70387
Add specific messaging for when there's no background stack available
2021-01-06 18:19:03 +09:00
Dean Herbert
550ef3f133
Aggressively dispose ownedBackground if it was not used, because we can
2021-01-06 15:28:01 +09:00
Dean Herbert
e9d4e4d1d5
Add xmldoc and throw a local exception on null background
2021-01-06 15:26:44 +09:00
Dean Herbert
11a0c637bc
Mark background properties as nullable
2021-01-06 15:26:00 +09:00
Bartłomiej Dach
52687fc37c
Merge branch 'master' into fix-transform-mutation-loading-layer
2021-01-05 23:10:51 +01:00
Bartłomiej Dach
2b253f6d01
Remove now-unused fields & locals
2021-01-05 22:56:53 +01:00
Bartłomiej Dach
fbbc26d7d8
Merge branch 'master' into fix-carousel-centering-on-window-resize
2021-01-05 21:30:39 +01:00
Dean Herbert
4b539b01c1
Match code between updateSelectedBeatmap/Ruleset
2021-01-05 20:38:58 +09:00
Dean Herbert
83dbba3cbf
Fix carousel beatmap set panels applying transforms to difficulties while they are loading
2021-01-05 18:41:45 +09:00
Dean Herbert
54982dcdd7
Refactor LoadingLayer to avoid applying effects to external drawables
...
In theory this seemed like a good idea (and an optimisation in some
cases, due to lower fill rate), but in practice this leads to weird edge
cases.
This aims to do away with the operations on external drawables by
applying a dim to the area behind the `LoadingLayer` when required.
I went over each usage and ensured they look as good or better than
previously.
The specific bad usage here was the restoration of the colour on dispose
(if the `LoadingLayer` was disposed in a still-visible state).
I'm aware that the `BeatmapListingOverlay` will now dim completely during
load. I think this is fine for the time being.
2021-01-05 17:31:45 +09:00
Dean Herbert
9bac791a57
Fix deselection of autoplay mod failing
2021-01-05 16:17:58 +09:00
Dean Herbert
60fc60fa00
Merge pull request #11415 from frenzibyte/fix-ready-button-crash
...
Fix multiplayer ready button crashing when deleting selected beatmap set
2021-01-05 15:58:09 +09:00
Dean Herbert
b3f08b29ca
Ensure that all changes to screen backgrounds are on the correct thread
2021-01-05 15:22:50 +09:00
Dean Herbert
a3e4e2f6c3
Switch ResultsScreen and SongSelect inheritance and remove local implementation
2021-01-05 15:22:50 +09:00
Dean Herbert
ed6ffe2ef1
Remove hacky code
2021-01-05 14:54:59 +09:00
Dean Herbert
6b8e1913ee
Fix dependency not always available due to nested LoadComponentAsync call
2021-01-05 13:27:45 +09:00
Dean Herbert
deb1ad7bca
Merge branch 'master' into disable-repeat-multi-actions
2021-01-04 23:38:29 +09:00
Dean Herbert
b7dd54847f
Move resolved usage of WorkingBeatmap in editor components as local as possible to avoid misuse
2021-01-04 16:56:37 +09:00
Dean Herbert
7fdf876b4c
Fix editor timing screen mutating the WorkingBeatmap instead of EditorBeatmap
2021-01-04 16:38:15 +09:00
Dean Herbert
b4a779108e
Ensure working beatmap is reloaded on exiting the editor
2021-01-04 16:37:49 +09:00
Dean Herbert
ba4e411422
Clone and copy ControlPointInfo when retrieving a playable beatmap
2021-01-04 16:37:07 +09:00
Salman Ahmed
485a57776b
Fix hasBeatmap
potentially checking on outdated DeletePending
value
2021-01-04 10:28:41 +03:00
Salman Ahmed
ea38b00b29
Schedule all calls to updateBeatmapState()
2021-01-04 10:27:08 +03:00
Dean Herbert
20d04d6933
Fix Storyboard's FirstEventTime not finding the true earliest event
2021-01-04 15:16:01 +09:00