sm4svn commits (all code by Glenn Maynard)

1fc3636: "working on routine mode"
fb1edc2: "working on routine"
20b5827: "working on routine"
193363b: "working on routine"
bd042f9: "working on routine"
This commit is contained in:
AJ Kelly
2010-02-13 14:31:58 -06:00
parent 777745b7fb
commit 6879834149
12 changed files with 135 additions and 109 deletions
+15 -27
View File
@@ -235,7 +235,7 @@ void Player::Init(
{
// Init judgment positions
bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyle()->m_StyleType==StyleType_OnePlayerTwoSides;
bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyle()->GetUsesCenteredArrows();
Actor TempJudgment;
TempJudgment.SetName( "Judgment" );
ActorUtil::LoadCommand( TempJudgment, sType, "Transform" );
@@ -514,7 +514,7 @@ void Player::Load()
m_pNoteField->Load( &m_NoteData, iDrawDistanceAfterTargetsPixels, iDrawDistanceBeforeTargetsPixels );
}
bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyle()->m_StyleType==StyleType_OnePlayerTwoSides;
bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyle()->GetUsesCenteredArrows();
if( m_pAttackDisplay )
m_pAttackDisplay->SetX( ATTACK_DISPLAY_X.GetValue(pn, bPlayerUsingBothSides) - 40 );
// set this in Update //m_pAttackDisplay->SetY( bReverse ? ATTACK_DISPLAY_Y_REVERSE : ATTACK_DISPLAY_Y );
@@ -1433,7 +1433,7 @@ int Player::GetClosestNonEmptyRowDirectional( int iStartRow, int iEndRow, bool b
while( !iter.IsAtEnd() )
{
if( NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iter.Row(), m_pPlayerState->m_PlayerNumber) )
if( NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iter.Row()) )
{
++iter;
continue;
@@ -1447,7 +1447,7 @@ int Player::GetClosestNonEmptyRowDirectional( int iStartRow, int iEndRow, bool b
while( !iter.IsAtEnd() )
{
if( NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iter.Row(), m_pPlayerState->m_PlayerNumber) )
if( NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iter.Row()) )
{
++iter;
continue;
@@ -2064,7 +2064,7 @@ void Player::StepStrumHopo( int col, int row, const RageTimer &tm, bool bHeld, b
goto done_checking_hopo;
}
// con't hopo on the same note 2x in a row
// can't hopo on the same note 2x in a row
if( col == m_pPlayerState->m_iLastHopoNoteCol )
{
bDidHopo = false;
@@ -2077,13 +2077,13 @@ void Player::StepStrumHopo( int col, int row, const RageTimer &tm, bool bHeld, b
int iRowsAgoLastNote = 100000; // TODO: find more reasonable value based on HOPO_CHAIN_SECONDS?
NoteData::all_tracks_reverse_iterator iter = m_NoteData.GetTapNoteRangeAllTracksReverse( iRowsAgoLastNote-iRowsAgoLastNote, iRowOfOverlappingNoteOrRow-1 );
ASSERT( !iter.IsAtEnd() ); // there must have been a note that started the hopo
if( !NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iter.Row(), m_pPlayerState->m_PlayerNumber) )
if( !NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iter.Row()) )
{
bDidHopo = false;
goto done_checking_hopo;
}
const TapNoteResult &lastTNR = NoteDataWithScoring::LastTapNoteWithResult( m_NoteData, iter.Row(), m_pPlayerState->m_PlayerNumber ).result;
const TapNoteResult &lastTNR = NoteDataWithScoring::LastTapNoteWithResult( m_NoteData, iter.Row() ).result;
if( lastTNR.tns <= TNS_Miss )
{
bDidHopo = false;
@@ -2171,8 +2171,6 @@ done_checking_hopo:
}
}
// TODO: Remove use of PlayerNumber
PlayerNumber pn = pTN->pn == PLAYER_INVALID ? m_pPlayerState->m_PlayerNumber : pTN->pn;
m_LastTapNoteScore = score;
if( GAMESTATE->GetCurrentGame()->m_bCountNotesSeparately )
{
@@ -2187,9 +2185,9 @@ done_checking_hopo:
HideNote( col, iRowOfOverlappingNoteOrRow );
}
}
else if( NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iRowOfOverlappingNoteOrRow, pn) )
else if( NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iRowOfOverlappingNoteOrRow) )
{
FlashGhostRow( iRowOfOverlappingNoteOrRow, pn );
FlashGhostRow( iRowOfOverlappingNoteOrRow );
}
}
@@ -2336,8 +2334,6 @@ void Player::UpdateTapNotesMissedOlderThan( float fMissIfOlderThanSeconds )
if( !NeedsTapJudging(tn) )
continue;
if( tn.pn != PLAYER_INVALID && tn.pn != m_pPlayerState->m_PlayerNumber )
continue;
if( tn.type == TapNote::mine )
{
tn.result.tns = TNS_AvoidMine;
@@ -2359,7 +2355,6 @@ void Player::UpdateTapNotesMissedOlderThan( float fMissIfOlderThanSeconds )
void Player::UpdateJudgedRows()
{
const int iEndRow = BeatToNoteRow( GAMESTATE->m_fSongBeat );
PlayerNumber pn = m_pPlayerState->m_PlayerNumber;
bool bAllJudged = true;
const bool bSeparately = GAMESTATE->GetCurrentGame()->m_bCountNotesSeparately;
@@ -2375,7 +2370,7 @@ void Player::UpdateJudgedRows()
iLastSeenRow = iRow;
// crossed a nonempty row
if( !NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iRow, pn) )
if( !NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iRow) )
{
bAllJudged = false;
continue;
@@ -2384,7 +2379,7 @@ void Player::UpdateJudgedRows()
*m_pIterUnjudgedRows = iter;
if( m_pJudgedRows->JudgeRow(iRow) )
continue;
const TapNoteResult &lastTNR = NoteDataWithScoring::LastTapNoteWithResult( m_NoteData, iRow, pn ).result;
const TapNoteResult &lastTNR = NoteDataWithScoring::LastTapNoteWithResult( m_NoteData, iRow ).result;
if( lastTNR.tns < TNS_Miss )
continue;
@@ -2394,7 +2389,6 @@ void Player::UpdateJudgedRows()
{
const TapNote &tn = m_NoteData.GetTapNote( iTrack, iRow );
if( tn.type == TapNote::empty || tn.type == TapNote::mine ) continue;
if( tn.pn != PLAYER_INVALID && tn.pn != pn ) continue;
SetJudgment( tn.result.tns, iTrack, tn.result.fTapNoteOffset );
}
}
@@ -2431,7 +2425,7 @@ void Player::UpdateJudgedRows()
switch( tn.result.tns )
{
DEFAULT_FAIL( tn.result.tns );
case TNS_None:
case TNS_None:
bAllJudged = false;
continue;
case TNS_AvoidMine:
@@ -2441,9 +2435,7 @@ void Player::UpdateJudgedRows()
}
if( m_pNoteField )
m_pNoteField->DidTapNote( iter.Track(), tn.result.tns, false );
if( tn.pn != PLAYER_INVALID && tn.pn != pn )
continue;
if( tn.iKeysoundIndex >= 0 && tn.iKeysoundIndex < (int) m_vKeysounds.size() )
setSounds.insert( &m_vKeysounds[tn.iKeysoundIndex] );
else if( g_bEnableMineSoundPlayback )
@@ -2489,11 +2481,10 @@ void Player::UpdateJudgedRows()
}
}
void Player::FlashGhostRow( int iRow, PlayerNumber pn )
void Player::FlashGhostRow( int iRow )
{
TapNoteScore lastTNS = NoteDataWithScoring::LastTapNoteWithResult( m_NoteData, iRow, pn ).result.tns;
const bool bBlind = (m_pPlayerState->m_PlayerOptions.GetCurrent().m_fBlind != 0);
// XXX This is the wrong combo for shared players. STATSMAN->m_CurStageStats.m_Player[pn] might work but could be wrong.
const bool bBright = ( m_pPlayerStageStats && m_pPlayerStageStats->m_iCurCombo > int(BRIGHT_GHOST_COMBO_THRESHOLD) ) || bBlind;
for( int iTrack = 0; iTrack < m_NoteData.GetNumTracks(); ++iTrack )
@@ -2502,8 +2493,6 @@ void Player::FlashGhostRow( int iRow, PlayerNumber pn )
if( tn.type == TapNote::empty || tn.type == TapNote::mine || tn.type == TapNote::fake )
continue;
if( tn.pn != PLAYER_INVALID && tn.pn != pn )
continue;
if( m_pNoteField )
m_pNoteField->DidTapNote( iTrack, lastTNS, bBright );
if( lastTNS >= TNS_W3 || bBlind )
@@ -2743,8 +2732,7 @@ void Player::HandleTapRowScore( unsigned row )
if( bNoCheating && m_pPlayerState->m_PlayerController == PC_AUTOPLAY )
return;
PlayerNumber pn = m_pPlayerState->m_PlayerNumber;
TapNoteScore scoreOfLastTap = NoteDataWithScoring::LastTapNoteWithResult(m_NoteData, row, pn).result.tns;
TapNoteScore scoreOfLastTap = NoteDataWithScoring::LastTapNoteWithResult(m_NoteData, row).result.tns;
const int iOldCombo = m_pPlayerStageStats ? m_pPlayerStageStats->m_iCurCombo : 0;
const int iOldMissCombo = m_pPlayerStageStats ? m_pPlayerStageStats->m_iCurMissCombo : 0;