1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-13 08:32:57 +08:00
osu-lazer/osu.Game/Scoring
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
..
Drawables Partial everything 2022-11-27 00:00:27 +09:00
Legacy Fix osu! standardised score conversion sometimes exceeding bounds 2023-12-18 22:05:19 +01:00
HitResultDisplayStatistic.cs Automated pass 2023-06-24 01:00:03 +09:00
IScoreInfo.cs Delete ScoreInfo.HasReplay as no longer needed 2023-10-27 12:39:54 +02:00
LegacyDatabasedScore.cs Fix crash when attempting to watch a replay when the storage file doesn't exist 2022-08-30 18:18:46 +09:00
RankingTier.cs Add tiered level badge colouring 2023-01-18 16:25:11 +03:00
Score.cs Revert nullability enable in Score (and related changes) 2023-06-24 15:35:07 +02:00
ScoreImporter.cs Move operation to after user population 2023-10-30 15:46:09 +09:00
ScoreInfo.cs Fix results screen not including slider end misses in tick count 2023-11-29 21:28:25 +09:00
ScoreInfoExtensions.cs Make ScoreInfo.BeatmapInfo nullable 2023-07-04 14:50:34 +09:00
ScoreManager.cs Add LegacyOnlineID handling to places that definitely need it 2023-10-16 11:20:02 +02:00
ScoreModelDownloader.cs Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
ScorePerformanceCache.cs Make ScoreInfo.BeatmapInfo nullable 2023-07-04 14:50:34 +09:00
ScoreRank.cs Automated pass 2023-06-24 01:00:03 +09:00