(Actually, that tap score wasn't needed, but it could be useful later, so

I won't bother to remove it.)

Don't trigger an NG if the hold tap was missed completely, and don't apply
any associated penalties.
This commit is contained in:
Glenn Maynard
2002-10-12 22:17:16 +00:00
parent 064d3f2230
commit cace14efba
2 changed files with 6 additions and 6 deletions
+5 -5
View File
@@ -214,10 +214,10 @@ void Player::Update( float fDeltaTime )
// if they got a bad score or haven't stepped on the corresponding tap yet
const TapNoteScore tns = m_TapNoteScores[hn.m_iTrack][iHoldStartIndex];
const bool bSteppedOnTapNote = tns != TNS_NONE && tns != TNS_MISS; // did they step on the start of this hold?
if( hn.m_fStartBeat < fSongBeat && fSongBeat < hn.m_fEndBeat ) // if the song beat is in the range of this hold
{
const bool bSteppedOnTapNote = tns != TNS_NONE && tns != TNS_MISS; // did they step on the start of this hold?
const bool bIsHoldingButton = INPUTMAPPER->IsButtonDown( GameI ) || PREFSMAN->m_bAutoPlay || GAMESTATE->m_bDemonstration;
m_NoteField.m_bIsHoldingHoldNote[i] = bIsHoldingButton && bSteppedOnTapNote; // set host flag so NoteField can do intelligent drawing
@@ -247,8 +247,9 @@ void Player::Update( float fDeltaTime )
m_NoteField.m_fHoldNoteLife[i] = fLife; // update the NoteField display
}
// check for NG
if( fLife == 0 ) // the player has not pressed the button for a long time!
/* check for NG. If the head was missed completely, don't count
* an NG. */
if( bSteppedOnTapNote && fLife == 0 ) // the player has not pressed the button for a long time!
{
hns = HNS_NG;
HandleNoteScore( hns, tns );
@@ -257,9 +258,8 @@ void Player::Update( float fDeltaTime )
}
// check for OK
if( fSongBeat >= hn.m_fEndBeat ) // if this HoldNote is in the past
if( fSongBeat >= hn.m_fEndBeat && fLife > 0 ) // if this HoldNote is in the past
{
// At this point fLife > 0, or else we would have marked it NG above
fLife = 1;
hns = HNS_OK;
HandleNoteScore( hns, tns );
+1 -1
View File
@@ -53,7 +53,7 @@ protected:
int UpdateTapNotesMissedOlderThan( float fMissIfOlderThanThisBeat );
void OnRowDestroyed( int col, int iStepIndex );
void HandleNoteScore( TapNoteScore score, int iNumTapsInRow );
void HandleNoteScore( HoldNoteScore score );
void HandleNoteScore( HoldNoteScore score, TapNoteScore TapNoteScore );
static float GetMaxBeatDifference();