Fix combos (does ScoreKeeper5th need fixing too?)

This commit is contained in:
Ben Anderson
2004-12-29 19:12:25 +00:00
parent 703b15b2ab
commit dee52f75b1
2 changed files with 12 additions and 6 deletions
+8 -6
View File
@@ -1290,32 +1290,34 @@ void PlayerMinus::HandleTapRowScore( unsigned row )
/* Update miss combo, and handle "combo stopped" messages. */ /* Update miss combo, and handle "combo stopped" messages. */
int iDummy = 0; int iDummy = 0;
int &iCurCombo = m_pPlayerStageStats ? m_pPlayerStageStats->iCurCombo : iDummy; int &iCurMissCombo = m_pPlayerStageStats ? m_pPlayerStageStats->iCurMissCombo : iDummy;
switch( scoreOfLastTap ) switch( scoreOfLastTap )
{ {
case TNS_MARVELOUS: case TNS_MARVELOUS:
case TNS_PERFECT: case TNS_PERFECT:
case TNS_GREAT: case TNS_GREAT:
iCurCombo = 0; iCurMissCombo = 0;
SCREENMAN->PostMessageToTopScreen( SM_MissComboAborted, 0 ); SCREENMAN->PostMessageToTopScreen( SM_MissComboAborted, 0 );
break; break;
case TNS_MISS: case TNS_MISS:
++iCurCombo; ++iCurMissCombo;
m_iDCState = AS2D_MISS; // update dancing 2d characters that may have missed a note m_iDCState = AS2D_MISS; // update dancing 2d characters that may have missed a note
case TNS_GOOD: case TNS_GOOD:
case TNS_BOO: case TNS_BOO:
if( iCurCombo > 50 ) if( iCurMissCombo > 50 )
SCREENMAN->PostMessageToTopScreen( SM_ComboStopped, 0 ); SCREENMAN->PostMessageToTopScreen( SM_ComboStopped, 0 );
iCurCombo = 0; iCurMissCombo = 0;
break; break;
default: default:
ASSERT( 0 ); ASSERT( 0 );
} }
/* The score keeper updates the hit combo. Remember the old combo for handling announcers. */ /* The score keeper updates the hit combo. */
int &iCurCombo = m_pPlayerStageStats ? m_pPlayerStageStats->iCurCombo : iDummy;
/* Remember the old combo for handling announcers. */
const int iOldCombo = 0; const int iOldCombo = 0;
if( m_pPlayerStageStats ) if( m_pPlayerStageStats )
m_pPlayerStageStats->iCurCombo; m_pPlayerStageStats->iCurCombo;
+4
View File
@@ -357,9 +357,13 @@ void ScoreKeeperMAX2::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTa
} }
const int ComboCountIfHit = ComboIsPerRow? 1: iNumTapsInRow; const int ComboCountIfHit = ComboIsPerRow? 1: iNumTapsInRow;
TapNoteScore MinScoreToContinueCombo = GAMESTATE->m_PlayMode == PLAY_MODE_ONI? TNS_PERFECT:TNS_GREAT; TapNoteScore MinScoreToContinueCombo = GAMESTATE->m_PlayMode == PLAY_MODE_ONI? TNS_PERFECT:TNS_GREAT;
TapNoteScore MinScoreToMaintainCombo = TNS_GREAT;
if( scoreOfLastTap >= MinScoreToContinueCombo ) if( scoreOfLastTap >= MinScoreToContinueCombo )
m_pPlayerStageStats->iCurCombo += ComboCountIfHit; m_pPlayerStageStats->iCurCombo += ComboCountIfHit;
else
if( scoreOfLastTap < MinScoreToMaintainCombo )
m_pPlayerStageStats->iCurCombo = 0;
AddScore( scoreOfLastTap ); // only score once per row AddScore( scoreOfLastTap ); // only score once per row