int ScoreKeeperMAX2::GetPossibleGradePoints( const RadarValues& radars ) { /* Note that, if Marvelous timing is disabled or not active (not course mode), * PERFECT will be used instead. */ int NumTaps = int(radars[RADAR_NUM_TAPS_AND_HOLDS]); int NumHolds = int(radars[RADAR_NUM_HOLDS]); int NumRolls = int(radars[RADAR_NUM_ROLLS]); return NumTaps*TapNoteScoreToGradePoints(TNS_MARVELOUS, false)+ NumHolds*HoldNoteScoreToGradePoints(HNS_OK, false) + NumRolls*HoldNoteScoreToGradePoints(HNS_OK, false); }
int ScoreKeeperNormal::GetPossibleGradePoints( NoteData* nd, const TimingData* td, float fSongSeconds ) { /* Note: if W1 timing is disabled or not active (not course mode), * W2 will be used instead. */ // XXX: That's not actually implemented! RadarValues radars; NoteDataUtil::CalculateRadarValues( *nd, fSongSeconds, radars ); int ret = 0; ret += int(radars[RadarCategory_TapsAndHolds]) * TapNoteScoreToGradePoints(TNS_W1, false); if( GAMESTATE->GetCurrentGame()->m_bTickHolds ) ret += NoteDataUtil::GetTotalHoldTicks( nd, td ) * g_iGradeWeight.GetValue(SE_CheckpointHit); ret += int(radars[RadarCategory_Holds]) * HoldNoteScoreToGradePoints(HNS_Held, false); ret += int(radars[RadarCategory_Rolls]) * HoldNoteScoreToGradePoints(HNS_Held, false); return ret; }
int ScoreKeeperNormal::TapNoteScoreToGradePoints( TapNoteScore tns ) const { return TapNoteScoreToGradePoints( tns, m_bIsBeginner ); }