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
Dean Herbert
cd7bd935f6
Remove Statistics
from interface until we figure how to properly deserialise
2021-10-29 14:18:10 +09:00
Dean Herbert
54073d8a1e
Isolate score submissions model and remove serialisation from ScoreInfo
2021-10-29 14:13:43 +09:00
Dean Herbert
1944c255a7
Implement score interfaces
2021-10-29 13:49:30 +09:00
Dean Herbert
49b5de64be
Extract interface
2021-10-29 13:41:21 +09:00
Dean Herbert
34d4715220
Allow for long
online IDs and implement in ScoreInfo
2021-10-29 11:48:36 +09:00
Dean Herbert
617e6febb6
Refactor ModelDownloader
to allow for different OnlineID matching
2021-10-27 21:00:46 +09:00
Dean Herbert
9015ac6ba8
Implement new version of download tracker
2021-10-27 21:00:46 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
b3219bb592
Update usages of OnlineID
2021-10-18 16:16:36 +09:00
Dean Herbert
e9c3d09e0e
Remove redundant specs
2021-10-15 16:27:16 +09:00
Dean Herbert
6d6de5b677
Remove redundant tuple naming
2021-10-10 16:50:55 +09:00
smoogipoo
4475697a9c
Add score id key
2021-10-10 15:47:39 +09:00
smoogipoo
c49d0a5013
Rewrite query to be easier to understand
2021-10-10 15:43:24 +09:00
smoogipoo
b82ed3f167
Fix potential blocking operation on OrderByTotalScoreAsync()
...
In reality this wouldn't be a long process, but the blocking is really
noticeable if you add a Task.Delay(1000) in GetTotalScoreAsync().
2021-10-08 14:23:54 +09:00
Dan Balasescu
4bd1083388
Merge pull request #14903 from peppy/importer-returns-live
...
Add `ILive<T>` and use as return type of `Import` methods
2021-10-04 20:16:32 +09:00
Dean Herbert
853cf6feaa
Rename last remaining BeatmapInfo Beatmap
usage
2021-10-04 17:35:53 +09:00
Dean Herbert
63f0b0c932
Rename out of place interface name
2021-10-04 16:35:55 +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
5618c9933b
Expose more pieces of ArchiveModelManager
via interfaces
2021-09-30 16:44:39 +09:00
Dean Herbert
cf633973a9
Refactor exposed mod retrieval methods for better safety
2021-09-10 11:09:13 +09:00
Dean Herbert
2edb851008
Add ability to lookup mod from a type specification
2021-09-09 16:50:59 +09:00
Dean Herbert
3d8faea4b0
Simplify nesting of OrderByTotalScoreAsync
2021-09-07 18:52:25 +09:00
smoogipoo
df7480e68c
Fix bindable implementation being synchronous
2021-09-01 20:56:23 +09:00
smoogipoo
ab538dc3dd
Fix param not passed through
2021-09-01 20:30:26 +09:00
smoogipoo
88fc53200e
Refactor
2021-09-01 15:41:52 +09:00
smoogipoo
fee94236de
Fix update-thread pauses
2021-08-31 21:36:31 +09:00
smoogipoo
cfcf3d7507
Use synchronous total score retrieval for bindable
2021-08-31 20:43:50 +09:00
smoogipoo
d03950fb37
Move score calculation to ScoreManager
2021-08-30 19:33:09 +09:00
Salman Ahmed
3409bc6b27
Update mapper usages with LocalisableDescription
2021-07-31 01:47:14 +03:00
Lucas A
ff3d38de6f
Localise accuracy display.
2021-07-23 22:37:08 +02:00
Dean Herbert
e507faef29
Add deep cloning support to Score
/ScoreInfo
/Replay
2021-07-19 14:14:28 +09:00
Bartłomiej Dach
fb5d25405e
Replace calls to obsoleted GetOrDefault()
extension
2021-07-18 21:52:16 +02:00
Dean Herbert
ec71deec51
Remove some mentions of "lazer"
...
I am aware there are more throughout the codebase but intentionally left
the remaining mentioned for one reason or another. The intention here is
to mainly change user-facing versioning to change the positioning of the
"lazer" term (to be where we would expect "cuttingedge" or "beta" to
be).
2021-07-04 12:41:27 +09:00
Dean Herbert
e4ca6a4266
Serialise and send ruleset ID as part of score submission
2021-06-29 01:55:09 +09:00
Dean Herbert
d1f852d102
Make Populate
abstract to avoid unnecessary base call async complexity
2021-06-27 14:29:02 +09:00
smoogipoo
37babbde6a
Simplify score filter row
2021-06-16 19:09:11 +09:00
Dean Herbert
4ee7721c51
Extract first version out to constant
2021-06-08 18:38:47 +09:00
Dan Balasescu
d31e3e8f1c
Fix nullref
2021-06-08 18:23:03 +09:00
Dean Herbert
b287366c8b
Remove forgotten classic mod addition
2021-06-08 18:09:57 +09:00
Dean Herbert
061e3d7f26
Move legacy ScoreInfo
to be completely based on presence of classic mod
2021-06-08 18:00:09 +09:00
Dean Herbert
4d9fffc01b
Update score encoder version to be higher than any existing stable version
2021-06-08 17:59:43 +09:00
PercyDan54
e716162ac2
Fix formatting
2021-04-29 17:19:25 +08:00
PercyDan54
4fe1497f63
Add comment & remove lastF
2021-04-28 20:39:06 +08:00
PercyDan54
126056c436
Fix precision loss on exporting legacy replays
2021-04-28 19:27:18 +08:00
smoogipoo
213ac88a8b
Fix exported scores not being compatible with osu-stable
2021-04-26 20:52:20 +09:00
smoogipoo
6560dc2d1f
Fix exported replays being wrapped in zip packages
2021-04-26 20:46:44 +09:00
smoogipoo
8a6267580a
Fix nullref
2021-04-22 18:44:14 +09:00
Salman Ahmed
1a715b2926
Append "classic" mod to legacy scores
2021-04-21 09:16:28 +03:00
smoogipoo
e9a114a15c
Rename property back
2021-04-12 20:50:18 +09:00
smoogipoo
8413b0a5d3
Don't map api mods to DB
2021-04-12 20:49:44 +09:00
smoogipoo
625484468e
Fix DB serialisation
2021-04-12 20:49:37 +09:00
smoogipoo
982d8fa8b1
Fix incorrect reference
2021-04-12 20:49:26 +09:00
smoogipoo
d2d7f77430
Fix mods not being serialised correctly in ScoreInfo
2021-04-12 20:09:01 +09:00
Dean Herbert
630faa3b56
Add TODO marking incorrect EF core data type
...
As mentioned in the comment, we probably don't need to be storing this
in the database in the first place (as it should be able to be
calculated from the other statistics we have available to us). Something
to consider when we refactor the database backend.
2021-03-25 17:50:21 +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
smoogipoo
917717686a
Expand explanatory comment
2021-03-18 19:26:29 +09:00
smoogipoo
b68dc686ee
Fix converted mania scores not accounting for GREATs
2021-03-18 19:19:53 +09:00
Roman Kapustin
0a1e325fc7
Extract requerying of navigational properties from DbContext
2021-03-14 19:34:53 +03:00
Roman Kapustin
a60ff80c04
Use expression body in ModsJson get accessor
2021-03-12 00:02:29 +03:00
Roman Kapustin
d2f943395d
Hotfix importing scores from stable
2021-03-11 22:12:47 +03:00
Roman Kapustin
c6c616f244
Actualize tests
2021-03-11 21:02:40 +03:00
Dean Herbert
b1cd01ceb8
Apply ConfigureAwait changes to game side
2021-03-08 14:36:35 +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
Dean Herbert
5f23bd7259
Revert most of the changes to ArchiveModeManager by using better code
2021-02-12 12:48:32 +09:00
Lucas A
51d4da565c
Fix ArchiveModelManagers lookup paths.
2021-01-24 22:25:49 +01:00
Lucas A
d71ac83428
Use StableStorage in ArchiveModelManager.
2021-01-24 19:46:10 +01:00
Dean Herbert
9bb32f0914
Merge branch 'master' into move-cache-logic-to-base-impl
2020-11-06 16:56:35 +09:00
Dan Balasescu
972fc54c2d
Merge pull request #10710 from peppy/user-id-as-int
...
Use int instead of long for user_id fields for now
2020-11-06 14:35:14 +09:00
Dean Herbert
a2606d31c7
Move lookup/storage/compute logic to base class (and consume in ScorePerformanceCache)
2020-11-06 13:51:41 +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
14bb079feb
Rename ScorePerformanceManager to ScorePerformanceCache
2020-11-06 13:15:33 +09:00
Dean Herbert
5113d4af8f
Rename BeatmapDifficultyManager to BeatmapDifficultyCache
2020-11-06 13:14:29 +09:00
Dean Herbert
1e1569eb53
Use int instead of long for user_id fields for now
2020-11-06 12:59:46 +09:00
Dean Herbert
7b320a991f
Add note about missing expiration logic
2020-11-02 14:53:32 +09:00
Dean Herbert
d46f7535c9
Add xmldoc for new component
2020-11-02 14:50:44 +09:00
Lucas A
a96c067bea
Remove uncessary async-await state machine level.
2020-10-27 13:45:21 +01:00
Bartłomiej Dach
ba818e3ae0
Merge branch 'master' into results-dynamic-pp-calc
2020-10-19 21:41:07 +02:00
Dean Herbert
83482ca15c
Fix one more missed occurrence
2020-10-16 13:21:47 +09:00
Bartłomiej Dach
d4ba9d2682
Simplify implementation of CalculatePerformanceAsync
2020-10-12 22:10:02 +02:00
Lucas A
a0e6226b7a
Rename LocalId -> LocalScoreID
2020-10-10 19:19:24 +02:00
Lucas A
de522d53ea
Make CalculatePerformanceAsync() nullable.
2020-10-10 19:16:21 +02:00
Lucas A
6459ce28a3
Don't calculate performance if difficulty attributes aren't locally computable.
2020-10-09 18:32:03 +02:00
Lucas A
fa201be2ad
Simplify PerformanceCacheLookup
2020-10-08 18:31:29 +02:00
Lucas A
cd15f83f85
Update ScorePerformanceCalculator code path.
2020-10-07 14:10:25 +02:00
Lucas A
7f5cf04b2b
Fix merge conflicts.
2020-10-07 13:28:49 +02:00
Dean Herbert
6ac70945f2
Show bonus judgements on expanded panel
2020-10-07 16:17:28 +09:00
Dean Herbert
d6d0bd90a3
Extract tuple into class
2020-10-07 15:34:03 +09:00
Dean Herbert
50eca202f4
User IEnumerable for HandledExtensions
2020-10-02 16:17:10 +09:00
Dean Herbert
a1b8ced46d
Merge branch 'master' into fix-score-recalc
2020-10-01 17:00:20 +09:00
Lucas A
2766cf73b4
Reuse BeatmapDifficultyManager cache for beatmap difficulty attributes.
2020-09-29 18:32:02 +02:00
Lucas A
35f7de2084
Apply review suggestions.
2020-09-29 18:08:21 +02:00
smoogipoo
297168ecc4
Fix scores sometimes not being re-standardised correctly
2020-09-29 19:06:09 +09:00
smoogipoo
f439c1afbc
Make osu/taiko/catch use Ok+Great
2020-09-29 17:16:55 +09:00
smoogipoo
31fae045fa
Update judgement processors with new hit results
2020-09-29 16:33:38 +09:00
Lucas A
6efc4c4250
Cache performance calculations to prevent recomputations.
2020-09-28 19:04:39 +02:00
Lucas A
ddede85704
Split performance calculation to its own class.
2020-09-27 12:44:29 +02:00
smoogipoo
a07597c369
Adjust displays to use new results/orderings
2020-09-25 20:22:59 +09:00
smoogipoo
5cdc8d2e7b
Add cancellation support
2020-09-09 17:37:11 +09:00
smoogipoo
37a659b2af
Refactor/add xmldocs
2020-09-09 17:36:47 +09:00
smoogipoo
e271408fca
Move max score calculation inside ScoreProcessor
2020-09-09 16:51:53 +09:00
smoogipoo
117c7ec6b2
Merge branch 'master' into score-recalc
2020-09-09 14:38:36 +09:00
smoogipoo
ec2674e1ea
Fix nullref with null beatmap
2020-08-28 22:51:39 +09:00
smoogipoo
d7bbb362bf
Separate bindables
2020-08-28 22:51:19 +09:00
smoogipoo
8ffc4309fb
Fix possible NaN values
2020-08-28 22:23:44 +09:00
smoogipoo
39f8b5eb85
Use async difficulty calculation
2020-08-28 21:45:27 +09:00
smoogipoo
1e5e5cae0c
Add support for standardised -> classic changes
2020-08-28 21:34:34 +09:00
smoogipoo
4d15f0fe52
Implement basic score recalculation
2020-08-28 19:16:46 +09:00
Bartłomiej Dach
af59e2c179
Use extension methods instead of reading directly
2020-08-27 18:18:32 +02:00
Bartłomiej Dach
fc51e9d81a
Fix some legacy mania replays crashing on import
2020-08-27 18:16:20 +02:00
smoogipoo
b361761d86
Add position display in contracted score panels
2020-07-31 22:02:25 +09:00
smoogipoo
33fdd7466c
Merge branch 'master' into results-screen-statistics-overlapping-transition
2020-06-22 15:38:48 +09:00
smoogipoo
eab00ec9d9
Move hit events to the ScoreProcessor
2020-06-19 19:58:35 +09:00
smoogipoo
20db5b33ab
Rework score processor to provide more generic events
2020-06-18 22:11:03 +09:00
smoogipoo
900da88498
Populate hit offsets from score processor
2020-06-15 22:44:55 +09:00
Dean Herbert
90d69c1216
Allow legacy score to be constructed even if replay file is missing
2020-06-15 20:31:47 +09:00
Dean Herbert
c490dba7b3
Fix crash on local score display
2020-06-13 18:18:46 +09:00
smoogipoo
f3b5149648
Move some suggestions to warnings, resolve issues
2020-06-03 16:48:44 +09:00
smoogipoo
e91e4a73af
Fix catch crashing when finishing maps
2020-05-07 12:22:07 +09:00
smoogipoo
ae210d567d
Add temporary solution for tick hit/miss count
2020-04-16 18:16:08 +09:00
Dean Herbert
9602ab17b0
Fix replay imports failing for certain mod combinations
2020-03-31 17:13:42 +09:00
Dean Herbert
f75c082601
Fix osu!mania replays recording incorrectly when key mod applied
2020-03-27 15:50:11 +09:00
Dean Herbert
8a2aac5f83
Rename conversion methods for clarity
2020-03-25 20:21:34 +09:00
Dean Herbert
2feb66d423
Correctly handle missing positional data
2020-03-24 15:43:34 +09:00
Dean Herbert
02a3c7c025
Fix incorrect ruleset being recorded to file
2020-03-24 15:43:22 +09:00
Dean Herbert
022465f546
Add encoding and import support
2020-03-24 14:51:52 +09:00
Dean Herbert
546772192c
Add helper method to convert to legacy mods enums
2020-03-24 13:07:51 +09:00
Dean Herbert
e5f4d8686e
Rename decoder
2020-03-24 13:07:50 +09:00
TheWildTree
59cf2037d0
Introduce SortedStatistics
2020-02-07 21:11:58 +01:00
recapitalverb
a8ce50fadd
Add FormatUtils.FormatAccuracy and usages
2020-02-04 11:17:23 +07:00
recapitalverb
ddf9317bec
Replace :P2
with :0.00%
2020-02-04 08:25:01 +07:00
recapitalverb
257b4052e8
Add {ScoreInfo,UserStatistics}.Accuracy
2020-02-03 22:09:07 +07:00
Dean Herbert
d03723303d
Fix typo in comment
2020-01-30 16:29:15 +09:00
Dean Herbert
7b4a658264
Fix negative replay frames being played back incorrectly
2020-01-30 14:54:57 +09:00
Dean Herbert
b1533ae2a9
Fix score serialisation failing for unknown mod properties
2019-12-19 14:58:56 +09:00
Dean Herbert
886db8eb22
Merge branch 'master' into fix-local-score-availability
2019-12-18 01:15:20 +09:00
smoogipoo
946a202ee5
Fix online replays not being available locally
2019-12-17 15:47:08 +09:00
Huo Yaoyuan
caf3f774ba
CA1309: compare strings correctly.
2019-12-17 13:00:15 +08:00
Dean Herbert
ca1f3417a3
Merge pull request #7046 from smoogipoo/fix-replay-button
...
Fix replay download button not working
2019-12-04 23:00:40 +09:00
Dean Herbert
1ce6a5ceb3
Rename class
2019-12-03 15:38:57 +09:00
Dean Herbert
f0d49d0cdf
Decouple APILegacyScoreInfo from ScoreInfo
2019-12-03 15:31:11 +09:00
smoogipoo
aadbbb1af3
Fix replay download button not working
2019-12-03 13:33:42 +09:00
smoogipoo
6288e6da56
Add null check
2019-11-20 13:42:54 +09:00
smoogipoo
76ed573c56
Fix crash when loading results after gameplay
2019-11-20 12:21:49 +09:00
smoogipoo
c89c092b98
Allow undeleting scores if their beatmap exists
2019-09-20 19:55:59 +09:00
smoogipoo
dfc0928ebe
Fix scores importing with deleted beatmap sets
2019-09-20 19:39:21 +09:00
Dean Herbert
624e5644a4
Change osu!catch key trigger to occur on frame before positional change
2019-09-13 23:06:35 +09:00
Dean Herbert
acdfeef1dc
Improve how osu!catch stores and replays key actions
2019-09-12 18:33:46 +09:00
Dean Herbert
f925e781a9
Refactor HitWindows for legibility
2019-09-06 15:24:14 +09:00
Dean Herbert
ac01e9fbeb
Fix legacy scores with no online ID being imported with a non-null ID
2019-07-29 18:36:07 +09:00
Dean Herbert
598b0d668b
Merge branch 'master' into import-stable-scores
2019-07-05 15:54:33 +09:00
Dean Herbert
87c8fd0035
Fix path specification not being cross-platform compliant
2019-07-05 14:15:29 +09:00
Dean Herbert
ba8df3ba92
Clean up stable lookup and mutate logic
2019-07-05 13:59:31 +09:00
iiSaLMaN
bff5ad22f4
Check if the locally available score has files
2019-07-05 05:16:40 +03:00
Dean Herbert
7575047db8
Merge branch 'master' into import-stable-scores
2019-07-04 01:00:42 +09:00
naoey
bc52f76556
Move replay button to score card
2019-06-29 10:55:30 +05:30
naoey
53d6d74537
Update to match upstream changes
2019-06-28 09:33:13 +05:30
naoey
ab0bb8b678
Implement replay downloading with ArchiveDownloadModelManager
2019-06-28 09:33:13 +05:30
HoLLy
802da225d4
Move responsibility for selecting paths to model managers
2019-06-21 17:32:47 +02:00
HoLLy
c1c19243cd
Change FirstOrDefault back to First
2019-06-19 20:40:30 +02:00
HoLLy
8d62ce8967
Remove now unneeded check against file extension
2019-06-19 20:38:43 +02:00
HoLLy
15c75b4442
Add basic score import from stable
2019-06-19 18:33:51 +02:00
Arphox
07e17518e9
Fix all "Maintainability" CodeFactor issues
2019-06-11 10:28:16 +02:00
iiSaLMaN
a2b9dba92c
Remove ScoreRank.F
2019-06-08 19:35:29 +03:00
iiSaLMaN
383b937a7e
Rename F grade to D
2019-06-08 19:10:00 +03:00
Dean Herbert
24e64c1333
Add proper co-dependent beatmap/score deletion via events
2019-05-09 15:15:28 +09:00
Dan Balasescu
288b3deb94
Merge branch 'master' into fix-rank-display
2019-05-07 15:00:51 +09:00
smoogipoo
d7c09e7dbd
Merge remote-tracking branch 'origin/master' into fix-new-inspections
...
# Conflicts:
# osu.Game.Rulesets.Catch/Judgements/CatchDropletJudgement.cs
# osu.Game.Rulesets.Catch/Judgements/CatchJudgement.cs
# osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
# osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
# osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
# osu.Game.Tests/Visual/SongSelect/TestCaseBeatmapScoresContainer.cs
# osu.Game/Graphics/OsuFont.cs
# osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
# osu.Game/Overlays/Profile/Header/BadgeContainer.cs
# osu.Game/Overlays/Profile/ProfileHeader.cs
# osu.Game/Screens/Select/PlaySongSelect.cs
# osu.Game/Skinning/LegacySkinDecoder.cs
2019-05-07 13:20:17 +09:00
Dean Herbert
6bdaca1e3b
Fix mod equality checks not working as intended
2019-05-03 10:09:47 +09:00
Dean Herbert
30d4dd9355
Change + rank strings to be cleaner for the end-user
2019-04-21 21:38:12 +09:00
Dean Herbert
2060bad3bc
Try applying minimal inspection fixes for latest Rider EAP
2019-04-01 13:28:14 +09:00
Dean Herbert
c39c37a18d
Apply more missed cases
2019-04-01 12:44:46 +09:00
Dean Herbert
7d6a08d6da
Fix a few new inspections in latest Rider EAP
2019-04-01 11:39:02 +09:00
smoogipoo
fb0bba9b37
Use Parsing helpers
2019-04-01 11:23:07 +09:00
smoogipoo
f453675838
Fix replays being parsed with incorrect cultures
2019-04-01 10:31:20 +09:00
smoogipoo
0066459968
Don't convert 100s/50s for catch
2019-03-28 12:55:56 +09:00
smoogipoo
977122d05f
Fix ScoreInfo not getting set
2019-03-27 16:59:29 +09:00
smoogipoo
8fcb75809d
Add LegacyScoreInfo for statistics preservation/conversion
2019-03-27 16:55:46 +09:00
smoogipoo
a5d5f469eb
Populate more hit results for catch
2019-03-27 14:52:56 +09:00
Dan Balasescu
fd147dae21
Merge branch 'master' into fix-disabled-set-crash
2019-03-05 17:25:13 +09:00
Dean Herbert
1871e8bb2c
Merge branch 'master' into master
2019-03-01 21:22:34 +09:00
Dean Herbert
6bccdd50ef
Merge branch 'master' into UserIDDBStore
2019-03-01 11:07:30 +09:00
Dean Herbert
d4041d5d42
Automate includes of files in ArchiveModelManager use cases
2019-03-01 10:25:21 +09:00
David Zhao
9f9b2b1902
Remove redundant setters
2019-02-28 17:13:25 +09:00
Dean Herbert
26d53d06a9
Fix remaining issues
2019-02-28 13:31:40 +09:00
Dean Herbert
c8793911a8
Enable more stringent inspectcode style inspections
2019-02-27 21:25:40 +09:00
Dean Herbert
56697339b3
Merge branch 'master' into fix-disabled-set-crash
2019-02-27 11:14:42 +09:00