add params to AddTapRowScore for calculating score based on num taps in row

fix row scored before combo and score multiplier calculated in guitar
fix CurrentComboChanged not broadcasted on combo stopped
This commit is contained in:
Chris Danford
2006-11-16 12:25:05 +00:00
parent 98f8625834
commit e224b1787c
5 changed files with 39 additions and 25 deletions
+14 -9
View File
@@ -227,12 +227,17 @@ void ScoreKeeperNormal::AddTapScore( TapNoteScore tns )
void ScoreKeeperNormal::AddHoldScore( HoldNoteScore hns )
{
if( hns == HNS_Held )
AddTapRowScore( TNS_W1 );
AddScoreInternal( TNS_W1 );
else if ( hns == HNS_LetGo )
AddTapRowScore( TNS_W4 ); // required for subtractive score display to work properly
AddScoreInternal( TNS_W4 ); // required for subtractive score display to work properly
}
void ScoreKeeperNormal::AddTapRowScore( TapNoteScore score )
void ScoreKeeperNormal::AddTapRowScore( TapNoteScore score, const NoteData &nd, int iRow )
{
AddScoreInternal( score );
}
void ScoreKeeperNormal::AddScoreInternal( TapNoteScore score )
{
int &iScore = m_pPlayerStageStats->m_iScore;
int &iCurMaxScore = m_pPlayerStageStats->m_iCurMaxScore;
@@ -387,6 +392,7 @@ void ScoreKeeperNormal::HandleTapRowScore( const NoteData &nd, int iRow )
// increment the current total possible dance score
m_pPlayerStageStats->m_iCurPossibleDancePoints += TapNoteScoreToDancePoints( TNS_W1 );
//
// Regular combo
@@ -396,11 +402,7 @@ void ScoreKeeperNormal::HandleTapRowScore( const NoteData &nd, int iRow )
{
m_pPlayerStageStats->m_iCurMissCombo = 0;
if( scoreOfLastTap >= m_MinScoreToContinueCombo )
{
m_pPlayerStageStats->m_iCurCombo += iComboCountIfHit;
if( m_pPlayerState->m_PlayerNumber != PLAYER_INVALID )
MESSAGEMAN->Broadcast( enum_add2(Message_CurrentComboChangedP1,m_pPlayerState->m_PlayerNumber) );
}
}
else
{
@@ -409,7 +411,10 @@ void ScoreKeeperNormal::HandleTapRowScore( const NoteData &nd, int iRow )
++m_pPlayerStageStats->m_iCurMissCombo;
}
AddTapRowScore( scoreOfLastTap ); // only score once per row
if( m_pPlayerState->m_PlayerNumber != PLAYER_INVALID )
MESSAGEMAN->Broadcast( enum_add2(Message_CurrentComboChangedP1,m_pPlayerState->m_PlayerNumber) );
AddTapRowScore( scoreOfLastTap, nd, iRow ); // only score once per row
//
// handle combo logic
@@ -446,7 +451,7 @@ void ScoreKeeperNormal::HandleTapRowScore( const NoteData &nd, int iRow )
break;
}
// TODO: Remove indexing with PlayerNumber
PlayerNumber pn = m_pPlayerState->m_PlayerNumber;
float offset = NoteDataWithScoring::LastTapNoteWithResult( nd, iRow, pn ).result.fTapNoteOffset;