diff --git a/src/ScoreKeeperNormal.cpp b/src/ScoreKeeperNormal.cpp index 4c6952fb56..62743275db 100644 --- a/src/ScoreKeeperNormal.cpp +++ b/src/ScoreKeeperNormal.cpp @@ -204,9 +204,34 @@ void ScoreKeeperNormal::HandleTapScoreNone() // TODO: networking code } -void ScoreKeeperNormal::AddScoreInternal( TapNoteScore ) +void ScoreKeeperNormal::AddScoreInternal( TapNoteScore score ) { - //dummied out for proper custom scoring support + int &iScore = m_pPlayerStageStats->m_iScore; + int &iCurMaxScore = m_pPlayerStageStats->m_iCurMaxScore; + + int p = 0; + + switch( score ) + { + case TNS_W1: p = 5; break; + case TNS_W2: p = 4; break; + case TNS_W3: p = 3; break; + case TNS_W4: p = 2; break; + case TNS_CheckpointHit: + case TNS_W5: p = 1; break; + case TNS_HitMine: p = -1; break; + default: p = 0; break; + } + + iScore += p; + iCurMaxScore += 5; + + if( iScore < 0 ) + iScore = 0; + + ASSERT_M( iScore >= 0, "iScore < 0" ); + + // LOG->Trace( "score: %i", iScore ); } void ScoreKeeperNormal::HandleTapScore( const TapNote &tn ) diff --git a/src/ScoreKeeperNormal.h b/src/ScoreKeeperNormal.h index 7c00888e1b..20e8b78a42 100644 --- a/src/ScoreKeeperNormal.h +++ b/src/ScoreKeeperNormal.h @@ -16,7 +16,7 @@ AutoScreenMessage( SM_PlayToasty ); /** @brief The default ScoreKeeper implementation. */ class ScoreKeeperNormal: public ScoreKeeper { - void AddScoreInternal( TapNoteScore ); + void AddScoreInternal( TapNoteScore score ); int m_iScoreRemainder; int m_iMaxPossiblePoints;