implement RADAR_NUM_ROLLS to fix assertion failure
This commit is contained in:
@@ -39,7 +39,7 @@ int GetNumNWithScore( const NoteData &in, TapNoteScore tns, int MinTaps, int iSt
|
||||
return iNumSuccessfulDoubles;
|
||||
}
|
||||
|
||||
int GetNumHoldNotesWithScore( const NoteData &in, HoldNoteScore hns )
|
||||
int GetNumHoldNotesWithScore( const NoteData &in, TapNote::SubType subType, HoldNoteScore hns )
|
||||
{
|
||||
int iNumSuccessfulHolds = 0;
|
||||
for( int t=0; t<in.GetNumTracks(); ++t )
|
||||
@@ -52,6 +52,8 @@ int GetNumHoldNotesWithScore( const NoteData &in, HoldNoteScore hns )
|
||||
const TapNote &tn = begin->second;
|
||||
if( tn.type != TapNote::hold_head )
|
||||
continue;
|
||||
if( subType == TapNote::SubType_invalid || tn.subType != subType )
|
||||
continue;
|
||||
if( tn.HoldResult.hns == hns )
|
||||
++iNumSuccessfulHolds;
|
||||
}
|
||||
@@ -251,7 +253,7 @@ float GetActualFreezeRadarValue( const NoteData &in, float fSongSeconds, PlayerN
|
||||
if( iTotalHolds == 0 )
|
||||
return 1.0f;
|
||||
|
||||
const int ActualHolds = GetNumHoldNotesWithScore( in, HNS_OK );
|
||||
const int ActualHolds = GetNumHoldNotesWithScore( in, TapNote::SubType_invalid, HNS_OK );
|
||||
return clamp( float(ActualHolds) / iTotalHolds, 0.0f, 1.0f );
|
||||
}
|
||||
|
||||
@@ -273,9 +275,11 @@ void NoteDataWithScoring::GetActualRadarValues( const NoteData &in, PlayerNumber
|
||||
case RADAR_CHAOS: out[rc] = GetActualChaosRadarValue( in, fSongSeconds, pn ); break;
|
||||
case RADAR_NUM_TAPS_AND_HOLDS: out[rc] = (float) GetNumNWithScore( in, TNS_GOOD, 1 ); break;
|
||||
case RADAR_NUM_JUMPS: out[rc] = (float) GetNumNWithScore( in, TNS_GOOD, 2 ); break;
|
||||
case RADAR_NUM_HOLDS: out[rc] = (float) GetNumHoldNotesWithScore( in, HNS_OK ); break;
|
||||
// XXX: This should be hold_head_hold, but that'll affect scoring.
|
||||
case RADAR_NUM_HOLDS: out[rc] = (float) GetNumHoldNotesWithScore( in, TapNote::SubType_invalid, HNS_OK ); break;
|
||||
case RADAR_NUM_MINES: out[rc] = (float) GetSuccessfulMines( in ); break;
|
||||
case RADAR_NUM_HANDS: out[rc] = (float) GetSuccessfulHands( in ); break;
|
||||
case RADAR_NUM_ROLLS: out[rc] = (float) GetNumHoldNotesWithScore( in, TapNote::hold_head_roll, HNS_OK ); break;
|
||||
default: ASSERT(0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user