1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 19:07:25 +08:00
Commit Graph

592 Commits

Author SHA1 Message Date
Cootz
b00848e742 Fix realm error. Apply OriginalBeatmapHash on import 2023-02-06 13:58:41 +03:00
Cootz
4598112586 Add OriginalBeatmapHash to ScoreInfo. Update db schema_version, migration 2023-02-05 21:46:38 +03:00
StanR
24ed84aad0 Add tiered level badge colouring 2023-01-18 16:25:11 +03:00
Salman Ahmed
c6b6d0dcfe Remove verbose log from notifications feed 2023-01-10 13:31:29 +03:00
Salman Ahmed
e6479b73de Remove one more unused using directive 2023-01-09 23:43:35 +03:00
Salman Ahmed
20ed337ea8 Remove unused using directive 2023-01-09 23:25:52 +03:00
Salman Ahmed
f216d7264b Improve missing beatmap failure logging on score import 2023-01-09 23:06:59 +03:00
Dean Herbert
811a562608 Don't use bindables to avoid potential cross-usage contamination 2023-01-10 01:10:20 +09:00
Dean Herbert
62ffb4fe78 Pause imports during active gameplay 2023-01-09 18:54:11 +09:00
Berkan Diler
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
Dean Herbert
4a7d7c6ed9 Use MaxBy in all locations that can and update inspection level to match dotnet-build 2022-12-19 16:47:10 +09:00
Dean Herbert
ba54551313 Merge branch 'master' into guard-url-protocols 2022-12-16 18:23:16 +09:00
Dean Herbert
27c497145f Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
Dean Herbert
232f590ba3
Merge pull request #21628 from peppy/go-hard-file-writes
Use hard links on windows when importing beatmaps from a legacy osu! install
2022-12-16 14:52:57 +09:00
cdwcgt
3d6d3b4025
fix weird async logic 2022-12-15 20:59:11 +09:00
Dan Balasescu
fb85eaee95 Add description for lazer score version 30000001 2022-12-14 18:30:33 +09:00
Dean Herbert
cb16d62700 Hook up ImportParameter flow with IModelImporter caller methods 2022-12-13 21:29:32 +09:00
Dean Herbert
cf2719d4c0 Convert batchImport parameter to parameters class to allow further import configuration 2022-12-13 19:55:18 +09:00
Dan Balasescu
ad7554cc7d Allow keeping stream open after encoding scores 2022-12-13 16:15:14 +09:00
Dean Herbert
5800734589
Merge pull request #21587 from smoogipoo/spectatorstate-maximum-statistics
Store maximum statistics to spectator state
2022-12-12 20:00:52 +09:00
Dean Herbert
df94af4495 Inline ScoringValues and make some more methods private inside ScoreProcessor 2022-12-12 19:22:09 +09:00
cdwcgt
e02b8cb199
Group export methods into their respective managers 2022-12-11 18:30:24 +09:00
Dean Herbert
0372e38f57 Add nullability assertion to appease CI 2022-12-11 13:00:12 +09:00
Dan Balasescu
e00c075482 Fix incorrectly modified first lazer version 2022-12-08 11:30:18 +09:00
Dan Balasescu
df181acffe Append lazer score data to .osr files 2022-12-07 12:12:32 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
93a189603a Hide spinner ticks / bonus from results screen when not applicable to score 2022-11-21 14:20:36 +09:00
maromalo
b7ef9b176d Make score type consistent 2022-11-06 19:59:27 -03:00
Dean Herbert
0a625bd879 Fix mods potentially keeping reference to runtime gameplay elements
As noticed by smoogipoo during multiplayer match on the weekend.
2022-09-19 12:18:46 +09:00
Dean Herbert
28b15e232d Remove all EF models 2022-09-15 16:59:36 +09:00
Dean Herbert
bc07513c3c Fix local scores potentially not being stable-sorted for leaderboard display 2022-09-14 14:19:53 +09:00
Dan Balasescu
08d0c08750 Fix async exception by using difficulty calculator directly 2022-09-09 13:57:01 +09:00
Dan Balasescu
731d3f3b63 Add MaximumStatistics upgrade for databased scores 2022-09-09 09:56:08 +09:00
Dan Balasescu
7c0e99c5a8 Decode Geki/Katu from legacy taiko scores into LargeBonus 2022-09-07 00:12:34 +09:00
Dean Herbert
928bce8fcd Fix crash when attempting to watch a replay when the storage file doesn't exist 2022-08-30 18:18:46 +09:00
Dan Balasescu
07b502f69a Simplify OrderByTotalScore implementation 2022-08-29 17:58:57 +09:00
Dan Balasescu
d75543ad68 Simplify GetMaximumAchievableCombo further 2022-08-29 15:36:10 +09:00
Dan Balasescu
423f6f90f2 Remove async calls from ScoreManager 2022-08-29 15:34:08 +09:00
Dan Balasescu
c0b13c7e1f Refactor ScoreProcessor ComputeScore() methods 2022-08-29 13:51:10 +09:00
Dan Balasescu
17029f0b92 Ensure clones don't reference to MaximumStatistics 2022-08-25 13:58:58 +09:00
Dan Balasescu
cc648a90bc Actually save maximum statistics 2022-08-24 17:28:41 +09:00
Dan Balasescu
f70af779a4 Add maximum statistics to ScoreInfo/SoloScoreInfo 2022-08-24 17:28:41 +09:00
naoei
45e9eda9e7 Localise hit result name 2022-08-14 14:57:02 -04:00
naoei
1e356f6137 Revert localisation for GetDisplayNameForHitResult
Came across an issue where `LeaderboardScoreTooltip` attempts to capitalize all letters for the `displayName`.

Unsure if I should completely ignore it and localise it anyway.
2022-08-10 16:03:59 -04:00
naoei
8cb2e11766 Change most ruleset-accessible string types to Localisable strings 2022-08-10 15:51:11 -04:00
Dean Herbert
c35da62224 Add flow for bypassing local cache lookups when refreshing beatmap metadata 2022-07-28 16:33:51 +09:00
Dean Herbert
8370ca9765 Add ImportAsUpdate method to IModelImporter to avoid otehr changes 2022-07-26 15:49:04 +09:00
Salman Ahmed
678acabf7e
Merge branch 'master' into log-diffcalc-failure 2022-07-25 11:16:31 +03:00
Salman Ahmed
91d1c9686c Separate unprocessed PP placeholder to own class 2022-07-25 09:07:51 +03:00
Dan Balasescu
3d97b74813 Log beatmap difficulty retrieval failures during score calculation 2022-07-25 13:03:47 +09:00
Dean Herbert
6357223341 Fix incorrect DI fetch and apply nullability to ModelDownloader 2022-07-19 20:06:34 +09:00
Dean Herbert
51f91fe62e Update naming 2022-07-18 16:17:20 +09:00
Salman Ahmed
d0fe4fe15a Fix user population logic not including country 2022-07-16 06:39:05 +03:00
Salman Ahmed
4e7156cee8 Store user country on databased scores 2022-07-16 06:39:05 +03:00
Dean Herbert
c8c79d2185 Standardise HasReplay implementation (and remove from persisting to realm) 2022-07-15 16:14:21 +09:00
Dean Herbert
6122d2a525 Add "F" ScoreRank to handle old scores which have this specified
Not sure on the future of this, but given it is used in the
save-failed-reply pull request (#18785) I think it's fine to add back
for now.

Without this, JSON parsing of older scores in server-side storage will
fail on missing enum type.
2022-07-15 15:58:54 +09:00
Salman Ahmed
4f009419b8 Simplify population logic and match code style 2022-07-11 21:51:09 +03:00
Andrew Hong
10d6027c89 Assign missing UserID to RealmUser 2022-07-11 02:36:51 -04:00
andy840119
8c2f4b48fc Use debug.assert for better readable. 2022-07-03 19:27:56 +08:00
andy840119
0a1543c6e8 Use AsNonNull() instead. 2022-07-02 19:48:32 +08:00
andy840119
c6d0f0f81b pretend that the beatmap property will not be null.
Not really throw exception will be the better way?
2022-07-02 13:20:46 +08:00
Bartłomiej Dach
577a87bcad
Merge branch 'master' into importer-post-import-rename 2022-06-20 13:37:16 +02:00
Dean Herbert
dbae4c6f5a PostImport -> PresentImport 2022-06-20 18:36:29 +09:00
Dean Herbert
ebcee21f6f Remove necessity to provide BeatmapDifficultyCache as a function to ScoreManager 2022-06-20 17:52:42 +09:00
Dean Herbert
92f1a2958c Rename Import(TModel) to ImportModel to differentiate from other import methods 2022-06-20 15:18:07 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
e66ccfd980 Add back missing notification flow 2022-06-16 19:48:18 +09:00
Dean Herbert
ce3d3a967c Reimplement missing methods 2022-06-16 19:05:25 +09:00
Dean Herbert
72c5b9009d Remove local realm fields in manager classes 2022-06-16 18:56:53 +09:00
Dean Herbert
f3984d98e6 Remove RealmArchiveModelManager from hierarchy 2022-06-16 18:53:13 +09:00
Dean Herbert
4d9e3d1982 Rename Score/Skin ModelManager classes to Importer for now 2022-06-16 18:11:50 +09:00
Dean Herbert
f23ddfe6cc Move remaining realm classes out of Stores namespace 2022-06-15 21:56:00 +09:00
Dean Herbert
88d5e074a8 Rename lowPriority to batchImport 2022-06-15 00:46:00 +09:00
Dean Herbert
2f8290831a Skip quick import clause when importing a single item
Closes https://github.com/ppy/osu/issues/18600.
2022-06-15 00:26:34 +09:00
Dean Herbert
9f599a5ab4 Remove unused lowPriority flag from one Import method 2022-06-14 19:52:30 +09:00
Dean Herbert
ca0765a932 Tidy up various delegation implementations 2022-06-14 19:46:59 +09:00
Dan Balasescu
773ba97117 Add xmldoc to ScoringValues 2022-06-02 16:39:51 +09:00
Dan Balasescu
a638392e81 Rename member 2022-06-02 16:35:50 +09:00
Dan Balasescu
af0f934e1a Move raw ScoreProcessor values into ScoringValues struct 2022-05-31 19:39:38 +09:00
Dan Balasescu
4df63a4900 Prevent scores being calculated twice 2022-03-30 13:15:41 +09:00
Dan Balasescu
bd9c0076df Fix scores sometimes shown with incorrect scoring mode 2022-03-30 13:03:12 +09:00
Dean Herbert
a7554dcdf7 Use a constant for the early version timing offset 2022-03-24 16:43:41 +09:00
Dean Herbert
a7d5f2281c Apply beatmap offsets to legacy replay frame handling 2022-03-24 16:16:40 +09:00
Salman Ahmed
b9859f9f21 Obsolete BeatmapInfo.MaxCombo and suppress in usages 2022-03-20 16:30:29 +03:00
Salman Ahmed
aef40da8d4 Add note about null return value 2022-03-20 16:24:30 +03:00
Salman Ahmed
2a78042038 GetBeatmapMaximumComboAsync -> GetMaximumAchievableComboAsync 2022-03-20 16:18:53 +03:00
Salman Ahmed
d36f32a9c9 Introduce method for computing maximum achievable combo properly 2022-03-20 05:38:14 +03:00
Dan Balasescu
4a3e3aba65 Restructure PerformanceCalculator to not require ScoreInfo argument 2022-03-14 14:25:28 +09:00
Dean Herbert
94ff6a338f
Merge branch 'master' into scoreprocessor-rework 2022-03-09 23:04:18 +09:00
Dan Balasescu
f1c40bd9ed Rework GetScore() method signatures + implementations
Rename legacy-facing overload to mention as much
2022-03-08 22:30:44 +09:00
Dan Balasescu
f5cd967635 Fix scores not being recalculated in beatmap listing 2022-03-08 19:07:39 +09:00
Bartłomiej Dach
36263b4dbf
Replace remaining manual online ID check with extension method 2022-03-03 23:09:56 +01:00
Dean Herbert
eb75a29b20 Use constant for maximum legacy ruleset id 2022-03-01 12:07:03 +09:00
Dean Herbert
52e50db6b9 Enable nullable for LegacyScoreEncoder 2022-02-28 18:42:23 +09:00
Dean Herbert
723e96309a Only convert non-legacy frames (and throw on conversion failure) 2022-02-28 18:42:23 +09:00
Dean Herbert
2e96f74c94 Allow LegacyScoreEncoder to be used without a beatmap if frames are already legacy frames 2022-02-28 18:42:23 +09:00
Dan Balasescu
c3b365cf6b Scale classic score by hitobject count 2022-02-21 13:31:03 +09:00
Henry Lin
f29301cd1e
Merge branch 'master' into display-performance-attributes 2022-02-05 16:59:46 +08:00
Bartłomiej Dach
16e0cc6a2b
Remove IIpcHost param from ScoreManager
No longer used since 3e3b9bc963.
2022-02-01 21:35:40 +01:00
Dean Herbert
0d3ac4fd9c Fix delete local scores crashing the game 2022-01-28 15:54:53 +09:00
Dean Herbert
5288eedd31 Update all usages of RulesetID and Ruleset.ID to use Ruleset.OnlineID 2022-01-27 15:38:03 +09:00
Dean Herbert
378173cc66 Fix some score imports failing due to null string attempted to be parsed as json 2022-01-26 22:46:29 +09:00
Dan Balasescu
4a51bab9ac
Merge pull request #16622 from peppy/fix-results-score-switch-crash
Fix crash at results screen when viewing another score panel after playing
2022-01-26 16:59:39 +09:00
Dean Herbert
3491b77c8c Fix ScoreInfo.RealmUser not getting deep cloned correctly
I'm still not at all happy with the play-to-results flow (with multiple
clones), but this will have to do for now.
2022-01-26 14:27:48 +09:00
Dean Herbert
cd71ec0edd Remove ILive<> interface (and use abstract Live<> instead) 2022-01-26 13:38:56 +09:00
Dean Herbert
778d2a71b4 Remove Task from the inner-most Import method in RealmArchiveModelImporter
One of my pending work items for post-realm merge.

The lowest-level import task is no longer asynchronous, as we don't want
it to span multiple threads to allow easier interaction with realm.
Removing the `Task` spec simplifies a heap of usages.

Individual usages should decide whether they want to run the import
asynchronously, by either using an alternative override or spooling up a
thread themselves.
2022-01-25 15:30:29 +09:00
Dean Herbert
e23b10e6a5 Update remaining cases of clashing variable name in realm.Run(realm.. 2022-01-25 13:04:05 +09:00
Dean Herbert
3e5c9e8436 Fix cases of Access instead of Realm 2022-01-25 12:58:15 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Bartłomiej Dach
1ce0b18003
Merge branch 'master' into display-performance-attributes 2022-01-22 14:12:57 +01: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
3c852e6d02 Avoid constructor overhead for realm ScoreInfo parameterless constructor 2022-01-20 16:47:27 +09:00
Dean Herbert
18886f5d2e Use empty string instead of empty array for ModsJson when no mods are present
Not really correct, but this is how most scores have been stored until
now so let's do this for consistency.
2022-01-19 14:34:27 +09:00
Dean Herbert
664b4fdaf0 Fix legacy score imports not correctly getting classic mod assigned 2022-01-19 14:34:27 +09:00
Dean Herbert
3bc091fe6d Add ignore rules on more helper properties 2022-01-19 09:46:45 +09:00
Dean Herbert
a5862ca00d Improve reliability of mod deserialisation 2022-01-18 15:46:27 +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
ebc9d3a613 Fix playlist aggregate scores not displaying (again) 2022-01-18 11:57:38 +09:00
Henry Lin
511a607599 Display performance breakdown in a tooltip 2022-01-17 18:28:17 +08:00
Dean Herbert
a0e2106468 Guard against null values getting inserted into database during score/beatmap imports 2022-01-17 14:05:08 +09:00
Dean Herbert
744084b418 Initialise all parameters is paramaterless constructor for now for added safety 2022-01-17 13:51:30 +09:00
Dean Herbert
d27ee2c9fb Remove incorrect IsManaged check in ScoreManager 2022-01-17 13:37:42 +09:00
Dean Herbert
a3806f44a5 Add back null beatmap allowance to GetTotalScore flow to fix playlist aggregate scores 2022-01-17 13:11:43 +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
c61419dfe5 Fix scores not using correct filename/display strings
I've updated all cases where we should have been using
`GetDisplayString()` anyway, but left the `ToString()` implementations
in place for safety. They should probably be removed in the future.
2022-01-13 16:56:11 +09:00
Dean Herbert
bdb2979b2e Remove async from Populate method 2022-01-13 16:36:54 +09:00
Dean Herbert
65dd80e6f6 Sanitise mods / statistics cache logic in ScoreInfo 2022-01-13 12:59:16 +09:00
Dean Herbert
4c79145c11 Fix potential mod nullref in APIUserScoreAggregate's CreateScoreInfo implementation 2022-01-13 00:28:16 +09:00
Dean Herbert
eb70a1eeb7 Replace compatibility properties with direct references 2022-01-12 18:13:14 +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
f451560203 Update null allowances across beatmaps and scores 2022-01-12 17:49:11 +09:00
Dean Herbert
ae8f522c20 Add support for persisting score's mods to realm 2022-01-12 17:49:10 +09:00
Dean Herbert
d8e75a9de4 Reimplmeent IsAvailableLocally as an abstract method 2022-01-12 17:49:10 +09:00
Dean Herbert
ba62d2c756 Fix ScoreInfo oversights causing automapper to fail
Parameter in ctor *has* to be named `realmUser` else automapper will try
to map to the `User` property.
2022-01-12 17:48:49 +09:00
Dean Herbert
83ccbc1d13 Mention safety failures of Beatmap/Score constructors 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
13401a8846 Better handle Statistics to avoid losing data 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
2b8706b6ce Detach and reattach scores to make work 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
8d943b5709 Fix many shortcomings and compatibility issues with EF classes post-rename 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
4f6a05ce3d Reimplement all query methods 2022-01-12 16:57:27 +09:00
Dean Herbert
53792811b2 more fixes (almost compiles, except ruleset and manager) 2022-01-12 16:57:27 +09:00
Dean Herbert
aac2aa341c Update some more incorrect types for primary key access/set 2022-01-12 16:57:27 +09:00
Dean Herbert
2a4bee61dd Update many score-related classes to move closer to being able to persist to realm 2022-01-12 16:57:27 +09:00
Dean Herbert
e44751c275 Add required properties for compatibility with existing code 2022-01-12 16:57:27 +09:00
Dean Herbert
638b3d9161 Add statistics storage to realm model 2022-01-12 16:57:27 +09:00
Dean Herbert
3da762e145 Replace EF ScoreInfo with realm version
May contain errors.
2022-01-12 16:57:27 +09:00
Dean Herbert
c5e401d678 Update usages to consume IRulesetStore 2022-01-12 16:57:27 +09:00
Dean Herbert
89d6ffa7f3 Use RealmContextFactory instead of EF 2022-01-12 16:39:36 +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
73b40e6833 Replace usage of .Result with .WaitSafelyForResult 2022-01-04 11:51:41 +09:00
StanR
cca02a8016 Create PerformanceAttributes 2021-12-21 13:08:31 +03:00
Dean Herbert
f7c5a3f506 Use similar method of consuming OnlineID as done in beatmap classes 2021-12-10 18:34:31 +09:00
Dean Herbert
c9f6c5c673 Add MatchesOnlineID implementation for IScoreInfo 2021-12-10 18:34:31 +09:00
Dean Herbert
5f6e887be7 Remove OnlineID comparison from ScoreInfo.Equals
This matches the implementation we have for `BeatmapInfo` and
`BeatmapSetInfo`. All comparisons of `OnlineID` should be done directly
using them (ie. how it's done in `ScoreModelDownloader`).
2021-12-10 18:17:43 +09:00
Dean Herbert
c6d0d6451d Change IScoreInfo.User to an interface type 2021-12-10 16:11:49 +09:00
Dean Herbert
dbb08f7d46 Use OnlineID for set operations 2021-12-10 16:11:48 +09:00
Dean Herbert
7ac63485ef Add setter for ScoreInfo.OnlineID 2021-12-10 16:11:48 +09:00
Dean Herbert
bf1418bafc Use OnlineID instead of legacy IDs for equality and lookups 2021-12-10 16:11:48 +09:00
Dean Herbert
8d9c37a825 Merge branch 'master' into primary-key-consistency 2021-12-08 21:34:38 +09:00
Bartłomiej Dach
f051720fa1
Fix score encoder being dependent on current culture
As it turns out, on some cultures, the "negative integer" sign is not
encoded using the U+002D HYPHEN-MINUS codepoint. For instance, Swedish
uses U+2212 MINUS SIGN instead. This was confusing the legacy decoder,
since it is correctly depending on the serialisation being
culture-independent.

To fix, ensure that the special "end replay" frame, as well as the
replay MD5 hash, are generated in a culture-invariant manner.

Thankfully the replay MD5 hash is currently being discarded in
`LegacyScoreDecoder`, so it changing in future scores should not have
any negative effect on lazer operation.
2021-12-04 17:13:43 +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
8baf00c023 Remove unused using 2021-11-25 19:36:06 +09:00
Dan Balasescu
d3a4890c31
Merge branch 'master' into realm-integration/stable-export-flow 2021-11-25 19:06:18 +09:00
Dean Herbert
eeccf836ec Remove unnecessary GameHost parameter 2021-11-25 17:42:41 +09:00
Dean Herbert
a2ab9f457d Move score download logic out of ScoreManager 2021-11-25 17:33:04 +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
Dan Balasescu
6d60725b31
Merge branch 'master' into realm-integration/stable-import-flow 2021-11-25 16:36:02 +09:00
Dean Herbert
6cab7b877d Move stable import handling into its own class 2021-11-25 15:36:58 +09:00
Dean Herbert
60b207f20a Reduce interface exposure of ScoreManager 2021-11-25 14:34:13 +09:00
Dean Herbert
ddbd4f9473 Merge branch 'master' into remove-model-file-list-inits 2021-11-24 18:39:01 +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
99a139dc98 Initialise all file lists at construction time (and remove setter) 2021-11-24 13:56:21 +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
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
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
Dan Balasescu
9182eab486 Rename method + xmldoc 2021-11-17 20:45:48 +09:00
Dan Balasescu
08f129b4c8 Expose LegacyScoreDecoder.CalculateAccuracy() 2021-11-17 20:09:30 +09:00
Bartłomiej Dach
eba3cfc96e
Move ScoreInfo string representation to extension method 2021-11-09 13:23:57 +01:00
Dean Herbert
78aef9ce86
Merge branch 'master' into remove-stupid-weak-reference-bindable-events 2021-11-08 13:35:49 +09:00
Dean Herbert
0ecf5f201c Rename User to APIUser and move to correct namespace 2021-11-07 11:26:01 +09: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
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
b98faf6159 Merge branch 'master' into score-refactor/isolated-serialisation 2021-11-01 15:49:25 +09:00
Dean Herbert
19feae4a8e
Merge branch 'master' into beatmap-refactor/download-tracker 2021-11-01 13:15:36 +09:00
Dean Herbert
b63a90966b
Remove misplaced access modifier in interface specification
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-10-31 23:49:26 +09:00
Bartłomiej Dach
e9ba1ea198
Mark IScoreInfo implementation with region 2021-10-30 15:08:45 +02:00
Bartłomiej Dach
8053b2c320
Merge branch 'master' into score-refactor/isolated-serialisation 2021-10-30 15:07:34 +02:00
Bartłomiej Dach
6e4f7af8d3
Mark IHasOnlineID implementation with region 2021-10-30 14:15:20 +02:00