remove funky beginner hacks to judgment window

This commit is contained in:
Chris Danford
2006-03-17 02:23:45 +00:00
parent 1fd4b7f05f
commit dc05d4b0c8
+40 -51
View File
@@ -52,18 +52,16 @@ RString ATTACK_DISPLAY_X_NAME( size_t p, size_t both_sides ){ return "AttackDisp
static const float StepSearchDistance = 1.0f;
static const float JUMP_WINDOW_SECONDS = 0.25f;
float AdjustedWindowSeconds( TimingWindow tw, bool bIsPlayingBeginner )
float AdjustedWindowSeconds( TimingWindow tw )
{
float fSecs = PREFSMAN->m_fTimingWindowSeconds[tw];
fSecs *= PREFSMAN->m_fTimingWindowScale;
fSecs += PREFSMAN->m_fTimingWindowAdd;
if( tw==TW_W5 && bIsPlayingBeginner && PREFSMAN->m_bMercifulBeginner )
fSecs += 0.5f;
return fSecs;
}
#define ADJUSTED_WINDOW_SECONDS( tw ) AdjustedWindowSeconds( tw, IsPlayingBeginner() )
#define ADJUSTED_WINDOW_SECONDS( tw ) AdjustedWindowSeconds( tw )
Player::Player( bool bShowNoteField, bool bShowJudgment )
@@ -1246,57 +1244,48 @@ void Player::HandleStep( int col, const RageTimer &tm, bool bHeld )
if( score == TNS_W1 && !GAMESTATE->ShowW1() )
score = TNS_W2;
bool bSteppedEarly = -fNoteOffset < 0;
if( IsPlayingBeginner() && PREFSMAN->m_bMercifulBeginner && score==TNS_W5 && bSteppedEarly )
tn.result.tns = score;
if( score != TNS_None )
tn.result.fTapNoteOffset = -fNoteOffset;
if( score != TNS_None && score != TNS_Miss )
{
if( m_pJudgment )
m_pJudgment->SetJudgment( score, bSteppedEarly );
int ms_error = (int) roundf( fSecondsFromExact * 1000 );
ms_error = min( ms_error, MAX_PRO_TIMING_ERROR.GetValue() );
if( m_pPlayerStageStats )
m_pPlayerStageStats->iTotalError += ms_error;
}
else
//LOG->Trace("XXX: %i col %i, at %f, music at %f, step was at %f, off by %f",
// score, col, fStepSeconds, fCurrentMusicSeconds, fMusicSeconds, fNoteOffset );
// LOG->Trace("Note offset: %f (fSecondsFromExact = %f), Score: %i", fNoteOffset, fSecondsFromExact, score);
m_NoteData.SetTapNote( col, iIndexOverlappingNote, tn );
// TODO: Remove use of PlayerNumber.
PlayerNumber pn = m_pPlayerState->m_PlayerNumber;
// Keep this here so we get the same data as Autosync
NSMAN->ReportTiming( fNoteOffset,pn );
if( m_pPrimaryScoreKeeper )
m_pPrimaryScoreKeeper->HandleTapScore( score );
if( m_pSecondaryScoreKeeper )
m_pSecondaryScoreKeeper->HandleTapScore( score );
switch( tn.type )
{
tn.result.tns = score;
if( score != TNS_None )
tn.result.fTapNoteOffset = -fNoteOffset;
if( score != TNS_None && score != TNS_Miss )
{
int ms_error = (int) roundf( fSecondsFromExact * 1000 );
ms_error = min( ms_error, MAX_PRO_TIMING_ERROR.GetValue() );
if( m_pPlayerStageStats )
m_pPlayerStageStats->iTotalError += ms_error;
}
//LOG->Trace("XXX: %i col %i, at %f, music at %f, step was at %f, off by %f",
// score, col, fStepSeconds, fCurrentMusicSeconds, fMusicSeconds, fNoteOffset );
// LOG->Trace("Note offset: %f (fSecondsFromExact = %f), Score: %i", fNoteOffset, fSecondsFromExact, score);
m_NoteData.SetTapNote( col, iIndexOverlappingNote, tn );
// TODO: Remove use of PlayerNumber.
PlayerNumber pn = m_pPlayerState->m_PlayerNumber;
// Keep this here so we get the same data as Autosync
NSMAN->ReportTiming( fNoteOffset,pn );
if( m_pPrimaryScoreKeeper )
m_pPrimaryScoreKeeper->HandleTapScore( score );
if( m_pSecondaryScoreKeeper )
m_pSecondaryScoreKeeper->HandleTapScore( score );
switch( tn.type )
{
case TapNote::tap:
case TapNote::hold_head:
// don't judge the row if this note is a mine or tap attack
if( NoteDataWithScoring::IsRowCompletelyJudged( m_NoteData, iIndexOverlappingNote ) )
OnRowCompletelyJudged( iIndexOverlappingNote );
}
m_LastTapNoteScore = score;
case TapNote::tap:
case TapNote::hold_head:
// don't judge the row if this note is a mine or tap attack
if( NoteDataWithScoring::IsRowCompletelyJudged( m_NoteData, iIndexOverlappingNote ) )
OnRowCompletelyJudged( iIndexOverlappingNote );
}
m_LastTapNoteScore = score;
}