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
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user