convert map internally for tko & mna
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
/target
|
||||
Cargo.lock
|
||||
output*
|
||||
/tests/custom.rs
|
||||
|
||||
/pp-gen/.env
|
||||
/pp-gen/target
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
## Upcoming
|
||||
|
||||
Nothing as of now
|
||||
- __Adjustments:__
|
||||
- When passing an osu!std map to `TaikoPP` or `ManiaPP`, it now automatically converts the map internally. For osu!catch it was already happening trivially.
|
||||
|
||||
# v0.9.0 (2022-10-24)
|
||||
|
||||
|
||||
+1
-1
@@ -130,7 +130,7 @@ impl Beatmap {
|
||||
/// - Since hitsounds are irrelevant for difficulty and performance calculations
|
||||
/// in osu!mania, the resulting map of a conversion to mania will not contain hitsounds.
|
||||
/// - To avoid having to clone the map for osu!catch conversions, the field `Beatmap::mode`
|
||||
/// will not be adjusted in a ctb-converted map.
|
||||
/// will not be adjusted in a osu!catch-converted map.
|
||||
#[inline]
|
||||
pub fn convert_mode(&self, mode: GameMode) -> Cow<'_, Self> {
|
||||
if mode == self.mode {
|
||||
|
||||
+5
-2
@@ -53,12 +53,15 @@ impl<'map> ManiaStars<'map> {
|
||||
/// Create a new difficulty calculator for osu!mania maps.
|
||||
#[inline]
|
||||
pub fn new(map: &'map Beatmap) -> Self {
|
||||
let map = map.convert_mode(GameMode::Mania);
|
||||
let is_convert = matches!(map, Cow::Owned(_));
|
||||
|
||||
Self {
|
||||
map: Cow::Borrowed(map),
|
||||
map,
|
||||
mods: 0,
|
||||
passed_objects: None,
|
||||
clock_rate: None,
|
||||
is_convert: false,
|
||||
is_convert,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ impl<'map> ManiaPP<'map> {
|
||||
#[inline]
|
||||
pub fn new(map: &'map Beatmap) -> Self {
|
||||
Self {
|
||||
map: Cow::Borrowed(map),
|
||||
map: map.convert_mode(GameMode::Mania),
|
||||
attributes: None,
|
||||
mods: 0,
|
||||
passed_objects: None,
|
||||
|
||||
+1
-1
@@ -516,7 +516,7 @@ pub struct OsuDifficultyAttributes {
|
||||
/// The overall difficulty
|
||||
pub od: f64,
|
||||
/// The health drain rate.
|
||||
pub hp: f64,
|
||||
pub hp: f64, // TODO: remove as it is not used for performance calculation
|
||||
/// The amount of circles.
|
||||
pub n_circles: usize,
|
||||
/// The amount of sliders.
|
||||
|
||||
+5
-2
@@ -55,12 +55,15 @@ impl<'map> TaikoStars<'map> {
|
||||
/// Create a new difficulty calculator for osu!taiko maps.
|
||||
#[inline]
|
||||
pub fn new(map: &'map Beatmap) -> Self {
|
||||
let map = map.convert_mode(GameMode::Taiko);
|
||||
let is_convert = matches!(map, Cow::Owned(_));
|
||||
|
||||
Self {
|
||||
map: Cow::Borrowed(map),
|
||||
map,
|
||||
mods: 0,
|
||||
passed_objects: None,
|
||||
clock_rate: None,
|
||||
is_convert: false,
|
||||
is_convert,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ impl<'map> TaikoPP<'map> {
|
||||
#[inline]
|
||||
pub fn new(map: &'map Beatmap) -> Self {
|
||||
Self {
|
||||
map: Cow::Borrowed(map),
|
||||
map: map.convert_mode(GameMode::Taiko),
|
||||
attributes: None,
|
||||
mods: 0,
|
||||
combo: None,
|
||||
|
||||
Reference in New Issue
Block a user