Oni mode scoring fixes
(don't subtract dance points in oni mode; marvelous worth 3 in oni only)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user