Dean Herbert
6eb2c28e41
Rename RealmContextFactory
to RealmAccess
2022-01-24 20:38:07 +09:00
Dean Herbert
c3758047fd
Don't include nested hit objects' DifficultyControLPoints
in legacy encoder logic
...
The editor doesn't currently propagate velocity to nested objects. We're
not yet sure whether it should or not. For now, let's just ignore nested
objects' `DifficultyControlPoints` for simplicity.
Note that this only affects osu! ruleset due to the pre-check on
`isOsuRuleset`.
2022-01-24 19:54:08 +09:00
Dean Herbert
d7db6fa918
Merge branch 'master' into custom-meter
2022-01-24 15:46:44 +09:00
Bartłomiej Dach
838a9f69ed
Fix saved beatmap filename depending on ToString()
implementation
2022-01-23 20:28:30 +01:00
Bartłomiej Dach
4e5a1f27a8
Initialise Simple{Triple,Quadruple}
only once ever rather than create every time
2022-01-23 15:21:25 +01:00
Bartłomiej Dach
735414bc49
Replace TimeSignatures
enum with struct for storage of arbitrary meter
2022-01-22 20:50:31 +01:00
Dean Herbert
495636538f
Add forced refresh on GetAllUsableBeatmapSets()
...
This is commonly used in tests in a way where it's not feasible to
guarantee correct results unless a refresh is called. This method
shouldn't really be used outside of tests anyway, but that's for a
folow-up effort.
2022-01-21 17:33:29 +09:00
Dean Herbert
114c9e8c1f
Update all usages of CreateContext
to use either Run
or Write
2022-01-21 17:27:08 +09:00
Dean Herbert
a5d2047f05
Fix various cases of creating realm contexts from update thread when not necessary
2022-01-21 01:44:56 +09:00
Dean Herbert
6c10531df2
Avoid constructor overhead for realm BeatmapMetadata
parameterless constructor
2022-01-20 17:14:51 +09:00
Dean Herbert
deb108816c
Fix some regressions in json output (we need to make all these explicit instead)
2022-01-20 17:09:31 +09:00
Dean Herbert
ccddf9b47d
Avoid constructor overhead for realm BeatmapSetInfo
parameterless constructor
2022-01-20 17:03:44 +09:00
Dean Herbert
3faf980fed
Avoid constructor overhead for realm BeatmapInfo
parameterless constructor
2022-01-20 16:47:27 +09:00
Bartłomiej Dach
247c557eaf
Fix expanded content scrollbar inadvertently hiding expanded content
2022-01-19 22:30:49 +01:00
Bartłomiej Dach
77748a5f93
Show scrollbar on expanded card content where applicable
2022-01-19 22:21:08 +01:00
Dan Balasescu
3e5d29ed00
Merge pull request #16505 from peppy/remove-base-difficulty-usage
...
Remove all usage of `BaseDifficulty` (and access `Difficulty` instead)
2022-01-19 13:53:55 +09:00
Dan Balasescu
2556f1cb87
Merge branch 'master' into optimise-set-detach-part-2
2022-01-19 13:20:38 +09:00
Dean Herbert
2363130f8b
Add back BaseDifficulty
with obsoletion counter to account for custom rulesets
2022-01-19 12:33:56 +09:00
Dean Herbert
60b80c88b6
Avoid file retrieval overhead when detaching BeatmapSetInfo
...
It seems that no usages of `BeatmapSetInfo` detaches require files - a
`WorkingBeatmap` is always obtained before doing further lookups.
Therefore we can omit this include unless the detaching object is a
`BeatmapInfo`. A refetch is performed when retrieving a
`WorkingBeatmap` to complete the equation.
2022-01-19 00:49:18 +09:00
Dean Herbert
67bf95bc91
Remove all usage of AuthorString
2022-01-18 23:30:40 +09:00
Dean Herbert
3596c6ed5d
Add some missing IgnoredAttributes
to reduce automapper overhead
2022-01-18 23:25:30 +09:00
Dean Herbert
7f65f3a47f
Remove all usage of BaseDifficulty
(and access Difficulty
instead)
2022-01-18 22:57:39 +09:00
Dean Herbert
9a43ed742b
Update automapper spec in line with v11
...
See https://docs.automapper.org/en/latest/11.0-Upgrade-Guide.html for
more details.
2022-01-18 15:23:28 +09:00
Dean Herbert
381174e482
Give the placeholder ruleset better defaults to allow tests to work again
2022-01-17 14:40:00 +09:00
Dean Herbert
744084b418
Initialise all parameters is paramaterless constructor for now for added safety
2022-01-17 13:51:30 +09:00
Bartłomiej Dach
e75d21507c
Fix GetDisplayTitleRomanisable()
relying on ToString()
implementation
2022-01-15 15:26:41 +01:00
Dean Herbert
dea2e1fac0
Return immediately on failed web request in synchronous BeatmapOnlineLookupQueue
flow
2022-01-14 13:20:51 +09:00
Dean Herbert
8424d86e9a
Remove unused cancellationToken
parameter in synchronous BeatmapOnlineLookupQueue
flow
2022-01-14 13:19:00 +09:00
Dean Herbert
9b33fbbee5
Ensure detached when performing model Clone
operations on BeatmapInfo
/ScoreInfo
2022-01-14 13:08:20 +09:00
Dean Herbert
b610d2db12
Add EF to realm beatmap migration
2022-01-13 18:23:18 +09:00
Dean Herbert
069d6d2954
Remove pointless compatibility parameter BeatmapSetInfoID
2022-01-13 18:02:10 +09:00
Dean Herbert
93c78253d6
Add synchronous fetch flow to BeatmapOnlineLookupQueue
...
The async flow doesn't work great with the realm import process. We
might be able to improve on this going forward, but for the time being
adding a synchronous path seems safest.
After all, we are already an an asynchronous (dedicated) thread pool at
this point.
2022-01-13 16:36:54 +09:00
Dean Herbert
b77cb344d5
Use ctor
rather than MemberwiseClone
to guarantee a safer clone of BeatmapDifficulty
2022-01-13 13:23:41 +09:00
Dean Herbert
86b2ac3217
Remove unnecessary Ruleset
null check in BeatmapDifficultyCache
2022-01-13 13:19:49 +09:00
Dean Herbert
eb70a1eeb7
Replace compatibility properties with direct references
2022-01-12 18:13:14 +09:00
Dean Herbert
34aa1bf21d
Sanitise and remove some usages of Detach
which are no longer required
2022-01-12 17:49:11 +09:00
Dean Herbert
5f7365e8f3
Ensure scores are cleaned up alongside beatmap so they don't have a null reference
2022-01-12 17:49:11 +09:00
Dean Herbert
f24b2b1be3
Make copying detached changes to realm only exposed for BeatmapSet
...
Also fixes remaining issues with the copy process.
2022-01-12 17:49:11 +09:00
Dean Herbert
a4de0f93fa
Move manager Update
methods to be explicit to where they are still used by legacy code
...
Also fixes skin hash repopulation being completely broken.
2022-01-12 17:49:11 +09:00
Dean Herbert
51d6db1bca
Add equatable support to IUser
and RealmUser
...
Not sure this will stick, but let's add it for now to make testing
detach support work nicely.
2022-01-12 17:49:11 +09:00
Dean Herbert
157dfdaa82
Fix protected beatmap sets getting deleted
2022-01-12 17:49:11 +09:00
Dean Herbert
72656ae01e
Fix beatmap restore/undelete flows
2022-01-12 17:49:11 +09:00
Dean Herbert
46206f70d6
Fix beatmap mass deletion flow
2022-01-12 17:49:11 +09:00
Dean Herbert
d5239d550a
Add refetch for non-managed hide/restore attempts
2022-01-12 17:49:11 +09:00
Dean Herbert
46e92c3b60
Clean up BeatmapManager
query methods
2022-01-12 17:49:11 +09:00
Dean Herbert
9beabad6a4
Remove hide/restore event flow
2022-01-12 17:49:11 +09:00
Dean Herbert
c06b5951fd
Fix multiple remaining warnings
2022-01-12 17:49:11 +09:00
Dean Herbert
7509a9ff8f
Update BeatmapModelManager.Save
to work for editor scenarios
2022-01-12 17:49:11 +09:00
Dean Herbert
8c3dc4333d
Fix incorrect realm access after new beatmap import
2022-01-12 17:49:11 +09:00
Dean Herbert
2ce80cc030
Add back caching in WorkingBeatmapCache
2022-01-12 17:49:11 +09:00
Dean Herbert
286994a808
Fix BeatmapDifficulty
cloning regression
2022-01-12 17:49:11 +09:00
Dean Herbert
f451560203
Update null allowances across beatmaps and scores
2022-01-12 17:49:11 +09:00
Dean Herbert
6033a825ed
Ensure BeatmapInfo
Difficulty
and Metadata
is non-null
2022-01-12 17:49:11 +09:00
Dean Herbert
a0f8debafe
Add note about BeatmapMetadata.Author
being weird
2022-01-12 17:49:10 +09:00
Dean Herbert
83ccbc1d13
Mention safety failures of Beatmap/Score constructors
2022-01-12 17:00:17 +09:00
Dean Herbert
c831e9107a
Fix BeatmapInfo.Clone
potentially not cloning if already detached
2022-01-12 17:00:17 +09:00
Dean Herbert
e5af673b01
Fix incorrect BeatmapInfo.ToString
implementation
2022-01-12 17:00:17 +09:00
Dean Herbert
e74a5022c9
Fix multiple tests via null checks and changing ToLive
to Detach
...
flow
2022-01-12 17:00:17 +09:00
Dean Herbert
76670a8faa
Fix BeatmapDifficultyCache
not working with detached beatmaps
2022-01-12 17:00:17 +09:00
Dean Herbert
aaefd72c69
Handle ignored mappings locally in Detach
configuration
2022-01-12 17:00:17 +09:00
Dean Herbert
8461eaab46
BeatmapSetInfo
detach support
2022-01-12 17:00:16 +09:00
Dean Herbert
3811bd8520
Fix some null inspections
2022-01-12 17:00:16 +09:00
Dean Herbert
33060990b7
Temporarily disable WorkingBeatmapCache
and fix multiple invalid data flows
2022-01-12 17:00:16 +09:00
Dean Herbert
0793b0f0ab
Fix Max
lookup methods not checking for zero beatmap count
2022-01-12 17:00:16 +09:00
Dean Herbert
dcd69e852e
Add back settable RulesetID
for now
2022-01-12 17:00:16 +09:00
Dean Herbert
2a980cc474
Fix BeatmapInfo
file lookup not handling the case where no files exist
...
Quite common for test scenes.
2022-01-12 17:00:16 +09:00
Dean Herbert
99e46cd26b
Fix missing BeatmapMetadata.ToString
...
This is relied on by a few usages.
2022-01-12 17:00:16 +09:00
Dean Herbert
fe8a5e867d
Remove updated/removed flow method mapping
2022-01-12 17:00:16 +09:00
Dean Herbert
1f9318265e
Update ToLive
usages in line with recent changes
2022-01-12 17:00:16 +09:00
Dean Herbert
db05727ec4
Remove unused includeProtected
parameter
2022-01-12 17:00:16 +09:00
Dean Herbert
b91f309879
Inline query methods from BeatmapModelManager
to BeatmapManager
where possible
2022-01-12 17:00:16 +09:00
Dean Herbert
1d536fd0bc
Start introducing ILive
2022-01-12 17:00:16 +09:00
Dean Herbert
8696f82627
Fix intro screen
...
Fix things
2022-01-12 17:00:16 +09:00
Dean Herbert
c4a9211179
Apply NRT to BeatmapManager
and move Hide
/Restore
methods across
2022-01-12 17:00:16 +09:00
Dean Herbert
8d943b5709
Fix many shortcomings and compatibility issues with EF classes post-rename
2022-01-12 17:00:16 +09:00
Dean Herbert
d7fe3584cd
Don't persist Countdown
to realm for now
...
It's another enum which is a pain to handle, and not actually being
consumed anywhere.
2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366
Update model manager and many related classes to get things compiling again
2022-01-12 17:00:00 +09:00
Dean Herbert
a5df01ff47
Add score importer
2022-01-12 16:57:27 +09:00
Dean Herbert
8c0db79ec1
Remove BeatmapStore
and update surrounding code
2022-01-12 16:57:27 +09:00
Dean Herbert
b8cd3cdbbc
Various updates to ruleset and primary key usages to move closer to realm support
2022-01-12 16:57:13 +09:00
Dean Herbert
b77bb2f12b
Switch BeatmapModelManager
to use RealmArchiveModelManager
base class
2022-01-12 16:39:36 +09:00
Dean Herbert
116f35c52a
Remove EF FileStore
2022-01-12 16:39:36 +09:00
Dean Herbert
89d6ffa7f3
Use RealmContextFactory
instead of EF
2022-01-12 16:39:36 +09:00
Dean Herbert
df088f96f4
Fix incorrect Metadata
-related null checks
2022-01-12 16:39:36 +09:00
Dean Herbert
6a671b0a52
Remove unnecessary assigns of BeatmapSetInfo.Metadata
2022-01-12 16:39:36 +09:00
Dean Herbert
fda529de26
Update usages of APIUser
to RealmUser
2022-01-12 16:39:36 +09:00
Dean Herbert
213d89b479
Update null fallback cases involving OnlineID
2022-01-12 16:39:36 +09:00
Dean Herbert
c3df58e01c
Add required properties to make realm models backwards compatible
2022-01-12 16:39:36 +09:00
Dean Herbert
618903c217
Rename realm to become imposter classes
2022-01-12 16:39:36 +09:00
Dean Herbert
0b6c4497bd
Rename EF classes to allow for shit to hit the fan
2022-01-12 16:39:36 +09:00
Dan Balasescu
38a51b9ce0
Add comment
2022-01-11 13:54:12 +09:00
Dan Balasescu
81fed4c6bf
Use time=0 as for the first control point
2022-01-11 12:55:17 +09:00
Dean Herbert
3cd996eb4a
Merge branch 'master' into async-deadlock-safety
2022-01-07 17:28:59 +09:00
Dean Herbert
00177a3ae1
Update usages to new naming
2022-01-06 22:54:43 +09:00
Dean Herbert
3ea7588a91
Update continuation usages to use GetCompletedResult
2022-01-06 22:53:07 +09:00
Dean Herbert
374dac57f2
Change expanded card content height to 200
2022-01-04 13:22:00 +09:00
Dean Herbert
73b40e6833
Replace usage of .Result
with .WaitSafelyForResult
2022-01-04 11:51:41 +09:00
Bartłomiej Dach
0ad555e9f7
Remove surplus blank line
2022-01-03 18:33:32 +01:00
Dean Herbert
b9851b278d
Add padding to the bottom of the beatmap listing overlay to avoid hovered panels exceeding visible bounds
...
Closes https://github.com/ppy/osu/issues/16120 .
2022-01-03 13:18:28 +09:00
Joseph Madamba
7de43e3aba
Fix most open compound words in identifiers being closed
2021-12-27 20:26:28 -08:00
Bartłomiej Dach
3ca238825b
Unify width of normal and extra card sizes
2021-12-24 09:17:07 +01:00
Bartłomiej Dach
a49a4329ee
Add capability to switch between card sizes
2021-12-23 15:55:37 +01:00
Bartłomiej Dach
cd4c1bc678
Add factory method for various card sizes
2021-12-23 15:55:36 +01:00
Dean Herbert
f179ff33c9
Remove all NRT changes
...
This reverts commit bb9877adab
.
2021-12-22 21:02:06 +09:00
Dean Herbert
bb9877adab
Reapply IWorkingBeatmap
nullability fixed
2021-12-22 20:48:48 +09:00
Dean Herbert
bc47801cbb
Revert "Apply NRT to WorkingBeatmap
"
...
This reverts commit 9e17d7d4e3
.
2021-12-22 19:14:18 +09:00
Dean Herbert
9e17d7d4e3
Apply NRT to WorkingBeatmap
2021-12-22 18:41:45 +09:00
Dean Herbert
53c0a6708f
Move public accessor properties to top of file
2021-12-22 18:25:09 +09:00
Dean Herbert
a5f77a86ef
Move load methods and rename loadedTrack
to match other private fields
2021-12-22 18:24:51 +09:00
Dean Herbert
7344c87b16
Remove RecyclableLazy
2021-12-22 18:18:12 +09:00
Dean Herbert
f3f491374b
Remove unused load checks
2021-12-22 18:17:00 +09:00
Dean Herbert
3c95497ed7
Reorder methods to hopefully make more sense
2021-12-22 18:17:00 +09:00
Dean Herbert
e38e4c0adc
Enable NRT on IWorkingBeatmap
2021-12-22 18:17:00 +09:00
Dean Herbert
967419c9ac
Remove BeatmapSetInfo
and Metadata
from interface
...
There were very few accesses to this, and after realm they should all be
done via the `BeatmapInfo`, so let's remove this.
2021-12-22 18:17:00 +09:00
Dean Herbert
1b0af78831
Simplify WorkingBeatmap
in multiple ways
...
Just a clean-up pass.
2021-12-22 18:17:00 +09:00
Dean Herbert
b38b300159
Convert BeatmapMetadata
access to be via a computed property
2021-12-22 18:17:00 +09:00
Bartłomiej Dach
c7b9b176c6
Rename BeatmapCard{Base => }
2021-12-21 08:26:25 +01:00
Bartłomiej Dach
88d4e95ad8
Rename BeatmapCard{ => Normal}
2021-12-21 08:26:21 +01:00
Bartłomiej Dach
33e930f477
Move scale-on-expand logic to BeatmapCardContent
2021-12-17 13:29:20 +01:00
Bartłomiej Dach
d6f6039934
Extract base class for beatmap cards
2021-12-17 13:27:11 +01:00
Bartłomiej Dach
f052b47d87
Extract collapsible button container for card usage
2021-12-17 12:58:05 +01:00
Bartłomiej Dach
7aab12d4b0
Share extra row dropdown show/cancel show logic
2021-12-17 11:45:05 +01:00
Bartłomiej Dach
3fa45479b0
Share hype/nomination statistic show logic
2021-12-17 11:45:05 +01:00
Bartłomiej Dach
c6d0b5d200
Merge branch 'master' into beatmap-card/extra-wip
2021-12-17 11:11:36 +01:00
Bartłomiej Dach
54790bb758
Merge branch 'master' into fix-realm-post-storage-migration-failure
2021-12-17 00:19:46 +01:00
Dean Herbert
ad430a6277
Centralise hover state handling (and fix back-to-front conditionals)
2021-12-15 16:44:58 +09:00
Dean Herbert
6a1f535257
Refactor cancellation of expand to be more explicit
2021-12-15 16:38:19 +09:00
Dean Herbert
94d1a2aaca
Remove unnecessary collapse call from BeatmapCard
...
This is already handled at the `BeatmapCardContent` level. This call
actually causes the buggy behaviour reported in
https://github.com/ppy/osu/discussions/16085 .
2021-12-15 16:37:47 +09:00
Dean Herbert
7a9db22c52
Tidy up method naming and structure for expanded state changes
2021-12-15 16:29:12 +09:00
Dean Herbert
ef4ab74565
Also only expose Expanded
state of BeatmapCard
as read-only
2021-12-15 16:26:19 +09:00
Dean Herbert
41e6c24dad
Expose Expanded
state of BeatmapCardContent
as read-only bindable
...
This is just to reduce complexity of these interactions by ensuring that
the expanded state can only be changed by the class itself.
2021-12-15 16:26:19 +09:00
Dean Herbert
f9a2db5ec6
Add accessibility to realm factory via IStorageResourceProvider
...
We might need to rename this class..
2021-12-14 14:19:49 +09:00
Bartłomiej Dach
083ee92dee
Adjust button vertical padding
2021-12-08 22:56:28 +01:00
Bartłomiej Dach
2d739c95ea
Lay out extra card statistics in grid as per design
2021-12-08 22:56:28 +01:00
Bartłomiej Dach
3ecfaa532c
Add source field to extra beatmap card
2021-12-08 22:56:28 +01:00
Bartłomiej Dach
419fee1380
Move mapper link to bottom content
2021-12-08 22:54:11 +01:00
Bartłomiej Dach
61e04f75cc
Resize extra card to design size
2021-12-08 22:54:10 +01:00
Bartłomiej Dach
a32492cdd5
Duplicate BeatmapCard{-> Extra}
as blueprint for extra card size
2021-12-08 22:53:51 +01:00
Dean Herbert
8d9c37a825
Merge branch 'master' into primary-key-consistency
2021-12-08 21:34:38 +09:00
Dean Herbert
25a0505c97
Scale card when expanding to better distinguish hovered card from other cards in listing
2021-12-07 23:48:14 +09:00
Bartłomiej Dach
82ed8eae6b
Ensure hover handling container always calls base on hover events
2021-12-06 21:02:40 +01:00
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 Beatmap
s 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 ControlPoint
s
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 DifficultyControlPoint
s from HitObject
s
2021-09-03 16:58:16 +09:00
Dean Herbert
db3fc1d4af
Move DifficultyControlPoint
s 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 SampleControlPoint
s along with HitObject
s
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 ComboOffset
s 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_id
s
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