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
Salman Ahmed
0aad0c7c6c
Target logic at this
and adjust variables
2021-01-09 00:31:18 +03:00
Bartłomiej Dach
ff60d652ed
Move out test ongoing operation tracker to higher level
2021-01-08 22:28:21 +01:00
Salman Ahmed
375ecf92ed
Merge remote-tracking branch 'upstream/master' into fix-mod-buttons-not-copying-settings
2021-01-09 00:26:18 +03: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
Bartłomiej Dach
274a045d8d
Remove Dispose() override
...
Culls another non-thread-safe mutation of the `Playing` bindable.
It seems to be a weird vestige from an earlier revision of the old
"direct" panel, which relied on `DisposeOnDeathRemoval` to finish track
playback (and then was removed in
6c150c9ed7
). The play button is no longer
responsible for managing preview track lifetime anyway;
`PreviewTrackManager`'s method are intended for that.
2021-01-08 20:08:19 +01:00
Bartłomiej Dach
52789118a3
Schedule play button state update
...
Revealed by the framework-side transform thread safety checks. `Stopped`
is even annotated as not being thread-safe (but was annotated as such
long after the class's nascence).
2021-01-08 20:08:19 +01:00
Dean Herbert
8a7a1fc40a
Merge pull request #11439 from peppy/improve-hover-sounds-debounce
...
Improve hover sounds playback (to reduce volume saturation and delay)
2021-01-09 02:31:02 +09:00
Bartłomiej Dach
49c6abcb5c
Remove mention of default value in xmldoc
...
Just bound to get outdated with every change anyway. Look at the actual
default value declaration to see what the default is.
2021-01-08 18:26:41 +01:00
Bartłomiej Dach
d507a08951
Start with null last hover playback time
2021-01-08 18:16:03 +01:00
Dean Herbert
3bb71e4b77
Merge branch 'master' into fix-transform-mutation-mod-selection
2021-01-09 01:44:52 +09:00
Dean Herbert
8feaf3fb6a
Update framework
2021-01-09 01:24:18 +09:00
Dean Herbert
05ba5d4c31
Merge pull request #11438 from bdach/difficulty-adjust-defaults
...
Fix difficulty adjust mod treating default values as user overrides
2021-01-09 01:18:34 +09:00
Bartłomiej Dach
0cf5be3ef4
Fix selection change event being invoked with wrong mod
2021-01-08 17:02:57 +01:00
Dean Herbert
edd328c8fe
Move bindable closer to source class
2021-01-08 17:24:55 +09:00
Dean Herbert
c208800150
Fix auto selection scenario regressing due to scheduling too much
2021-01-08 14:17:14 +09:00
Dean Herbert
e156bcdcae
Remove unnecessary (and broken) requiresDebounce check
2021-01-08 14:05:34 +09:00
Dean Herbert
11801d61c1
Use nullable doubule to better represent initial playback case
2021-01-08 14:05:22 +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
Dean Herbert
00dc98e3ab
Make legacy control point's BpmMultiplier setter private again
2021-01-07 19:06:52 +09:00
Dean Herbert
69ac22dd7f
Fix incorrectly copy pasted xmldoc
2021-01-07 19:06:10 +09:00
Dean Herbert
8f52a83b29
Share hover sound debounce across all instances via SessionStatics
2021-01-07 18:47:20 +09:00
Dean Herbert
6620eadec3
Reduce default hover sound debounce interval
2021-01-07 18:47:03 +09:00
Bartłomiej Dach
303cc62ee7
Transfer flags indicating if settings were changed
2021-01-06 22:46:46 +01: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
68352782db
Change .StartsWith() to .Equals()
...
In line with planned-but-delayed breaking change.
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
9cc63e8dce
Remove obsoleted IHasEndTime
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
539785e422
Remove obsoleted IHasCurve
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
09742998cd
Fix mistaken obsoletion notice
...
It was added in c9f38f7bb6
, which
specified 2021 in another place (and was committed in October of 2020
anyway). Update the year so that it doesn't get culled prematurely.
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
a761ec952a
Merge branch 'master' into remove-osu-direct
2021-01-06 17:32:12 +01:00
Dean Herbert
866fb28d6c
Merge pull request #11411 from LavaDesu/feature/discord-presence-toggle
...
Add ability to toggle discord rich presence
2021-01-07 00:52:38 +09: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
283c69a68f
Update enum name in line with changes
2021-01-06 23:12:56 +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
Bartłomiej Dach
6572bb18de
Merge branch 'master' into fix-transform-mutation-display-settings
2021-01-06 10:09:14 +01: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
Dean Herbert
15dd7a87a6
Move gameplay preview event binding to LoadComplete
2021-01-06 15:19:12 +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
0880e76da8
Mark background dim layer as possibly-null
2021-01-05 22:56:53 +01:00
Bartłomiej Dach
ac1d6d4444
Make auto-property get-only
2021-01-05 22:56:53 +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
Bartłomiej Dach
847d2d8deb
Merge branch 'master' into fix-transform-mutation-from-disposal-thread
2021-01-05 19:52:10 +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
d0d2e41b28
Fix display settings binding to configuration bindables in async load
2021-01-05 18:19:28 +09:00
Dean Herbert
0639429a23
Fix test (and remove no longer valid test)
2021-01-05 18:10:39 +09:00
Dean Herbert
3b98782964
Merge pull request #11420 from kyekiller/master
...
Fix to toolbar tooltips
2021-01-05 17:43:32 +09:00
Dean Herbert
0b1ee2e267
Remove unused dispose logic
2021-01-05 17:42:19 +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
5d8c153c1e
Move schedule logic to buttons rather than section
...
It turns out there's some quite convoluted scheduling / order of
execution requirements of ModSelectOverlay and ModSection. Applying
scheduling causes a runaway condition ending in zero frames after many
mod button changes.
I wanted to avoid rewriting the whole component, so have just moved the
schedule to guard against the part where drawables are actually changed.
2021-01-05 16:41:05 +09:00
Dean Herbert
4d6c13f169
Privatise ModSelectOverlay methods that may be unsafe to be called externally
2021-01-05 16:18:13 +09:00
Dean Herbert
9bac791a57
Fix deselection of autoplay mod failing
2021-01-05 16:17:58 +09:00
Dean Herbert
57a8cd7461
Schedule deselection operations for safety
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
962c95dc01
Fix ModSelection making unsafe advances of ModSection
2021-01-05 15:19:37 +09:00
Dean Herbert
ed6ffe2ef1
Remove hacky code
2021-01-05 14:54:59 +09:00
Dean Herbert
31a6e9b860
Remove unused using
2021-01-05 14:24:49 +09:00
Dean Herbert
afab35a31a
Fix missing copy implementation in LegacySampleControlPiont
2021-01-05 13:41:31 +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
caa88c6100
Use CreateCopy instead of Clone interface
...
I was going for conformity by using the IClonable interface, but it
doesn't look like we use it anywhere else in the project.
2021-01-05 13:13:52 +09:00
KyeKiller
77e660e426
Should pass all checks again now.
2021-01-04 22:11:52 +00:00
KyeKiller
1234d0fa04
Applied all tooltips to the right
2021-01-04 22:01:12 +00:00
kyekiller
254698d9a2
Merge branch 'master' into master
2021-01-04 21:07:12 +00:00
KyeKiller
0e42d415c1
Hit another oopie
2021-01-04 21:05:28 +00:00
KyeKiller
3468df840b
Moved tooltip to the left to stop the overflow
2021-01-04 21:04:30 +00:00
KyeKiller
73f5e5aaf9
Moved "ToolbarSocialButton" back
2021-01-04 21:03:51 +00:00
KyeKiller
2e2b3ab5d4
Should remove codeFactor error
2021-01-04 17:26:42 +00:00
KyeKiller
2d1b52be0d
Moved "ToolbarSocialButton"
...
This will remove it from coming off the screen.
2021-01-04 17:21:31 +00:00
Dean Herbert
deb1ad7bca
Merge branch 'master' into disable-repeat-multi-actions
2021-01-04 23:38:29 +09:00
Dean Herbert
3b08faa0ea
Fix RemoveBlockingOverlay causing transform mutation from disposal threads
2021-01-04 17:49:11 +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
9e0c490141
Remove unused using
2021-01-04 15:40:22 +09:00
Dean Herbert
20d04d6933
Fix Storyboard's FirstEventTime not finding the true earliest event
2021-01-04 15:16:01 +09:00
Salman Ahmed
445a4bd01c
Re-query beatmap info on database changes
2021-01-04 09:00:16 +03:00
Salman Ahmed
ca5f2bcd4c
Revert database-side changes
2021-01-04 08:50:30 +03:00
Salman Ahmed
1463ff2886
Remove unnecessary using directive
2021-01-04 08:12:31 +03:00
Salman Ahmed
738c94d193
Update soft-deletion logic to use model store's consumable items instead
2021-01-04 07:47:08 +03:00
Salman Ahmed
839f5a7570
Ensure clients don't blow up when given user isn't in room
2021-01-03 18:36:37 +03:00
Salman Ahmed
c8423d1c46
Make constructors design more pleasent to eyes
2021-01-03 18:36:05 +03:00
Salman Ahmed
152e9ecccf
Make BeatmapAvailability
class in-line with other online data structures
2021-01-03 18:36:05 +03:00
Dean Herbert
53e6a349bb
Fix incorrect initial conditional
...
Turns out this wasn't actually required.
2021-01-03 22:44:32 +09:00
Dean Herbert
efb71713ef
Fix null condition inhibiting deselection events
2021-01-03 22:43:02 +09:00
Bartłomiej Dach
9e4a925ab1
Clarify & cleanup comments some
2021-01-03 13:44:29 +01:00
Bartłomiej Dach
a3e29b9154
Rename parameters for readability
2021-01-03 13:25:44 +01:00
Dean Herbert
2501707d7d
Copy values using Bind to also copy defaults
2021-01-03 20:45:03 +09:00
LavaDesu
7c9f345cd2
Use better naming for DiscordRichPresenceMode
2021-01-03 16:46:25 +07:00
Dean Herbert
6ad1b7767e
Update osu.Game/Online/API/APIMod.cs
...
Co-authored-by: Salman Ahmed <slmanarendo1950@gmail.com>
2021-01-03 17:04:16 +09:00
Dean Herbert
99fa0e25dc
Switch back to FirstOrDefault to allow for weird testing logic to pass
2021-01-03 16:46:24 +09:00
Dean Herbert
29dbb1cc0d
Add internal pathway for ensuring correct application of bindable mods
2021-01-03 15:48:28 +09:00
Dean Herbert
23e216fa0b
Simplify some default value checks (we are sure the return is an IBindable)
2021-01-03 15:47:15 +09:00
Dean Herbert
1a44338124
Use SingleOrDefault for added safety when looking up mod acronyms
2021-01-03 15:38:30 +09:00
Dean Herbert
a6d4992997
Ensure SelectionChanged events are only sent once when selection is null
2021-01-03 12:53:25 +09:00
LavaDesu
2e5c67be3f
Add ability to toggle discord rich presence
...
There are 3 modes: enabled, limited, and disabled.
The limited mode hides identifiable information such as username, rank, and
(if participating in one) multiplayer lobby name.
2021-01-03 10:37:28 +07:00
Dean Herbert
caa5109e3a
Add precautionary null checks to update methods in SongSelect
2021-01-03 12:18:35 +09:00
Salman Ahmed
dfa8be9173
Add beatmap availability change state & event methods
2021-01-03 05:48:49 +03:00
Salman Ahmed
09e5e2629a
Add user beatmap availability property
2021-01-03 05:48:49 +03:00
Salman Ahmed
8bb84570df
Introduce beatmap availability structure
2021-01-03 05:48:49 +03:00
Lucas A
324f80d994
Fix merge conflicts.
2021-01-02 19:14:10 +01:00
Dean Herbert
8511112e28
Merge pull request #11380 from bdach/unobserved-exceptions-pt-2
...
Catch multiplayer client-related unobserved exceptions better
2021-01-02 23:36:49 +09:00
Dean Herbert
e2de5bb8f9
Fix the beatmap carousel not returning to centre correctly after resizing window
2021-01-02 22:05:41 +09:00
Bartłomiej Dach
9ab1091281
Merge branch 'master' into fix-signalr-reconnect
2021-01-02 13:18:02 +01:00
Dean Herbert
72a6ca7755
Allow signalr to retry connecting when connection is closed without an exception
2021-01-02 16:47:00 +09:00
Bartłomiej Dach
30cebe7579
Merge branch 'dependabot/nuget/Microsoft.AspNetCore.SignalR.Client-3.1.10' into dependency-updates
2021-01-01 21:25:10 +01:00
dependabot-preview[bot]
652b0ccd8f
Bump Microsoft.AspNetCore.SignalR.Client from 3.1.9 to 3.1.10
...
Bumps [Microsoft.AspNetCore.SignalR.Client](https://github.com/aspnet/AspNetCore ) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/aspnet/AspNetCore/releases )
- [Commits](https://github.com/aspnet/AspNetCore/compare/v3.1.9...v3.1.10 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-01 17:54:11 +00:00
dependabot-preview[bot]
7441cfd94e
Bump Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson
...
Bumps [Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson](https://github.com/aspnet/AspNetCore ) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/aspnet/AspNetCore/releases )
- [Commits](https://github.com/aspnet/AspNetCore/compare/v3.1.9...v3.1.10 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-01 17:53:29 +00:00
Salman Ahmed
988f9b98a1
Split button mods updating to private method
2021-01-01 16:16:00 +03:00
Salman Ahmed
c1a1e3acc5
Revert drive-by changes
2021-01-01 15:40:40 +03:00
Salman Ahmed
a031c8e0b6
Apply documentation suggestions
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-01 15:34:09 +03:00
Salman Ahmed
2ce9599957
Copy selected mods properties into overlay's buttons
2021-01-01 03:47:13 +03:00
Salman Ahmed
b4df2d6d43
Add method for copying properties from another mod
2021-01-01 03:46:09 +03:00
Bartłomiej Dach
1e02f450a6
Merge branch 'master' into move-health-meter
2020-12-31 13:59:37 +01:00
mcendu
17abe90c27
move SkinnableHealthDisplay
...
Similar components are in osu.Game.Screens.Play.HUD while this is not
2020-12-31 20:23:13 +08:00
Bartłomiej Dach
7d9a61fbc1
Handle unobserved exceptions from ready button properly
2020-12-31 11:57:13 +01:00
Bartłomiej Dach
2d279350ad
Catch multiplayer client-related unobserved exceptions better
...
Silencing an exception from a task continuation requires accessing
`task.Exception` in any way, which was not done previously if
`logOnError` was false.
To resolve without having to worry whether the compiler will optimise
away a useless access or now, just always log, but switch the logging
level. The unimportant errors will be logged as debug and therefore
essentially silenced on release builds (but could still be potentially
useful in debugging).
2020-12-31 11:39:42 +01:00
Bartłomiej Dach
1b1447eb35
Merge branch 'master' into fix-perform-from-menu-nullref
2020-12-31 10:33:05 +01:00
Bartłomiej Dach
00c6703c51
Inline complete method as well
...
For better guarantees that `finalAction` is actually called on the same
screen that `checkCanComplete()` was (uses result of one
`getCurrentScreen()` call throughout instead of calling multiple times).
2020-12-31 10:27:42 +01:00
Dean Herbert
f9196ae976
Fix PerformFromMenuRunner failing if CurrentScreen is null
2020-12-31 16:36:20 +09:00
Dean Herbert
6ebb267c66
Merge pull request #11346 from bdach/fix-changelog-regression
...
Fix changelog header staying dimmed after build show
2020-12-31 16:15:25 +09:00
Bartłomiej Dach
f800448c87
Move game start logic to a higher level
2020-12-30 18:15:48 +01:00
Bartłomiej Dach
d34609b98e
Rename On{ToggleReady -> ReadyClick}
2020-12-30 16:29:36 +01:00
Bartłomiej Dach
dd87478690
Add helper IsHost property to Client
2020-12-30 16:29:19 +01:00
Bartłomiej Dach
59f2017a13
Move BindValueChanged subscriptions to LoadComplete
2020-12-30 16:22:11 +01:00
Dean Herbert
497d644a19
Move thread safety / locking logic from MultiplayerRoom
2020-12-30 20:24:50 +09:00