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
};
inline int TapNoteScoreToDancePoints( TapNoteScore tns )
inline int TapNoteScoreToDancePoints( TapNoteScore tns, bool bOni = false )
{
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_GREAT: return +1;
case TNS_GOOD: return +0;
case TNS_BOO: return -4;
case TNS_MISS: return -8;
case TNS_BOO: return bOni ? 0 : -4;
case TNS_MISS: return bOni ? 0 : -8;
case TNS_NONE: 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:
//
//A "Marvelous" is worth 3 points, but oniy when in oni mode
//A "Perfect" is worth 2 points
//A "Great" is worth 1 points
//A "Good" is worth 0 points
@@ -326,8 +327,14 @@ int NoteData::GetPossibleDancePoints()
//An "OK" (Successful Freeze step) will add 6 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);
}
return GetNumTapNotes()*TapNoteScoreToDancePoints(TNS_PERFECT) + // not Marvelous
GetNumHoldNotes()*HoldNoteScoreToDancePoints(HNS_OK);
}
/* ConvertHoldNotesTo2sAnd3s also clears m_iHoldNotes;
+1 -1
View File
@@ -53,7 +53,7 @@ void ScoreKeeperMAX2::HandleNoteScore( TapNoteScore score, int iNumTapsInRow )
ASSERT( iNumTapsInRow >= 1 );
// 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;
/*