fix: prevent underflow on fails due to sliders

This commit is contained in:
MaxOhn
2023-05-05 10:42:54 +02:00
parent bd9623d32b
commit 0c0ad34827
2 changed files with 5 additions and 1 deletions
+3
View File
@@ -6,6 +6,9 @@
- __Adjustments:__
- Specified clock rates can go below 0.001 again
- __Fixes:__
- Fixed underflow for osu!std scores that were FCs but quit mid-slider
# v0.9.4 (2023-02-09)
- __Additions:__
+2 -1
View File
@@ -500,7 +500,8 @@ impl OsuPpInner {
if self.attrs.n_sliders > 0 {
let estimate_slider_ends_dropped =
((self.state.n100 + self.state.n50 + self.state.n_misses)
.min(self.attrs.max_combo - self.state.max_combo) as f64)
.min(self.attrs.max_combo.saturating_sub(self.state.max_combo))
as f64)
.clamp(0.0, estimate_diff_sliders);
let slider_nerf_factor = (1.0 - self.attrs.slider_factor)
* (1.0 - estimate_slider_ends_dropped / estimate_diff_sliders).powi(3)