Bartłomiej Dach
007ea51e20
Add extra safety against returning negative total score in conversion operation
2023-12-23 13:07:29 +01:00
Bartłomiej Dach
fbf19ea598
Merge branch 'master' into add-score-version
2023-12-21 13:06:53 +01:00
Dean Herbert
a4baa0a716
Add versioning of local scores
...
For any potential future usage
2023-12-21 18:37:15 +09:00
Dan Balasescu
eb072a1d24
Add accuracy conversion, fix usages
2023-12-21 15:09:56 +09:00
Dan Balasescu
6b4b2a57fc
Expose only as one method
2023-12-21 14:58:23 +09:00
Dan Balasescu
4e3b994142
Relocate HitResult numeric score to ScoreProcessor
2023-12-21 14:52:31 +09:00
Bartłomiej Dach
8c06d3873d
Merge branch 'master' into mania-scorev2-values
2023-12-20 15:54:31 +01:00
Dan Balasescu
38d6b7f45b
Update total score conversion
2023-12-20 20:03:13 +09:00
Dan Balasescu
72274041eb
Merge pull request #25876 from bdach/fix-standardised-score-conversion
...
Fix osu! standardised score conversion sometimes exceeding bounds
2023-12-20 18:54:33 +09:00
Bartłomiej Dach
3f41c20ac6
Use safer fix for now
2023-12-19 17:25:15 +01:00
Dean Herbert
f09c6b8c1b
Change default values of new object counts to -1
to identify non-processed values
2023-12-19 18:20:02 +09:00
Bartłomiej Dach
ddb67c87a8
Roll back incorrect change in ShouldMigrateToNewStandardised()
2023-12-19 08:13:02 +01:00
Bartłomiej Dach
9c8df4e6d1
Run score conversion for previously-imported scores
2023-12-18 22:27:51 +01:00
Bartłomiej Dach
017003deea
Fix osu! standardised score conversion sometimes exceeding bounds
...
Co-authored-by: Zyf <zyfarok@gmail.com>
Closes https://github.com/ppy/osu/issues/25860
Users reported that some stable scores would convert to large negative
total scores in lazer after the introduction of combo exponent. Those
large negative total scores were actually mangled NaNs.
The root cause of this was the following calculation going below zero
unexpectedly:
8e8d9b2cd9/osu.Game/Database/StandardisedScoreMigrationTools.cs (L323)
which then propagates negative numbers onward until
8e8d9b2cd9/osu.Game/Database/StandardisedScoreMigrationTools.cs (L337)
which yields a NaN due to attempting to take the square root of a
negative number.
To fix, clamp `comboPortionInScoreV1` to sane limits: to
`comboPortionFromLongestComboInScoreV1` from below, and to
`maximumAchievableComboPortionInScoreV1` from above. This is a less
direct fix than perhaps imagined, but it seems like a better one as it
will also affect the calculation of both the lower and the upper
estimate of the score.
2023-12-18 22:05:19 +01:00
Bartłomiej Dach
b384c9f938
Extract common method for determining stable import usability of directory
2023-12-15 15:42:19 +01:00
Dan Balasescu
812f52e793
Bump version number
2023-12-13 17:38:59 +09:00
Dan Balasescu
6ed5613c22
Merge branch 'master' into mania-convert-song-select-keycount
2023-12-13 13:53:50 +09:00
Dan Balasescu
767d5c8018
Add object counts to IBeatmapDifficultyInfo
2023-12-09 22:31:51 +09:00
Zyf
71e5654b64
Account for legacyAccScore in score conversion
2023-11-24 23:07:27 +01:00
Zyf
27f9dfccc4
Fix scoring-conversion when miss-count is 0
2023-11-24 22:05:24 +01:00
Bartłomiej Dach
ca37e1afc2
Merge branch 'master' into scorev3
2023-11-24 10:37:10 +09:00
Bartłomiej Dach
7590bae445
Rename and comment everything in score migration code
...
Hopefully, _hopefully_, makes all this a little bit less inscrutable.
2023-11-24 10:34:13 +09:00
Clément Burgelin (Zyfarok)
901e45b6a4
Scoring conversion: remove mention of v3 + improve comments
2023-11-21 14:26:07 +01:00
Clément Burgelin (Zyf)
16acec335f
Fix: update score migration of special case to match the new score
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-11-21 11:27:03 +01:00
Bartłomiej Dach
6d7d826b8b
Fix incorrect legacy conversion when B-splines are used
2023-11-20 15:08:58 +09:00
Clément Burgelin (Zyfarok)
1f88658bad
Fix syntax
2023-11-20 03:05:46 +01:00
Zyf
432b88674b
Scoring : change formula parameters to match survey results
2023-11-20 00:02:58 +01:00
Zyf
cadd9b4ace
Merge remote-tracking branch 'upstream/master' into scorev3
2023-11-19 23:53:05 +01:00
Thomas Müller-Höhne
926636cc03
Generalize Bezier curves to BSplines of Nth degree
2023-11-11 13:32:53 +01:00
Dean Herbert
5a9d4170e8
Merge pull request #24794 from bdach/score-encoding-cleanup
...
Correctly handle multiple online score ID types
2023-10-28 02:29:56 +09:00
Bartłomiej Dach
5ad962070c
Fix skin editor freezing game if opened during active gameplay
2023-10-27 14:34:30 +02:00
Bartłomiej Dach
526ee6e140
Remove IScoreInfo : IHasNamedFiles
inheritance
2023-10-26 14:58:33 +02:00
Bartłomiej Dach
ca4b09f8ef
Merge branch 'master' into score-encoding-cleanup
2023-10-26 09:04:05 +02:00
Bartłomiej Dach
4cfc95c673
Add backwards migration of catch dash binding
2023-10-17 09:43:40 +02:00
Bartłomiej Dach
9c6166ec3d
Add migration to remove duplicate bindings
2023-10-16 22:20:26 +02:00
Bartłomiej Dach
c1a817fec6
Add LegacyOnlineID
with backwards migration
2023-10-16 11:20:02 +02:00
Dan Balasescu
a120ea8464
Merge branch 'master' into fix-legacy-score-multipliers-2
2023-10-04 01:19:33 +09:00
Dean Herbert
b234a453da
Fix legacy beatmap importer not always handling nested paths correctly
...
Addresses https://github.com/ppy/osu/discussions/24989 .
2023-10-03 16:01:17 +09:00
Dan Balasescu
b9ab4a2b7c
Update score conversion to consider legacy multiplier
2023-10-02 16:56:15 +09:00
Bartłomiej Dach
0769d0f49f
Merge branch 'master' into fix-batch-import-score-missing-notifications
2023-09-27 17:06:47 +02:00
Bartłomiej Dach
934ac1b640
Merge branch 'master' into better-erroring-score-import-fail
2023-09-27 14:34:14 +02:00
Dean Herbert
2481c0b64b
Don't show replay import "missing beatmap" notifications during stable import
...
Closes https://github.com/ppy/osu/issues/24926 .
2023-09-27 17:04:43 +09:00
Dean Herbert
0dcf7a2fa9
Merge branch 'master' into split-legacy-scoring-attribs
2023-09-26 15:52:27 +09:00
Dean Herbert
d1d82d2b49
Improve notification display when score import fails
2023-09-26 15:00:56 +09:00
Bartłomiej Dach
ed9039f60f
Fix notification text sets overwriting each other
2023-09-19 11:12:58 +02:00
Dean Herbert
f726c38215
Pass ArchiveReader
instead of Stream
to simplify resolution code
2023-09-19 17:49:15 +09:00
Dean Herbert
7f30354e61
Adjust sizing slightly to remove need for CollapsibleButtonContainerSlim
2023-09-19 17:20:58 +09:00
Dean Herbert
0555d22eb8
Add comment mentioning why hover is disabled on the notification type
2023-09-19 16:35:22 +09:00
Bartłomiej Dach
25e43bd7d7
Auto-close notification after successful download
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
4cdd19bb5a
Use different copy when auto-downloading
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
3bddf4bf9a
Rename spectator-specific settings to more generic (with backwards migration)
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
27471ad170
Make missing beatmap notification simple
...
Progress didn't work for several reasons:
- It was spinning when nothing was actually happening yet
(especially egregious with autodownload off)
- It was blocking exits (as all progress notifications do)
- When actually going to download, two progress notifications would
pertain to one thing
- It wasn't helping much with the actual implementation of score
re-import, cancelling the progress notification would result in
similarly jank UX of beatmap importing but not the score.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
b2c98da330
Reword and localise copy
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
2709c6cd67
Integrate nano beatmap card into the notification
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
06d1a2a316
Merge branch 'beatmap-card-nano' into missing-beatmap
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
c8b18acd4d
Bring back disposal of stream after copy-out to MemoryStream
...
Was there in previous code and got removed in the refactor. I'd rather
have it than not.
2023-09-14 19:36:35 +02:00
Dean Herbert
57f32b177d
Fix incorrect handling of non-MemoryStream
pathway
2023-09-14 22:19:18 +09:00
Dean Herbert
364094fcf2
Inline all archive reader pathing
2023-09-14 13:38:23 +09:00
Dean Herbert
541cd972e1
Rename ArchiveReader
implementations to read better
2023-09-14 13:36:07 +09:00
Dean Herbert
0657b55196
Avoid MemoryStream.ToArray
overhead in LegacyByteArrayReader
2023-09-14 13:33:25 +09:00
Dean Herbert
b5902a8736
Avoid MemoryStream
overhead for incoming non-MemoryStream
in ImportTask
2023-09-14 13:29:29 +09:00
Dan Balasescu
4198e025fa
Fix overflow
2023-09-08 00:27:01 +09:00
Dan Balasescu
2334be1987
Split legacy scoring attributes into a separate object
2023-09-07 21:10:38 +09:00
cdwcgt
fd1fce486a
ensure dispose realmSubscription
2023-09-05 00:21:08 +09:00
cdwcgt
87aa191c12
use realm Subscription instead of Beatmap Download Tracker
2023-09-04 17:53:31 +09:00
cdwcgt
f68a12003a
check beatmap hash before try to import
2023-09-04 17:37:31 +09:00
cdwcgt
164f61f590
clean up
2023-09-04 17:14:04 +09:00
cdwcgt
58844092d6
post a notification instead a screen
2023-09-04 16:17:21 +09:00
Dean Herbert
5ddb10281b
Move combo exponent to shared constant
2023-08-24 14:55:44 +09:00
Dean Herbert
5dee43815c
Bump version to allow migration to re-run
2023-08-22 16:13:01 +09:00
Dean Herbert
4e9e084b2c
Merge branch 'master' into scorev3
2023-08-22 15:52:22 +09:00
Bartłomiej Dach
273dcf9150
Also update the reference to added flag in schema change breakdown
2023-08-21 17:44:35 +02:00
Bartłomiej Dach
8533cba0bf
Fix mismatching schema version in comment
2023-08-21 17:27:05 +02:00
Dean Herbert
db893f3dc7
Merge branch 'master' into fix-score-import-fail-fail-fail
2023-08-21 19:34:12 +09:00
Bartłomiej Dach
de9a4448fc
Merge branch 'master' into fix-export-slider
2023-08-21 07:28:16 +02:00
Bartłomiej Dach
a942b6ff74
Replace inline comment with actual explanation of what's happening
2023-08-21 07:27:02 +02:00
OliBomby
8686b6b1e6
fix The last slider point has effect on previous inherited
2023-08-16 16:44:08 +02:00
Bartłomiej Dach
4f47b196c1
Merge branch 'master' into fix-unsafe-realm-access
2023-08-16 09:59:17 +02:00
Bartłomiej Dach
d70a9a5bc4
Fill out xmldoc and adjust inline commentary
2023-08-16 09:40:46 +02:00
Dean Herbert
caf0fd0742
Refactor migration to read the same as previous one
2023-08-16 16:21:42 +09:00
Dean Herbert
68db112882
Re-date migration
2023-08-16 16:20:17 +09:00
Dean Herbert
6e11162ab1
Add helper method for safer realm Find<T>
2023-08-16 15:37:09 +09:00
Bartłomiej Dach
88295a49aa
Fix invalid reference in xmldoc
2023-08-16 07:38:31 +02:00
Bartłomiej Dach
6c4c76350f
Remove unused using directive
2023-08-16 07:36:56 +02:00
Dean Herbert
531794b26b
Fix ModelManager
not correctly re-retrieving realm objects before performing operations
...
Falls into the age-old trap of attempting to retrieve an item from realm
without first ensuring that realm is in an up-to-date state.
Consider this scenario:
- Editor is entered from main menu, causing it to create a new beatmap
from its async `load()` method.
- Editor opens correctly, then main thread performs a file operations on
the same beatmap.
- Main thread is potentially not refreshed yet, and will result in `null`
instance when performing the re-fetch in `performFileOperation`.
I've fixed this by using the safe implementation inside `RealmLive<T>`.
Feels like we want this is one place which is always used as the correct
method.
On a quick search, there are 10-20 other usages of `Realm.Find<T>` which
could also have similar issues, but it'll be a bit of a pain to go
through and fix each of these. In 99.9% of cases, the accesses are on
instances which couldn't have just been created (or the usage of
recently-imported/created is blocked by realm subscription flows, ie.
baetmap import) so I'm not touching them for now.
Something to keep in mind when working with realm going forward though.
2023-08-16 14:23:32 +09:00
Dean Herbert
502844a858
Add ability to construct RealmLive
from ID
2023-08-16 14:23:01 +09:00
QuantumSno
a0543d97bd
Merge branch 'master' into leaderboard-toggle
2023-08-12 11:21:02 -04:00
Bartłomiej Dach
253392409e
Fix LegacyBeatmapExporter
not converting beatmap between decode and re-encode
2023-08-12 00:50:31 +02:00
Bartłomiej Dach
2b738edb93
Reword / fix comments
2023-08-10 22:55:02 +02:00
QuantumSno
71c42167e7
Updated wording on realm comments
2023-08-10 10:17:12 -04:00
QuantumSno
5443f89dca
Assuming its still set to tab, removes binding for toggle chat so itll be set to the new default
2023-08-01 16:58:52 -04:00
QuantumSno
426bc52fd5
Updated schema_version number and added braces around some migration cases to help with re-using variable names
2023-08-01 14:27:37 -04:00
Dean Herbert
30baac0f3d
Avoid reprocessing scores which already failed an upgrade previously
...
Closes https://github.com/ppy/osu/issues/24301 .
2023-07-26 16:22:10 +09:00
OliBomby
e7a9175aea
fix skin using wrong stream
2023-07-18 13:08:05 +02:00
OliBomby
63dd8bd991
use base.GetFileContents to get file stream
2023-07-18 12:40:48 +02:00
OliBomby
bcdf531039
truncate end time before start time
2023-07-18 12:28:35 +02:00
OliBomby
5d82190b70
Merge remote-tracking branch 'upstream/master' into legacy-export
2023-07-18 12:18:49 +02:00
OliBomby
c02684d985
truncate hit object end time
2023-07-18 12:18:43 +02:00
Zyf
b672b49e02
Scoring : Implement v1 to v3 conversion.
2023-07-15 23:20:49 +02:00
Dean Herbert
480259b8d2
Ensure migration is never run on scores with new-enough TotalScoreVersion
s
2023-07-14 20:02:25 +09:00