@@ -17,6 +17,7 @@ use crate::commands::{osu::LeaderboardScore, utility::ScoreEmbedDataRaw};
1717#[ derive( Clone ) ]
1818pub struct PpManager < ' m > {
1919 map : Cow < ' m , Beatmap > ,
20+ map_id : u32 ,
2021 attrs : Option < DifficultyAttributes > ,
2122 mods : Mods ,
2223 state : Option < ScoreState > ,
@@ -26,14 +27,15 @@ pub struct PpManager<'m> {
2627
2728impl < ' m > PpManager < ' m > {
2829 pub fn new ( map : & ' m OsuMap ) -> Self {
29- Self :: from_parsed ( & map. pp_map )
30+ Self :: from_parsed ( & map. pp_map , map . map_id ( ) )
3031 }
3132
32- pub fn from_parsed ( map : & ' m Beatmap ) -> Self {
33+ pub fn from_parsed ( map : & ' m Beatmap , map_id : u32 ) -> Self {
3334 // Cannot check for suspicion yet because the mode might still change
3435
3536 Self {
3637 map : Cow :: Borrowed ( map) ,
38+ map_id,
3739 attrs : None ,
3840 mods : Mods :: default ( ) ,
3941 state : None ,
@@ -123,7 +125,16 @@ impl<'m> PpManager<'m> {
123125 return Some ( attrs) ;
124126 }
125127
126- if self . map . check_suspicion ( ) . is_err ( ) {
128+ if let Err ( reason) = self . map . check_suspicion ( ) {
129+ warn ! (
130+ ?reason,
131+ map_id = self . map_id,
132+ mods = ?self . mods. inner,
133+ clock_rate = self . mods. clock_rate,
134+ lazer = self . lazer,
135+ "Suspicion check failed" ,
136+ ) ;
137+
127138 return None ;
128139 }
129140
@@ -308,7 +319,7 @@ fn stats_to_state(max_combo: u32, mode: GameMode, stats: &ScoreStatistics) -> Sc
308319}
309320
310321/// Mods with an optional custom clock rate.
311- #[ derive( Clone , Default , PartialEq ) ]
322+ #[ derive( Clone , Debug , Default , PartialEq ) ]
312323pub struct Mods {
313324 pub inner : rosu_pp:: GameMods ,
314325 pub clock_rate : Option < f64 > ,
0 commit comments