fixed object count in map attributes of converted maps
This commit is contained in:
+8
-2
@@ -1,3 +1,5 @@
|
|||||||
|
use std::borrow::Cow;
|
||||||
|
|
||||||
use pyo3::{
|
use pyo3::{
|
||||||
exceptions::{PyTypeError, PyValueError},
|
exceptions::{PyTypeError, PyValueError},
|
||||||
pyclass, pymethods,
|
pyclass, pymethods,
|
||||||
@@ -192,7 +194,11 @@ impl PyCalculator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn map_attributes(&self, map: &PyBeatmap) -> PyResult<PyBeatmapAttributes> {
|
fn map_attributes(&self, map: &PyBeatmap) -> PyResult<PyBeatmapAttributes> {
|
||||||
let map = &map.inner;
|
let (map, mode) = match self.mode {
|
||||||
|
Some(mode) => (map.inner.convert_mode(mode), mode),
|
||||||
|
None => (Cow::Borrowed(&map.inner), map.inner.mode),
|
||||||
|
};
|
||||||
|
|
||||||
let mut calc = map.attributes();
|
let mut calc = map.attributes();
|
||||||
|
|
||||||
if let Some(mode) = self.mode {
|
if let Some(mode) = self.mode {
|
||||||
@@ -211,7 +217,7 @@ impl PyCalculator {
|
|||||||
calc.clock_rate(clock_rate);
|
calc.clock_rate(clock_rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(PyBeatmapAttributes::new(calc.build(), map))
|
Ok(PyBeatmapAttributes::new(calc.build(), mode, map.as_ref()))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn difficulty(&self, map: &PyBeatmap) -> PyResult<PyDifficultyAttributes> {
|
fn difficulty(&self, map: &PyBeatmap) -> PyResult<PyDifficultyAttributes> {
|
||||||
|
|||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
use std::fmt::{Display, Formatter, Result as FmtResult};
|
use std::fmt::{Display, Formatter, Result as FmtResult};
|
||||||
|
|
||||||
use pyo3::{pyclass, pymethods};
|
use pyo3::{pyclass, pymethods};
|
||||||
use rosu_pp::{beatmap::BeatmapAttributes, Beatmap};
|
use rosu_pp::{beatmap::BeatmapAttributes, Beatmap, GameMode};
|
||||||
|
|
||||||
#[pyclass(name = "BeatmapAttributes")]
|
#[pyclass(name = "BeatmapAttributes")]
|
||||||
pub struct PyBeatmapAttributes {
|
pub struct PyBeatmapAttributes {
|
||||||
@@ -34,7 +34,7 @@ pub struct PyBeatmapAttributes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl PyBeatmapAttributes {
|
impl PyBeatmapAttributes {
|
||||||
pub fn new(attrs: BeatmapAttributes, map: &Beatmap) -> Self {
|
pub fn new(attrs: BeatmapAttributes, mode: GameMode, map: &Beatmap) -> Self {
|
||||||
Self {
|
Self {
|
||||||
ar: attrs.ar,
|
ar: attrs.ar,
|
||||||
cs: attrs.cs,
|
cs: attrs.cs,
|
||||||
@@ -44,7 +44,7 @@ impl PyBeatmapAttributes {
|
|||||||
od_hit_window: attrs.hit_windows.od,
|
od_hit_window: attrs.hit_windows.od,
|
||||||
clock_rate: attrs.clock_rate,
|
clock_rate: attrs.clock_rate,
|
||||||
bpm: map.bpm() * attrs.clock_rate,
|
bpm: map.bpm() * attrs.clock_rate,
|
||||||
mode: map.mode as u8,
|
mode: mode as u8,
|
||||||
version: map.version,
|
version: map.version,
|
||||||
n_circles: map.n_circles,
|
n_circles: map.n_circles,
|
||||||
n_sliders: map.n_sliders,
|
n_sliders: map.n_sliders,
|
||||||
|
|||||||
Reference in New Issue
Block a user