1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 20:22:55 +08:00
Commit Graph

34056 Commits

Author SHA1 Message Date
Dan Balasescu
8f91ce8f0c
Merge pull request #18871 from peppy/fix-realm-assertion-during-tests
Fix occasional failure in realm test proceedings due to incorrect `Debug.Assert`
2022-06-27 18:48:47 +09:00
Dean Herbert
50c1c066de Add various logging of global WorkingBeatmap state changes 2022-06-27 18:41:31 +09:00
Dean Herbert
0ba29b6fa6 Use currentScreen instead to make sure the screen we care about is loaded 2022-06-27 18:28:00 +09:00
Dan Balasescu
b13fa924fd
Merge pull request #18865 from peppy/fix-flaky-chat-test
Fix chat tests failing 1/10000 runs
2022-06-27 18:06:00 +09:00
Dean Herbert
f6a61472c4 Fix occasional failure in realm test proceedings due to incorrect Debug.Assert
After a `BlockAllOperations`, the restoration of the `updateRealm`
instance is not instance. It is posted to a `SynchronizationContext`.
The assertion which has been removed in this commit was assuming it
would always be an immediate operation.

To ensure this works as expected, I've tracked the initialised state via
a new `bool`.

```csharp
System.TimeoutException : Attempting to block for migration took too long.

  1) Host threw exception System.AggregateException: One or more errors occurred. (: )
 ---> NUnit.Framework.AssertionException: :
   at osu.Framework.Logging.ThrowingTraceListener.Fail(String message1, String message2)
   at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
   at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
   at System.Diagnostics.Debug.Fail(String message, String detailMessage)
   at osu.Game.Database.RealmAccess.BlockAllOperations() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Database/RealmAccess.cs:line 813
   at osu.Game.OsuGameBase.<>c__DisplayClass108_1.<Migrate>b__0() in /opt/buildagent/work/ecd860037212ac52/osu.Game/OsuGameBase.cs:line 449
   at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
   at osu.Framework.Threading.Scheduler.Update()
   at osu.Framework.Graphics.Drawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
```

https://teamcity.ppy.sh/buildConfiguration/Osu_Build/322?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildTestsSection=true
2022-06-27 18:01:12 +09:00
Dean Herbert
13dcaf82ad Fix chat tests failing 1/10000 runs
31a447fda0/osu.Game/Online/Chat/ChannelManager.cs (L412-L414)

Sigh.
2022-06-27 16:50:10 +09:00
Dean Herbert
5a7d339cc8 Centralise and harden editor-ready-for-use check
Not only does this combine the check into one location, but it also adds
a check on the global `WorkingBeatmap` being updated, which is the only
way I can see the following failure happening:

```csharp
05:19:07     osu.Game.Tests: osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.TestAddAudioTrack
05:19:07       Failed TestAddAudioTrack [161 ms]
05:19:07       Error Message:
05:19:07        TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
05:19:07       Stack Trace:
05:19:07       --TearDown
05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass7_0.<AddFile>b__0(TModel managed) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass8_0.<performFileOperation>b__0(Realm realm) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 49
05:19:07        at osu.Game.Database.RealmExtensions.Write(Realm realm, Action`1 function) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\RealmExtensions.cs:line 14
05:19:07        at osu.Game.Database.ModelManager`1.performFileOperation(TModel item, Action`1 operation) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 46
05:19:07        at osu.Game.Database.ModelManager`1.AddFile(TModel item, Stream contents, String filename) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07        at osu.Game.Screens.Edit.Setup.ResourcesSection.ChangeAudioTrack(FileInfo source) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Screens\Edit\Setup\ResourcesSection.cs:line 115
05:19:07        at osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.<TestAddAudioTrack>b__13_0() in C:\BuildAgent\work\ecd860037212ac52\osu.Game.Tests\Visual\Editing\TestSceneEditorBeatmapCreation.cs:line 101
05:19:07        at osu.Framework.Testing.Drawables.Steps.AssertButton.checkAssert()
05:19:07        at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
05:19:07        at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
```
2022-06-27 16:22:01 +09:00
Dan Balasescu
0fd2c010e5 Remove NRT disables from attributes classes 2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8 Add IBeatmapOnlineInfo parameter and use to extract more data 2022-06-27 16:07:15 +09:00
Dan Balasescu
f6a6538e96 Add more properties to IBeatmapOnlineInfo 2022-06-27 16:07:15 +09:00
Dean Herbert
10d1bbb131 Log global working beatmap updates in OsuGameBase instead of OsuGame 2022-06-27 15:58:51 +09:00
Dean Herbert
01487a1185 Add assertion on realm re-fetch being not-null 2022-06-27 15:52:45 +09:00
Dean Herbert
13c8d33009 Fix second case of empty beatmaps being reported to sentry as errors 2022-06-27 15:29:01 +09:00
Dean Herbert
da61d0547f Include archive name in import log output 2022-06-27 15:24:25 +09:00
Dan Balasescu
2b278ed324
Merge pull request #18841 from peppy/menu-cursor-better-rotation
Adjust menu cursor rotation to use a floating centre-point
2022-06-27 14:18:54 +09:00
Dean Herbert
1a22377e19 Fix test deadlock due to TPL threadpool saturation
As found in aggressive CI runs:

```csharp
00007F6F527F32B0 00007f74f937c72d (MethodDesc 00007f74f5545a78 + 0x22d System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f51c0838 + 0 System.Threading.Monitor.Wait(System.Object, Int32))
00007F6F527F3330 00007f74f93861ca (MethodDesc 00007f74f5259100 + 0x10a System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5545a78 + 0 System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken))
00007F6F527F3390 00007f74f9385d11 (MethodDesc 00007f74f52590e8 + 0x81 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5259100 + 0 System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken))
00007F6F527F33E0 00007f74fc3823af (MethodDesc 00007f74f5934c08 + 0x4f System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].GetResultCore(Boolean)), calling (MethodDesc 00007f74f52590e8 + 0 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken))
00007F6F527F3400 00007f74fb0aad92 (MethodDesc 00007f74fb28b000 + 0x122 osu.Game.Tests.Visual.OnlinePlay.OnlinePlayTestScene+<>c__DisplayClass21_0.<Setup>b__1(osu.Game.Online.API.APIRequest)), calling (MethodDesc 00007f74f5934be8 + 0 System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].get_Result())
00007F6F527F3470 00007f74fa9c6dd7 (MethodDesc 00007f74f921f6c8 + 0x77 osu.Game.Online.API.DummyAPIAccess.PerformAsync(osu.Game.Online.API.APIRequest))
00007F6F527F34C0 00007f74fb13c718 (MethodDesc 00007f74fb4e0c50 + 0x538 osu.Game.Database.OnlineLookupCache`3+<performLookup>d__13[[System.Int32, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib]].MoveNext())
```

Going with the simplest solution, as what we had was pretty ugly to start with and I don't want to overthink this, just push a fix and hope for the best.
2022-06-26 16:42:29 +09:00
Dean Herbert
2ecab454aa Adjust animations and tolerances to make things feel snappier 2022-06-25 19:50:10 +09:00
Dean Herbert
a039f9878a Adjust menu cursor rotation to follow mouse, rather than be fixated around original click location 2022-06-25 19:33:44 +09:00
Bartłomiej Dach
a83c45b50e
Fix compile failures from framework breaking change 2022-06-24 16:07:14 +02:00
Bartłomiej Dach
df30bedab6
Update framework again 2022-06-24 16:01:52 +02:00
Dean Herbert
14327943a2 Update framework 2022-06-24 21:28:30 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dean Herbert
30eebf3511 Merge branch 'master' into c-sharp-10 2022-06-24 21:22:33 +09:00
Dean Herbert
7692bac35a Simplify refetch (and ensure to invalidate after processing) 2022-06-24 21:02:38 +09:00
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
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
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
8912f07745 Merge branch 'master' into difficulty-icon-refactor-pass 2022-06-24 16:34:35 +09:00
Dean Herbert
f71f6302fd Remove unnecessary null casts 2022-06-24 14:50:11 +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
Bartłomiej Dach
04d69010b5
Split overlong conditional to local function 2022-06-23 18:03:07 +02:00
Bartłomiej Dach
bea70988bc
Remove unnecessary #nullable disable 2022-06-23 17:57:22 +02:00
Gabe Livengood
454eff43c5
publicity -> accesstype 2022-06-23 11:40:25 -04:00
Gabe Livengood
d67c482c48
move publicity filter to multi exclusively 2022-06-23 11:36:08 -04:00
Gabe Livengood
9a15adbfff
add an all option to publicity filter 2022-06-23 11:24:28 -04:00
Gabe Livengood
2def6d809b
refactor to use enum dropdown 2022-06-23 11:02:27 -04: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
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
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
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
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
Gabe Livengood
bf5a7e3f2a
add locked room filter 2022-06-22 17:01:28 -04:00
Dean Herbert
97fcf8cec9
Merge pull request #18668 from smoogipoo/editor-controlpoint-undo-redo 2022-06-23 04:02:24 +09:00
Dean Herbert
948c28f415 Fix collection modified during BlockAllOperations if any subscriptions have been established 2022-06-22 20:34:05 +09:00
Dean Herbert
b660119de7
Merge pull request #18796 from bdach/mod-overlay/legacy-key-bindings
Add setting option to toggle between mod overlay hotkey styles
2022-06-22 20:28:18 +09:00
Jamie Taylor
950551f4fd
Fix metronome arm being stuck white when paused 'close enough' to center 2022-06-22 15:33:42 +09:00
Dan Balasescu
b81c7c7951
Merge pull request #18804 from Joehuu/online-view-chat-overlay
Add back online view container to chat overlay
2022-06-22 14:41:06 +09:00
Dean Herbert
e15b2afdd9
Merge branch 'master' into reorganised-maintenance-section 2022-06-22 13:45:57 +09:00
Dan Balasescu
ff440fc1a4 Fix too many buttons inside condition 2022-06-22 13:44:41 +09:00
Dan Balasescu
321920bc85 Remove one more nullable disable 2022-06-22 13:44:41 +09:00
Dan Balasescu
1018c9852d Cleanup nullability 2022-06-22 13:44:41 +09:00
Dan Balasescu
23254d2ff2 Fix broken files 2022-06-22 13:44:41 +09:00
Joseph Madamba
07e0cd53a4 Add back online view container to chat overlay 2022-06-21 19:23:16 -07:00
Joseph Madamba
50728f3fbc Fix overlay header tab item not working with localisable string 2022-06-21 18:31:09 -07:00
Dean Herbert
cf0f32f928
Merge pull request #18790 from peppy/fix-realm-async-write-blocking-overhead
Fix blocking overhead when calling `WriteAsync`
2022-06-22 09:39:17 +09:00
Supersonicboss1
4aa86b0a80 fixed duplicates and cleaned up code 2022-06-21 23:41:25 +01:00
Supersonicboss1
e4931f977c improved UI of maintenance section in settings 2022-06-21 23:00:03 +01:00
Bartłomiej Dach
7013909322
Remove unnecessary protected virtual 2022-06-21 16:43:04 +02:00
Bartłomiej Dach
f564ed589f
Alter sequential hotkey style to always use visible index
Previous behaviour was once mentioned off-hand as unintuitive.
2022-06-21 15:22:18 +02:00
Bartłomiej Dach
9e5cc89edb
Fix classic hotkeys toggling filtered mods 2022-06-21 15:01:33 +02:00
Bartłomiej Dach
da1814e7c3
Restructure everything to fix free mod overlay issue 2022-06-21 14:48:41 +02:00
Bartłomiej Dach
7b7b8c1892
Implement behaviour for classic selection style 2022-06-21 14:24:30 +02:00
Bartłomiej Dach
234120ff43
Forward entire event to IModHotkeyHandler
Required for shift handling in the classic implementation.
2022-06-21 13:37:17 +02:00
Bartłomiej Dach
658f5341c7
Set up flow for switching between hotkey styles 2022-06-21 13:34:58 +02:00
Bartłomiej Dach
5abd8a07d2
Add setting for changing mod select hotkey style 2022-06-21 13:33:17 +02:00
Dan Balasescu
816fd338cb
Fix typo 2022-06-21 19:57:27 +09:00
Bartłomiej Dach
73124d2b1f
Encapsulate mod hotkey selection logic in strategy pattern 2022-06-21 12:49:01 +02:00
Dan Balasescu
a7de43ade6 Add attribute ID 2022-06-21 19:31:45 +09:00
Dean Herbert
2e3d8d7e5d Update framework 2022-06-21 18:13:14 +09:00
Dean Herbert
b7b7de115f
Merge pull request #18744 from nekodex/new-metronome-sfx
New audio feedback for metronome
2022-06-21 17:16:41 +09:00
Dean Herbert
f74b4ac277 Fix blocking overhead when calling WriteAsync 2022-06-21 17:15:25 +09:00
Dean Herbert
7d988da2c7
Merge pull request #18788 from peppy/editor-seek-constant-while-playing
Change editor seek-while-playing modifier to be BPM agnostic
2022-06-21 15:28:46 +09:00
Dean Herbert
a40ad6f784 Add slight transform when resetting arm from almost-zero 2022-06-21 15:07:35 +09:00
Dean Herbert
82c4d855d4 Rename sample variable to be easier to discern from other fields 2022-06-21 15:05:17 +09:00
Dean Herbert
16a9e18815 Adjust timing of latch to be more in sync with visuals 2022-06-21 15:02:53 +09:00
Dean Herbert
7b46d38318 Move colour fade back to where it was 2022-06-21 15:02:43 +09:00
Dean Herbert
3b79c632f5 Merge branch 'master' into new-metronome-sfx 2022-06-21 14:58:58 +09:00
Dean Herbert
42701757c3 Fix latch reset logic 2022-06-21 14:52:57 +09:00
Dean Herbert
22cb8b0d43
Merge pull request #18768 from smoogipoo/spectator-reset-speed-at-end
Reset spectator speed after the last frame is reached
2022-06-21 14:41:08 +09:00
Dean Herbert
1b122f88c0
Merge pull request #18786 from bdach/osu-link-ipc
Add ability to handle `osu://` scheme links via IPC on desktop
2022-06-21 14:40:46 +09:00
Dean Herbert
88f450e1d0 Remove accidental nullable enable spec 2022-06-21 14:40:21 +09:00
Bartłomiej Dach
6807d0e44f
Merge branch 'master' into osu-link-ipc 2022-06-21 07:27:35 +02:00
Dean Herbert
72c0fc3fec
Merge pull request #18753 from frenzibyte/prevent-mistimed-metronome-beats
Fix metronome playing mistimed beat sounds on editor clock resume
2022-06-21 13:48:42 +09:00
Dean Herbert
c61e90d768 Change editor seek-while-playing modifier to be BPM agnostic 2022-06-21 13:07:50 +09:00
Dan Balasescu
046b848bcd Split group selection to separate method 2022-06-21 12:53:06 +09:00
Salman Ahmed
4472c6fe2e
Merge branch 'master' into spectator-reset-speed-at-end 2022-06-21 06:46:37 +03:00
Salman Ahmed
f103de4efb
Merge branch 'master' into spectator-reset-speed-at-end 2022-06-21 06:37:58 +03:00
Dan Balasescu
b3e5642dfd Use WaitingOnFrames instead 2022-06-21 12:23:43 +09:00
Dan Balasescu
93ce6fc981 Remove redundant diff processing 2022-06-21 12:11:44 +09:00
Dan Balasescu
9763a58392 Change to use ReferenceEquals 2022-06-21 12:05:52 +09:00
Dan Balasescu
6a26461683 Compare by reference in ControlPoint.Equals() 2022-06-21 12:05:28 +09:00
Bartłomiej Dach
ee96d84ffa
Merge branch 'master' into input-settings 2022-06-20 22:55:43 +02:00
Bartłomiej Dach
21d60231b6
Add limited test coverage of osu:// scheme link IPC flow 2022-06-20 22:22:25 +02:00
Bartłomiej Dach
330af7ec74
Handle osu:// scheme links via IPC in desktop game 2022-06-20 21:26:22 +02:00
Bartłomiej Dach
92011124d1
Implement IPC channel for osu:// scheme links 2022-06-20 20:08:36 +02:00
Bartłomiej Dach
34f1c80b7c
Add and use ILinkHandler interface 2022-06-20 20:04:21 +02:00
Bartłomiej Dach
577a87bcad
Merge branch 'master' into importer-post-import-rename 2022-06-20 13:37:16 +02:00
Dean Herbert
ba394f2831 Remove IPostsImports interface (and move to IModelImporter) 2022-06-20 18:53:48 +09:00
Dean Herbert
e732c5a2d7 Add PostImport method matching PreImport 2022-06-20 18:40:23 +09:00
Dean Herbert
45c5013f09 Remove default value of RealmArchiveModelImporter.HandledExtensions
Not used anywhere and probably not wanted ever.
2022-06-20 18:40:23 +09:00
Dean Herbert
dbae4c6f5a PostImport -> PresentImport 2022-06-20 18:36:29 +09:00
Dean Herbert
ebcee21f6f Remove necessity to provide BeatmapDifficultyCache as a function to ScoreManager 2022-06-20 17:52:42 +09:00
Dan Balasescu
c402e90598
Merge pull request #18777 from peppy/output-directory-on-import-failure
Silence exception and provide more log output when import fails due to empty `.osu` files
2022-06-20 17:36:21 +09:00
Dan Balasescu
e0c82d11ab Convert == usages to ReferenceEquals 2022-06-20 16:56:19 +09:00
Dan Balasescu
16281f4a48 Properly annotate method to allow null 2022-06-20 16:56:19 +09:00
Dan Balasescu
ca287d0936 Fix group deselected when table is recreated 2022-06-20 16:56:19 +09:00
Dean Herbert
d38defada4 Silence exception and provide more log output when import fails due to empty .osu files 2022-06-20 16:07:10 +09:00
Dean Herbert
4aa32038c3 Add note about stream provided to ImportTask being disposed implicitly 2022-06-20 15:38:44 +09:00
Dean Herbert
882e1c69e5 Move nested task back outside try-catch to avoid double-error 2022-06-20 15:36:44 +09:00
Dean Herbert
678b18dde6 Ensure any non-MemoryStream streams are closed as part of ImportTask 2022-06-20 15:29:56 +09:00
Dan Balasescu
a922ea9b01 Fix selection by directly comparing control points
Previously, all control points would get replaced, which led to
performance issues that was worked around in this PR. By comparing
control points, we're able to get good performance without requiring the
workaround.
2022-06-20 15:29:29 +09:00
Dan Balasescu
03ab6fc141 Implement IEquatable on ControlPoint 2022-06-20 15:27:43 +09:00
Dean Herbert
dd93c7359e Update xmldoc for importFromArchive method 2022-06-20 15:25:43 +09:00
Dean Herbert
92f1a2958c Rename Import(TModel) to ImportModel to differentiate from other import methods 2022-06-20 15:18:07 +09:00
Dean Herbert
a6c8a832aa Remove Import(ArchiveReader) and redirect existing usages to Import(ImportTask) 2022-06-20 15:14:57 +09:00
Dean Herbert
7daab2d45b Merge branch 'master' into skin-editor-transform-fix 2022-06-20 14:10:01 +09:00
Dean Herbert
329f1a0822 Add test coverage of original fail case and improve test reliability and code quality 2022-06-20 14:08:05 +09:00
Dan Balasescu
468e5fcbed Merge branch 'master' into editor-controlpoint-undo-redo 2022-06-20 13:47:01 +09:00
Gabe Livengood
a5bc769243
clear skineditor selected components on hide 2022-06-19 14:34:52 -04:00
Gabe Livengood
36df1da57f
Revert "stop component transform when skineditor is hidden"
This reverts commit 48ffd6aeb5.
2022-06-19 14:26:02 -04:00
Bartłomiej Dach
3ab8158b92
Do not try to set ruleset from beatmap if it's a dummy 2022-06-19 20:08:39 +02:00
Bartłomiej Dach
93b3ede2a0
Always use beatmap ruleset in editor gameplay test mode
Fixes cases where opening a convertible beatmap (so any osu! beatmap)
with the game-global ruleset being set to anything but osu! would result
in opening the editor gameplay test mode with the game-global ruleset
rather than the beatmap's.
2022-06-19 19:30:40 +02:00
Bartłomiej Dach
9023fdc947
Merge branch 'master' into reidrect-graceful-exit 2022-06-19 13:43:15 +02:00
Bartłomiej Dach
495d747da5
Fix mismatching braces in comment 2022-06-19 13:42:45 +02:00
Dan Balasescu
98d69c846c Reset spectator speed at last frame 2022-06-19 17:12:20 +09:00
Dean Herbert
6515b249ec Change data migration to do an immediate exit, rather than attempted exit 2022-06-19 12:39:58 +09:00
Dean Herbert
50e40756c4 Rename GracefullyExit to AttemptExit 2022-06-19 12:34:44 +09:00
Salman Ahmed
a2e17941e5
Merge branch 'master' into timing-offset-adjust-seek-only-at-start 2022-06-19 01:27:44 +03:00
Bartłomiej Dach
2a95715652
Merge branch 'master' into fix-input-regression 2022-06-18 19:44:53 +02:00
Salman Ahmed
f7fc456bb1
Merge branch 'master' into reidrect-graceful-exit 2022-06-18 19:37:53 +03:00
Dean Herbert
3902dc64f0 Fix adjusting offset via button seeking to timing point's offset unexpectedly
This was added with the intention of tracking the offset when already at
the start (the most common case when you're using the tap timing
wizard), but was also seeking when the user may be much further beyond
or before it.

Addresses https://github.com/ppy/osu/discussions/18741#discussioncomment-2975051.
2022-06-19 01:35:45 +09:00
Dean Herbert
b2663d9399 Update xmldoc to suggest that GracefullyExit may be overridden 2022-06-19 01:14:48 +09:00
Dean Herbert
3fa8c19acd Merge branch 'master' into latency-certifier/hidden-cursor 2022-06-19 00:31:11 +09:00
Salman Ahmed
a5e5172b91 Fix BlueprintContainer eating input from skin editor buttons 2022-06-18 18:28:36 +03:00
Dean Herbert
56abe54fe6 Redirect graceful exiting to standard exit flow
Rather than doing a completely forced exit as we were, this will now
follow a more standard flow with the ability for the user to abort along
the way. This is more in line with how I wanted this to work.

Note that this means a confirmation is now shown. It has been discussed
in the past that this confirmation should only show when there's an
ongoing action implies the user may want to cancel the exit. For now I
think this is fine.

Addresses
https://github.com/ppy/osu/discussions/18399#discussioncomment-2811311
2022-06-18 23:43:46 +09:00
Bartłomiej Dach
5917c70127
Merge branch 'master' into multi-song-select-operation 2022-06-18 11:58:13 +02:00
Bartłomiej Dach
f6a3047596
Merge branch 'master' into editor-metadata-name-unification 2022-06-18 10:22:52 +02:00
Dan Balasescu
77e7e4ecb2 Fix selection being blocked after early return 2022-06-18 14:28:30 +09:00
Dean Herbert
bd5037fcad Fix new hitobject placements not taking on the existing sample settings
Similar to velocity / difficulty points, a user expectation is that
volume and sample settings will be transferred to newly placed objects
from the most recent one.

Closes https://github.com/ppy/osu/issues/18742.
2022-06-18 13:49:59 +09:00
Dean Herbert
8ad96fd94b Update resources 2022-06-18 10:55:24 +09:00
Salman Ahmed
204348f327 Fix metronome playing mistimed beat sounds on editor clock resume 2022-06-18 04:49:44 +03:00
Salman Ahmed
8a1d11fefb Cancel previous metronome sound playback on pause 2022-06-18 04:07:21 +03:00
Dan Balasescu
e04df371d1 Merge branch 'master' into multi-song-select-operation 2022-06-18 08:51:24 +09:00
Dan Balasescu
14cdb01fd8 Revert unintended change 2022-06-18 08:49:48 +09:00
Gabe Livengood
48ffd6aeb5
stop component transform when skineditor is hidden 2022-06-17 11:28:58 -04:00
Dean Herbert
4bc26dbb48
Merge pull request #18743 from smoogipoo/nullable-by-default
Enable NRT by default
2022-06-17 23:18:35 +09:00
Dean Herbert
5d93db1522
Merge pull request #18726 from peppy/disclaimer-stop-handling-after-suspend
Fix `Disclaimer` screen handling user change events after initial display
2022-06-17 18:28:06 +09:00
Dean Herbert
1900480d51 Inline animation method 2022-06-17 17:06:06 +09:00
Dan Balasescu
869db52540 Tie loading layer to ongoing operation state 2022-06-17 17:05:23 +09:00
Dean Herbert
e51babdb96 Change heart animation flow to be more correct 2022-06-17 17:01:11 +09:00
Jamie Taylor
1f78a4fadd
New audio feedback for metronome 2022-06-17 16:56:09 +09:00
Dan Balasescu
fd9902e816 Manual #nullable processing 2022-06-17 16:38:35 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu
ea191da496
Merge pull request #18728 from peppy/fix-unsafe-sample-playback
Fix unsafe sample playback in `GameplaySampleTriggerSource`
2022-06-17 12:26:46 +09:00
Bartłomiej Dach
6ff6a3f5b3
Rename and document chooserPath 2022-06-16 21:51:31 +02:00
Bartłomiej Dach
6f2f4dda37
Merge branch 'master' into fix-up-down 2022-06-16 21:44:56 +02:00
Salman Ahmed
db02cb81c5 Fix file chooser path not opening home directory initially 2022-06-16 20:48:17 +03:00
Salman Ahmed
f7a27b412a Revert "Let latency certifier buttons steal hover from area"
This reverts commit beb0331640.
2022-06-16 20:35:30 +03:00
Salman Ahmed
e4ddf03ad6 Fix toolbar music button handling keys while not hovered 2022-06-16 20:22:57 +03:00
Salman Ahmed
8e088140b2 Reword comment since IRequireHighFrequencyMousePosition isn't the issue 2022-06-16 20:09:10 +03:00
Salman Ahmed
beb0331640 Let latency certifier buttons steal hover from area 2022-06-16 20:00:30 +03:00
Salman Ahmed
ed6817ae6a Allow switching between latency and menu cursor using IProvideCursor 2022-06-16 19:46:31 +03:00
Salman Ahmed
52538dc708 Refactor LatencyCursorContainer to become a cursor container 2022-06-16 19:46:04 +03:00
Salman Ahmed
47d0ecf5e8 Merge branch 'master' into editor-metadata-name-unification 2022-06-16 18:53:23 +03:00
Salman Ahmed
6aee689586 Fix previous file lookup not using metadata properties 2022-06-16 18:50:38 +03:00
Salman Ahmed
f1081db953 Fix background/track implicitly renamed on initial load 2022-06-16 18:48:32 +03:00
Bartłomiej Dach
651862fee0
Merge branch 'master' into database-migration-reliability 2022-06-16 17:19:58 +02:00
Dean Herbert
bf6c6682bc Move null to finally 2022-06-16 23:37:24 +09:00
Dean Herbert
7809566f16 Add explanatory comments 2022-06-16 23:31:49 +09:00
Dean Herbert
7b0fad6461 Null disposal token after use 2022-06-16 23:29:33 +09:00
Bartłomiej Dach
9c4f6d2ce0
Merge branch 'master' into first-run-setup-notification-interruption 2022-06-16 15:14:40 +02:00
Dean Herbert
d48fbdb439 Merge branch 'bmm-cleanup' into bmm-cleanup-2 2022-06-16 19:48:54 +09:00
Dean Herbert
e66ccfd980 Add back missing notification flow 2022-06-16 19:48:18 +09:00
Dean Herbert
448eee051a Update filename to match new class name 2022-06-16 19:41:14 +09:00
Dean Herbert
3860f0b3e5 Remove unused GetWorkingBetamap method 2022-06-16 19:08:59 +09:00
Dean Herbert
ce3d3a967c Reimplement missing methods 2022-06-16 19:05:25 +09:00
Bartłomiej Dach
a635664a86
Fix invalid method reference in comment
`BeatmapModelManager.Save()` was moved to `BeatmapManager`, not to
`BeatmapImporter`.
2022-06-16 12:01:53 +02:00
Dean Herbert
72c5b9009d Remove local realm fields in manager classes 2022-06-16 18:56:53 +09:00
Dean Herbert
f3984d98e6 Remove RealmArchiveModelManager from hierarchy 2022-06-16 18:53:13 +09:00
Dean Herbert
8a5755ca52 Remove pointless override in test implementation 2022-06-16 18:27:16 +09:00
Dean Herbert
04e4c5ef88 Move and adjust implementation regions to restore sanity 2022-06-16 18:26:13 +09:00
Dean Herbert
4d9e3d1982 Rename Score/Skin ModelManager classes to Importer for now 2022-06-16 18:11:50 +09:00
Dean Herbert
1f3e1b2d97 Combine BeatmapManager and BeatmapModelManager into one class 2022-06-16 18:07:04 +09:00
Dean Herbert
8ea3042435 Move file extensions specification to common class 2022-06-16 18:00:27 +09:00
Dean Herbert
84dba36cf5 Update usages of BeatmapModelManager which only require importing to use BeatmapImporter 2022-06-16 17:59:24 +09:00
Dean Herbert
4c372539a1 Consolidate remaining methods in BeatmapModelManager 2022-06-16 17:59:24 +09:00
Dean Herbert
251923c106 Convert NotificationOverlay to NRT 2022-06-16 17:28:08 +09:00
Dean Herbert
6b30ee0950 Tidy up DI and binding logic 2022-06-16 17:26:43 +09:00
Dean Herbert
953ca8c2dd
Merge pull request #18715 from bdach/ruleset-mod-hardening
Add several protections when creating game-global available mods
2022-06-16 17:18:49 +09:00
Dean Herbert
4526f8c07d Move database backup creation to async thread where possible 2022-06-16 17:01:17 +09:00
Dean Herbert
17dbb599d1 Don't backup collection database
This is no longer required due to recent changes which mean the
collection database will retain beatmap references even if they aren't
loaded locally (see https://github.com/ppy/osu/pull/18619).
2022-06-16 16:48:53 +09:00
Dean Herbert
739a696467 Ensure reading of existing databases when making backups doesn't create a file 2022-06-16 16:48:06 +09:00
Dean Herbert
ec53d87c30 Fix unsafe sample playback in GameplaySampleTriggerSource
Resolves https://github.com/ppy/osu/issues/18727.

Added delay from `Schedule` should be minimal as it is always called
from the `Update` thread (input propagation) anyway.
2022-06-16 16:04:57 +09:00
Dean Herbert
89533fa33d Fix Disclaimer screen handling user change events after initial display
Unnecessary overhead, but also should resolve a production hard crash.
2022-06-16 15:40:20 +09:00
Dean Herbert
ac554ca51f Update resources 2022-06-16 15:06:34 +09:00
Bartłomiej Dach
f88c568c8d
Update flag sizes after switch to twemoji assets
The old flags used a size of 150x100, while the new assets based on
twemoji use a size of 150x108. Update existing usages to match this new
aspect ratio better.
2022-06-15 21:45:47 +02:00
Salman Ahmed
2c35b1404b Use FileInfo as current bindable type 2022-06-15 19:29:09 +03:00
Salman Ahmed
5d74d92fcf Revert virtual current bindable 2022-06-15 19:28:43 +03:00
Salman Ahmed
e7dcbddbeb Fix potential null reference 2022-06-15 18:53:49 +03:00
Bartłomiej Dach
1acbb87aa6
Ensure AvailableMods.Value is never null 2022-06-15 17:40:16 +02:00
Bartłomiej Dach
30382b0445
Fill out GetModsFor() xmldoc and annotate items as non-null 2022-06-15 17:40:15 +02:00
Bartłomiej Dach
e74b563b91
Add protection against arbitrary exceptions from GetModsFor() 2022-06-15 17:31:46 +02:00
Bartłomiej Dach
6e5e506fb4
Add protection against rulesets returning null mods 2022-06-15 17:31:46 +02:00
Salman Ahmed
026bad7fc4 Use notification processing mode logic instead 2022-06-15 18:13:24 +03:00
Salman Ahmed
1ff070f5ff Decouple LabelledFileChooser from LabelledTextBoxWithPopover 2022-06-15 17:45:31 +03:00
Dean Herbert
f23ddfe6cc Move remaining realm classes out of Stores namespace 2022-06-15 21:56:00 +09:00
Dean Herbert
23d7667f39 Move BeatmapImporter to correct namespace 2022-06-15 21:47:52 +09:00
Dean Herbert
9edc4fc181 Remove unnecessary ShouldDeleteArchive override (already done in base implementation) 2022-06-15 21:47:52 +09:00
Dean Herbert
7571ab6c63 Merge branch 'master' into new-dialog-sfx 2022-06-15 19:47:00 +09:00
Dean Herbert
7a2919975a Fix sound clash when exiting a multiplayer room with confirmation 2022-06-15 18:48:22 +09:00
Dan Balasescu
d89c80ace2 Block operations during beatmap selection in match 2022-06-15 18:44:16 +09:00
Dean Herbert
1520ccf865 Fix double back sound due to sub screen presence in multiplayer/playlists 2022-06-15 18:44:16 +09:00
Dean Herbert
c27e5d1216 Fix editor still playing back sound when exiting with confirmation 2022-06-15 18:44:02 +09:00
Dean Herbert
e880fcf3cb
Merge pull request #18704 from peppy/update-framework
Update framework
2022-06-15 18:06:11 +09:00
Dean Herbert
584345a97e
Merge pull request #18693 from frenzibyte/toolbar-volume-control
Add basic volume control support in toolbar music button
2022-06-15 17:50:10 +09:00
Dean Herbert
be2b4e68b9 Don't play player exit sound when restarting 2022-06-15 17:49:18 +09:00
Dean Herbert
713cff3403 Don't play editor exit sound when changing difficulties 2022-06-15 17:49:09 +09:00
Dean Herbert
fd4529aa7c Play editor exit sound if no confirmation buttons were shown during exit process 2022-06-15 17:37:54 +09:00
Dean Herbert
7ac5019c08 Fix intro screens playing exit sounds 2022-06-15 17:37:30 +09:00
Dean Herbert
6136e4e27a Don't play exit sound if screen is in a non-resumable state when exiting 2022-06-15 17:37:25 +09:00
Dean Herbert
b3aa4fcf02 Adjust a channel rather than the overall sample 2022-06-15 17:33:07 +09:00
Dean Herbert
94aa2248ca Move filter reset to more appropriate location 2022-06-15 17:32:21 +09:00
Dean Herbert
87bf53485a
Merge pull request #18649 from frenzibyte/selection-context-outside-bounds
Fix context menus not appearing when clicking outside of editor playfield's bounds
2022-06-15 17:08:09 +09:00
Dean Herbert
080f2859ef
Merge pull request #18689 from peppy/quick-import-only-on-batch
Always perform full consistency checks for single imports
2022-06-15 17:06:06 +09:00