mirror of
https://github.com/natsukagami/youmubot.git
synced 2025-04-19 16:58:55 +00:00
Convert more conservatively with modified DT/HT -> unknown
This commit is contained in:
parent
1441902560
commit
5cf74e425e
1 changed files with 28 additions and 45 deletions
|
@ -1,6 +1,9 @@
|
||||||
use rosu_v2::model::{
|
use rosu_v2::{
|
||||||
|
model::{
|
||||||
self as rosu,
|
self as rosu,
|
||||||
mods::{GameModIntermode, GameModsIntermode},
|
mods::{GameModIntermode, GameModsIntermode},
|
||||||
|
},
|
||||||
|
prelude::Acronym,
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
@ -330,112 +333,92 @@ impl From<rosu::mods::GameModsIntermode> for Mods {
|
||||||
|
|
||||||
impl From<rosu::mods::GameMods> for Mods {
|
impl From<rosu::mods::GameMods> for Mods {
|
||||||
fn from(value: rosu::mods::GameMods) -> Self {
|
fn from(value: rosu::mods::GameMods) -> Self {
|
||||||
|
let unknown = rosu::mods::GameModIntermode::Unknown(rosu::mods::UnknownMod::default());
|
||||||
value
|
value
|
||||||
.iter()
|
.iter()
|
||||||
.cloned()
|
.cloned()
|
||||||
.filter_map(|m| match m {
|
.map(|m| match m {
|
||||||
rosu::mods::GameMod::HalfTimeOsu(ht)
|
rosu::mods::GameMod::HalfTimeOsu(ht)
|
||||||
if ht.speed_change.is_some_and(|v| v != 0.75) =>
|
if ht.speed_change.is_some_and(|v| v != 0.75) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::DaycoreOsu(dc)
|
rosu::mods::GameMod::DaycoreOsu(dc)
|
||||||
if dc.speed_change.is_some_and(|v| v != 0.75) =>
|
if dc.speed_change.is_some_and(|v| v != 0.75) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
|
||||||
rosu::mods::GameMod::DaycoreOsu(_) => {
|
|
||||||
Some(rosu::mods::GameMod::HalfTimeOsu(rosu::mods::HalfTimeOsu {
|
|
||||||
speed_change: None,
|
|
||||||
adjust_pitch: Some(true),
|
|
||||||
}))
|
|
||||||
}
|
}
|
||||||
|
rosu::mods::GameMod::DaycoreOsu(_) => rosu::mods::GameModIntermode::HalfTime,
|
||||||
rosu::mods::GameMod::DoubleTimeOsu(dt)
|
rosu::mods::GameMod::DoubleTimeOsu(dt)
|
||||||
if dt.speed_change.is_some_and(|v| v != 1.5) =>
|
if dt.speed_change.is_some_and(|v| v != 1.5) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::NightcoreOsu(nc)
|
rosu::mods::GameMod::NightcoreOsu(nc)
|
||||||
if nc.speed_change.is_some_and(|v| v != 1.5) =>
|
if nc.speed_change.is_some_and(|v| v != 1.5) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::HalfTimeTaiko(ht)
|
rosu::mods::GameMod::HalfTimeTaiko(ht)
|
||||||
if ht.speed_change.is_some_and(|v| v != 0.75) =>
|
if ht.speed_change.is_some_and(|v| v != 0.75) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::DaycoreTaiko(dc)
|
rosu::mods::GameMod::DaycoreTaiko(dc)
|
||||||
if dc.speed_change.is_some_and(|v| v != 0.75) =>
|
if dc.speed_change.is_some_and(|v| v != 0.75) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::DaycoreTaiko(_) => Some(rosu::mods::GameMod::HalfTimeTaiko(
|
rosu::mods::GameMod::DaycoreTaiko(_) => rosu::mods::GameModIntermode::HalfTime,
|
||||||
rosu::mods::HalfTimeTaiko {
|
|
||||||
speed_change: None,
|
|
||||||
adjust_pitch: Some(true),
|
|
||||||
},
|
|
||||||
)),
|
|
||||||
rosu::mods::GameMod::DoubleTimeTaiko(dt)
|
rosu::mods::GameMod::DoubleTimeTaiko(dt)
|
||||||
if dt.speed_change.is_some_and(|v| v != 1.5) =>
|
if dt.speed_change.is_some_and(|v| v != 1.5) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::NightcoreTaiko(nc)
|
rosu::mods::GameMod::NightcoreTaiko(nc)
|
||||||
if nc.speed_change.is_some_and(|v| v != 1.5) =>
|
if nc.speed_change.is_some_and(|v| v != 1.5) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::HalfTimeCatch(ht)
|
rosu::mods::GameMod::HalfTimeCatch(ht)
|
||||||
if ht.speed_change.is_some_and(|v| v != 0.75) =>
|
if ht.speed_change.is_some_and(|v| v != 0.75) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::DaycoreCatch(dc)
|
rosu::mods::GameMod::DaycoreCatch(dc)
|
||||||
if dc.speed_change.is_some_and(|v| v != 0.75) =>
|
if dc.speed_change.is_some_and(|v| v != 0.75) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::DaycoreCatch(_) => Some(rosu::mods::GameMod::HalfTimeCatch(
|
rosu::mods::GameMod::DaycoreCatch(_) => rosu::mods::GameModIntermode::HalfTime,
|
||||||
rosu::mods::HalfTimeCatch {
|
|
||||||
speed_change: None,
|
|
||||||
adjust_pitch: Some(true),
|
|
||||||
},
|
|
||||||
)),
|
|
||||||
rosu::mods::GameMod::DoubleTimeCatch(dt)
|
rosu::mods::GameMod::DoubleTimeCatch(dt)
|
||||||
if dt.speed_change.is_some_and(|v| v != 1.5) =>
|
if dt.speed_change.is_some_and(|v| v != 1.5) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::NightcoreCatch(nc)
|
rosu::mods::GameMod::NightcoreCatch(nc)
|
||||||
if nc.speed_change.is_some_and(|v| v != 1.5) =>
|
if nc.speed_change.is_some_and(|v| v != 1.5) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::HalfTimeMania(ht)
|
rosu::mods::GameMod::HalfTimeMania(ht)
|
||||||
if ht.speed_change.is_some_and(|v| v != 0.75) =>
|
if ht.speed_change.is_some_and(|v| v != 0.75) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::DaycoreMania(dc)
|
rosu::mods::GameMod::DaycoreMania(dc)
|
||||||
if dc.speed_change.is_some_and(|v| v != 0.75) =>
|
if dc.speed_change.is_some_and(|v| v != 0.75) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
rosu::mods::GameMod::DaycoreMania(_) => Some(rosu::mods::GameMod::HalfTimeMania(
|
rosu::mods::GameMod::DaycoreMania(_) => rosu::mods::GameModIntermode::HalfTime,
|
||||||
rosu::mods::HalfTimeMania {
|
|
||||||
speed_change: None,
|
|
||||||
adjust_pitch: Some(true),
|
|
||||||
},
|
|
||||||
)),
|
|
||||||
rosu::mods::GameMod::DoubleTimeMania(dt)
|
rosu::mods::GameMod::DoubleTimeMania(dt)
|
||||||
if dt.speed_change.is_some_and(|v| v != 1.5) =>
|
if dt.speed_change.is_some_and(|v| v != 1.5) =>
|
||||||
{
|
{
|
||||||
None
|
unknown
|
||||||
}
|
}
|
||||||
_ => Some(m),
|
_ => m.intermode(),
|
||||||
})
|
})
|
||||||
.map(|v| v.intermode())
|
|
||||||
.collect::<GameModsIntermode>()
|
.collect::<GameModsIntermode>()
|
||||||
.into()
|
.into()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue