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.
pub fn generate_state(&mut self) -> ManiaScoreState {
let attrs = match self.map_or_attrs {
MapOrElse::Map(ref map) => {
let attrs = self.generate_attributes(map);
let n_objects = match self.passed_objects {
Some(passed) => passed,
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 n_misses = self.n_misses.map_or(0, |n| n.min(n_objects));