fix wrong Steps being used for first multiplayer difficulty

This commit is contained in:
Chris Danford
2007-10-27 09:04:27 +00:00
parent 7ca1ac3fff
commit e8bca9e85c
+16 -17
View File
@@ -842,30 +842,29 @@ void ScreenGameplay::InitSongQueues()
} }
} }
for( int i=0; i<(int)m_apSongsQueue.size(); i++ ) if( GAMESTATE->m_bMultiplayer )
{ {
Song *pSong = m_apSongsQueue[i]; for( int i=0; i<(int)m_apSongsQueue.size(); i++ )
FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
{ {
Steps *pOldSteps = pi->m_vpStepsQueue[i]; Song *pSong = m_apSongsQueue[i];
vector<Steps*> vpSteps; FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
SongUtil::GetSteps( pSong, vpSteps, pOldSteps->m_StepsType );
StepsUtil::SortNotesArrayByDifficulty( vpSteps );
vector<Steps*>::iterator iter = find( vpSteps.begin(), vpSteps.end(), pOldSteps );
int iIndexBase = 0;
if( iter != vpSteps.end() )
{ {
iIndexBase = iter - vpSteps.begin(); Steps *pOldSteps = pi->m_vpStepsQueue[i];
CLAMP( iIndexBase, 0, vpSteps.size() - GAMESTATE->m_iNumMultiplayerNoteFields );
} vector<Steps*> vpSteps;
SongUtil::GetSteps( pSong, vpSteps, pOldSteps->m_StepsType );
StepsUtil::SortNotesArrayByDifficulty( vpSteps );
vector<Steps*>::iterator iter = find( vpSteps.begin(), vpSteps.end(), pOldSteps );
int iIndexBase = 0;
if( iter != vpSteps.end() )
{
iIndexBase = iter - vpSteps.begin();
CLAMP( iIndexBase, 0, vpSteps.size() - GAMESTATE->m_iNumMultiplayerNoteFields );
}
if( pi->m_iAddToDifficulty > 0 )
{
int iIndexToUse = iIndexBase + pi->m_iAddToDifficulty; int iIndexToUse = iIndexBase + pi->m_iAddToDifficulty;
CLAMP( iIndexToUse, 0, vpSteps.size()-1 ); CLAMP( iIndexToUse, 0, vpSteps.size()-1 );
LOG->Trace( "pi->m_iAddToDifficulty %d, iIndexToUse %d", pi->m_iAddToDifficulty, iIndexToUse );
Steps *pSteps = vpSteps[iIndexToUse]; Steps *pSteps = vpSteps[iIndexToUse];
pi->m_vpStepsQueue[i] = pSteps; pi->m_vpStepsQueue[i] = pSteps;