mirror of
https://github.com/ppy/osu.git
synced 2025-01-22 15:03:21 +08:00
Refactor usage of object counts for mania key count lookup to be a bit safer
Protects against non-initialised values and also div-by-zero.
This commit is contained in:
parent
f09c6b8c1b
commit
372f930f8b
@ -59,11 +59,13 @@ namespace osu.Game.Rulesets.Mania.Beatmaps
|
|||||||
{
|
{
|
||||||
double roundedCircleSize = Math.Round(difficulty.CircleSize);
|
double roundedCircleSize = Math.Round(difficulty.CircleSize);
|
||||||
|
|
||||||
if (new ManiaRuleset().RulesetInfo.Equals(difficulty.SourceRuleset))
|
if (difficulty.SourceRuleset.ShortName == ManiaRuleset.SHORT_NAME)
|
||||||
return (int)Math.Max(1, roundedCircleSize);
|
return (int)Math.Max(1, roundedCircleSize);
|
||||||
|
|
||||||
double roundedOverallDifficulty = Math.Round(difficulty.OverallDifficulty);
|
double roundedOverallDifficulty = Math.Round(difficulty.OverallDifficulty);
|
||||||
|
|
||||||
|
if (difficulty.TotalObjectCount > 0 && difficulty.EndTimeObjectCount >= 0)
|
||||||
|
{
|
||||||
int countSliderOrSpinner = difficulty.EndTimeObjectCount;
|
int countSliderOrSpinner = difficulty.EndTimeObjectCount;
|
||||||
|
|
||||||
// In osu!stable, this division appears as if it happens on floats, but due to release-mode
|
// In osu!stable, this division appears as if it happens on floats, but due to release-mode
|
||||||
@ -76,6 +78,7 @@ namespace osu.Game.Rulesets.Mania.Beatmaps
|
|||||||
return roundedOverallDifficulty > 5 ? 7 : 6;
|
return roundedOverallDifficulty > 5 ? 7 : 6;
|
||||||
if (percentSpecialObjects > 0.6)
|
if (percentSpecialObjects > 0.6)
|
||||||
return roundedOverallDifficulty > 4 ? 5 : 4;
|
return roundedOverallDifficulty > 4 ? 5 : 4;
|
||||||
|
}
|
||||||
|
|
||||||
return Math.Max(4, Math.Min((int)roundedOverallDifficulty + 1, 7));
|
return Math.Max(4, Math.Min((int)roundedOverallDifficulty + 1, 7));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user