fix: consider passed_objects in mania

This commit is contained in:
MaxOhn
2023-12-30 09:27:26 +01:00
parent 876abf8043
commit f9bf256aa2
+12 -6
View File
@@ -227,16 +227,22 @@ impl<'map> ManiaPP<'map> {
/// Create the [`ManiaScoreState`] that will be used for performance calculation. /// Create the [`ManiaScoreState`] that will be used for performance calculation.
pub fn generate_state(&mut self) -> ManiaScoreState { pub fn generate_state(&mut self) -> ManiaScoreState {
let attrs = match self.map_or_attrs { let n_objects = match self.passed_objects {
MapOrElse::Map(ref map) => { Some(passed) => passed,
let attrs = self.generate_attributes(map); None => {
let attrs = match self.map_or_attrs {
MapOrElse::Map(ref map) => {
let attrs = self.generate_attributes(map);
self.map_or_attrs.else_or_insert(attrs) self.map_or_attrs.else_or_insert(attrs)
}
MapOrElse::Else(ref attrs) => attrs,
};
attrs.n_objects
} }
MapOrElse::Else(ref attrs) => attrs,
}; };
let n_objects = attrs.n_objects();
let priority = self.hitresult_priority.unwrap_or_default(); let priority = self.hitresult_priority.unwrap_or_default();
let n_misses = self.n_misses.map_or(0, |n| n.min(n_objects)); let n_misses = self.n_misses.map_or(0, |n| n.min(n_objects));