void ScoreKeeperNormal::HandleHoldScore( const TapNote &tn ) { HoldNoteScore holdScore = tn.HoldResult.hns; // update dance points totals if( !m_pPlayerStageStats->m_bFailed ) m_pPlayerStageStats->m_iActualDancePoints += HoldNoteScoreToDancePoints( holdScore ); // increment the current total possible dance score m_pPlayerStageStats->m_iCurPossibleDancePoints += HoldNoteScoreToDancePoints( HNS_Held ); m_pPlayerStageStats->m_iHoldNoteScores[holdScore] ++; AddHoldScore( holdScore ); // TODO: Remove indexing with PlayerNumber PlayerNumber pn = m_pPlayerState->m_PlayerNumber; NSMAN->ReportScore( pn, holdScore+TapNoteScore_Invalid, m_pPlayerStageStats->m_iScore, m_pPlayerStageStats->m_iCurCombo, tn.result.fTapNoteOffset ); Message msg( "ScoreChanged" ); msg.SetParam( "PlayerNumber", m_pPlayerState->m_PlayerNumber ); msg.SetParam( "MultiPlayer", m_pPlayerState->m_mp ); MESSAGEMAN->Broadcast( msg ); }
void ScoreKeeperMAX2::HandleHoldScore( HoldNoteScore holdScore, TapNoteScore tapScore ) { // update dance points totals if( !m_pPlayerStageStats->bFailed ) m_pPlayerStageStats->iActualDancePoints += HoldNoteScoreToDancePoints( holdScore ); m_pPlayerStageStats->iCurPossibleDancePoints += HoldNoteScoreToDancePoints( HNS_OK ); m_pPlayerStageStats->iHoldNoteScores[holdScore] ++; // increment the current total possible dance score m_pPlayerStageStats->iCurPossibleDancePoints += HoldNoteScoreToDancePoints( HNS_OK ); if( holdScore == HNS_OK ) AddScore( TNS_MARVELOUS ); else if ( holdScore == HNS_NG ) AddScore( TNS_GOOD ); // required for subtractive score display to work properly // TODO: Remove indexing with PlayerNumber PlayerNumber pn = m_pPlayerState->m_PlayerNumber; NSMAN->ReportScore( pn, holdScore+TNS_MARVELOUS, m_pPlayerStageStats->iScore, m_pPlayerStageStats->iCurCombo ); }
int ScoreKeeperMAX2::GetPossibleDancePoints( 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*TapNoteScoreToDancePoints(TNS_MARVELOUS, false)+ NumHolds*HoldNoteScoreToDancePoints(HNS_OK, false) + NumRolls*HoldNoteScoreToDancePoints(HNS_OK, false); }
int ScoreKeeperNormal::GetPossibleDancePoints( 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]) * TapNoteScoreToDancePoints(TNS_W1, false); if( GAMESTATE->GetCurrentGame()->m_bTickHolds ) ret += NoteDataUtil::GetTotalHoldTicks( nd, td ) * g_iPercentScoreWeight.GetValue(SE_CheckpointHit); ret += int(radars[RadarCategory_Holds]) * HoldNoteScoreToDancePoints(HNS_Held, false); ret += int(radars[RadarCategory_Rolls]) * HoldNoteScoreToDancePoints(HNS_Held, false); return ret; }
int ScoreKeeperNormal::HoldNoteScoreToDancePoints( HoldNoteScore hns ) const { return HoldNoteScoreToDancePoints( hns, m_bIsBeginner ); }