Commit Graph

52783 Commits

Author SHA1 Message Date
Dean Herbert
0c3d890f76 Fix reprocessing not working on import due to realm threading woes 2022-06-24 21:02:38 +09:00
Dean Herbert
30b3973c9f Difficulty cache invalidation flow 2022-06-24 21:02:38 +09:00
Dean Herbert
66a01d1ed2 Allow song select to refresh the global WorkingBeatmap after an external update 2022-06-24 21:02:38 +09:00
Dean Herbert
6999933d33 Split updater process into realm transaction and non-transaction 2022-06-24 21:02:38 +09:00
Dean Herbert
021b16f2f3 Ensure WorkingBeatmap is invalidated after update 2022-06-24 21:02:38 +09:00
Dean Herbert
fe570d8052 Queue beatmaps for update after editing 2022-06-24 21:02:38 +09:00
Dean Herbert
06d59b717c Move beatmap processing tasks to new BeatmapUpdater class 2022-06-24 21:02:37 +09:00
Dean Herbert
2ca4184eda
Merge pull request #18834 from bdach/ban-implicit-to-lower-upper
Disallow usage of `string.To{Upper,Lower}()` without explicit culture
2022-06-24 20:39:58 +09:00
Dan Balasescu
7eb49dac7a
Merge pull request #18832 from peppy/bdc-remove-unused-path
Remove unused bindable retrieval flow in `BeatmapDifficultyCache`
2022-06-24 20:20:23 +09:00
Bartłomiej Dach
a329b346a4
Merge pull request #18833 from peppy/beatmap-manager-misc
Ensure `WorkingBeatmap` is always using a detached instance
2022-06-24 13:06:09 +02:00
Dean Herbert
823b3c1c0f Ensure WorkingBeatmap is always using a detached instance 2022-06-24 19:07:54 +09:00
Dean Herbert
2ae48d5a87 Rename incorrect parameter name in BeatmapManager.GetWorkingBeatmap 2022-06-24 19:07:54 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}() 2022-06-24 11:57:45 +02:00
Dan Balasescu
e536256e3b
Merge branch 'master' into bdc-remove-unused-path 2022-06-24 17:55:56 +09:00
Dan Balasescu
c7e92f46f4
Merge pull request #18819 from peppy/difficulty-icon-refactor-pass
Refactor difficulty icons to not suck
2022-06-24 17:50:50 +09:00
Dean Herbert
c179127670 Remove unused bindable retrieval flow 2022-06-24 17:09:56 +09:00
Dean Herbert
0755430006 Use AddOnce for update calls 2022-06-24 17:09:56 +09:00
Dean Herbert
453b77e0dc Fix dangerous File.Copy causing intermittent realm migration test failures
Resolves an issue I've been able to locally reproduce on windows.
Basically, the `File.Copy` would begin while realm was blocking. The
"restore" operation is posted to the `SynchronizationContext` to run on
next update call, but in the mean time the copy would begin, causing a
conflict of interest.

Very dangerous. Only really noticeable on windows.
2022-06-24 17:09:56 +09:00
Dan Balasescu
6487cd674f
Merge pull request #18831 from peppy/fix-failing-realm-migration-test
Fix dangerous `File.Copy` causing intermittent realm migration test failures
2022-06-24 17:05:22 +09:00
Dean Herbert
8912f07745 Merge branch 'master' into difficulty-icon-refactor-pass 2022-06-24 16:34:35 +09:00
Dean Herbert
545c04aaf5 Fix dangerous File.Copy causing intermittent realm migration test failures
Resolves an issue I've been able to locally reproduce on windows.
Basically, the `File.Copy` would begin while realm was blocking. The
"restore" operation is posted to the `SynchronizationContext` to run on
next update call, but in the mean time the copy would begin, causing a
conflict of interest.

Very dangerous. Only really noticeable on windows.
2022-06-24 16:18:56 +09:00
Dean Herbert
28837693e5 Nuke calculating everything
The whole component is pointless so I'm just going to nuke for now I
guess. Kind of makes the whole refactor effort pointless but oh well?

To expand on this, the implementation was actually incorrect as pointed
out at https://github.com/ppy/osu/pull/18819#pullrequestreview-1017886035.
2022-06-24 14:24:06 +09:00
Dean Herbert
12ea8369ee Update retriever to be relatively sized 2022-06-24 14:06:31 +09:00
Dean Herbert
d9c1a9d71f Use new property to specify no tooltip, rather than passing only ruleset 2022-06-24 14:06:18 +09:00
Dean Herbert
129c907092 Remove unused parameters 2022-06-24 13:58:02 +09:00
Dean Herbert
2f86ad88ae
Merge pull request #18826 from frenzibyte/ignore-rule-typo 2022-06-24 11:03:45 +09:00
Salman Ahmed
eaae600a49 Fix typo in auto-import ignore rule 2022-06-24 04:58:27 +03:00
Dean Herbert
730228ec2a
Merge pull request #18818 from nekodex/rearrangeable-list-feedback
Add audio feedback for rearranging list items
2022-06-23 23:30:55 +09:00
Dan Balasescu
55f1702448
Merge pull request #18820 from peppy/beatmap-difficulty-cache-cleanup
Enable NRT and tidy up `BeatmapDifficultyCache`
2022-06-23 23:23:17 +09:00
Jamie Taylor
aaf619b35c
Don't play sample if there is no item being actively dragged 2022-06-23 20:13:01 +09:00
Jamie Taylor
9c46592e0e
Move collection change event binding to LoadComplete 2022-06-23 20:04:54 +09:00
Dean Herbert
ef258122d2 Move GetDifficultyRating helper method to StarDifficulty 2022-06-23 19:51:58 +09:00
Dean Herbert
b068df2149 Enable NRT on BeatmapDiffiultyCache 2022-06-23 19:51:58 +09:00
Dean Herbert
32652ace75 Update resources 2022-06-23 19:51:44 +09:00
Dean Herbert
01da6f20b3 Tidy up all remaining usages 2022-06-23 19:27:35 +09:00
Dean Herbert
7dec530ca5 Split out simple DifficultyIcon with no calculation overhead and update usages 2022-06-23 19:27:35 +09:00
Dean Herbert
4a2ca4394b Remove unused ModeTypeInfo class 2022-06-23 19:27:35 +09:00
Dean Herbert
3a83e5684c Tidy up DifficultyIcon 2022-06-23 19:27:35 +09:00
Dean Herbert
d6b073ebad Move DifficultyRetrieve to own class and split both pathways into separate constructors 2022-06-23 19:27:35 +09:00
Dean Herbert
777ac98599
Merge pull request #18817 from peppy/remove-room-null-check-more
Remove remaining `Room != null` checks in `TestMultiplayerClient` where possible
2022-06-23 18:27:05 +09:00
Jamie Taylor
4a316fad2f
Add audio feedback for rearranging list items 2022-06-23 17:45:42 +09:00
Dean Herbert
158f0a1f23 Remove remaining Room!=null checks in TestMultiplayerClient where possible 2022-06-23 17:38:34 +09:00
Dan Balasescu
9ed37621a7
Merge pull request #18816 from peppy/avoid-waiting-forever
Ban usage of `ManualResetEventSlim.Wait()` without a timeout value
2022-06-23 17:26:26 +09:00
Dan Balasescu
ac91c9de7d
Merge pull request #18815 from peppy/remove-room-null-check-change-state
Remove room null assertion in `TestMultiplayerClient.ChangeState` to avoid assert
2022-06-23 16:55:58 +09:00
Dean Herbert
51268d0cc8 Throw on Wait failure in a few remaining cases 2022-06-23 15:28:21 +09:00
Dean Herbert
7ef8b7df5f Add timeout for all ManualResetEventSlim.Wait invocations
Timeout values were taken as best-guesses of upper values we'd expect
from sane execution.
2022-06-23 14:46:00 +09:00
Dean Herbert
ed9c55a776 Ban usage of ManualResetEventSlim.Wait() without a timeout value 2022-06-23 14:45:58 +09:00
Dean Herbert
bc557bacf0 Remove room null assertion in TestMultiplayerClient.ChangeState to avoid assert
This method is run from async contexts, but `get_Room` asserts update
thread which is not the case. Was causing silent test failures (showing
as pass but failing `dotnet-test` via return code):

TestSceneMultiplayer.TestGameplayFlow

```
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: Score preparation failed!
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: NUnit.Framework.AssertionException: :
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Framework.Logging.ThrowingTraceListener.Fail(String message1, String message2)
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at System.Diagnostics.Debug.Fail(String message, String detailMessage)
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Online.Multiplayer.MultiplayerClient.get_Room() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Online/Multiplayer/MultiplayerClient.cs:line 98
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Tests.Visual.Multiplayer.TestMultiplayerClient.ChangeState(MultiplayerUserState newState) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/Multiplayer/TestMultiplayerClient.cs:line 275
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Screens.OnlinePlay.Multiplayer.MultiplayerPlayer.PrepareScoreForResultsAsync(Score score) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerPlayer.cs:line 223
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Screens.Play.Player.prepareScoreForResults() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Screens/Play/Player.cs:line 747
```
2022-06-23 14:10:20 +09:00
Dean Herbert
97fcf8cec9
Merge pull request #18668 from smoogipoo/editor-controlpoint-undo-redo 2022-06-23 04:02:24 +09:00
Dan Balasescu
e467751c95
Merge pull request #18811 from peppy/fix-realm-migration-fuck
Fix collection modified during `BlockAllOperations` if any subscriptions have been established
2022-06-22 21:32:25 +09:00