Bartłomiej Dach
3a2ed3677b
Fix standardised score conversion failing for scores set with 0.0x mod mutliplier
...
Closes https://github.com/ppy/osu/issues/26073 .
2023-12-23 13:28:39 +01:00
Bartłomiej Dach
fbf19ea598
Merge branch 'master' into add-score-version
2023-12-21 13:06:53 +01:00
Bartłomiej Dach
2baf579f7c
Serialise and deserialise ClientVersion
to replays
2023-12-21 12:58:08 +01:00
Dan Balasescu
c3c1752a5a
Reconvert all legacy scores
2023-12-21 15:32:34 +09:00
Bartłomiej Dach
9515f7dbfa
Bump score version in order to recompute legacy scores
2023-12-20 16:01:59 +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
ca37e1afc2
Merge branch 'master' into scorev3
2023-11-24 10:37:10 +09:00
Bartłomiej Dach
e28e0ef1cc
Fix classic scoring overflowing in osu! ruleset due to integer multiplication overflow
...
Closes https://github.com/ppy/osu/issues/25545 .
2023-11-23 08:16:25 +09:00
Zyf
cadd9b4ace
Merge remote-tracking branch 'upstream/master' into scorev3
2023-11-19 23:53:05 +01:00
Bartłomiej Dach
c53f4c144c
Encode/decode new OnlineID
into/from LegacyReplaySoloScoreInfo
2023-10-16 11:20:02 +02:00
Bartłomiej Dach
fa519984df
Move legacy online ID encode/decode to legacy property
2023-10-16 11:20:02 +02:00
Dan Balasescu
b9ab4a2b7c
Update score conversion to consider legacy multiplier
2023-10-02 16:56:15 +09:00
Dean Herbert
d5472d3524
Merge pull request #24957 from bdach/solo-score-info-get-display-score
...
Add `GetDisplayScore()` extension for `SoloScoreInfo`
2023-09-29 13:09:16 +09:00
Bartłomiej Dach
fc4390884f
Add GetDisplayScore()
extension for SoloScoreInfo
...
To be used server-side for ppy/osu-queue-score-statistics#134 .
2023-09-28 12:43:05 +02:00
Bartłomiej Dach
57c00e728b
Update classic scoring algorithm to closer match stable score V1
2023-09-25 19:16:18 +02:00
Dean Herbert
5dee43815c
Bump version to allow migration to re-run
2023-08-22 16:13:01 +09:00
Dean Herbert
eb81eac635
Flag decoded scores more correctly
2023-07-15 12:19:18 +09:00
Dean Herbert
9ff6b3fcd3
Merge branch 'master' into editor-save-local-score-management
2023-07-06 12:28:44 +09:00
Dean Herbert
a0c3fa9c13
Move preconditions to realm migration step to simplify marker version logic
2023-07-04 17:53:53 +09:00
Dean Herbert
d74b1e148d
Make ScoreInfo.BeatmapInfo
nullable
2023-07-04 14:50:34 +09:00
Dan Balasescu
6822871dab
Move population of LegacyTotalScore to ScoreImporter
2023-06-29 17:21:24 +09:00
Dan Balasescu
1ca4e39fc3
Allow legacy scores to be displayed in "classic" scoring mode
2023-06-28 16:30:50 +09:00
Dan Balasescu
09bc8e45de
Refactoring
2023-06-28 16:14:32 +09:00
Dan Balasescu
e291dff5ad
Fix imported scores not getting LegacyTotalScore
2023-06-28 14:50:16 +09:00
Dan Balasescu
8e79510793
Add migration for total score conversion
2023-06-26 21:53:21 +09:00
Bartłomiej Dach
66ef199fa4
Revert nullability enable in Score
(and related changes)
...
Causes several knock-on inspections in `OsuGame` et al. Probably best
addressed in a separate pass, because treatment is mixed at best (some
places nullcheck, some expect non-null).
2023-06-24 15:35:07 +02:00
Dean Herbert
df5b389629
Manual fixes to reduce warnings to zero
2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Bartłomiej Dach
52412c673d
Bump replay version in encoder after Score V2 changes
...
One release too late, but this may help in the future if we need to
discern replays set with Score V2 from older lazer replays.
2023-06-09 14:49:49 +02:00
Dan Balasescu
76df11c398
Don't scale stable scores with the classic scoring mode
2023-06-08 21:38:10 +09:00
Dan Balasescu
facf7de053
Parse ScoreInfo.IsLegacyScore from replays
2023-06-08 21:38:10 +09:00
Dean Herbert
4e0f40bee5
Split out multiplier retrieval into a function and use a default multiplier for all rulesets
2023-05-30 14:20:26 +09:00
Dan Balasescu
510b8e4c78
Remove ScoreManager.Mode, handle per-use
2023-05-18 20:08:49 +09:00
Cootz
54f864463c
Merge branch 'master' into BitmapUpdatesOnScore
2023-03-16 13:54:47 +03:00
Dean Herbert
cb9b14b30f
Revert "Merge pull request #22741 from cdwcgt/do-not-fetch-deletePending"
...
This reverts commit 15c44a2817
, reversing
changes made to de2ab05e78
.
2023-03-16 19:48:36 +09:00
Cootz
556964eae0
Merge branch 'master' into BitmapUpdatesOnScore
2023-03-16 12:16:42 +03:00
cdwcgt
a705698ab6
beatmapset that already deletePending should not be fetched
2023-02-26 21:13:05 +09:00
PC
7e127dafe2
Update reference
2023-02-07 11:52:47 +03:00
Cootz
b00848e742
Fix realm error. Apply OriginalBeatmapHash
on import
2023-02-06 13:58:41 +03:00
Salman Ahmed
e6479b73de
Remove one more unused using directive
2023-01-09 23:43:35 +03:00
Salman Ahmed
f216d7264b
Improve missing beatmap failure logging on score import
2023-01-09 23:06:59 +03:00
Dan Balasescu
fb85eaee95
Add description for lazer score version 30000001
2022-12-14 18:30:33 +09:00
Dan Balasescu
ad7554cc7d
Allow keeping stream open after encoding scores
2022-12-13 16:15:14 +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
7c0e99c5a8
Decode Geki/Katu from legacy taiko scores into LargeBonus
2022-09-07 00:12:34 +09: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