1
0
mirror of https://github.com/ppy/osu.git synced 2024-10-02 05:47:24 +08:00
Commit Graph

22908 Commits

Author SHA1 Message Date
Dean Herbert
0fcf61d352 Replace null check with assert 2021-01-21 14:29:49 +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
Dan Balasescu
c3675293fa
Merge branch 'master' into beatmapset-refactor 2021-01-21 12:38:34 +09:00
Bartłomiej Dach
1d9aaac2c2 Fix HOC not propagating DHO results applied on kill
`DrawableHitObject.OnKilled()` calls `UpdateResult()` to clean up a
hitobject's state definitively with regards to the judgement result
before returning the DHO back to the pool.

As it turns out, if a consumer was relying on this code path (as taiko
was in the case of nested strong hit objects), it would not work
properly with pooling, due to `HitObjectContainer` unsubscribing from
`On{New,Revert}Result` *before* calling the DHO's `OnKilled()`.

This in turn would lead to users potentially getting stuck in gameplay,
due to `ScoreProcessor` not receiving all results via that event path.

To resolve, change the call ordering to allow hit result changes applied
in `OnKilled()` to propagate normally.
2021-01-21 00:05:37 +01: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
95f52ae054
Merge pull request #11536 from rednir/sort-skins-alphabetically
Sort SkinSection in alphabetical order
2021-01-20 21:49:31 +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
Dan Balasescu
12f2067357
Merge branch 'master' into sort-skins-alphabetically 2021-01-20 21:15: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
Andrei Zavatski
2ca3ccad06 Move all the content to BeatmapSetHeaderContent drawable 2021-01-20 04:56:46 +03:00
Andrei Zavatski
94fee3800d Merge remote-tracking branch 'refs/remotes/ppy/master' into beatmapset-refactor 2021-01-20 04:32:56 +03:00
Dean Herbert
2fabfe54a0
Merge pull request #11546 from bdach/mark-test-as-abstract
Mark legacy beatmap skin colour test as abstract
2021-01-20 10:03:40 +09:00
Bartłomiej Dach
82e5a5bf6f Mark legacy beatmap skin colour test as abstract 2021-01-19 23:10:15 +01:00
Bartłomiej Dach
3b49b7461e Schedule entire operation for safety
Also removes a redundant list copy.
2021-01-19 19:35:53 +01:00
Bartłomiej Dach
78e590d25d Refactor skin sorting method
* Rename to `sortUserSkins` to convey meaning better.
* Sort in-place instead of slicing the list.
* Change to `void` to avoid misleading users that the method returns
  a new list instance.
* Fix typo in comment.
2021-01-19 18:36:42 +01:00
Bartłomiej Dach
b00c6a1d60 Make first non-default skin index a property
The previous code was very brittle - it was not always updating
properly, and seems to have worked either by a carefully crafted set of
circumstances, or just plain coincidence.

Having this be a get-only property avoids potential error in the future
caused by not updating the index properly, at the expense of an added
linear lookup.
2021-01-19 18:31:37 +01:00
Salman Ahmed
34612ae233 Forward internal management to a container alongside tracker 2021-01-19 20:01:22 +03:00
rednir
206a0b8bac Fix firstNonDefault staying as -1 2021-01-19 16:55:50 +00:00
rednir
a880b8d21d Satisfy AppVeyor 2021-01-19 16:11:16 +00:00
Mysfit
052e9eef02 Added inline comments 2021-01-19 09:16:39 -05:00
rednir
b265d2dab4 Remove another whitespace 2021-01-19 14:16:22 +00:00
rednir
1d4c813ff6 Merge branch 'sort-skins-alphabetically' of https://github.com/rednir/osu into sort-skins-alphabetically 2021-01-19 14:03:31 +00:00
rednir
31e61326e1 Only user skins are sorted 2021-01-19 14:00:17 +00: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
rednir
f1894a8bac fixed itemUpdated() 2021-01-19 12:17:56 +00:00
Salman Ahmed
63b4c529a6 Add xmldoc explaining what the multiplayer beatmap tracker is for 2021-01-19 11:59:07 +03:00
Salman Ahmed
5a64abee64 Inline with above method 2021-01-19 11:59:07 +03: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
Andrei Zavatski
f0add0a7cf Make BeatmapSetOverlay use OverlayHeader 2021-01-19 01:34:37 +03: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
rednir
0b65c0cd25 Remove whitespace 2021-01-18 20:17:42 +00:00
rednir
da89426a3b Merge branch 'master' of https://github.com/ppy/osu into sort-skins-alphabetically 2021-01-18 20:09:15 +00:00
Salman Ahmed
63ca9de7e4
Rewerite beatmap term properly
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-18 23:00:07 +03:00
rednir
7476cb3047 Sort SkinSection in alphabetical order 2021-01-18 19:51:42 +00:00
Salman Ahmed
5e476fa189 Enforce one missed property back to single-floating type 2021-01-18 22:07:25 +03:00
Salman Ahmed
25f511fd5b Remove unnecessary full querying 2021-01-18 21:34:24 +03: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
Dean Herbert
ced7a36788 Update namespaces 2021-01-18 21:24:10 +09:00
Dean Herbert
12443e39ae Update framework 2021-01-18 19:16:32 +09:00
Dean Herbert
707d5346c9 Merge branch 'master' into fix-spinner-spinning-weirdness 2021-01-18 18:26:44 +09: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
Dean Herbert
94fee8c31d Avoid doing a config lookup if initial conditional fails 2021-01-18 16:13:58 +09:00
Dean Herbert
1364de1166
Merge branch 'master' into beatmap-colour-setting 2021-01-18 16:07:46 +09:00
Salman Ahmed
38588ab96b Merge branch 'multiplayer-beatmap-tracker' into ready-button-clean-up 2021-01-18 10:00:31 +03:00
Salman Ahmed
b6a37c1c15 Make TriggerSuccess(filename) protected and expose in test instead 2021-01-17 22:10:30 +03:00
Salman Ahmed
ccef50e2a2 Log important message if user imported bad-checksum beatmap 2021-01-17 22:10:30 +03:00
Salman Ahmed
0425a659a8 Add null-permissive operator to manager back 2021-01-17 21:19:55 +03:00
Salman Ahmed
d93a853dfd Enforce float type in the download progress path instead 2021-01-17 21:16:48 +03:00
Salman Ahmed
585aa87c53 Fix playlist item download button never shown back after hiding 2021-01-17 19:17:14 +03:00
Dean Herbert
5e0fcc4a6c
Merge pull request #11473 from frenzibyte/explicit-search-control
Add "explicit maps" search filter control to beatmap listing
2021-01-17 23:27:15 +09:00
Dean Herbert
5278cad393 Reword setting to make more sense 2021-01-17 22:42:48 +09:00
Dean Herbert
5fd644fc57 Unify variable names 2021-01-17 22:42:48 +09:00
Bartłomiej Dach
eb53e32792 Use task completion source for room join flow
On Android, users were unable to join or create multiplayer rooms. The
root cause of that was that the both the wait and set of the
`ManualResetEvent` in `getRoomUsers` occurred on the same thread, which
created a chicken-and-egg situation - the set could not proceed until
the wait had actually completed.

Resolve by substituting the `ManualResetEvent` for a
`TaskCompletionSource` to achieve a promise-style task, which the
previous code was a crude approximation of anyway.

Closes #11385.
2021-01-17 14:40:22 +01:00
Dean Herbert
addd463d26
Merge branch 'master' into explicit-search-control 2021-01-17 21:44:25 +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
816cc7a59b Adjust explicit label spacing on beatmap set overlay 2021-01-17 00:35:23 +01:00
Bartłomiej Dach
dee46d7ba2 Use GroupBy() instead 2021-01-16 23:42:28 +01:00
Bartłomiej Dach
bb0d289993 Split variable for readability 2021-01-16 23:24:28 +01: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
adb2605d5d Enforce double type in the download progress path
Wasn't sure where to exactly put this, or whether to split it, but it's very small change to worry about, so I guess it's fine being here
2021-01-17 00:12:14 +03:00
Salman Ahmed
23c7afa573 Expose method for setting progress of archive download request 2021-01-17 00:05:51 +03:00
Salman Ahmed
4778686dc4 Expose method for triggering filename-backed success in APIDownloadRequest
Exactly like in `APIRequest<T>`
2021-01-17 00:01:11 +03:00
Salman Ahmed
96feaa027d Make ArchiveModelManager import method overridable (for testing purposes) 2021-01-17 00:01:11 +03:00
Salman Ahmed
cf23781036 Cache beatmap tracker and bind to selected item in RoomSubScreen 2021-01-17 00:01:11 +03:00
Salman Ahmed
da9c23f347 Add beatmap availability tracker component for multiplayer 2021-01-17 00:01:11 +03:00
Salman Ahmed
7ad8b167cc Add overridable method for checking local availability of current model 2021-01-17 00:01:11 +03:00
Salman Ahmed
04d17aadfa Add overridable method for verifying models in database 2021-01-17 00:01:11 +03:00
Salman Ahmed
d9034eab26 Make model manager in DownloadTrackingComposite protected 2021-01-16 22:54:54 +03:00
Bartłomiej Dach
c80e9c08fd
Merge branch 'master' into net5.0 2021-01-16 16:07:44 +01:00
Mysfit
a3535f4b79 Further simplified beatmap colouring tests. 2021-01-16 02:09:35 -05:00
Mysfit
112967c1e8 Created base class for testing beatmap colours. 2021-01-15 23:46:46 -05:00
Bartłomiej Dach
d9b671667b Merge branch 'master' into fix-judgement-animation-conditional 2021-01-15 22:10:17 +01:00
Bartłomiej Dach
3c1a86d11d Trim braces for consistency 2021-01-15 22:04:45 +01: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
8a6857f151 Add support for playing a SkinnableSample without restarting it 2021-01-15 17:16:12 +09:00
Dean Herbert
b5e784ed42 Fix possibility of crash when selecting a random skin during skin import 2021-01-15 16:34:28 +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
Dean Herbert
c3049f431a
Merge branch 'master' into net5.0 2021-01-15 15:23:41 +09:00
Dean Herbert
2b578e97e5 Fix deadlock scenario when calculating fallback difficulty
The previous code would run a calcaulation for the beatmap's own ruleset
if the current one failed. While this does make sense, with the current
way we use this component (and the implementation flow) it is quite unsafe.

The to the call on `.Result` in the `catch` block, this would 100%
deadlock due to the thread concurrency of the `ThreadedTaskScheduler`
being 1. Even if the nested run could be run inline (it should be), the
task scheduler won't even get to the point of checking whether this is
feasible due to it being saturated by the already running task.

I'm not sure if we still need this fallback lookup logic. After removing
it, it's feasible that 0 stars will be returned during the scenario that
previously caused a deadlock, but I don't necessarily think this is
incorrect. There may be another reason for this needing to exist which
I'm not aware of (diffcalc?) but if that's the case we may want to move
the try-catch handling to the point of usage.

To reproduce the deadlock scenario with 100% success (the repro
instructions in the linked issue aren't that simple and require some
patience and good timing), the main portion of the lookup can be changed
to randomly trigger a nested lookup:

```
if (RNG.NextSingle() > 0.5f)
    return GetAsync(new
DifficultyCacheLookup(key.Beatmap, key.Beatmap.Ruleset,
key.OrderedMods)).Result;
else
    return new StarDifficulty(attributes);
```

After switching beatmap once or twice, pausing debug and viewing the
state of threads should show exactly what is going on.
2021-01-15 15:19:12 +09:00
Dean Herbert
ede5abdba4 Fix unstable multiplayer room ordering when selection is made 2021-01-15 15:19:12 +09:00
Dean Herbert
b8c85ef017 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-15 15:19:12 +09:00
Dean Herbert
e0a4a666c8 Remove unnecessary workaround (mentioned package is pinned by SignalR to a working version) 2021-01-15 15:01:16 +09:00
Dean Herbert
f42a6270bb Update framework (again) for native libs fix 2021-01-15 14:57:01 +09:00
Dean Herbert
86f66727de Update KeyBinding usages in line with interface changes 2021-01-15 14:57:01 +09:00
Dean Herbert
ebbc32adfa Change conditional used to decide legacy judgement animation to match stable
In stable, the type of legacy judgement to show is based on the presence
of particle textures in the skin. We were using the skin version
instead, which turns out to be incorrect and not what some user skins
expect.

Closes #11078.
2021-01-15 14:51:27 +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
Dean Herbert
0a65ae8f1e Fix the beatmap carousel playing the difficulty change sample on beatmap change 2021-01-15 14:07:24 +09:00
Mysfit
0c01a3a685 Found a better solution than TValue type checking for additional beatmap colour settings. Added unit tests for Catch Beatmap Skin settings. 2021-01-14 23:30:24 -05:00
Dean Herbert
4cccde9007 Update framework 2021-01-15 13:20:46 +09:00
Salman Ahmed
dc8e38cf4d Remove pointless inline comment 2021-01-15 07:20:13 +03:00
Dan Balasescu
67b5ebadf5
Merge branch 'master' into fix-is-connected-thread-safety 2021-01-15 12:56:21 +09:00
Mysfit
99e43c77c2 Simplified colour config checks in SkinProvidingContainer.cs 2021-01-14 16:53:55 -05:00
Dan Balasescu
3e8732a59f
Merge branch 'master' into fix-participants-list 2021-01-14 21:30:53 +09:00
Dan Balasescu
063acefd5c
Merge branch 'master' into fix-difficulty-calculation-deadlock 2021-01-14 20:32:43 +09:00
Roman Kapustin
0ea4e221b2 Merge branch 'master' into net5.0 2021-01-14 14:02:51 +03:00
Dean Herbert
862cb1412c
Merge pull request #11410 from frenzibyte/user-beatmap-downloading-states
Add change state methods for multiplayer user beatmap availability
2021-01-14 18:42:26 +09:00
Dean Herbert
8a0b975d71 Fix deadlock scenario when calculating fallback difficulty
The previous code would run a calcaulation for the beatmap's own ruleset
if the current one failed. While this does make sense, with the current
way we use this component (and the implementation flow) it is quite unsafe.

The to the call on `.Result` in the `catch` block, this would 100%
deadlock due to the thread concurrency of the `ThreadedTaskScheduler`
being 1. Even if the nested run could be run inline (it should be), the
task scheduler won't even get to the point of checking whether this is
feasible due to it being saturated by the already running task.

I'm not sure if we still need this fallback lookup logic. After removing
it, it's feasible that 0 stars will be returned during the scenario that
previously caused a deadlock, but I don't necessarily think this is
incorrect. There may be another reason for this needing to exist which
I'm not aware of (diffcalc?) but if that's the case we may want to move
the try-catch handling to the point of usage.

To reproduce the deadlock scenario with 100% success (the repro
instructions in the linked issue aren't that simple and require some
patience and good timing), the main portion of the lookup can be changed
to randomly trigger a nested lookup:

```
if (RNG.NextSingle() > 0.5f)
    return GetAsync(new
DifficultyCacheLookup(key.Beatmap, key.Beatmap.Ruleset,
key.OrderedMods)).Result;
else
    return new StarDifficulty(attributes);
```

After switching beatmap once or twice, pausing debug and viewing the
state of threads should show exactly what is going on.
2021-01-14 18:25:34 +09:00
Dean Herbert
6eca8eac65
Merge pull request #11479 from smoogipoo/fix-judgement-1-frame-issue
Fix default judgement text mispositioned for one frame
2021-01-14 13:14:50 +09:00
smoogipoo
d5878db615 Fix default judgement text mispositioned for one frame 2021-01-14 12:33:33 +09:00
Salman Ahmed
6281c1086a Space out explicit marker in beatmap overlay 2021-01-14 05:41:09 +03:00
Salman Ahmed
abf718242b Make explicit marker font semi-bold 2021-01-14 05:40:43 +03:00
Jesse Myers
562634dfd2
Improve naming around the config lookup with fallback private method.
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-13 16:49:14 -05:00
Mysfit
8b95817f7a Moved SkinProvidingContainer bindable fetching to common method. Replaced redundant test boolean declarations with inline values. 2021-01-13 16:05:46 -05:00
Salman Ahmed
95acc457aa Fix stupid mistake
fuck.
2021-01-13 22:35:21 +03:00
Salman Ahmed
560b1e970c
Merge branch 'master' into user-beatmap-downloading-states 2021-01-13 22:31:31 +03:00
Mysfit
1248d39d7e Reverted change to AllowConfigurationLookup and added a separate AllowColourLookup bool with config case based on lookup type in SkinProvidingContainer GetConfig call. 2021-01-13 13:07:07 -05:00
Salman Ahmed
1f12b2bd09 Rename download state Downloaded to Importing 2021-01-13 18:04:53 +03:00
Salman Ahmed
43daa7c7c0 Use Colour2 of orange theme for explicit pill 2021-01-13 17:07:42 +03:00
Salman Ahmed
e275dd02e0 Create static colour properties for now 2021-01-13 17:07:11 +03:00
Salman Ahmed
9d59d784f8 Add Colour{1-4} properties to OverlayColourProvider 2021-01-13 17:06:44 +03:00
Salman Ahmed
a5f99ed8e6 Merge branch 'explicit-beatmap-markers' into explicit-search-control 2021-01-13 12:53:57 +03:00
Salman Ahmed
f827c62081 Add empty online info to test beatmap
This is for `BeatmapSetOverlay` to not eat a null reference trying to access `Beatmap.OnlineInfo`.
2021-01-13 12:27:15 +03:00
Salman Ahmed
1502b07ea8 Add explicit pill to playlist items 2021-01-13 12:27:15 +03:00
Salman Ahmed
78631323ba Add explicit pill to beatmap overlay 2021-01-13 12:13:14 +03:00
Salman Ahmed
f6637eec36 Add explicit pill to beatmap panels 2021-01-13 12:13:14 +03:00
Salman Ahmed
ee6baeb57e Add "explicit" marker pill 2021-01-13 12:13:14 +03:00
Salman Ahmed
e8daea91d2 Add online beatmap "explicit content" property 2021-01-13 12:13:14 +03:00
Mysfit
7bfb5954a8 Fix whitespace formatting. 2021-01-13 00:25:54 -05: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
smoogipoo
9a22df2b88 Fix BPM multiplier not working in all cases 2021-01-12 17:50:22 +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
Salman Ahmed
24c1839739 Add global web setting for allowing explicit content 2021-01-12 11:10:25 +03:00
Salman Ahmed
249be461d5 Add "explicit maps" search filter control 2021-01-12 11:09:55 +03:00
Bartłomiej Dach
0d5fbb15ac Fix up code comments
Default value restated in xmldoc was snipped because it's made redundant
by the initialiser and possibly bound to be outdated at some point.
2021-01-11 20:31:52 +01:00
Salman Ahmed
90fb67b377 Update code in-line with decided direction 2021-01-11 20:52:24 +03:00
Dean Herbert
dd809df076
Merge pull request #11118 from MiraiSubject/tourney-switching-ui
Add the ability to switch tournaments to the SetupScreen
2021-01-11 16:36:45 +09:00
Salman Ahmed
2286e3679f Downloaded -> Importing 2021-01-11 08:21:07 +03:00
Salman Ahmed
a8dfa5e2a9 Rename typo'd method 2021-01-11 08:04:00 +03:00
Salman Ahmed
e99310b59c Add JsonConstructor attribute 2021-01-11 08:02:57 +03:00
Dean Herbert
d2ca6da0fd Remove unused constant 2021-01-11 01:56:09 +09:00
Dean Herbert
bd37723788 Expose as IBindable for added safety 2021-01-11 01:55:54 +09:00
Dean Herbert
e4eb44df6e Merge branch 'master' into fix-play-button-crashes 2021-01-11 01:46:41 +09:00
Shivam
959696c296 Merge branch 'master' into tourney-switching-ui 2021-01-10 17:34:03 +01:00
Shivam
e5c670f843 Merge branch 'master' into tourney-switching-ui 2021-01-10 17:33:52 +01:00
Bartłomiej Dach
d110ed9e95 Merge branch 'master' into fix-mod-buttons-not-copying-settings 2021-01-10 15:42:33 +01:00
Bartłomiej Dach
4b4adc927c Rename param to match method body 2021-01-10 15:35:53 +01:00
Dean Herbert
4e32b0d6de
Merge branch 'master' into ongoing-operation-tracker-safety 2021-01-10 23:05:03 +09:00
Dean Herbert
95ad324a39
Merge branch 'master' into fix-mod-buttons-not-copying-settings 2021-01-10 23:01:54 +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
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