diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 5c118e995e..f2c8099b46 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -340,10 +340,15 @@ void GameState::Update( float fDelta ) for( unsigned s=0; sm_fMusicSeconds && - m_fMusicSeconds < attack.fStartSecond+attack.fSecsRemaining); + attack.fStartSecond < this->m_fMusicSeconds && + m_fMusicSeconds < attack.fStartSecond+attack.fSecsRemaining; if( m_ActiveAttacks[p][s].bOn == bCurrentlyEnabled ) continue; /* OK */ diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 5a1be55681..b5f4140aa7 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -787,16 +787,15 @@ void ScreenGameplay::SetupSong( int p, int iSongIndex ) GAMESTATE->m_ModsToApply[p].clear(); for( unsigned i=0; iLaunchAttack( (PlayerNumber)p, m_asModifiersQueue[p][iSongIndex][i] ); - GAMESTATE->m_SongOptions.FromString( m_asModifiersQueue[p][iSongIndex][i].sModifier ); + /* Hack: Course modifiers that are set to start immediately shouldn't tween on. */ + Attack a = m_asModifiersQueue[p][iSongIndex][i]; + if( a.fStartSecond == 0 ) + a.fStartSecond = -1; // now + + GAMESTATE->LaunchAttack( (PlayerNumber)p, a ); + GAMESTATE->m_SongOptions.FromString( a.sModifier ); } - /* Hack: Course modifiers that are set to start immediately shouldn't tween on. */ - for( unsigned s=0; sm_ActiveAttacks[p].size(); s++ ) - { - if( GAMESTATE->m_ActiveAttacks[p][s].fStartSecond == 0 ) - GAMESTATE->m_ActiveAttacks[p][s].fStartSecond = -1; - } /* Update attack bOn flags. */ GAMESTATE->Update(0); GAMESTATE->RebuildPlayerOptionsFromActiveAttacks( (PlayerNumber)p );