public Oppai.pp_calc GetIfFcPP(ModsInfo mods, int n300, int n100, int n50, int nmiss) { double acc = Oppai.acc_calc(n300, n100, n50, nmiss) * 100.0; Oppai.acc_round(acc, m_cache.nobjects, nmiss, out n300, out n100, out n50); bool need_update = false; need_update = need_update || _fc_n100 != n100; need_update = need_update || _fc_n50 != n50; if (need_update) { _fc_n100 = n100; _fc_n50 = n50; Oppai.rtpp_params args; args.combo = Oppai.FullCombo; args.mods = (uint)mods.Mod; args.n100 = n100; args.n50 = n50; args.nmiss = 0; Oppai.get_ppv2(m_beatmap_raw, (uint)m_beatmap_raw.Length, ref args, true, m_cache, ref _fc_result); } return(_fc_result); }
public Oppai.pp_calc GetRealTimePP(int end_time, ModsInfo mods, int n100, int n50, int nmiss, int max_combo) { int pos = GetPosition(end_time); bool need_update = false; need_update = need_update || _pos != pos; need_update = need_update || _n100 != n100; need_update = need_update || _n50 != n50; need_update = need_update || _nmiss != nmiss; need_update = need_update || _max_combo != max_combo; if (need_update) { _pos = pos; _n100 = n100; _n50 = n50; _nmiss = nmiss; _max_combo = max_combo; Oppai.rtpp_params args; args.combo = max_combo; args.mods = (uint)mods.Mod; args.n100 = n100; args.n50 = n50; args.nmiss = nmiss; if (!Oppai.get_ppv2(m_beatmap_raw, (uint)pos, ref args, false, null, ref _rtpp_result)) { return(Oppai.pp_calc.Empty); } } return(_rtpp_result); }
public Oppai.pp_calc GetMaxPP(ModsInfo mods) { bool need_update = false; need_update = need_update || mods != _max_mods; if (need_update) { _max_mods = mods; Oppai.rtpp_params args; args.combo = Oppai.FullCombo; args.mods = (uint)mods.Mod; args.n100 = 0; args.n50 = 0; args.nmiss = 0; //Cache Beatmap Oppai.get_ppv2(m_beatmap_raw, (uint)m_beatmap_raw.Length, ref args, false, m_cache, ref _max_result); } return(_max_result); }