Handle combo announcer messages in Player. The score keeper

doesn't need control over that.

Simplify.
This commit is contained in:
Glenn Maynard
2003-09-07 01:02:03 +00:00
parent b351e44192
commit 9f6a581ec8
2 changed files with 13 additions and 109 deletions
+7 -55
View File
@@ -348,7 +348,6 @@ void ScoreKeeper5th::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTap
// Regular combo // Regular combo
// //
int &iCurCombo = GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber]; int &iCurCombo = GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber];
int iOldCombo = iCurCombo;
/* /*
http://www.aaroninjapan.com/ddr2.html http://www.aaroninjapan.com/ddr2.html
@@ -358,61 +357,14 @@ void ScoreKeeper5th::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTap
Your combo counter only increased with a "Marvelous/Perfect", and double Marvelous/Perfect steps (left and right, etc.) Your combo counter only increased with a "Marvelous/Perfect", and double Marvelous/Perfect steps (left and right, etc.)
only add 1 to your combo instead of 2. The combo counter thus becomes a "Marvelous/Perfect" counter. only add 1 to your combo instead of 2. The combo counter thus becomes a "Marvelous/Perfect" counter.
*/ */
switch( GAMESTATE->m_PlayMode ) /* True if a jump is one to combo, false if combo is purely based on tap count. */
{ // const bool ComboIsPerRow = (GAMESTATE->m_PlayMode == PLAY_MODE_ONI);
case PLAY_MODE_ARCADE: const bool ComboIsPerRow = true;
case PLAY_MODE_BATTLE: const int ComboCountIfHit = ComboIsPerRow? 1: iNumTapsInRow;
case PLAY_MODE_RAVE: TapNoteScore MinScoreToContinueCombo = GAMESTATE->m_PlayMode == PLAY_MODE_ONI? TNS_PERFECT:TNS_GREAT;
case PLAY_MODE_NONSTOP:
case PLAY_MODE_ENDLESS:
switch( scoreOfLastTap )
{
case TNS_MARVELOUS:
case TNS_PERFECT:
case TNS_GREAT:
// iCurCombo += iNumTapsInRow;
iCurCombo++;
break;
}
break;
case PLAY_MODE_ONI:
switch( scoreOfLastTap )
{
case TNS_MARVELOUS:
case TNS_PERFECT:
iCurCombo++;
break;
}
break;
default:
ASSERT(0);
}
if( scoreOfLastTap >= MinScoreToContinueCombo )
#define CROSSED( x ) (iOldCombo<x && iCurCombo>=x) iCurCombo += ComboCountIfHit;
if ( CROSSED(100) )
SCREENMAN->PostMessageToTopScreen( SM_100Combo, 0 );
else if( CROSSED(200) )
SCREENMAN->PostMessageToTopScreen( SM_200Combo, 0 );
else if( CROSSED(300) )
SCREENMAN->PostMessageToTopScreen( SM_300Combo, 0 );
else if( CROSSED(400) )
SCREENMAN->PostMessageToTopScreen( SM_400Combo, 0 );
else if( CROSSED(500) )
SCREENMAN->PostMessageToTopScreen( SM_500Combo, 0 );
else if( CROSSED(600) )
SCREENMAN->PostMessageToTopScreen( SM_600Combo, 0 );
else if( CROSSED(700) )
SCREENMAN->PostMessageToTopScreen( SM_700Combo, 0 );
else if( CROSSED(800) )
SCREENMAN->PostMessageToTopScreen( SM_800Combo, 0 );
else if( CROSSED(900) )
SCREENMAN->PostMessageToTopScreen( SM_900Combo, 0 );
else if( CROSSED(1000))
SCREENMAN->PostMessageToTopScreen( SM_1000Combo, 0 );
else if( (iOldCombo / 100) < (iCurCombo / 100) && iCurCombo > 1000 )
SCREENMAN->PostMessageToTopScreen( SM_ComboContinuing, 0 );
} }
+6 -54
View File
@@ -323,7 +323,6 @@ void ScoreKeeperMAX2::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTa
// Regular combo // Regular combo
// //
int &iCurCombo = GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber]; int &iCurCombo = GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber];
int iOldCombo = iCurCombo;
/* /*
http://www.aaroninjapan.com/ddr2.html http://www.aaroninjapan.com/ddr2.html
@@ -333,60 +332,13 @@ void ScoreKeeperMAX2::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTa
Your combo counter only increased with a "Marvelous/Perfect", and double Marvelous/Perfect steps (left and right, etc.) Your combo counter only increased with a "Marvelous/Perfect", and double Marvelous/Perfect steps (left and right, etc.)
only add 1 to your combo instead of 2. The combo counter thus becomes a "Marvelous/Perfect" counter. only add 1 to your combo instead of 2. The combo counter thus becomes a "Marvelous/Perfect" counter.
*/ */
switch( GAMESTATE->m_PlayMode ) /* True if a jump is one to combo, false if combo is purely based on tap count. */
{ const bool ComboIsPerRow = (GAMESTATE->m_PlayMode == PLAY_MODE_ONI);
case PLAY_MODE_ARCADE: const int ComboCountIfHit = ComboIsPerRow? 1: iNumTapsInRow;
case PLAY_MODE_BATTLE: TapNoteScore MinScoreToContinueCombo = GAMESTATE->m_PlayMode == PLAY_MODE_ONI? TNS_PERFECT:TNS_GREAT;
case PLAY_MODE_RAVE:
case PLAY_MODE_NONSTOP:
case PLAY_MODE_ENDLESS:
switch( scoreOfLastTap )
{
case TNS_MARVELOUS:
case TNS_PERFECT:
case TNS_GREAT:
iCurCombo += iNumTapsInRow;
break;
}
break;
case PLAY_MODE_ONI:
switch( scoreOfLastTap )
{
case TNS_MARVELOUS:
case TNS_PERFECT:
iCurCombo++;
break;
}
break;
default:
ASSERT(0);
}
if( scoreOfLastTap >= MinScoreToContinueCombo )
#define CROSSED( x ) (iOldCombo<x && iCurCombo>=x) iCurCombo += ComboCountIfHit;
if ( CROSSED(100) )
SCREENMAN->PostMessageToTopScreen( SM_100Combo, 0 );
else if( CROSSED(200) )
SCREENMAN->PostMessageToTopScreen( SM_200Combo, 0 );
else if( CROSSED(300) )
SCREENMAN->PostMessageToTopScreen( SM_300Combo, 0 );
else if( CROSSED(400) )
SCREENMAN->PostMessageToTopScreen( SM_400Combo, 0 );
else if( CROSSED(500) )
SCREENMAN->PostMessageToTopScreen( SM_500Combo, 0 );
else if( CROSSED(600) )
SCREENMAN->PostMessageToTopScreen( SM_600Combo, 0 );
else if( CROSSED(700) )
SCREENMAN->PostMessageToTopScreen( SM_700Combo, 0 );
else if( CROSSED(800) )
SCREENMAN->PostMessageToTopScreen( SM_800Combo, 0 );
else if( CROSSED(900) )
SCREENMAN->PostMessageToTopScreen( SM_900Combo, 0 );
else if( CROSSED(1000))
SCREENMAN->PostMessageToTopScreen( SM_1000Combo, 0 );
else if( (iOldCombo / 100) < (iCurCombo / 100) && iCurCombo > 1000 )
SCREENMAN->PostMessageToTopScreen( SM_ComboContinuing, 0 );
} }