Oni mode scoring fixes

(don't subtract dance points in oni mode; marvelous worth 3 in oni only)
This commit is contained in:
Chris Gomez
2003-02-25 21:50:34 +00:00
parent aeef5f2874
commit ad40c01161
3 changed files with 13 additions and 6 deletions
+4 -4
View File
@@ -138,16 +138,16 @@ enum TapNoteScore {
NUM_TAP_NOTE_SCORES NUM_TAP_NOTE_SCORES
}; };
inline int TapNoteScoreToDancePoints( TapNoteScore tns ) inline int TapNoteScoreToDancePoints( TapNoteScore tns, bool bOni = false )
{ {
switch( tns ) switch( tns )
{ {
case TNS_MARVELOUS: return +2; // this should be +3, but only in Oni. Figure out how to support this later case TNS_MARVELOUS: return bOni ? +3 : +2;
case TNS_PERFECT: return +2; case TNS_PERFECT: return +2;
case TNS_GREAT: return +1; case TNS_GREAT: return +1;
case TNS_GOOD: return +0; case TNS_GOOD: return +0;
case TNS_BOO: return -4; case TNS_BOO: return bOni ? 0 : -4;
case TNS_MISS: return -8; case TNS_MISS: return bOni ? 0 : -8;
case TNS_NONE: return 0; case TNS_NONE: return 0;
default: ASSERT(0); return 0; default: ASSERT(0); return 0;
} }
+8 -1
View File
@@ -318,6 +318,7 @@ int NoteData::GetPossibleDancePoints()
// //
//Your "Dance Points" are calculated as follows: //Your "Dance Points" are calculated as follows:
// //
//A "Marvelous" is worth 3 points, but oniy when in oni mode
//A "Perfect" is worth 2 points //A "Perfect" is worth 2 points
//A "Great" is worth 1 points //A "Great" is worth 1 points
//A "Good" is worth 0 points //A "Good" is worth 0 points
@@ -326,8 +327,14 @@ int NoteData::GetPossibleDancePoints()
//An "OK" (Successful Freeze step) will add 6 points //An "OK" (Successful Freeze step) will add 6 points
//A "NG" (Unsuccessful Freeze step) is worth 0 points //A "NG" (Unsuccessful Freeze step) is worth 0 points
return GetNumTapNotes()*TapNoteScoreToDancePoints(TNS_PERFECT) + // not Marvelous if(PREFSMAN->m_bMarvelousTiming && GAMESTATE->m_PlayMode == PLAY_MODE_ONI) // score out of marvelous for oni mode only
{
return GetNumTapNotes()*TapNoteScoreToDancePoints(TNS_MARVELOUS) + // Marvelous for oni
GetNumHoldNotes()*HoldNoteScoreToDancePoints(HNS_OK); GetNumHoldNotes()*HoldNoteScoreToDancePoints(HNS_OK);
}
return GetNumTapNotes()*TapNoteScoreToDancePoints(TNS_PERFECT) + // not Marvelous
GetNumHoldNotes()*HoldNoteScoreToDancePoints(HNS_OK);
} }
/* ConvertHoldNotesTo2sAnd3s also clears m_iHoldNotes; /* ConvertHoldNotesTo2sAnd3s also clears m_iHoldNotes;
+1 -1
View File
@@ -53,7 +53,7 @@ void ScoreKeeperMAX2::HandleNoteScore( TapNoteScore score, int iNumTapsInRow )
ASSERT( iNumTapsInRow >= 1 ); ASSERT( iNumTapsInRow >= 1 );
// update dance points for Oni lifemeter // update dance points for Oni lifemeter
GAMESTATE->m_CurStageStats.iActualDancePoints[m_PlayerNumber] += iNumTapsInRow * TapNoteScoreToDancePoints( score ); GAMESTATE->m_CurStageStats.iActualDancePoints[m_PlayerNumber] += iNumTapsInRow * TapNoteScoreToDancePoints( score, GAMESTATE->m_PlayMode == PLAY_MODE_ONI );
GAMESTATE->m_CurStageStats.iTapNoteScores[m_PlayerNumber][score] += iNumTapsInRow; GAMESTATE->m_CurStageStats.iTapNoteScores[m_PlayerNumber][score] += iNumTapsInRow;
/* /*