fix: consider mods for mania converts

This commit is contained in:
MaxOhn
2024-11-18 15:51:25 +01:00
parent b3d0475d47
commit 420e4c0697
2 changed files with 84 additions and 2 deletions
+78
View File
@@ -149,6 +149,84 @@ impl GameMods {
}
}
}
pub(crate) fn mania_keys(&self) -> Option<f32> {
match self.inner {
GameModsInner::Lazer(ref mods) => {
if mods.contains_intermode(GameModIntermode::OneKey) {
Some(1.0)
} else if mods.contains_intermode(GameModIntermode::TwoKeys) {
Some(2.0)
} else if mods.contains_intermode(GameModIntermode::ThreeKeys) {
Some(3.0)
} else if mods.contains_intermode(GameModIntermode::FourKeys) {
Some(4.0)
} else if mods.contains_intermode(GameModIntermode::FiveKeys) {
Some(5.0)
} else if mods.contains_intermode(GameModIntermode::SixKeys) {
Some(6.0)
} else if mods.contains_intermode(GameModIntermode::SevenKeys) {
Some(7.0)
} else if mods.contains_intermode(GameModIntermode::EightKeys) {
Some(8.0)
} else if mods.contains_intermode(GameModIntermode::NineKeys) {
Some(9.0)
} else if mods.contains_intermode(GameModIntermode::TenKeys) {
Some(10.0)
} else {
None
}
}
GameModsInner::Intermode(ref mods) => {
if mods.contains(GameModIntermode::OneKey) {
Some(1.0)
} else if mods.contains(GameModIntermode::TwoKeys) {
Some(2.0)
} else if mods.contains(GameModIntermode::ThreeKeys) {
Some(3.0)
} else if mods.contains(GameModIntermode::FourKeys) {
Some(4.0)
} else if mods.contains(GameModIntermode::FiveKeys) {
Some(5.0)
} else if mods.contains(GameModIntermode::SixKeys) {
Some(6.0)
} else if mods.contains(GameModIntermode::SevenKeys) {
Some(7.0)
} else if mods.contains(GameModIntermode::EightKeys) {
Some(8.0)
} else if mods.contains(GameModIntermode::NineKeys) {
Some(9.0)
} else if mods.contains(GameModIntermode::TenKeys) {
Some(10.0)
} else {
None
}
}
GameModsInner::Legacy(ref mods) => {
if mods.contains(GameModsLegacy::Key1) {
Some(1.0)
} else if mods.contains(GameModsLegacy::Key2) {
Some(2.0)
} else if mods.contains(GameModsLegacy::Key3) {
Some(3.0)
} else if mods.contains(GameModsLegacy::Key4) {
Some(4.0)
} else if mods.contains(GameModsLegacy::Key5) {
Some(5.0)
} else if mods.contains(GameModsLegacy::Key6) {
Some(6.0)
} else if mods.contains(GameModsLegacy::Key7) {
Some(7.0)
} else if mods.contains(GameModsLegacy::Key8) {
Some(8.0)
} else if mods.contains(GameModsLegacy::Key9) {
Some(9.0)
} else {
None
}
}
}
}
}
macro_rules! impl_map_attr {