Add OneGreat and OnePerfect awards

This commit is contained in:
Chris Danford
2004-03-25 08:32:47 +00:00
parent 2974fb564a
commit 146e057b7e
5 changed files with 19 additions and 0 deletions
+2
View File
@@ -199,6 +199,8 @@ static const CString PerDifficultyAwardNames[NUM_PER_DIFFICULTY_AWARDS] = {
"FullComboMarvelouses", "FullComboMarvelouses",
"SingleDigitGreats", "SingleDigitGreats",
"SingleDigitPerfects", "SingleDigitPerfects",
"OneGreat",
"OnePerfect",
"Greats80Percent", "Greats80Percent",
"Greats90Percent", "Greats90Percent",
"Greats100Percent", "Greats100Percent",
+2
View File
@@ -360,6 +360,8 @@ enum PerDifficultyAward
AWARD_FULL_COMBO_MARVELOUSES, AWARD_FULL_COMBO_MARVELOUSES,
AWARD_SINGLE_DIGIT_GREATS, AWARD_SINGLE_DIGIT_GREATS,
AWARD_SINGLE_DIGIT_PERFECTS, AWARD_SINGLE_DIGIT_PERFECTS,
AWARD_ONE_GREAT,
AWARD_ONE_PERFECT,
AWARD_GREATS_80_PERCENT, AWARD_GREATS_80_PERCENT,
AWARD_GREATS_90_PERCENT, AWARD_GREATS_90_PERCENT,
AWARD_GREATS_100_PERCENT, AWARD_GREATS_100_PERCENT,
+5
View File
@@ -1076,6 +1076,11 @@ void ScreenEvaluation::CommitScores(
if( stageStats.FullComboOfScore( (PlayerNumber)p, TNS_MARVELOUS ) ) if( stageStats.FullComboOfScore( (PlayerNumber)p, TNS_MARVELOUS ) )
vPdas.push_back( AWARD_FULL_COMBO_MARVELOUSES ); vPdas.push_back( AWARD_FULL_COMBO_MARVELOUSES );
if( stageStats.OneOfScore( (PlayerNumber)p, TNS_GREAT ) )
vPdas.push_back( AWARD_ONE_GREAT );
if( stageStats.OneOfScore( (PlayerNumber)p, TNS_PERFECT ) )
vPdas.push_back( AWARD_ONE_PERFECT );
float fPercentGreats = stageStats.GetPercentageOfTaps((PlayerNumber)p, TNS_GREAT); float fPercentGreats = stageStats.GetPercentageOfTaps((PlayerNumber)p, TNS_GREAT);
if( fPercentGreats >= 0.8f ) if( fPercentGreats >= 0.8f )
vPdas.push_back( AWARD_GREATS_80_PERCENT ); vPdas.push_back( AWARD_GREATS_80_PERCENT );
+9
View File
@@ -402,6 +402,9 @@ bool StageStats::FullComboOfScore( PlayerNumber pn, TapNoteScore tnsAllGreaterOr
ASSERT( tnsAllGreaterOrEqual >= TNS_GREAT ); ASSERT( tnsAllGreaterOrEqual >= TNS_GREAT );
ASSERT( tnsAllGreaterOrEqual <= TNS_MARVELOUS ); ASSERT( tnsAllGreaterOrEqual <= TNS_MARVELOUS );
if( iHoldNoteScores[pn][HNS_NG] > 0 )
return false;
for( int i=TNS_MISS; i<tnsAllGreaterOrEqual; i++ ) for( int i=TNS_MISS; i<tnsAllGreaterOrEqual; i++ )
{ {
if( iTapNoteScores[pn][i] > 0 ) if( iTapNoteScores[pn][i] > 0 )
@@ -416,6 +419,12 @@ bool StageStats::SingleDigitsOfScore( PlayerNumber pn, TapNoteScore tnsAllGreate
iTapNoteScores[pn][tnsAllGreaterOrEqual] < 10; iTapNoteScores[pn][tnsAllGreaterOrEqual] < 10;
} }
bool StageStats::OneOfScore( PlayerNumber pn, TapNoteScore tnsAllGreaterOrEqual ) const
{
return FullComboOfScore( pn, tnsAllGreaterOrEqual ) &&
iTapNoteScores[pn][tnsAllGreaterOrEqual] == 1;
}
int StageStats::GetTotalTaps( PlayerNumber pn ) const int StageStats::GetTotalTaps( PlayerNumber pn ) const
{ {
int iTotalTaps = 0; int iTotalTaps = 0;
+1
View File
@@ -98,6 +98,7 @@ struct StageStats
bool FullComboOfScore( PlayerNumber pn, TapNoteScore tnsAllGreaterOrEqual ) const; bool FullComboOfScore( PlayerNumber pn, TapNoteScore tnsAllGreaterOrEqual ) const;
bool FullCombo( PlayerNumber pn ) const { return FullComboOfScore(pn,TNS_GREAT); } bool FullCombo( PlayerNumber pn ) const { return FullComboOfScore(pn,TNS_GREAT); }
bool SingleDigitsOfScore( PlayerNumber pn, TapNoteScore tnsAllGreaterOrEqual ) const; bool SingleDigitsOfScore( PlayerNumber pn, TapNoteScore tnsAllGreaterOrEqual ) const;
bool OneOfScore( PlayerNumber pn, TapNoteScore tnsAllGreaterOrEqual ) const;
int GetTotalTaps( PlayerNumber pn ) const; int GetTotalTaps( PlayerNumber pn ) const;
float GetPercentageOfTaps( PlayerNumber pn, TapNoteScore tns ) const; float GetPercentageOfTaps( PlayerNumber pn, TapNoteScore tns ) const;
void UpdateComboList( PlayerNumber pn, float pos, bool rollover ); void UpdateComboList( PlayerNumber pn, float pos, bool rollover );