diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 406e5603bb..fba00c7e9a 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -393,6 +393,18 @@ void PlayerMinus::Update( float fDeltaTime ) // process transforms that are waiting to be applied + ApplyWaitingTransforms(); + + /* Cache any newly-used note skins. Normally, the only new skins cached now are + * when we're adding course modifiers at the start of a song. If this is spending + * time loading skins in the middle of a song, something is wrong. */ + m_pNoteField->CacheAllUsedNoteSkins(); + + ActorFrame::Update( fDeltaTime ); +} + +void PlayerMinus::ApplyWaitingTransforms() +{ for( unsigned j=0; jm_ModsToApply[m_PlayerNumber].size(); j++ ) { const Attack &mod = GAMESTATE->m_ModsToApply[m_PlayerNumber][j]; @@ -415,13 +427,6 @@ void PlayerMinus::Update( float fDeltaTime ) m_pNoteField->CopyRange( this, BeatToNoteRow(fStartBeat), BeatToNoteRow(fEndBeat), BeatToNoteRow(fStartBeat) ); } GAMESTATE->m_ModsToApply[m_PlayerNumber].clear(); - - /* Cache any newly-used note skins. Normally, the only new skins cached now are - * when we're adding course modifiers at the start of a song. If this is spending - * time loading skins in the middle of a song, something is wrong. */ - m_pNoteField->CacheAllUsedNoteSkins(); - - ActorFrame::Update( fDeltaTime ); } void PlayerMinus::DrawPrimitives() diff --git a/stepmania/src/Player.h b/stepmania/src/Player.h index 04ffc671be..c7472d667e 100644 --- a/stepmania/src/Player.h +++ b/stepmania/src/Player.h @@ -55,6 +55,8 @@ public: void FadeToFail(); int GetDancingCharacterState() { return m_iDCState; }; void SetCharacterState(int iDCState) { m_iDCState = iDCState; }; + void ApplyWaitingTransforms(); + protected: void UpdateTapNotesMissedOlderThan( float fMissIfOlderThanThisBeat ); void OnRowCompletelyJudged( int iStepIndex );