1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-17 00:33:21 +08:00
Commit Graph

3116 Commits

Author SHA1 Message Date
Bartłomiej Dach
ccfc361626
Apply naming suggestions 2021-12-06 21:02:38 +01:00
Bartłomiej Dach
0f74389389
Add scrolling for long difficulty lists in beatmap card 2021-12-05 20:17:59 +01:00
Bartłomiej Dach
af35652b8b
Disable beatmap card expansion on solo spectator screen 2021-12-05 20:07:58 +01:00
Bartłomiej Dach
e451e43b90
Implement input handling behaviour of beatmap card dropdown 2021-12-05 16:31:45 +01:00
Bartłomiej Dach
250e5b47b7
Move "extra info" beatmap card row to separate component 2021-12-05 15:52:19 +01:00
Bartłomiej Dach
3fea8d5e62
Implement visual behaviour of expanded card state 2021-12-05 15:48:02 +01:00
Bartłomiej Dach
a07f8c74dc
Add basic structure for composable card dropdown 2021-12-05 15:26:37 +01:00
Bartłomiej Dach
38702beabf
Merge branch 'master' into i-ruleset-store 2021-12-04 15:05:39 +01:00
Dean Herbert
e75e209053 Cache and consume IRulesetStore where feasible 2021-12-03 18:16:01 +09:00
Dean Herbert
9c717ce7ec
Merge branch 'master' into diffcalc-cli-arg 2021-12-03 15:10:55 +09:00
Bartłomiej Dach
45656c3599
Fix difficulty spectrum display not ordering ruleset groups by ID 2021-11-29 22:06:11 +01:00
Bartłomiej Dach
0fc4d6dc2a
Implement beatmap card difficulty list 2021-11-29 22:04:09 +01:00
Dean Herbert
a7e4e7be3a Remove the ability to specify a filename in ReplaceFile 2021-11-29 18:11:51 +09:00
Dan Balasescu
e5dcfc3113 Use console IPC 2021-11-28 14:03:21 +09:00
Bartłomiej Dach
05f7ea6b6d
Remove mentions of "panel" and "direct" from names of old download buttons 2021-11-27 15:08:03 +01:00
Bartłomiej Dach
a043d1e427
Move old beatmap download button to more general namespace 2021-11-27 15:06:57 +01:00
Bartłomiej Dach
7419682334
Move icon pill to beatmap card-specific namespace 2021-11-27 15:01:48 +01:00
Dean Herbert
f16ef1ee69 Reapply schedule workaround for PreviewTrack 2021-11-26 22:34:05 +09:00
Dean Herbert
bf443a5a7a Switch unnecessary return to break instead 2021-11-26 15:36:16 +09:00
Dean Herbert
5de2f6211d Show a spinner instead of the download button on the new card during beatmap download 2021-11-26 15:32:33 +09:00
Bartłomiej Dach
84a36ab4a9
Add integration with beatmap set overlay 2021-11-25 22:30:46 +01:00
Dan Balasescu
f712aeee01
Merge pull request #15795 from peppy/realm-integration/separate-download-flow
Split out download logic from main manager classes
2021-11-25 20:59:23 +09:00
Dan Balasescu
d7a960212f
Merge pull request #15794 from peppy/realm-integration/stable-export-flow
Split out legacy model export logic into `LegacyModelExporter` classes
2021-11-25 20:20:18 +09:00
Dan Balasescu
2b85738384
Merge pull request #15797 from peppy/remove-pointless-i-beatmap-model-manager
Remove pointless interface class for `IBeatmapModelManager`
2021-11-25 19:07:19 +09:00
Dean Herbert
a6ee0eec0d Remove pointless interface class for IBeatmapModelManager
Was originally going to be used but serves no purpose any more.
2021-11-25 18:15:10 +09:00
Dean Herbert
eeccf836ec Remove unnecessary GameHost parameter 2021-11-25 17:42:41 +09:00
Dean Herbert
716543b5b3 Move beatmap download logic out of BeatmapManager 2021-11-25 17:29:41 +09:00
Dean Herbert
cc1b91e4bd Split out legacy model export logic into LegacyModelExporter classes 2021-11-25 16:41:12 +09:00
Dean Herbert
7488ccd5fe Update all models to implement IHasNamedFiles 2021-11-25 16:41:12 +09:00
Dean Herbert
416ee2447a Move archive filename helper method to extension method 2021-11-25 16:35:54 +09:00
Dean Herbert
6cab7b877d Move stable import handling into its own class 2021-11-25 15:36:58 +09:00
Dean Herbert
1533e245de
Merge pull request #15767 from bdach/beatmap-card/track-preview
Add preview track playback function to beatmap card
2021-11-25 12:08:03 +09:00
Dan Balasescu
ce8500a732
Merge branch 'master' into remove-model-file-list-inits 2021-11-24 19:46:42 +09:00
Dean Herbert
b739b6a725
Merge branch 'master' into beatmap-card/track-preview 2021-11-24 18:54:25 +09:00
Dean Herbert
183b95cbc2 Rename BeatmapSetOnlineStatus to BeatmapOnlineStatus
This variable is used at more than just a set level.
2021-11-24 18:42:49 +09:00
Dean Herbert
ddbd4f9473 Merge branch 'master' into remove-model-file-list-inits 2021-11-24 18:39:01 +09:00
Dan Balasescu
5ff62a8e04
Merge pull request #15779 from peppy/remaining-misc-fixes
Apply some various code quality fixes that don't fit elsewhere
2021-11-24 16:59:49 +09:00
Dan Balasescu
74b6c33fab
Merge pull request #15778 from peppy/ruleset-info-id-usage
Update usages of `RulesetInfo.ID` to use `OnlineID` instead
2021-11-24 16:55:28 +09:00
Dan Balasescu
834bdd8e5c
Merge pull request #15776 from peppy/non-null-beatmapset-metadata
Make `BeatmapSet.Metadata` non-null
2021-11-24 16:48:28 +09:00
Dan Balasescu
8ce5324c8b
Merge pull request #15772 from peppy/remove-model-list-inits
Initialise `BeatmapSet.Beatmaps` list at construction time
2021-11-24 16:41:19 +09:00
Dean Herbert
3e0e01abdb Move bookmark parsing logic into LegacyBeatmapDecoder 2021-11-24 16:29:51 +09:00
Dean Herbert
9c61ec217b Remove unnecessary mainTrackMixer parameter from BeatmapManager 2021-11-24 16:27:17 +09:00
Dean Herbert
bbd3ea5b77 Update all actual usages of RulesetInfo.ID to use OnlineID instead 2021-11-24 15:50:26 +09:00
Dean Herbert
3946a39b65 Make BeatmapSet.Metadata non-null 2021-11-24 15:03:34 +09:00
Dean Herbert
a7853fc9cc Fix cases of known-non-null 2021-11-24 14:26:25 +09:00
Dean Herbert
99a139dc98 Initialise all file lists at construction time (and remove setter) 2021-11-24 13:56:21 +09:00
Dan Balasescu
6183d1cd46
Merge pull request #15769 from peppy/model-equality-consistency
Update cases where equality can be used instead of primary key equality
2021-11-24 13:45:57 +09:00
Dean Herbert
a3fdab34d5 Avoid json serialisation of aggregate helper properties
Also avoids `throw`ing when there are no beatmaps available. Until now
this wasn't an issue due to the `Beatmaps` list being null instead of empty.
2021-11-24 13:36:34 +09:00
Dean Herbert
8c60f37508 Fix cases of dynamically assigning Beatmaps to BeatmapSetInfo using list assignment 2021-11-24 13:27:37 +09:00
Dean Herbert
49c2cb9125 Initialise BeatmapSet.Beatmaps list to line up with realm expectations 2021-11-24 13:25:55 +09:00
Dean Herbert
729f681938 Update cases where equality can be used instead of primary key equality 2021-11-24 12:49:57 +09:00
Dean Herbert
0eea026afb Remove null checks on CreateInstance() calls 2021-11-24 12:23:09 +09:00
Bartłomiej Dach
1a1603f0db
Implement preview track playback 2021-11-23 23:17:30 +01:00
Bartłomiej Dach
9164f006aa
Implement basic behaviour of play button 2021-11-23 22:44:09 +01:00
Bartłomiej Dach
5d13686cdf
Add play button for card preview 2021-11-23 22:44:08 +01:00
Bartłomiej Dach
4011da033b
Split off thumbnail to separate component 2021-11-23 22:44:07 +01:00
Dean Herbert
b9923e5396 Remove subclassing of RulesetInfo 2021-11-22 16:39:17 +09:00
Bartłomiej Dach
975744d26c
Remove no longer used [Cached] attribute 2021-11-21 13:19:16 +01:00
Dean Herbert
c0962b1c4f
Merge branch 'master' into beatmap-card/download-button 2021-11-21 20:04:26 +09:00
Bartłomiej Dach
bb8e8bc4f0
Use consistent type for mod collection in all overloads 2021-11-21 11:30:45 +01:00
Dean Herbert
63642450a4
Merge branch 'master' into fix-working-beatmap-wrong-exception-type 2021-11-21 15:50:07 +09:00
Dan Balasescu
a06b361fe2
Merge pull request #15705 from bdach/fix-difficulty-cache-caching-zeroes
Fix zero star difficulty values being cached when diffcalc was interrupted
2021-11-21 15:45:29 +09:00
Bartłomiej Dach
297de27a6a
Use BindTarget from card rather than caching & resolving download tracker 2021-11-20 18:48:26 +01:00
Bartłomiej Dach
b3606f4a21
Rename {Play -> GoToBeatmap}Button 2021-11-20 18:36:39 +01:00
Bartłomiej Dach
a7e45a9098
Log all non-cancellation errors in difficulty cache 2021-11-20 17:32:40 +01:00
Bartłomiej Dach
6100bf66a6
Clean up cancellation handling in WorkingBeatmap
After the recent changes introducing cancellation support to
`WorkingBeatmap`, it turned out that if the cancellation support was
used, `GetPlayableBeatmap()` would raise timeout exceptions rather than
the expected `OperationCanceledException`.

To that end, split off a separate overload for the typical usage, that
catches `OperationCanceledException` and converts them to beatmap load
timeout exceptions, and use normal `OperationCanceledException`s in the
overload that requires a cancellation token to work.
2021-11-20 17:23:55 +01:00
Bartłomiej Dach
15feb17da8
Change difficulty cache storage type to nullable
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.

To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00
Dean Herbert
83b4625bd5 Replace existing cases with new helper method 2021-11-19 22:15:41 +09:00
Dean Herbert
eecf6ad558 Add IsManaged helper method to EF classes to match realm implementation 2021-11-19 21:56:06 +09:00
Dean Herbert
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
Dean Herbert
6e5918a100 Add slight scale to icon buttons 2021-11-19 15:28:03 +09:00
Dean Herbert
741c27c1f2 Always populate action to make button behave better in testing scenarios 2021-11-19 15:27:38 +09:00
Dean Herbert
5034cb1025
Merge branch 'master' into beatmap-card/download-button 2021-11-19 14:59:42 +09:00
Bartłomiej Dach
0eaf450204
Make field readonly 2021-11-18 22:50:41 +01:00
Bartłomiej Dach
8a1d6757af
Merge branch 'master' into beatmap-card/download-button 2021-11-18 22:37:35 +01:00
Bartłomiej Dach
412abf30d9
Refactor buttons again to work with latest design guidelines 2021-11-18 22:34:40 +01:00
Bartłomiej Dach
761d1e45f2
Use lime background on right side of card to signify downloaded sets 2021-11-18 21:36:41 +01:00
Dean Herbert
bf8507c7b9 Only apply default timeout when debugger not attached 2021-11-18 23:26:45 +09:00
Bartłomiej Dach
1c13b39104
Revert incorrect ordering change 2021-11-17 22:10:46 +01:00
Bartłomiej Dach
8b134914cf
Merge branch 'master' into beatmap-cancellation-token 2021-11-17 21:52:30 +01:00
Dean Herbert
7c2e79f911 Update all simple cases of switching to IWorkingBeatmap 2021-11-17 20:56:57 +09:00
Dean Herbert
0715d40ea0 Merge branch 'master' into beatmap-cancellation-token 2021-11-17 11:16:10 +09:00
Dean Herbert
13f3e2eea9 Add back default timeout to GetPlayableBeatmap 2021-11-17 11:06:31 +09:00
Dean Herbert
f5c52755c9 Merge branch 'master' into i-working-beatmap/difficulty-calculator 2021-11-16 16:19:22 +09:00
Dean Herbert
726a0cc091 Merge branch 'master' into beatmap-collection-inteface-types 2021-11-16 15:31:10 +09:00
Dean Herbert
d2a7670494 Remove no longer used helper method 2021-11-16 14:48:02 +09:00
Dean Herbert
6cca657a2d Standardise naming of CancellationToken parameters 2021-11-16 14:45:51 +09:00
Dean Herbert
53c0682a08 Merge branch 'master' into beatmap-cancellation-token 2021-11-16 14:43:13 +09:00
Dean Herbert
9207b87b76 Add back interface equality but limit to only matching types 2021-11-16 12:35:18 +09:00
Dan Balasescu
1d87b47fec Remove now-unnecessary R# disables 2021-11-15 19:40:31 +09:00
Dean Herbert
a90cfb4a2f Implement remaining properties via implicit implementation rather than interface methods 2021-11-15 19:30:46 +09:00
Dean Herbert
369b4ba789 Update DifficultyCalculator to take an IRulesetInfo 2021-11-15 19:16:48 +09:00
Dean Herbert
62d670a3ca Update DifficultyCalculator to take an IWorkingBeatmap 2021-11-15 19:16:48 +09:00
Dean Herbert
960cecf3db Merge branch 'beatmap-collection-inteface-types' into i-working-beatmap/difficulty-calculator 2021-11-15 19:16:47 +09:00
Dean Herbert
a0e25d18cd Expose more of WorkingBeatmap via interface 2021-11-15 18:25:48 +09:00
Dean Herbert
0b4822b552 Remove newly added equality 2021-11-15 14:35:01 +09:00
Bartłomiej Dach
b58fe2d80a
Restructure card to use single tracker at the top level 2021-11-13 15:39:03 +01:00
Bartłomiej Dach
c38c95b373
Merge branch 'master' into beatmap-card/download-button 2021-11-13 14:59:59 +01:00
Dean Herbert
9f7e2750a5 Merge branch 'master' into beatmap-collection-inteface-types 2021-11-12 19:41:29 +09:00
Dean Herbert
5e88d59a26 Switch BeatmapInfo.OnlineID delegation to use property getter for conformity 2021-11-12 19:06:12 +09:00
Dean Herbert
1d962648c2 Standardise implementations 2021-11-12 19:00:27 +09:00
Dean Herbert
54cd1158a4 Add IBeatmapSetInfo equality support 2021-11-12 18:16:36 +09:00
Dean Herbert
a67e156883 Add IBeatmapInfo equality support 2021-11-12 18:11:33 +09:00
Dean Herbert
692e846acd Rename BeatmapSetInfo.OnlineBeatmapSetID to OnlineID to match interface 2021-11-12 17:52:44 +09:00
Dean Herbert
6a098a8634 Rename BeatmapInfo.OnlineBeatmapID to OnlineID to match interface 2021-11-12 17:46:24 +09:00
Dean Herbert
51a353e12d Rename BeatmapInfo.Version to DifficultyName to match underlying interface 2021-11-11 17:20:53 +09:00
Dean Herbert
ebe58cee11 Rename BeatmapInfo.StarDifficulty to StarRating to match underlying interface 2021-11-11 17:19:46 +09:00
Bartłomiej Dach
222846290e
Update download progress bar appearance to match intended design 2021-11-10 18:38:52 +01:00
Bartłomiej Dach
91baaa73f3
Show download progress on card body rather than in button 2021-11-10 16:03:48 +01:00
Bartłomiej Dach
f090e5ca75
Restyle card buttons to resemble buttons more 2021-11-10 15:24:36 +01:00
Bartłomiej Dach
343318c6f9
Merge branch 'master' into display-string 2021-11-10 11:10:38 +01:00
Dean Herbert
f4ef841972 Add fallback for cases where beatmap has no author/title/artist specified 2021-11-10 18:29:05 +09:00
Bartłomiej Dach
3d148aea40
Fix GetDisplayTitle() implementations relying on ToString() themselves 2021-11-09 13:53:08 +01:00
Dean Herbert
3b485b5f37 Rewrite PreviewTrackManager to avoid constructing TrackBass locally
This paves the way for the framework code quality change
(https://github.com/ppy/osu-framework/pull/4873) which stops exposing
the constructor.

Most of the restructuring here is required to give `PreviewTrackManager`
an adjustable target to apply the global mute.
2021-11-09 17:38:12 +09:00
Bartłomiej Dach
704ff47a0e
Swap icon for "go to beatmap" state 2021-11-09 08:07:56 +01:00
Bartłomiej Dach
2186b51676
Implement detailed download button behaviour 2021-11-08 22:18:14 +01:00
Bartłomiej Dach
a60cceeda6
Implement basic appearance of download button 2021-11-08 22:18:14 +01:00
Bartłomiej Dach
c65e7a4436
Add test coverage for download button 2021-11-08 22:17:56 +01:00
Dean Herbert
2b518035da
Merge pull request #15522 from bdach/taiko-slider-multiplier-saving
Fix taiko beatmap scroll speed increasing after every save in editor
2021-11-08 22:51:43 +09:00
Bartłomiej Dach
74603253d2
Store full model rather than online ID only 2021-11-08 13:42:56 +01:00
Dean Herbert
72489b32f9 Move toggle code into own method for readability 2021-11-08 21:39:16 +09:00
Dean Herbert
9a2425f316 Remove unused field for now to appease inspectcode 2021-11-08 21:36:28 +09:00
Bartłomiej Dach
540b7e1b38
Fix taiko editor not unapplying slider multiplier changes on save 2021-11-08 13:28:42 +01:00
Bartłomiej Dach
f4b8dee2d0
Update favourite statistic value on favourite button clicks 2021-11-08 11:53:54 +01:00
Bartłomiej Dach
b5cbdcf981
Implement basic behaviour of favourite button 2021-11-08 11:53:54 +01:00
Bartłomiej Dach
0faa26fc13
Add basic structure for buttons 2021-11-08 11:53:53 +01:00
Dean Herbert
8b85c2c8de
Merge pull request #15491 from peppy/remove-stupid-weak-reference-bindable-events
Revert weird event flow in model manager/importers
2021-11-08 15:19:58 +09:00
Dean Herbert
a2dfb5fd8c
Merge pull request #15513 from bdach/beatmap-card/statistics
Add statistics display to beatmap card
2021-11-08 14:45:56 +09:00
Dean Herbert
97345ac9e6 Remove unnecessary TimeSpan timeout parameter (CancellationToken can now be used) 2021-11-08 14:33:32 +09:00
Dean Herbert
e338340c6a Merge branch 'master' into beatmap-cancellation-token 2021-11-08 14:32:56 +09:00
Dean Herbert
78aef9ce86
Merge branch 'master' into remove-stupid-weak-reference-bindable-events 2021-11-08 13:35:49 +09:00
Dean Herbert
1589b50d6e Merge branch 'master' into beatmap-card/statistics 2021-11-08 13:28:31 +09:00
Dean Herbert
fb495d77ce Implement TooltipText directly 2021-11-08 13:22:57 +09:00
Bartłomiej Dach
0e09edfce2
Do not show nomination info if hype info not present to match web 2021-11-07 21:33:42 +01:00
Bartłomiej Dach
1f405a7e71
Display extended statistics on card hover 2021-11-07 21:33:41 +01:00
Bartłomiej Dach
c0b5b0e909
Add new statistic types to online info 2021-11-07 21:33:41 +01:00
Bartłomiej Dach
04c2a9cd59
Display basic statistics on card hover 2021-11-07 21:03:06 +01:00
Tollii
d5f5d74a89 Rename CancellationToken variable 2021-11-07 13:41:54 +01:00
Dean Herbert
f0809801c5 Update remaining actions to events 2021-11-07 11:34:37 +09:00
Dean Herbert
0ecf5f201c Rename User to APIUser and move to correct namespace 2021-11-07 11:26:01 +09:00
Tollii
cf0b757b16 Fix PR comments.
Nitpick, more cancellation token checks.
2021-11-06 16:03:53 +01:00
Dean Herbert
89cc2523ef Fix incorrectly specified events 2021-11-06 22:31:49 +09:00
Dean Herbert
2881ce0f5a Merge branch 'master' into remove-stupid-weak-reference-bindable-events 2021-11-06 14:08:39 +09:00
Tollii
eb7d04bc77 Add cancellation token support for beatmap difficulty calculation. 2021-11-06 00:21:29 +01:00
Tollii
f0caa10066 Add support for a provided cancellation token for GetPlayableBeatmap() 2021-11-05 23:53:48 +01:00
Dean Herbert
9a7c75508e Merge branch 'master' into user-class-cleanup 2021-11-05 19:56:18 +09:00
Dean Herbert
54f72d68ca Revert weird event flow in model manager/importers 2021-11-05 19:12:49 +09:00
Dean Herbert
6c385ccd29 Move second generic to abstract model downloader rather than interface type 2021-11-05 17:37:05 +09:00
Dean Herbert
1fe9bca819 Change ModelDownloader's requirement to an IModelImporter rather than IModelManager 2021-11-05 16:47:18 +09:00
Dean Herbert
b90f44493c Remove importer inheritance from IModelManager
Now only exists in legacy implementations, to reduce inheritance
complexity of interfaces which are going to be used going forwards.
2021-11-05 16:45:38 +09:00
Dean Herbert
ed07ee8c61 Update all existing usages of AuthorString/AuthorId
Unfortunately the getters need to be left in place else EF breaks.
2021-11-04 18:59:37 +09:00
Dean Herbert
86540d1fb6 Update existing usages of Author as string to access Username directly 2021-11-04 18:57:54 +09:00
Dean Herbert
7547810979 Change IBeatmapMetadataInfo.Author to be an IUser 2021-11-04 18:32:42 +09:00
Dean Herbert
b9983add15 Rename User to APIUser and move to correct namespace 2021-11-04 18:21:31 +09:00
Dean Herbert
4b1b92cde6 Stop BeatmapInfo from implementing IBeatmapOnlineInfo and remove all usages 2021-11-04 15:23:04 +09:00
Dean Herbert
9c926e5514 Remove BeatmapSetInfo.OnlineInfo and all usages 2021-11-04 15:23:04 +09:00
Dean Herbert
0d0eab90bc Merge branch 'beatmap-refactor/playlist-use-api-beatmap-extended' into beatmap-refactor/remove-online-info 2021-11-04 15:23:02 +09:00
Dean Herbert
84d36cbae7 Add fallback for cases where BeatmapSet may be null
Seems to only happen in tests, but better safe than sorry.
2021-11-04 15:22:33 +09:00
Dean Herbert
a49366ff84 Remove nullability from IBeatmapInfo.Metadata 2021-11-04 14:28:39 +09:00
Dean Herbert
1e73b09e57 Fix another couple of cases of incorrect string null/empty checking 2021-11-04 14:22:28 +09:00
Dean Herbert
41854f2e16 Fix incorrect check on AudioFile presence 2021-11-04 14:02:09 +09:00
Dean Herbert
67d9590a79 Fix new inspections 2021-11-04 14:02:09 +09:00
Dean Herbert
772b6c6dcd Enable nullable support on BeatmapMetadata 2021-11-04 12:11:42 +09:00
Dean Herbert
ca438a102d Fix beatmap paths including invalid slash/backslash characters 2021-11-03 16:46:05 +09:00
Bartłomiej Dach
cf7545e36c
Merge branch 'master' into beatmap-card-basics 2021-11-03 00:11:03 +01:00
Bartłomiej Dach
1813681fac
Move private method below protected 2021-11-03 00:10:50 +01:00
Bartłomiej Dach
75e89f17ad
Rewrite BeatmapCardContentBackground 2021-11-03 00:07:03 +01:00
Dean Herbert
5ea901da2e
Merge pull request #15429 from peppy/fix-beatmap-download-notifications
Fix beatmap download notifications not showing beatmap name correctly
2021-11-03 04:36:59 +09:00
Dean Herbert
392559ae3e Fix beatmap download notifications not showing beatmap name correctly 2021-11-03 03:23:41 +09:00
Dean Herbert
6efd3d3115 Don't perform background difficulty calculation for multiplayer panels
There are cases these are shown in a long list. They shouldn't be
running calculations.
2021-11-03 03:12:52 +09:00
Dean Herbert
08b0ffad50 Fix incorrect check for local beatmap in BeatmapDifficultyCache
This was correct in the WIP branch I have, but pulled out alone (where
usages of `ToBeatmapInfo` still exist) it was not enough.
2021-11-03 03:12:52 +09:00
Dean Herbert
15c770e155 Remove no longer used Section.None 2021-11-02 14:01:41 +09:00
Dean Herbert
ab28948744 Default legacy decoder to General section, rather than none
This is mainly to reach parity with how stable handles such cases for
skins specifically. It was brought to our attention after finding a skin
with a malformed `\[General]` tag which did not break further parsing of
the file on stable, but did on lazer.

Note that stable defaults to an "unknown" section for beatmaps, but
functionally I can't think of a regression case from changing this to a
"general" default.
2021-11-02 13:59:13 +09:00
Bartłomiej Dach
f671ee28c5
Use buffered container to eliminate gaps near foreground border 2021-11-01 20:17:27 +01:00
Bartłomiej Dach
a59f2d7b83
Implement basic hover card state 2021-11-01 19:41:11 +01:00
Bartłomiej Dach
5962f16b1c
Implement basic card appearance 2021-11-01 19:41:11 +01:00
Dan Balasescu
9e633a1b17
Merge pull request #15321 from peppy/beatmap-refactor/download-tracker
Replace `DownloadTrackingComposite` with instantiable `DownloadTracker` components
2021-11-01 15:48:12 +09:00
Dean Herbert
10a9266956 Fix beatmap creator showing twice in tournament map pool panels 2021-11-01 14:33:24 +09:00
Dean Herbert
19feae4a8e
Merge branch 'master' into beatmap-refactor/download-tracker 2021-11-01 13:15:36 +09:00
Bartłomiej Dach
b0c4fa662d
Merge branch 'master' into long-online-id-score-info 2021-10-30 14:35:30 +02:00
Dean Herbert
07e3ced315 Fix test scene and remove "impossible" nullable coalesce 2021-10-29 18:22:23 +09:00
Dean Herbert
7db8bdfb7c Fix fallback logic not considering case where ruleset is not available
Occurs only in tests.
2021-10-29 18:16:54 +09:00
Dean Herbert
be0564f732 Update DifficultyIcon classes to use IBeatmapInfo 2021-10-29 17:05:06 +09:00
Dean Herbert
7583435901 Refactor BeatmapDifficultyCache to work with IBeatmapInfo 2021-10-29 16:45:10 +09:00
Dean Herbert
3b095e1626 Merge branch 'master' into beatmap-refactor/download-tracker 2021-10-29 11:50:54 +09:00
Dean Herbert
34d4715220 Allow for long online IDs and implement in ScoreInfo 2021-10-29 11:48:36 +09:00
Dean Herbert
65a7b6776e Add note regarding OnlineInfo being temporary 2021-10-28 05:50:22 +09:00
Dean Herbert
7245baba69 Remove IBeatmapSetOnlineInfo implementation from BeatmapSetInfo to avoid null cases 2021-10-28 00:50:45 +09:00
Dean Herbert
617e6febb6 Refactor ModelDownloader to allow for different OnlineID matching 2021-10-27 21:00:46 +09:00
Dean Herbert
f268363924 Update UpdateableBeatmapBackgroundSprite to accept IBeatmapInfo 2021-10-27 16:38:48 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Bartłomiej Dach
3de994449d
Add support for changing dimensions of difficulty spectrum display 2021-10-26 23:06:52 +02:00
Bartłomiej Dach
1a77e98537
Implement difficulty spectrum display 2021-10-26 23:06:52 +02:00
Dean Herbert
e92def0ba2 Fix LegacyBeatmapEncoder using incorrect path length value 2021-10-26 17:34:52 +09:00
Dan Balasescu
efe6763226
Merge branch 'master' into move-online-beatmap-metrics 2021-10-26 14:24:40 +09:00
Bartłomiej Dach
5a03e1736e
Merge branch 'master' into update-beatmap-set-status-pill-appearance 2021-10-25 20:26:49 +02:00
Bartłomiej Dach
6802e9ec10
Remove FixedWidth and add AutoSizeAxes specs to all usages 2021-10-25 20:24:48 +02:00
Dean Herbert
6adb0f068b Fix multiple issues with json serialisation of online info (causing tournament failures) 2021-10-25 16:52:50 +09:00
Dean Herbert
2c308f3008 Rename BeatmapMetrics to APIFailTimes 2021-10-25 15:34:41 +09:00
Dean Herbert
4969ab0599 Add forgotten JsonIgnore rules on interface types
Just to avoid them getting serialised as part of the "new" .osu
serialisation format.
2021-10-25 15:32:18 +09:00
Dean Herbert
20baae9094 Move online metrics out of BeatmapInfo model 2021-10-25 15:32:18 +09:00
Dean Herbert
045dd94a6e Move online metrics out of BeatmapSetInfo model 2021-10-25 15:12:39 +09:00
Dean Herbert
78edc7554e Fix BeatmapSetInfo's Status value being marked as non-databased 2021-10-25 12:05:34 +09:00
Bartłomiej Dach
feedd53a53
Add support for setting fixed size of status pill 2021-10-24 21:37:00 +02:00
Bartłomiej Dach
5ab3337a10
Update beatmap set status pill appearance 2021-10-24 20:40:34 +02:00
Dean Herbert
cc1d759290 Remove unnecessary setters from IBeatmapSetOnlineInfo interface 2021-10-22 17:48:09 +09:00
Dean Herbert
c580ec865f APIBeatmapSet.Covers is never null 2021-10-21 19:34:01 +09:00
Dean Herbert
0fe0b5dc09 APIBeatmap implements IBeatmapInfo 2021-10-21 19:14:31 +09:00
Dean Herbert
69e7810dad Enable nullable and switch classes to structs 2021-10-21 18:54:36 +09:00
Dean Herbert
0335ed6f27 Add missing licence header 2021-10-21 17:14:29 +09:00
Dean Herbert
ff674ca913 Remove unnecessary access modifiers from interface 2021-10-21 17:01:57 +09:00
Dean Herbert
b73bd54ab2 Split out individual pieces into own files 2021-10-21 16:58:42 +09:00
Dean Herbert
32d01f022f Rename usages which rely on online backing 2021-10-21 16:58:42 +09:00
Dean Herbert
0706ad70fb Move BeatmapSetOnlineInfo to an interface type 2021-10-21 16:58:42 +09:00
Dean Herbert
ff2eae4597 Rename confusing variable 2021-10-19 11:37:46 +09:00
Dean Herbert
b3219bb592 Update usages of OnlineID 2021-10-18 16:16:36 +09:00
Dean Herbert
2c5ba1d8e2 Change OnlineID to non-nullable to allow for indexing in Realm 2021-10-18 15:53:40 +09:00
Dan Balasescu
3604a762d0
Merge branch 'master' into fix-editor-difficulty-name-update 2021-10-15 16:58:01 +09:00
Dean Herbert
e9c3d09e0e Remove redundant specs 2021-10-15 16:27:16 +09:00
Dean Herbert
a90f40e831 Update one missed instance of PresentImport 2021-10-15 16:00:09 +09:00
Dean Herbert
874d722820
Merge branch 'master' into fix-editor-difficulty-name-update 2021-10-15 11:14:45 +09:00
Dean Herbert
8a4c0c0ac8 Lock one more case of usage 2021-10-14 16:22:43 +09:00
Dean Herbert
060bb1afbd Add locking around async beatmap (task) retrieval 2021-10-14 15:39:53 +09:00
Dean Herbert
09536cd733 Add logging of WorkingBeatmapCache.Invalidate calls 2021-10-14 14:05:33 +09:00
Dan Balasescu
e49f1f6e6b
Merge branch 'master' into no-more-difficulty-control-points-info 2021-10-13 20:17:57 +09:00
Dean Herbert
02689a1b60 Use actual BeatmapInfo rather than PlayableBeatmap.BeatmapInfo for editor writes 2021-10-13 14:50:12 +09:00
Dean Herbert
1373cc02d7 Shallow clone BeatmapInfo during conversion process to avoid overwriting fields 2021-10-12 16:43:56 +09:00
Dean Herbert
6b35ccae95 Fix some cases where interface specifications can be used but weren't 2021-10-11 15:06:24 +09:00
smoogipoo
bc37cb6f43 Merge branch 'master' into no-more-difficulty-control-points-info 2021-10-08 18:41:17 +09:00
Dean Herbert
ee66414e4f Move difficulty copy inside context retrieval 2021-10-07 17:49:13 +09:00
Dean Herbert
d3efec3c04 Remove unnecessary clone operations 2021-10-07 17:22:10 +09:00
Dean Herbert
0df409c050 Move difficulty copy to BeatmapModelManager.Save 2021-10-07 17:16:45 +09:00
Dean Herbert
4ca97bc60a
Merge branch 'master' into difficulty-move-to-beatmap 2021-10-06 16:14:21 +09:00
Dean Herbert
0ab8dcc2a0 Fix taiko weird difficulty multiplier failing on double convert 2021-10-06 15:18:06 +09:00
Dean Herbert
b339c149d8 Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
Dan Balasescu
80c8612630
Merge pull request #14977 from peppy/fix-working-beatmap-cache-invalidation
Fix changes not being reflected immediately after exiting the editor
2021-10-06 13:51:21 +09:00
Dean Herbert
8ffaa491e7 Fix BeatmapModelManager not receiving WorkingBeatmapCache 2021-10-06 12:55:04 +09:00
Dean Herbert
007b33cd88 Add missing methods to interfaces 2021-10-06 12:55:04 +09:00
Dan Balasescu
e837a3511d
Merge branch 'master' into beatmap-difficulty-more-interface-usage 2021-10-06 12:18:51 +09:00
Dan Balasescu
4bbff2ebf7
Merge branch 'master' into new-interfaces 2021-10-06 11:38:17 +09:00
Dan Balasescu
9491e5a547
Merge pull request #14954 from peppy/rename-result-response
Rename `APIRequest.Result` to `Response`
2021-10-06 10:52:33 +09:00
Dean Herbert
4f59fc15a5 Mark BeatmapSet as nullable for the time being 2021-10-06 05:54:37 +09:00
Dean Herbert
bd84a8b749 Merge branch 'new-interfaces' into beatmap-difficulty-more-interface-usage 2021-10-05 18:21:21 +09:00
Dean Herbert
599d82e383 Avoid returning a live IEnumerable 2021-10-05 17:01:07 +09:00
Dean Herbert
a5aa32811a Remove null check suppression and add non-null fallback 2021-10-05 14:49:59 +09:00
Dean Herbert
d3b9660148 Move common interface implementations to extension methods 2021-10-05 14:41:14 +09:00
Dean Herbert
b41fa41c85 Rename APIRequest.Result to Response 2021-10-05 14:28:56 +09:00
smoogipoo
593da79bbc Further asyncify load process 2021-10-05 11:26:13 +09:00
Dean Herbert
1d99bc280f Merge branch 'master' into new-interfaces 2021-10-04 20:42:40 +09:00
smoogipoo
031c5a441e Merge branch 'master' into realtime-pp-display 2021-10-04 20:19:37 +09:00
smoogipoo
4871db2f86 Merge branch 'master' into importer-returns-live 2021-10-04 19:42:36 +09:00
Dean Herbert
f293e008d9 Move BeatmapInfo's SearchableTerms implementation to interface 2021-10-04 17:01:02 +09:00
Dean Herbert
51b7dce16f Remove reference to osu-web-10 2021-10-04 16:55:51 +09:00
Dean Herbert
4df5f93152 Inline single usage of StoryboardFile to avoid interface default method woes 2021-10-04 16:55:02 +09:00
Dean Herbert
8bfdfe3672
Add literal string marker
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-10-04 16:54:00 +09:00
Dean Herbert
63f0b0c932 Rename out of place interface name 2021-10-04 16:35:55 +09:00
Dean Herbert
916342c837 Merge branch 'master' into importer-returns-live 2021-10-04 16:24:26 +09:00
smoogipoo
69c2b7dc59 Merge branch 'master' into rename-beatmap-info-beatmap-fields 2021-10-04 16:03:22 +09:00
smoogipoo
4e1322effa Fix typo 2021-10-04 16:02:45 +09:00
Dean Herbert
ec61c3c5ee Rename all remaining cases 2021-10-03 00:55:29 +09:00
Dean Herbert
20e3f7fec4 Merge branch 'new-interfaces' into beatmap-difficulty-more-interface-usage 2021-10-02 13:08:02 +09:00
Dean Herbert
dcd7d7a709 Add JsonIgnore rule for StoryboardFile
Not sure why this is required, doesn't make much sense.
2021-10-02 03:05:06 +09:00
Dean Herbert
d6dbdc911f
Merge branch 'master' into storyboard-fixes 2021-10-02 00:35:51 +09:00
Dan Balasescu
6a172d54d5
Merge branch 'master' into model-downloader-split 2021-10-01 22:34:39 +09:00
Dan Balasescu
154c412f34
Merge branch 'master' into beatmap-manager-split 2021-10-01 21:46:27 +09:00
Dean Herbert
4c28749d73 Fix incorrect legacy decoder usage 2021-10-01 19:05:08 +09:00
Dean Herbert
3faafd7200 Rename parameter to repeatCount and add guards 2021-10-01 18:26:29 +09:00
Dean Herbert
0daf8937e3 Add missing xmldoc 2021-10-01 17:36:44 +09:00
Dean Herbert
d6618a99a3 Redirect more methods to interface implementations 2021-10-01 17:36:44 +09:00
Dean Herbert
9dae92e78c Add missing backlink to BeatmapSet from Beatmap and fix non-explicit implementations 2021-10-01 17:22:25 +09:00
Dean Herbert
00e33a1da7 Fix incorrect OnlineID mappings 2021-10-01 17:06:09 +09:00
Dean Herbert
05996cc2e9 Add changes that got forgotted in branch surgery 2021-10-01 17:04:53 +09:00
Dean Herbert
a92d499d7a Convert usages of BeatmapDifficulty to IBeatmapDifficultyInfo 2021-10-01 16:55:50 +09:00
Dean Herbert
8595eb2d11 Switch BeatmapDifficulty usages to use interface type 2021-10-01 16:55:50 +09:00
Dean Herbert
d309636460 Update all EF based models to implement new read only interfaces 2021-10-01 16:55:50 +09:00
Dean Herbert
619dfe0690 Add new interface base types for models 2021-10-01 16:55:47 +09:00
Dean Herbert
c71cf1e220 Fix incomplete xmldoc 2021-10-01 01:51:31 +09:00
Dean Herbert
3ddb348252 Merge branch 'online-lookup-cache-separation' into beatmap-manager-split 2021-10-01 01:49:31 +09:00
Dean Herbert
2ed28f625a Pass whole queue in rather than function 2021-10-01 01:46:37 +09:00
Dean Herbert
428c7830d9 Pass online lookup queue in as a whole, rather than function 2021-10-01 01:45:21 +09:00
Dean Herbert
dde19f2e81
Fix unbalanced brackets
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-10-01 01:37:51 +09:00
Dean Herbert
a2e61883e3 Initial push to use ILive in import process 2021-09-30 22:55:25 +09:00
Dean Herbert
3e3b9bc963 Split out IModelDownloader and also split apart ScoreManager 2021-09-30 18:25:20 +09:00
Dean Herbert
fd13142a15 Add missing interface to BeatmapManager 2021-09-30 18:21:24 +09:00
Dean Herbert
7a72747d88 Add back optional online lookups 2021-09-30 17:18:39 +09:00
Dean Herbert
90225f2082 Hook up all required interfaces to new BeatmapManager 2021-09-30 17:18:39 +09:00
smoogipoo
84bddf0885 Initial PP counter implementation 2021-09-30 17:00:24 +09:00
Dean Herbert
d21139b03e Split out database portion from BeatmapManager 2021-09-30 15:43:49 +09:00
Dean Herbert
e7e0473323 Split out WorkingBeatmapCache from BeatmapManager 2021-09-30 15:40:41 +09:00
Dean Herbert
8a6501fa58 Add basic component level xmldoc 2021-09-30 14:46:07 +09:00
Dean Herbert
6ffd9fdcfa Split out BeatmapOnlineLookupQueue from BeatmapManager 2021-09-30 14:46:01 +09:00
Dean Herbert
46bafb6252 Merge branch 'master' into no-more-difficulty-control-points-info 2021-09-28 13:53:56 +09:00
Dean Herbert
d4310f5d9a Move database connection string operations local
In line with framework changes in
https://github.com/ppy/osu-framework/pull/4793.
2021-09-27 17:32:41 +09:00
Bartłomiej Dach
80197bae48
Revert not decoding legacy difficulty points on scrolling rulesets for now 2021-09-18 15:32:08 +02:00
Bartłomiej Dach
76ccdd1340
Collect and sort points from nested objects before extracting 2021-09-18 14:38:38 +02:00
Bartłomiej Dach
8026968939
Move difficulty -> effect point conversion back to decoder 2021-09-18 14:38:38 +02:00
Bartłomiej Dach
5969e2b852
Add TODO comment about lack of in-gameplay support 2021-09-13 00:13:07 +02:00
Bartłomiej Dach
1be8cb452f
Make new beatmaps' samples match playback rate by default 2021-09-12 16:57:21 +02:00
Bartłomiej Dach
af7c2b93e6
Add encoding support for SamplesMatchPlaybackRate 2021-09-12 16:47:38 +02:00
Bartłomiej Dach
cd181452be
Add decoding support for SamplesMatchPlaybackRate 2021-09-12 16:45:27 +02:00
Bartłomiej Dach
925b455330
Add "samples match playback rate" setting to beatmap info 2021-09-12 16:40:52 +02:00
Dean Herbert
943e0d49f7 Handle control point flattening of nested hit objects 2021-09-10 17:29:09 +09:00
Dean Herbert
34f875187c Copy time between ControlPoints 2021-09-10 14:36:38 +09:00
Dean Herbert
212c3c699c Reword xmldoc slightly 2021-09-10 12:58:12 +09:00
ekrctb
7543f9dfb0 Add featured artist track ID online info 2021-09-08 12:21:24 +09:00
Dean Herbert
eabca016d4 Throw rather than ignore on invalid control point addition 2021-09-06 22:04:37 +09:00
Dean Herbert
693ecdf62a Refactor some incorrect/outdated terminology 2021-09-06 21:32:43 +09:00
Dean Herbert
3c7a34bdbd Move mania-specific conversion to converter 2021-09-06 21:06:13 +09:00
Dean Herbert
766d789845 Rename ApproachRate to ScrollSpeed for now (to reduce complexity/confusion) 2021-09-06 21:06:13 +09:00
Dean Herbert
0e6660da30 Replace todo with permanent comment 2021-09-03 17:11:12 +09:00
Dean Herbert
8f24ea54ee Change SamplePoints to be SortedList for conformity 2021-09-03 17:11:12 +09:00
Dean Herbert
2b9157987e Fix regression in SampleControlPoint add logic 2021-09-03 17:11:12 +09:00
Dean Herbert
d587dc6203 Populate new approach rate where required 2021-09-03 17:11:12 +09:00
Dean Herbert
a3d9ab1e2e Move approach rate to EffectControlPoint 2021-09-03 16:58:16 +09:00
Dean Herbert
4eb09ea1a9 Update decoder to also extract DifficultyControlPoints from HitObjects 2021-09-03 16:58:16 +09:00
Dean Herbert
db3fc1d4af Move DifficultyControlPoints list to LegacyControlPointInfo 2021-09-03 16:58:16 +09:00
Dan Balasescu
6c649b7bbe
Merge branch 'master' into no-more-sample-control-points-info 2021-09-02 18:09:05 +09:00
Dean Herbert
f0b128b6ec
Merge pull request #14592 from frenzibyte/cleanup-tooltips
Update remaining tooltip implementations to use generics
2021-09-01 17:03:59 +09:00
Dean Herbert
edf29e405b
Merge pull request #14581 from bdach/setup-screen-countdown-settings
Add countdown settings to setup screen
2021-09-01 15:35:46 +09:00
Dan Balasescu
e715b21ca7
Merge pull request #14586 from peppy/remove-ijsonserializable
Remove IJsonSerializable interface
2021-09-01 14:17:32 +09:00
Bartłomiej Dach
1e4fa87648
Merge branch 'master' into setup-screen-countdown-settings 2021-08-31 22:43:18 +02:00
Salman Ahmed
505824d8ea Constrain difficulty icon tooltip to internal accessibility"
This reverts the reverted commit cd356b8eae.

Sorry for the revert-unrevert, rushly pushed without realizing it
doesn't even build.
2021-08-31 21:16:17 +03:00
Salman Ahmed
cd356b8eae Revert "Constrain difficulty icon tooltip to internal accessibility"
This reverts commit 4a590a041c.
2021-08-31 20:57:47 +03:00
Salman Ahmed
4a590a041c Constrain difficulty icon tooltip to internal accessibility 2021-08-31 20:57:36 +03:00
Salman Ahmed
da7ff4b160 Update remaining tooltip implementations to use generics 2021-08-31 20:01:13 +03:00
Dean Herbert
a254624373 Avoid performing beatmap metadata lookups when entering the editor
If none of the lookup parameters are available, skip the lookup
completely.
2021-08-31 17:18:05 +09:00
Dean Herbert
d988aa1680 Actually serialise SampleControlPoints along with HitObjects 2021-08-31 15:14:03 +09:00
Dean Herbert
448c58c35d
Remove unnecessary variable discard
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-08-31 15:08:07 +09:00
Dean Herbert
9fa8bee094 Remove outdated TODO 2021-08-31 14:51:19 +09:00
Dean Herbert
ce0d7cce2d Merge branch 'remove-ijsonserializable' into no-more-sample-control-points-info 2021-08-31 14:40:54 +09:00
Dean Herbert
c25ab6835c Remove IJsonSerializable interface
Was pretty pointless and made it hard to use the custom serialisation
terms arbitrarily in tests.
2021-08-31 14:39:20 +09:00
Bartłomiej Dach
b43ee2d61c
Add descriptions to enum members 2021-08-30 22:51:42 +02:00
Dean Herbert
a2cff75fc0 Fix editor not cloning control points as expected 2021-08-30 21:55:08 +09:00
Dan Balasescu
b95da3ca27
Merge pull request #14576 from peppy/update-framework
Update framework
2021-08-30 21:09:58 +09:00
Dean Herbert
1aaea7011a Fix early return causing event loss in case of multiple control points in group 2021-08-30 18:33:05 +09:00
Dean Herbert
015df282fe Simplify copy operations 2021-08-30 18:32:55 +09:00
Dean Herbert
d35c4da906 Add new control point to legacy regeneration logic 2021-08-30 17:14:53 +09:00
Dean Herbert
6ee4a6526c Don't block sample points from still being added to ControlPointInfo 2021-08-30 17:14:53 +09:00
Dean Herbert
6fd24a5d92 Remove redundant null coalesce 2021-08-30 17:14:53 +09:00
Dean Herbert
ccacf56dd8 Move to legacy namespace 2021-08-30 17:14:53 +09:00
Dean Herbert
7257aae7f2 Move samples to LegacyControlPointInfo 2021-08-30 17:14:53 +09:00
Dean Herbert
da7a871afa
Update inline comment to point to new variable location
Co-authored-by: PercyDan <50285552+PercyDan54@users.noreply.github.com>
2021-08-30 16:27:24 +09:00
Dean Herbert
fa2bf42188 Update tooltip implementations 2021-08-30 16:05:00 +09:00
Dean Herbert
6a6dac609c Fix instability of taiko double conversion
Until now, the taiko speed multiplier was potentially applied more than
once if conversion was run multiple times.
2021-08-30 15:30:18 +09:00
Dean Herbert
ee49305cad Move taiko legacy speed multiplier to osu.Game project
Allows it to be used in local case in `LegacyBeatmapEncoder`.
2021-08-30 15:13:31 +09:00
Salman Ahmed
e374ef163d Update localisable formattable extensions usages inline with framework change 2021-08-29 15:00:28 +03:00
Dean Herbert
6dcd9427ac Remove bindable usage in PathControlPoint
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.

I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
Dean Herbert
414457ba57 Add basic xmldoc explaining CountdownOffset 2021-08-25 13:24:52 +09:00
Bartłomiej Dach
a6c2cbd2e5
Add countdown settings to beatmap info model 2021-08-24 21:55:10 +02:00
Dan Balasescu
dfd61e413a
Merge branch 'master' into difficulty-cache-difficulty-adjust 2021-08-24 12:08:52 +09:00
Dean Herbert
d17f7b5c8b Side WidescreenStoryboard to on by default for new beatmaps 2021-08-23 17:40:41 +09:00
Bartłomiej Dach
d602dc9d90
Enable epilepsy warning setting persistence in encoder 2021-08-22 17:43:20 +02:00
Bartłomiej Dach
995338029c
Fix difficulty cache lookups sharing underlying mod instances
`DifficultyCacheLookup`s were storing raw `Mod` instances into their
`OrderedMods` field. This could cause the cache lookups to wrongly
succeed in cases of mods with settings. The particular case that
triggered this fix was Difficulty Adjust.

Because the difficulty cache is backed by a dictionary, there are two
stages to the lookup; first `GetHashCode()` is used to find the
appropriate hash bucket to look in, and then items from that hash bucket
are compared against the key being searched for via the implementation
of `Equals()`.

As it turns out, the first hashing step ended up being the saving grace
in most cases, as the hash computation included the values of the mod
settings. But the Difficulty Adjust failure case was triggered by the
quirk that `GetHashCode(0) == GetHashCode(null) == 0`.

In such a case, the `Equals()` fallback was used. But as it turns out,
because the `Mod` instance stored to lookups was not cloned and
therefore potentially externally mutable, it could be polluted after
being stored to the dictionary, and therefore breaking the equality
check. Even though all of the setting values were compared, the hash
bucket didn't match the actual contents of the lookup anymore (because
they were mutated externally, e.g. by the user changing the mod setting
values in the mod settings overlay).

To resolve, clone out the mod structure before creating all difficulty
lookups.
2021-08-21 15:50:33 +02:00
Dean Herbert
77149044a5 Allow intro screen to retrieve beatmap even if rulesets is not loaded 2021-08-20 19:43:48 +09:00
Salman Ahmed
6d57a240ac Add animation support for the star rating display 2021-08-19 07:17:43 +03:00
Salman Ahmed
102320f8ae Merge branch 'master' into mod-settings-difficulty-cache 2021-08-19 06:35:13 +03:00
Salman Ahmed
d2df09432f Center the star rating display text rather than left 2021-08-18 11:49:33 +03:00
Salman Ahmed
5e91ec73e3 Handle star rating range display sizing 2021-08-18 11:36:27 +03:00
Dean Herbert
9d2664cbb1 Merge branch 'master' into star-rating-display-v2 2021-08-18 17:22:33 +09:00
Salman Ahmed
74d6c26520 Refactor star rating display layout with flexibility in mind 2021-08-18 11:03:35 +03:00
Salman Ahmed
32ba525555 Track changes to mod settings in beatmap difficulty cache with 100ms debouncing 2021-08-17 05:46:05 +03:00
Salman Ahmed
0291cd5ae2 Consider mod equality in difficulty cache lookup rather than acronym 2021-08-17 04:27:43 +03:00
Bartłomiej Dach
e744629a41
Fix broken obsoletion message 2021-08-16 01:01:56 +02:00
Bartłomiej Dach
6108451449
Retrieve separated skin instance from working beatmap for editing 2021-08-15 21:18:09 +02:00
Bartłomiej Dach
7c88a1c6de
Add a way to change custom combo colours via IHasComboColours
`IHasComboColours` was already mutable (via a strange
`AddComboColours()` method) and exposing a straight list is easier to
work with. `IHasCustomColours` is also similarly externally mutable (in
a way which is not easily removable).
2021-08-15 20:06:06 +02:00
Salman Ahmed
b01893d3f2
Merge branch 'master' into star-rating-display-v2 2021-08-06 13:51:34 +03:00
Dean Herbert
7d670c6d35 Fix gap in fill colour 2021-08-06 18:05:24 +09:00
Salman Ahmed
b63d472594 Adjust font size to match designs
Looks silly when using `12f`, I've added a todo comment so that this specific case does not get forgotten when CSS-compatible font sizing gets supported.

The todo comment may not be 100% required but very unsure about silently changing it and forgetting about it.
2021-08-04 18:19:37 +03:00
Salman Ahmed
b2332eb5b3 Use new difficulty colours permanently 2021-08-04 18:19:37 +03:00
Salman Ahmed
284fa49646 Bring margins of components closer to existing designs 2021-08-04 18:19:28 +03:00
Salman Ahmed
42370e48ec Disable shadow on star display text 2021-08-04 18:19:28 +03:00
Salman Ahmed
d4399f10f9 Merge both variants of the star rating display 2021-08-04 18:19:28 +03:00
Salman Ahmed
14da5ab813 Remove defined size from the star rating display 2021-08-04 17:12:20 +03:00
Salman Ahmed
95b134f3d8 Use OsuColour.Orange1 instead of pure yellow 2021-08-04 17:12:20 +03:00
Salman Ahmed
19d54ee751 Update light background handling to Color4.Yellow instead
Confirmed to be the way forward in
https://github.com/ppy/osu-web/pull/7855#issuecomment-880959644.
2021-08-04 17:12:20 +03:00
Salman Ahmed
a01402664f Add redesigned star rating display
Matching the same design as the one in the latest figma designs.
2021-08-04 17:12:20 +03:00
Salman Ahmed
9a5e052dc0 Use star difficulty colour spectrum game-wide 2021-08-03 15:02:18 +03:00
Salman Ahmed
3409bc6b27 Update mapper usages with LocalisableDescription 2021-07-31 01:47:14 +03:00
Dean Herbert
50a2abbe7f
Merge pull request #12683 from frenzibyte/legacy-beatmap-combo-offset
Apply combo offsets "colour hax" only on beatmap skins
2021-07-23 14:30:18 +09:00
Lucas A
ea4f9b2ac7 Localise beatmap online status pill. 2021-07-21 13:15:07 +02:00
Dean Herbert
399c3b0be8 Rename property, reword xmldoc and improve readability of update code 2021-07-21 17:32:56 +09:00
Salman Ahmed
9d92b795fa Revert making ComboOffsets legacy and define BeatmapSkinComboIndex instead 2021-07-20 14:15:43 +03:00
Salman Ahmed
554652b033 Merge branch 'refactor-combo-colour-retrieval' into legacy-beatmap-combo-offset 2021-07-20 10:11:52 +03:00
Dan Balasescu
f3bcaf7f11
Merge pull request #13929 from peppy/i-deep-cloneable
Create a deep clone of score for score submission purposes
2021-07-19 21:58:27 +09:00
Dean Herbert
3c028ce05c Add IDeepCloneable interface and update existing CreateCopy methods to use it 2021-07-19 12:54:17 +09:00
ekrctb
7f432665e5 Preserve Y position of hit objects in osu!catch 2021-07-14 14:38:38 +09:00
Dan Balasescu
6b76c54aee
Merge pull request #13756 from PercyDan54/playlist-empty-romanised
Fix playlist item displays empty string if no unicode title is present
2021-07-05 13:53:50 +09:00
PercyDan54
12371f7424
Fix playlist item displays as empty string if no unicode title is present 2021-07-04 08:09:38 +08:00
Dean Herbert
0be75cc4ed Fix incorrect base call causing import optimisation to not work 2021-07-03 22:35:46 +09:00
Dan Balasescu
697b07acb1
Merge branch 'master' into fix-beatmap-import-fk-failure 2021-06-29 11:36:31 +09:00
Dan Balasescu
92fcf90768
Merge branch 'master' into import-early-checksum-abort 2021-06-28 19:29:08 +09:00
Dean Herbert
90b87cbb9e Add back unidirectional online id check 2021-06-28 10:11:27 +09:00
Dean Herbert
9a96cd4a1d Revert "Remove comparison of online beatmap IDs during dedupe checks"
This reverts commit 15af28d2a0.
2021-06-28 09:54:18 +09:00
Dean Herbert
15af28d2a0 Remove comparison of online beatmap IDs during dedupe checks 2021-06-27 14:48:57 +09:00
Dean Herbert
46f8100f43 Remove overly verbose logging during beatmap imports 2021-06-27 14:29:02 +09:00
Dean Herbert
dcba7bf779 Fix import flow potentially hitting foreign key constraint 2021-06-23 17:34:56 +09:00
ekrctb
e1b2c63e09 Add IApplicableToBeatmapProcessor mod interface 2021-06-23 14:46:30 +09:00
Dean Herbert
5944c45f55 Specify types explicitly and don't handle non-nullable values with fallbacks 2021-06-16 16:24:30 +09:00
smoogipoo
6be41e497a Fix possible nullref in difficulty recommender 2021-06-16 11:27:38 +09:00
Bartłomiej Dach
375f64ffd1 Check empty string more explicitly in IsRomanised()
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-06-11 06:38:53 +02:00
Bartłomiej Dach
e41a5a0fcd Add romanised author & title fields 2021-06-10 22:17:45 +02:00
Dean Herbert
00b3eea840 Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup 2021-05-31 21:39:04 +09:00
Dean Herbert
17fa2426d4 Merge branch 'master' into legacy-skin-resource-improvements 2021-05-31 19:36:09 +09:00
Dean Herbert
b16d10bd95 Provide game-wide resources via IStorageResourceProvider 2021-05-31 18:57:47 +09:00
Dean Herbert
675fe37446 Change check order around to ensure re-fetches which return no results don't nullref 2021-05-31 18:35:18 +09:00
Dean Herbert
de0e51a81d Merge branch 'master' into fix-skin-sample-lookup 2021-05-31 15:27:39 +09:00
Dean Herbert
06bd696cc2 Remove previous consumption logic in GetWorkingBeatmap
This should not be required since the introduction of `workingCache`,
which does the same thing in a more global way.
2021-05-31 14:11:58 +09:00
Bartłomiej Dach
ab077c6656
Merge branch 'master' into non-nullable-beatmapset-files 2021-05-31 00:10:03 +02:00
Bartłomiej Dach
78213e09d4
Merge branch 'master' into editor-exit-stability 2021-05-30 23:03:50 +02:00
Dean Herbert
dac1a98d8a Merge branch 'master' into fix-skin-sample-lookup 2021-05-30 15:19:47 +09:00
Dean Herbert
8652ac05db Merge branch 'editor-exit-stability' into non-nullable-beatmapset-files 2021-05-28 18:58:35 +09:00
Dean Herbert
ee5eb9576f Fix completely wrong conditional logic 2021-05-28 18:38:50 +09:00
Dean Herbert
581a86b91a Revert "Revert "Fix editor tests failing due to empty files being specified""
This reverts commit 1af684c4b2.
2021-05-28 14:33:06 +09:00
Dean Herbert
41733af0ed Revert "Revert "Make BeatmapSetInfo.Files non-nullable""
This reverts commit 9c4f39e968.
2021-05-28 14:33:05 +09:00
Dean Herbert
b349ff8693 Revert "Add temporary accounting for tests with null files"
This reverts commit e52c0a34f8.
2021-05-28 14:33:04 +09:00
Dean Herbert
f1b5aced6f Merge branch 'master' into editor-exit-stability 2021-05-28 14:32:32 +09:00
Dean Herbert
e52c0a34f8 Add temporary accounting for tests with null files 2021-05-28 14:31:26 +09:00
Dean Herbert
9c4f39e968 Revert "Make BeatmapSetInfo.Files non-nullable"
This reverts commit c24712642c.
2021-05-28 14:15:28 +09:00
Dean Herbert
1af684c4b2 Revert "Fix editor tests failing due to empty files being specified"
This reverts commit fdbd421040.
2021-05-28 14:15:28 +09:00
Dean Herbert
b13b732e02 Remove incorrect DefaultSkin usage 2021-05-27 14:50:56 +09:00
Dean Herbert
14a4095140 Merge branch 'master' into beatmap-skin 2021-05-26 18:39:47 +09:00
Dean Herbert
29e1737f0d
Merge branch 'master' into mbd-beatmap-set-cover 2021-05-24 15:51:03 +09:00
Salman Ahmed
4f6de6fdc6 Implement GetSkin() for other working beatmaps 2021-05-21 20:21:29 +03:00
Salman Ahmed
318e5fc60b Mark WorkingBeatmap.GetSkin() as abstract 2021-05-21 20:14:26 +03:00
Dean Herbert
c24712642c Make BeatmapSetInfo.Files non-nullable 2021-05-20 17:39:52 +09:00
Dean Herbert
fdbd421040 Fix editor tests failing due to empty files being specified 2021-05-20 17:09:55 +09:00
Dean Herbert
7980bdd384 Revert incorrectly changed requery code 2021-05-20 15:41:58 +09:00
Salman Ahmed
825d61e22c Separate default beatmap skins from DefaultSkin 2021-05-19 12:06:10 +03:00
Dean Herbert
a639132825 Avoid doing any re-fetch on beatmap from test scenes 2021-05-19 17:58:28 +09:00
Dan Balasescu
ce7c503e6e
Merge branch 'master' into playlist-unicode 2021-05-17 11:47:10 +09:00
Dean Herbert
dc56250a3c
Merge branch 'master' into player-loader-star-rating 2021-05-15 15:39:57 +09:00
Salman Ahmed
e0728a6e19 Make BeatmapDifficultyCache.GetDifficultyAsync virtual 2021-05-14 15:52:36 +03:00
Dean Herbert
32ff406289 Add database tracking of beatmap creator user_ids 2021-05-14 15:40:29 +09:00
Dean Herbert
77e422409c Add SkinInfo.InstantiationInfo to allow creating different skin types 2021-05-11 23:37:06 +09:00
Salman Ahmed
c7325f0f77 Add missing load delay
That was a bad one... `ModelBackedDrawable` has a default of 0ms load delay, while previously the wrapper created for beatmap set cover used default 500ms, this change is bringing the load delay back, to avoid firing hundreds of web requests just when doing a quick long scroll on beatmap listing.
2021-05-07 08:09:02 +03:00
Salman Ahmed
283488ea53 Use TransformImmediately instead at beatmap listing search control
Applies two changes:
 - Use `TransformImmediately` which achieves the same wanted transition behaviour without any issues.
 - Move the transition behaviour override into `BeatmapListingSearchControl` in a nested subclass of `UpdateableBeatmapSetCover`.
2021-05-07 03:36:32 +03:00
Salman Ahmed
6fb9eb8b33 Move legacy beatmap combo offset to osu! processor
Better suited there, I intiailly wanted the whole legacy interface to reside in `osu.Game.Rulesets.Osu` but it's required in `ConvertHitObjectParser` and that's in the main game project, so had to leave the interface as-is for now.
2021-05-05 14:24:14 +03:00
Salman Ahmed
cd6d070b4a Consider "combo offsets" as legacy logic and separate from combo information 2021-05-05 07:43:08 +03:00
Bartłomiej Dach
32b3ea70b9 Fix both covers showing if cover is not fully opaque 2021-05-04 21:12:50 +02:00
Bartłomiej Dach
f52375eed2 Merge branch 'master' into mbd-beatmap-set-cover 2021-05-03 15:58:13 +02:00
Dean Herbert
2e24b69d62
Merge pull request #12617 from Joehuu/fix-pp-column-approved-maps
Fix approved maps not displaying pp column on score table
2021-05-02 13:27:39 +09:00
Justus Franklin Tumacder
0d077b7a5d Fix GetClosestBeatDivisor returning the wrong divisor 2021-05-01 14:13:42 +08:00
Joseph Madamba
786ab163f6 Rename extension and move to bottom of file 2021-04-30 12:40:16 -07:00
Dean Herbert
eeb66a955e
Merge branch 'master' into mbd-beatmap-set-cover 2021-04-30 08:14:33 +09:00
Joseph Madamba
cfbf95b433 Add HasPerformancePoints extension method 2021-04-29 14:11:35 -07:00
Dean Herbert
859898d98f Refactor lookup methods to avoid linq and reduce TimingPointAt calls 2021-04-28 17:16:05 +09:00
Dean Herbert
c5186b6a69 Revert return values to non-rounded doubles 2021-04-28 16:59:49 +09:00
Dean Herbert
f3c7694eeb Rename methods to match generally how these find-methods are named elsewhere 2021-04-28 16:57:52 +09:00
Dean Herbert
48d6c9ac4b Move snap/divisor helper methods to inside ControlPointInfo 2021-04-28 16:47:30 +09:00
Naxess
217ff8238e Add snapping time comment 2021-04-27 01:23:03 +02:00
Naxess
6d5883abcb Return result of local variable instead 2021-04-27 01:19:38 +02:00
Naxess
7b9ed924be Rename snapping methods
Further separates them from `IBeatSnapProvider`'s `SnapTime`, and groups them together more, to prevent confusion between the two interfaces.

Also changes the xmldoc of the reference time to that of `IBeatSnapProvider` for consistency.
2021-04-26 16:07:30 +02:00
Naxess
049e42fa85 Move snapping responsibility to IBeatmap
Seems `EditorBeatmap` already implements a different kind of `SnapTime` from `IBeatSnapProvider`, so method names here aren't great.

This is very similar to what https://github.com/ppy/osu/pull/12558 is doing, so may need to do some duplicate resolution later, especially surrounding `ClosestBeatSnapDivisor`.

Worth noting that this change makes 1/7, 1/5, etc unsupported for now, as we now rely on `BindableBeatDivisor.VALID_DIVISORS`.
2021-04-26 05:07:24 +02:00
Naxess
e9dfa2860a Add xmldoc note about path being relative 2021-04-20 13:44:06 +02:00
Naxess
d7a81471c8 Add xmldoc to GetPathForFile 2021-04-20 13:40:38 +02:00
Naxess
0e6b66f457
Merge branch 'master' into bg-audio-quality-checks 2021-04-20 02:36:13 +02:00
Naxess
1478bcfa8e Improve xmldoc consistency 2021-04-20 02:30:27 +02:00
Naxess
67e4fe4284 Add xmldoc to GetStream 2021-04-20 02:28:38 +02:00
Naxess
f168247254 Add Track as a property to IWorkingBeatmap
This is implemented by `WorkingBeatmap` already, and is much better to use than loading the track every time we need it.
2021-04-20 01:35:41 +02:00
Bartłomiej Dach
d5829fe638 Merge branch 'master' into playlist-unicode 2021-04-19 19:24:04 +02:00
Dean Herbert
a10a8680d0 Add new display for timing row attributes 2021-04-19 16:23:06 +09:00
PercyDan54
38a7c590c4
Make versionString private 2021-04-18 20:57:25 +08:00
PercyDan54
646403b826
Fix CI errors 2021-04-18 10:54:42 +08:00
PercyDan54
cfaaf2e83e
Add ToRomanisableString() 2021-04-18 09:52:25 +08:00
Naxess
bf8789528a Add GetStream to IWorkingBeatmap 2021-04-18 01:13:57 +02:00
Naxess
b36da2664c Add GetPathForFile to BeatmapSetInfo
This is used in several places, and so should probably have a function rather than remaining as duplicated code.

Also applies this together with the previous commit to `BeatmapManagerWorkingBeatmap`.
2021-04-17 17:49:10 +02:00
Naxess
400f8b3938 Add GetStream to IWorkingBeatmap
This is necessary to obtain the filesize of the audio and background files.
2021-04-17 17:47:13 +02:00
Dean Herbert
be08b9d1ef Combine logic of Difficulty and Timing pieces where feasible 2021-04-14 20:55:34 +09:00
Dean Herbert
a8df2388eb Update design for TimingControlPoint 2021-04-14 20:11:47 +09:00
Dean Herbert
b5954a55ad Remove empty <returns> xmldoc 2021-04-12 17:46:14 +09:00
Dean Herbert
1dbc7e821e
Merge branch 'master' into add-slider-whistle 2021-04-09 17:11:48 +09:00
smoogipoo
9b0ce2999f Fix legacy encoder 2021-04-09 15:28:42 +09:00
smoogipoo
8293b06c0a Remove obsolete code 2021-04-09 13:56:58 +09:00
Leon Gebler
dd902441b0 Add tests for consecutive perfect-curve segments 2021-04-06 13:32:17 +02:00
Leon Gebler
d81f270e21 Always encode perfect curves as explicit segments 2021-04-06 13:29:31 +02:00
smoogipoo
a2544100d4 Fix floating point error in slider path encoding 2021-04-06 14:10:59 +09:00
smoogipoo
d0510222ae Fix legacy beatmap encoding 2021-04-05 19:59:54 +09:00
PercyDan54
dde255980b
Fix formatting 2021-04-03 12:45:42 +08:00
PercyDan54
bd7da9eb39
Make beatmap title use unicode 2021-04-03 12:43:17 +08:00
Dean Herbert
6d4d574a65 Fix exported replay filenames not having full metadata 2021-04-02 14:10:25 +09:00
Dean Herbert
4f8edcd336 Don't strip comments from metadata during parsin 2021-03-25 13:35:54 +09:00
Bartłomiej Dach
a16c0641b2 Revert EF Core to version 2.2
This reverts commit f3faad74d5, reversing
changes made to 712e7bc7bf.

Several issues arose after migrating to 5.0, including, but possibly not
limited to, performance regressions in song select, as well as failures
when attempting to save beatmaps after metadata changes in the editor.
2021-03-21 11:05:15 +01:00
Dean Herbert
0195d654ca Increase the precision of speed multiplier to match osu-stable 2021-03-19 17:09:49 +09:00
Dan Balasescu
53ae24db9b
Merge pull request #12058 from peppy/fix-whitespace-in-ini
Fix skin parser not stripping whitespace before parsing
2021-03-18 18:46:28 +09:00
Dean Herbert
5b0d75ee56 Only trim trailing spaces to avoid breakage in storyboard parsing 2021-03-18 16:30:30 +09:00
Dean Herbert
bb3c3f302a Fix skin parser not stripping whitespace before parsing 2021-03-18 15:36:11 +09:00
Dean Herbert
eda891223c Start the editor with empty artist/creator/difficulty name fields 2021-03-17 16:47:12 +09:00
Dean Herbert
f3faad74d5
Merge pull request #12003 from UselessToucan/ef_core_5 2021-03-15 15:05:32 +09:00
Dean Herbert
6d4c1ba2ae Fix a couple of new inspections introduced in Rider EAPs 2021-03-15 13:35:08 +09:00
Roman Kapustin
0a1e325fc7 Extract requerying of navigational properties from DbContext 2021-03-14 19:34:53 +03:00
Roman Kapustin
47b80d2474 Workaround InvalidOperation exceptions 2021-03-11 20:51:54 +03:00
Dean Herbert
b1cd01ceb8 Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +09:00
Dean Herbert
103dd4a6ce Remove WorkingBeatmap's finalizer 2021-03-02 16:14:43 +09:00
Dan Balasescu
46ea0f44eb
Merge branch 'master' into beatmap-difficulty-cache-nullable 2021-02-25 22:52:15 +09:00
Dean Herbert
5fa9bf61b6 Update xmldoc 2021-02-25 16:22:40 +09:00
Dean Herbert
03771ce8ec Allow determining a BeatmapDifficultyCache's bindable return's completion state via nullability 2021-02-25 16:19:01 +09:00
smoogipoo
dff1d80f39 Update HasFlag usages to HasFlagFast 2021-02-25 15:38:56 +09:00
Dean Herbert
dfedea9ea2 Move preview point logic to a specific method in WorkingBeatmap 2021-02-18 14:55:44 +09:00
Dean Herbert
e7308193e7 Add xmldoc explaining how PreviewTime is intended to work 2021-02-18 13:03:29 +09:00
Dean Herbert
a080a9bdbc
Merge pull request #11603 from Game4all/handle-stable-imports-custom-songs-folder
Handle beatmap import from a stable installation with a custom Songs directory
2021-02-12 21:42:36 +09:00
smoogipoo
a1be3c8bfd Fix header background being invisible in multiplayer/playlists 2021-02-12 15:27:37 +09:00
Dean Herbert
5f23bd7259 Revert most of the changes to ArchiveModeManager by using better code 2021-02-12 12:48:32 +09:00
smoogipoo
18e3f8c233 Sort beat lengths rather than linear search 2021-02-08 19:03:19 +09:00
smoogipoo
b40b159acb Round beatlength 2021-02-08 18:52:50 +09:00
smoogipoo
69ca440ae5 Merge branch 'master' into more-accurate-most-common-bpm 2021-02-08 18:40:58 +09:00
Bartłomiej Dach
b9a49d5589 Coerce undefined animation loop types to Forever 2021-01-31 15:43:58 +01:00
Dean Herbert
16f3d1815f Fix SQLite exception thrown is a beatmap lookup is attempted without an OnlineBeatmapID present
It turns out the SQLite API isn't smart enough to handle nullables
directly, so we need to help it out a bit.

Stops the following from being thrown:

```
System.InvalidOperationException: Value must be set.
   at Microsoft.Data.Sqlite.SqliteParameter.Bind(sqlite3_stmt stmt) = 3
at
   at Microsoft.Data.Sqlite.SqliteParameterCollection.Bind(sqlite3_stmt
stmt) = 3 at
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior
behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader()
   at
osu.Game.Beatmaps.BeatmapManager.BeatmapOnlineLookupQueue.checkLocalCache(BeatmapSetInfo
set, BeatmapInfo beatmap) in
/Users/dean/Projects/osu/osu.Game/Beatmaps/BeatmapManager_BeatmapOnlineLookupQueue.cs:line
166 = 166
```
2021-01-29 19:53:57 +09:00
Dean Herbert
c3d4044017 Avoid using Dapper to fix iOS compatibility of beatmap lookup cache 2021-01-28 16:53:56 +09:00
Lucas A
383c40b992 Address remaining reviews suggestions. 2021-01-26 20:35:42 +01:00
Lucas A
9f9206726a Fix typos. 2021-01-26 18:11:54 +01:00
Dean Herbert
4ac362ee1a Move cloning local to editor 2021-01-25 18:29:00 +09:00
Dean Herbert
f054b38105 Merge branch 'master' into revert-beatmap-controlpointinfo-cloning 2021-01-25 18:25:53 +09:00
Lucas A
51d4da565c Fix ArchiveModelManagers lookup paths. 2021-01-24 22:25:49 +01:00
Salman Ahmed
acfb2d2980 Refactor beatmap set covers into using ModelBackedDrawable<T> 2021-01-24 00:32:33 +03:00
Salman Ahmed
d83abfa7d2 Add test scene with failing test case 2021-01-24 00:32:20 +03: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
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
smoogipoo
24e991a5ef Actually return beat length and not BPM 2021-01-15 14:35:09 +09:00
smoogipoo
c6e9a6cd5a Make most common BPM more accurate 2021-01-15 14:28:49 +09:00
Dean Herbert
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
Salman Ahmed
e8daea91d2 Add online beatmap "explicit content" property 2021-01-13 12:13:14 +03:00
smoogipoo
9a22df2b88 Fix BPM multiplier not working in all cases 2021-01-12 17:50:22 +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
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
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
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
Dean Herbert
ba4e411422 Clone and copy ControlPointInfo when retrieving a playable beatmap 2021-01-04 16:37:07 +09:00
Dean Herbert
d7279dab40
Merge pull request #11226 from peppy/fix-legacy-skin-texture-loader-store
Fix incorrectly provided texture loader store to skins
2020-12-23 16:41:01 +09:00
Dean Herbert
807c1ecd1f Refactor recommendation iteration code to read better 2020-12-22 14:57:32 +09:00
Dean Herbert
8cc2ed3fae Move from OsuGameBase to OsuGame
Also moves to a more suitable namespace.
2020-12-22 14:28:27 +09:00
Dean Herbert
85518b4d99 Enforce non-null for BeatmapManager WorkingBeatmap resources 2020-12-22 12:06:10 +09:00
Dean Herbert
a97a2b2a66 Add nullability to BeatmapManager's GameHost reference 2020-12-22 12:03:25 +09:00
Dean Herbert
10c2745682 Add region specifications around implicit interface implementations 2020-12-22 12:01:09 +09:00
Dean Herbert
a5bcf1dc20 Expose resources to skin via interface (and share common pieces with beatmap) 2020-12-21 15:18:52 +09:00
Dean Herbert
0ffbe12fcc Expose resources to beatmaps in a saner way 2020-12-21 14:22:34 +09:00
Dean Herbert
7c804be4d3 Rename textureStore to make its purpose more clear 2020-12-21 14:06:33 +09:00
Dean Herbert
a35060ea7a Add a simple cache-busting query string to online.db retrieval
As we are finally pushing updates for this database, this adds a minimum
level of guarantee that a client will request a new version (without
having to worry about multiple levels of server-side caching).
2020-12-11 17:56:02 +09:00
smoogipoo
2150cf1c52 Rename parameters 2020-12-02 10:55:48 +09:00
smoogipoo
5760e1c1fc Make HitSampleInfo immutable 2020-12-01 15:37:51 +09:00
Dean Herbert
25af091409 Fix storyboard animations of very old beatmaps playing too slow
Closes https://github.com/ppy/osu/issues/10772.
2020-11-12 17:03:43 +09:00
Dean Herbert
6cc0bf17a9 Add explicit lock object and some xmldoc for clarity 2020-11-10 14:31:52 +09:00
smoogipoo
66ea1572c7 Fix unsafe list manipulation in BeatmapDifficultyCache 2020-11-10 01:10:00 +09:00
Dan Balasescu
a2877fb00a
Merge pull request #10730 from peppy/fix-patcher-no-object-crash
Fix legacy patcher crash on no objects present
2020-11-09 18:51:00 +09:00
Bartłomiej Dach
6d4bb4316c Fix difficulty retrieval for online-sourced beatmaps 2020-11-08 00:12:25 +01:00
Dean Herbert
c5b6908e71 Always write [HitObjects] to file
I think this is expected. If not, there's an alternative solution.
2020-11-08 00:18:27 +09:00
Dean Herbert
c1c3d37720 Remove non-null assert 2020-11-06 17:24:28 +09:00
Dean Herbert
f51cb0dd14 Add ruleset fallback logic into cache lookup class 2020-11-06 16:58:53 +09:00
Dean Herbert
c5b172d0dd Remove synchronous lookup path from BeatmapDifficultyCache 2020-11-06 14:53:15 +09:00
Dean Herbert
b69ada64e8 Update BeatmapDifficultyCache to use base implementation logic 2020-11-06 14:31:21 +09:00
Dean Herbert
517a656899 Move StarDifficulty to own file 2020-11-06 13:51:25 +09:00
Dean Herbert
74ca2faa31 Remove unused using 2020-11-06 13:48:06 +09:00
Dean Herbert
0103b12575 Add basic base class to begin to standardise function across caching components 2020-11-06 13:26:39 +09:00
Dean Herbert
5113d4af8f Rename BeatmapDifficultyManager to BeatmapDifficultyCache 2020-11-06 13:14:29 +09:00
Dean Herbert
ab9e0aac58
Merge pull request #10258 from Game4all/results-dynamic-pp-calc 2020-11-02 15:40:55 +09:00
Dean Herbert
73b290aca3 Merge branch 'master' into results-dynamic-pp-calc 2020-11-02 14:47:33 +09:00
Dean Herbert
3adf451e82 Handle changes via SamplePoints list for simplicity 2020-11-02 14:40:40 +09:00
Bartłomiej Dach
3090b6ccb5 Resolve CA2249 inspections
"Use `string.Contains` instead of `string.IndexOf` to improve
readability"
2020-11-01 18:54:44 +01:00
Bartłomiej Dach
ca5de22ca5 Resolve CA1834 inspection
"Use `StringBuilder.Append(char)` instead of
`StringBuilder.Append(string)` when the input is a constant unit string"
2020-11-01 18:50:13 +01:00
Dean Herbert
89797d7a57
Merge pull request #9786 from Wieku/storyboard-skin-sprites
Allow storyboard elements to load textures from skins
2020-10-23 17:16:55 +09:00
Dean Herbert
9753dab93b Remove IOnlineComponent and change existing components to use bindable flow 2020-10-22 14:19:12 +09:00
Bartłomiej Dach
e2552d4c36 Merge branch 'master' into storyboard-skin-sprites 2020-10-20 23:01:54 +02:00
Bartłomiej Dach
cdd56ece87 Read UseSkinSprites when decoding storyboards 2020-10-20 22:49:56 +02:00
Dan Balasescu
bd4e0e1a60
Merge branch 'master' into epilepsy-warning 2020-10-20 17:43:37 +09:00
Dan Balasescu
13060b8575
Merge branch 'master' into beatmap-carousel-less-diffcalc-stutter 2020-10-20 14:26:16 +09:00
Bartłomiej Dach
fd4bab85cf Merge branch 'master' into epilepsy-warning 2020-10-20 01:06:46 +02:00
Bartłomiej Dach
1238e6c30f Add flag value to database
Unfortunately required, as loadBeatmaps() refreshes the decoded beatmap
with the database-stored values, which can end up overwriting the
decoded ones.
2020-10-20 00:46:08 +02:00
Bartłomiej Dach
a9f27a71a2 Fix code formatting issues 2020-10-19 23:53:41 +02:00
Bartłomiej Dach
ba818e3ae0
Merge branch 'master' into results-dynamic-pp-calc 2020-10-19 21:41:07 +02:00
smoogipoo
dfbc0965e4 Merge branch 'master' into peppy/skinnable-health-display 2020-10-16 23:17:17 +09:00
Berkan Diler
fe3a23750c Use char overloads for string methods 2020-10-16 11:52:29 +02:00
Dean Herbert
e89c5c3b3c Add dynamic compile exceptions to fix skin test scenes 2020-10-16 17:08:46 +09:00
Dean Herbert
88ffcb9234 Update EndsWith usages 2020-10-16 12:58:34 +09:00
Dean Herbert
cc41845f56 Add missing string function ordinal specifications 2020-10-16 12:49:31 +09:00
Dean Herbert
07e6609e6d Disable difficulty calculation for set-level difficulty icons 2020-10-14 14:16:22 +09:00
Bartłomiej Dach
1af17fbd5e
Merge branch 'master' into fix-early-break-cull 2020-10-13 18:02:08 +02:00
Bartłomiej Dach
7117fd0fba Add xmldoc and nullability annotations 2020-10-12 21:44:04 +02:00
Bartłomiej Dach
779e6e10a7 Split ctors to avoid passing fields one by one 2020-10-12 21:43:14 +02:00
smoogipoo
ccf7e2c49a Fallback to default ruleset star rating if conversion fails 2020-10-12 16:31:42 +09:00
smoogipoo
379971578d Remove culling notice from HasEffect 2020-10-12 15:28:16 +09:00
Bartłomiej Dach
8af78656e4 Add precision tolerance to difficulty rating range checks 2020-10-10 18:15:52 +02:00
smoogipoo
d536a1f75e Fix breaks being culled too early 2020-10-09 21:04:56 +09:00
Lucas A
7f5cf04b2b Fix merge conflicts. 2020-10-07 13:28:49 +02:00
Dean Herbert
afe3d3989a Force first hitobject to be a NewCombo in BeatmapProcessor preprocessing step 2020-10-06 22:10:13 +09:00
Dan Balasescu
783a463772
Merge branch 'master' into colourise-control-point-table 2020-10-05 20:47:06 +09:00
Dan Balasescu
051ea7eda9
Merge pull request #10329 from peppy/editor-file-drop-support
Add drag-drop support in editor setup screen for audio and background images
2020-10-05 20:05:41 +09:00
Dean Herbert
2ed43c14f8
Merge branch 'master' into editor-file-drop-support 2020-10-05 17:48:06 +09:00
Dean Herbert
365a38e92f
Merge branch 'master' into dynamic-difficulty-icon 2020-10-05 17:37:01 +09:00
Dean Herbert
50eca202f4 User IEnumerable for HandledExtensions 2020-10-02 16:17:10 +09:00
Dean Herbert
f501c88b46 Fix individual control points not being removed from group when group is removed 2020-10-02 15:28:21 +09:00
smoogipoo
40c153e705 Use component instead of drawable 2020-10-01 21:39:40 +09:00
smoogipoo
62b55c4c9c Use static method, add xmldoc + link to wiki 2020-10-01 20:50:47 +09:00
Dean Herbert
e96e30a19d Move control point colour specifications to common location and use for formatting timing screen table 2020-10-01 19:29:34 +09:00
smoogipoo
2213db2088 Use the given ruleset by default 2020-10-01 00:59:41 +09:00
smoogipoo
fde00d3431 Make DifficultyIcon support dynamic star rating 2020-10-01 00:53:25 +09:00
smoogipoo
917e8fc3ba Add difficulty rating to StarDifficulty 2020-10-01 00:53:01 +09:00
Lucas A
2766cf73b4 Reuse BeatmapDifficultyManager cache for beatmap difficulty attributes. 2020-09-29 18:32:02 +02:00
Lucas A
ddede85704 Split performance calculation to its own class. 2020-09-27 12:44:29 +02:00
Lucas A
84cc6068f5 Remove unnecessary XMLDoc comment and remove unecessary implicit null parm 2020-09-27 09:25:01 +02:00
Lucas A
4d94bf3163 Rename CalculateScorePerformance -> CalculatePerformance 2020-09-25 19:16:33 +02:00
Lucas A
77a9d92f42 Add dynamic pp calculation to score panels for local scores 2020-09-25 19:15:40 +02:00
Lucas A
4d743f64f5 Add a method to calculate asynchronously performance on a beatmap. 2020-09-25 18:17:01 +02:00
Dean Herbert
50ba320a51 Expand available file operations in ArchiveModelManager 2020-09-25 13:16:30 +09:00
smoogipoo
de5ef8a471 Rework to support obsoletion 2020-09-17 21:37:32 +09:00
smoogipoo
e71991a53c Add default token 2020-09-17 18:37:48 +09:00
smoogipoo
c7d24203ce Make beatmap conversion support cancellation tokens 2020-09-17 17:40:05 +09:00
smoogipoo
be2d34d5dc Merge branch 'master' into score-recalc 2020-09-09 21:31:31 +09:00
Dean Herbert
5b93752065
Merge pull request #10103 from smoogipoo/disable-online-lookups-tests
Disable online beatmap lookups in tests
2020-09-09 21:21:04 +09:00
smoogipoo
aeae009512 Disable online beatmap lookups in tests 2020-09-09 20:12:40 +09:00
smoogipoo
117c7ec6b2 Merge branch 'master' into score-recalc 2020-09-09 14:38:36 +09:00
Dean Herbert
2cd07b2d3c Fix editor crash on saving more than once
I'm fixing this in the simplest way possible as this kind of issue is
specific to EF core, which may cease to exist quite soon. Turns out the
re-retrieval of the beatmap set causes concurrency confusion and wasn't
actually needed in my final iteration of the new beatmap logic.
2020-09-09 12:48:12 +09:00
Dean Herbert
6b50d44dde Merge branch 'master' into editor-new-beatmap 2020-09-07 18:43:16 +09:00
Dean Herbert
4680728b9c Merge branch 'master' into update-dcc-exclusions 2020-09-07 18:01:44 +09:00
smoogipoo
9ab6d584d3 Merge branch 'master' into editor-new-beatmap 2020-09-07 14:30:41 +09:00
Dan Balasescu
e17ccdfe9f
Merge branch 'master' into combo-colors 2020-09-07 13:55:41 +09:00
Bartłomiej Dach
f138b92078
Merge branch 'master' into editor-new-beatmap 2020-09-06 18:24:02 +02:00
smoogipoo
1143d5d992 Update class exclusion for dynamic compilation 2020-09-04 20:41:08 +09:00
Dean Herbert
25e142965d Strongly type and expose default beatmap information icon implementations for other rulesets 2020-09-04 15:01:32 +09:00
Dean Herbert
fba253f131 Take user argument in CreateNew method parameters 2020-09-04 13:17:43 +09:00
Dean Herbert
f14a82e3a9 Remove unnecessary conversion 2020-09-04 13:13:53 +09:00
Dean Herbert
cd253ab055 Further tweaks to get closer to design originals 2020-09-04 13:05:39 +09:00
Dean Herbert
9d2dff2cb8 Add scale to allow legacy icons to display correctly sized 2020-09-04 12:55:39 +09:00
Dean Herbert
d32b77f045
Add missing extension to filename
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2020-09-03 21:33:25 +09:00
Dean Herbert
1c1c583d3b Fix regression in file update logic (filename set too early) 2020-09-03 19:31:40 +09:00
Dean Herbert
a555407f37 Fix various test failures due to missing beatmap info in empty beatmap 2020-09-03 19:25:18 +09:00
Dean Herbert
72cb65c22f Update and add missing beatmap statistic icons to info wedge 2020-09-03 17:52:22 +09:00
Dean Herbert
d849f7f2b5 Use the local user's username when saving a new beatmap 2020-09-03 13:20:23 +09:00
Dean Herbert
e337e6b3b0 Use a more correct filename when saving 2020-09-03 13:20:23 +09:00
Dean Herbert
faf9b0a528 Fix hard crash when trying to retrieve a beatmap's track when no file is present 2020-09-03 13:20:23 +09:00
Dean Herbert
e032844570 Start with a fresh beatmap when entering editor from main menu 2020-09-03 13:20:23 +09:00
Craftplacer
c2ade44656 Change types back 2020-09-01 17:58:06 +02:00
Craftplacer
9835d98942 Merge remote-tracking branch 'upstream/master' into combo-colors 2020-09-01 17:39:35 +02:00
Dan Balasescu
f08e7828da
Merge branch 'master' into beatmap-track-rework 2020-09-01 16:06:38 +09:00
Craftplacer
9b3a48ee5e
Revert "Add marker interface for beatmap skins" 2020-08-31 18:29:46 +02:00
Craftplacer
fb37a14d57 Update LegacyBeatmapEncoder.cs 2020-08-31 17:24:03 +02:00
Craftplacer
1484e78654 Update xmldoc 2020-08-31 17:24:00 +02:00
Craftplacer
eafa97af17 Revert changes done to SkinConfiguration and IHasCustomColours 2020-08-31 17:23:42 +02:00
Dan Balasescu
bd2f863b56
Merge branch 'master' into legacy-mirror-mod-replays 2020-08-31 12:41:17 +09:00
Craftplacer
7e668fc31a
Update osu.Game/Beatmaps/Formats/LegacyBeatmapEncoder.cs
Co-authored-by: Salman Ahmed <email@iisalman.me>
2020-08-30 16:11:49 +02:00
Craftplacer
1fdf8e6200 Fix xmldoc in LegacyBeatmapEncoder 2020-08-30 16:07:58 +02:00
Craftplacer
e428144f73 Use IBeatmapSkin 2020-08-30 11:34:50 +02:00
Craftplacer
00b68b050c Merge remote-tracking branch 'upstream/master' into combo-colors 2020-08-30 10:16:38 +02:00
Dean Herbert
814655770d
Merge branch 'master' into beatmapskin-interface 2020-08-30 12:22:55 +09:00
Dean Herbert
cd0a73883d
Merge pull request #9945 from smoogipoo/skin-colour-fix-2
Exactly reproduce osu!stable skin colour alphas
2020-08-29 20:06:26 +09:00
Bartłomiej Dach
658a1d159f Add legacy flag value for mirror mod 2020-08-29 11:45:59 +02:00
Craftplacer
82acb3506c Add and change xmldocs 2020-08-29 11:07:28 +02:00
Craftplacer
4cb9e1d443 Initial commit 2020-08-29 10:33:43 +02:00
smoogipoo
436dbafe57 Fix incorrect comparison for mods of different instances 2020-08-28 22:12:17 +09:00
smoogipoo
43c61e5830 Re-query beatmap difficulty before computing 2020-08-28 22:08:28 +09:00
smoogipoo
4d15f0fe52 Implement basic score recalculation 2020-08-28 19:16:46 +09:00
Craftplacer
e6646b9877 Resolve review comments 2020-08-23 15:08:02 +02:00
Dean Herbert
b72f06fef6 Centralise and clarify LoadTrack documentation 2020-08-22 19:42:34 +09:00
smoogipoo
88d50b6c47 Remove alpha mangling from LegacyDecoder 2020-08-22 00:15:37 +09:00
Dean Herbert
d2c2e8bbe8 Revert some more usage of MusicController back to WorkingBeatmap 2020-08-21 15:17:21 +09:00
Dean Herbert
526f06be4c Add back track loaded bool in WorkingBeatmap 2020-08-21 13:53:37 +09:00
Dean Herbert
357fb3a10e Merge branch 'master' into beatmap-track-rework 2020-08-21 12:53:09 +09:00
Dean Herbert
083bcde3cf Fix beatmap transfer not working 2020-08-18 13:01:35 +09:00
smoogipoo
583760100a Implement mania invert mod 2020-08-18 01:40:55 +09:00
Dean Herbert
d9debef156 Add explicit LoadTrack method 2020-08-17 15:38:16 +09:00
Dean Herbert
71f4e753f0 Merge branch 'master' into beatmap-track-rework 2020-08-16 22:35:32 +09:00
Craftplacer
1448c9e381 Merge remote-tracking branch 'upstream/master' into combo-colors 2020-08-15 23:01:38 +02:00
Craftplacer
c4a7fac760 Add required parameters and other various changes 2020-08-15 22:03:24 +02:00
Dean Herbert
c3757a4660 Fix beatmap covers not being unloaded in most overlays
Eventually we'll probably want something smarter than this, but for the
time being this helps stop runaway memory usage.
2020-08-14 19:22:26 +09:00
smoogipoo
91e28b849d Fix incorrect BeatmapManager construction 2020-08-13 00:29:23 +09:00
Craftplacer
8ffaa49839 Handle additional null case 2020-08-12 06:40:21 +02:00
Craftplacer
139c0c75f8 Add documentation for constructor 2020-08-12 06:40:21 +02:00
smoogipoo
b66f303e71 Add annotation 2020-08-12 00:48:45 +09:00
smoogipoo
faff0a70c4 Privatise BMWB 2020-08-11 13:48:57 +09:00
smoogipoo
338c01fa43 Remove track store reference counting, use single instance stores 2020-08-11 13:16:06 +09:00
Craftplacer
78692dc684 Initial commit 2020-08-10 05:21:10 +02:00
smoogipoo
e87f50f74f Rename method 2020-08-07 22:31:41 +09:00
smoogipoo
b6fb7a0d39 Fix possibly setting null track 2020-08-07 22:05:58 +09:00
smoogipoo
f53672193e Fix track stores being kept alive 2020-08-06 17:48:07 +09:00
smoogipoo
86ae61c6b7 Re-implement store transferral in BeatmapManager 2020-08-06 16:24:14 +09:00
smoogipoo
6e42b8219c Move track to MusicController, compiles 2020-08-06 16:24:14 +09:00
smoogipoo
4648362214 Safeguard against potential finalise-before-initialised 2020-07-29 11:30:25 +09:00
smoogipoo
a57b6bdc18 Remove cancellation of linked tokens 2020-07-29 11:29:38 +09:00
smoogipoo
fa25f8aef9 Dispose update scheduler 2020-07-28 17:23:35 +09:00
smoogipoo
96f68a3251 Reorder method 2020-07-28 16:53:07 +09:00
smoogipoo
ff3cb6487d Store all linked cancellation tokens 2020-07-28 16:53:07 +09:00
smoogipoo
44b0aae20d Allow nullable ruleset, reword xmldoc 2020-07-24 13:54:47 +09:00
smoogipoo
b10b99a670 Change method signatures to remove tracked/untracked 2020-07-24 13:52:43 +09:00
smoogipoo
de007cc1c6 Use IEnumerable mods instead of IReadOnlyList 2020-07-24 13:40:01 +09:00
smoogipoo
264bd7ced1 Apply general refactoring from review 2020-07-24 13:38:53 +09:00
smoogipoo
6b7f05740e Fix potential missing ruleset 2020-07-22 12:48:12 +09:00
smoogipoo
aca4110e36 Use existing star difficulty if non-local beatmap/ruleset 2020-07-22 12:47:53 +09:00
smoogipoo
00e6217f60 Don't store BeatmapInfo/RulesetInfo references, remove TimedExpiryCache 2020-07-21 23:50:54 +09:00
smoogipoo
107b5ca4f2 Add support for bindable retrieval 2020-07-21 23:13:04 +09:00
smoogipoo
599a15edb8 Merge branch 'master' into beatmap-difficulty-manager 2020-07-21 20:09:53 +09:00
Gagah Pangeran
055e31ddd5 update minor 2020-07-20 18:37:02 +07:00
Gagah Pangeran
acbf13ddc4 add epilepsy warning field 2020-07-20 17:36:42 +07:00
Dean Herbert
3823bd8343 Add back missing default implementations for lookup functions 2020-07-19 14:11:21 +09:00
Dean Herbert
7250bc351d Remove unnecessary new() specification 2020-07-18 12:06:41 +09:00
Dean Herbert
2f16b448ea Set beatLength inline 2020-07-18 12:03:49 +09:00
Dean Herbert
8147e67f53 Use static instances in all fallback ControlPoint lookups to reduce allocations 2020-07-18 11:53:04 +09:00
smoogipoo
3191bb506f Improve asynchronous process 2020-07-16 21:07:14 +09:00
smoogipoo
6df1b1d9ea Add a background beatmap difficulty manager 2020-07-16 20:43:14 +09:00
Dean Herbert
cc62d8911a
Merge pull request #9573 from smoogipoo/taiko-diffcalc-fixes-2 2020-07-16 14:59:06 +09:00
Dean Herbert
8ace06fcc5 Fix continuations attaching to the BeatmapOnlineLookupQueue scheduler 2020-07-14 16:03:40 +09:00
Dean Herbert
e35e9df4e1 Fix local online cache database not being used when offline / logged out 2020-07-14 12:02:03 +09:00
smoogipoo
0ea13dea55 Introduce legacy timing point fp errors 2020-07-13 17:06:00 +09:00
smoogipoo
1116703e92 Fix potential out-of-order objects after conversion 2020-07-13 16:52:05 +09:00
Dean Herbert
632f333ce2 Add ability to return protected beatmaps in GetAllUsable call 2020-07-10 17:20:27 +09:00
smoogipoo
04ce436f6a Dispose beatmap lookup task scheduler 2020-07-09 14:46:58 +09:00
ekrctb
3278a1d7d8 Standardize osu!catch coordinate system
There were two coordinate systems used:
- 0..512 (used in osu!stable)
- 0..1 (relative coordinate)

This commit replaces the usage of
the relative coordinate system to
the coordinate system of 0..512.
2020-07-02 00:21:45 +09:00
Dean Herbert
e5a901cec7
Merge branch 'master' into results-screen-statistics-overlapping-transition 2020-06-28 22:14:22 +09:00
Dean Herbert
d0787ddf99
Merge pull request #9369 from smoogipoo/fix-hyperdash-alpha 2020-06-26 14:46:46 +09:00
Dean Herbert
b077a2856d Merge branch 'master' into results-screen-statistics-overlapping-transition 2020-06-25 18:44:08 +09:00
smoogipoo
4ff9a91012 Adjust at parse time instead 2020-06-25 14:15:26 +09:00
smoogipoo
6bc507d49e Increase coordinate parsing limits 2020-06-24 18:53:52 +09:00
smoogipoo
6afd6efdeb Return default beatmap if local beatmap can't be retrieved 2020-06-22 20:33:08 +09:00
smoogipoo
88aed1d504 Merge branch 'master' into update-inspectcode-version 2020-06-09 20:12:39 +09:00
Dan Balasescu
1476412eaa
Merge branch 'master' into startup-safety 2020-06-09 13:55:33 +09:00
Dean Herbert
63003757c4 Remove WorkingBeatmap cache when deleting or updating a beatmap 2020-06-08 14:48:26 +09:00
smoogipoo
443977aa8d Remove PreUpdate, update hash in Save() 2020-06-08 14:40:17 +09:00
smoogipoo
dfed27bd46 Add back stream seeking for sanity 2020-06-08 14:24:21 +09:00
Dean Herbert
b41384dde8
Merge branch 'master' into multiplayer-beatmap-checksum 2020-06-07 18:05:33 +09:00
smoogipoo
0107e9ba16 Change lookups to use SingleOrDefault() 2020-06-05 19:18:00 +09:00
Dean Herbert
c155ab8339 Check filenames and timestamps before reusing an already imported model 2020-06-03 18:03:10 +09:00
smoogipoo
f3b5149648 Move some suggestions to warnings, resolve issues 2020-06-03 16:48:44 +09:00
smoogipoo
dfb9687fb5 Extract update into PreUpdate(), add test 2020-06-02 17:22:09 +09:00
smoogipoo
b41bb5a682 Update databased MD5 hash on save 2020-06-02 14:04:00 +09:00
Dan Balasescu
64d1b4b11b
Merge branch 'master' into move-setter-to-duration 2020-06-01 15:55:48 +09:00
Dean Herbert
81b8898272 Fix incorrect type cast in encoder 2020-05-31 22:30:55 +09:00
Dean Herbert
cbd563e80b Rename to IHasDuration 2020-05-27 12:38:39 +09:00
Dean Herbert
6b5b215299 Split out IHasPath from IHasCurve to better define hitobjects 2020-05-26 17:44:47 +09:00
Dean Herbert
0cc6d6d97c
Merge pull request #9033 from smoogipoo/applydefaults-cancellation
Add cancellation token support to CreateNestedHitObjects()
2020-05-26 12:04:06 +09:00
smoogipoo
bc35bc5efb Merge branch 'master' into applydefaults-cancellation 2020-05-25 16:45:30 +09:00
Dean Herbert
c071fe6140 Add the ability to export skins 2020-05-24 13:44:11 +09:00
Salman Ahmed
3d3cc2c15e
Dispose BeatmapOnlineLookupQueue cache download request 2020-05-22 17:26:37 +03:00
smoogipoo
e5de382760 Merge branch 'master' into storyboard-overlay-layer 2020-05-20 15:08:45 +09:00
Dean Herbert
052ad79fc6 Convert dangerous events to IBindables 2020-05-19 16:44:22 +09:00
Bartłomiej Dach
9415e45aea Add overlay layer to enumeration type 2020-05-18 22:45:31 +02:00
smoogipoo
4719fcc291 Actually use the cancellation token 2020-05-15 18:17:39 +09:00
smoogipoo
4079642d58 Actually pass in the cancellation token 2020-05-15 18:13:47 +09:00
Dean Herbert
916d8245e6 Don't timeout on long beatmap load when debugging 2020-05-11 12:50:47 +09:00
smoogipoo
401c516503 Expose searchable terms from beatmap info instead 2020-05-07 13:04:08 +09:00
Dan Balasescu
0eae8d078b
Merge branch 'master' into master 2020-05-05 13:33:29 +09:00
alex
0e2ccac33b Add spaces to comments 2020-05-04 18:36:24 -07:00
Dean Herbert
a1cd007cad Fix song select tests potentially failing due to difficulty panels not yet displayed 2020-05-04 14:44:53 +09:00
Dean Herbert
68d40cf790 Fix test failures due to online cache download 2020-05-03 13:25:57 +09:00
Dean Herbert
6fef4eeb8f Rename class and extract out lookup method 2020-05-03 09:35:48 +09:00
Dean Herbert
035b513b68 Use QuerySingle instead of QueryFirst 2020-05-03 09:32:33 +09:00
Dean Herbert
b9b5779251 Move deletion to catch instead of finally 2020-05-03 09:31:56 +09:00
Dean Herbert
deb87517d0 Add local beatmap lookup cache 2020-05-02 14:35:12 +09:00
Dean Herbert
d0a8c0fa71 Add kiai support to osu!taiko skinned playfields 2020-04-30 16:43:00 +09:00
Dean Herbert
d1ec99ffd9 Further improve beatmap carousel load performance by avoiding incorrect query construction 2020-04-29 16:51:22 +09:00
Dean Herbert
119000f1ab Reduce database includes where possible 2020-04-28 21:43:35 +09:00
Tim Oliver
c1c930c472 Fixed linting warnings 2020-04-25 13:47:20 +08:00
smoogipoo
3b805daa0b Fix hold note end time being written incorrectly 2020-04-22 16:40:07 +09:00
smoogipoo
7cdc9a599c Fix mania holds written as spinners 2020-04-22 16:27:07 +09:00
Dean Herbert
223c822e57
Merge branch 'master' into all-ruleset-encoders 2020-04-22 13:04:16 +09:00
Dean Herbert
aaa0f908d5
Merge pull request #8818 from smoogipoo/fix-beatmap-encoder
Fix beatmap encoder by enabling untested test cases
2020-04-22 13:03:56 +09:00
Dean Herbert
360c9f8e38 Add test coverage and handle null creator 2020-04-22 09:19:34 +09:00
Dean Herbert
0c74f1aaa9 Fix now playing output showing empty brackets when no difficulty specified 2020-04-22 09:08:33 +09:00
smoogipoo
d8fdd73e17 Implement IHasCurve on DrumRoll 2020-04-22 09:06:04 +09:00
smoogipoo
ea0ebc8527 Implement beatmap encoding for all legacy rulesets 2020-04-22 09:06:04 +09:00
smoogipoo
516e6a4bb1 Fix overlapping control points not written correctly 2020-04-22 09:04:44 +09:00
smoogipoo
1421e876b1 Remove implicit new combo from spinners 2020-04-22 09:04:44 +09:00
smoogipoo
d8d85e5b08 Don't output certain properties if they don't exist 2020-04-22 09:04:44 +09:00
smoogipoo
3093c3e185 Fix custom sample set not being written correctly 2020-04-22 09:04:44 +09:00
Dean Herbert
aa153290a9
Merge pull request #8815 from smoogipoo/fix-controlpoint-decode
Fix control point overriding working incorrectly
2020-04-21 16:18:50 +09:00
smoogipoo
72fb34f82c Fix overriding control points incorrectly 2020-04-21 14:19:05 +09:00
smoogipoo
9252b7876b Don't serialise AllControlPoints 2020-04-21 13:58:23 +09:00
Dan Balasescu
367c3e69c4
Merge pull request #8788 from peppy/fix-editor-hard-crash
Fix hard crash in editor on legacy modes without encoder implementation
2020-04-20 15:25:48 +09:00
Dean Herbert
48cf7becd1
Merge branch 'master' into catch-hyperdash-fruit-colouring 2020-04-19 21:48:41 +09:00
Dean Herbert
6b16908c05 Move todo to appease dotnet-format 2020-04-18 21:51:37 +09:00
Dean Herbert
c00a386ff6 Remove exceptions instead 2020-04-18 21:46:04 +09:00
Dan Balasescu
4e22e569f5
Merge branch 'master' into timing-equivalence 2020-04-17 17:12:38 +09:00
smoogipoo
0fba93bf65 Add back null check 2020-04-17 17:10:13 +09:00
smoogipoo
9aac98664c Remove unnecessary time property 2020-04-17 17:06:12 +09:00
smoogipoo
69fb984e71 Remove EquivalentTo() and Equals() 2020-04-17 17:04:09 +09:00
smoogipoo
6935221463 Improve logic for CSB transfer 2020-04-14 21:05:07 +09:00
Dan Balasescu
eb968d2bdb
Merge branch 'master' into timing-equivalence 2020-04-14 14:02:02 +09:00
Dean Herbert
081a02f748
Merge branch 'master' into catch-hyperdash-fruit-colouring 2020-04-14 10:01:15 +09:00
smoogipoo
cee4b005e6 Fix custom sample set 0 not falling back to default samples 2020-04-13 20:00:06 +09:00
Alchyr
f115fecb23 Fix formatting 2020-04-09 09:34:40 -07:00
smoogipoo
b900f229e7 Fix possible legacy beatmap encoder nullref 2020-04-09 20:21:42 +09:00
Alchyr
65823fb2e1 Use redundancy test 2020-04-08 01:42:35 -07:00
Alchyr
66a474619c Adjust TimingControlPoint equivalency 2020-04-07 18:13:26 -07:00
Salman Ahmed
1b76a53d32 Move CatchTheBeat section handling to LegacySkinDecoder
Best place to reside at
2020-04-05 22:10:35 +03:00
Salman Ahmed
0eaea8ef9d Create a constructor for break period
For simple construction of break periods (e.g. filling a method with an array of break periods inside a test case)
2020-04-05 21:29:03 +03:00
Salman Ahmed
10e65c4f53 Add handling for legacy CatchTheBeat section in LegacyDecoder 2020-04-05 00:10:12 +03:00
Will Kennedy
57944bd335 fix(?) InspectCode warnings 2020-04-02 21:36:31 -04:00
Will Kennedy
c042e709a5 Fix GetDecoder getting fallback decoder too often 2020-04-02 20:43:54 -04:00
smoogipoo
a77933f5e0 Add support for parsing mania skin colours 2020-04-02 17:56:12 +09:00
Dan Balasescu
8964001423
Merge branch 'master' into fix-invalid-set-ids-on-import 2020-03-30 22:24:12 +09:00
smoogipoo
4719aac235 Add basic mania skin parsing 2020-03-30 17:18:09 +09:00
Dean Herbert
f71c8cb30f Only drop online set ID if beatmap IDs were stripped in online retrieval 2020-03-30 15:07:56 +09:00
Dean Herbert
7ecce713bb Keep provided IDs where possible if not online 2020-03-30 15:07:39 +09:00
Dean Herbert
09d860d5f5 Fix imports with no matching beatmap IDs still retaining a potentially invalid set ID 2020-03-30 11:52:25 +09:00
voidedWarranties
b8f20831a1 Video no longer modifies storyboard resolution 2020-03-24 20:04:09 -07:00
Dean Herbert
f2e0fba164 Remove VideoFile from BeatmapMetadata
Leaving in database because it's a pain to drop columns.
2020-03-25 12:00:02 +09:00
Dean Herbert
729e006c3a
Merge branch 'master' into video-offset 2020-03-21 20:03:46 +09:00
smoogipoo
9c5423734a Throw timeout exceptions instead 2020-03-16 11:33:26 +09:00
Dan Balasescu
f390c1995d
Apply comment suggestions
Co-Authored-By: Dean Herbert <pe@ppy.sh>
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-03-16 11:29:28 +09:00
voidedWarranties
c27751050b Switch back to strings and update setting labels 2020-03-12 23:29:11 -07:00
smoogipoo
f7c036726a Add beatmap loading timeout 2020-03-13 13:52:40 +09:00
smoogipoo
40ab860ab5 Remove unused using 2020-03-11 18:23:30 +09:00