diff --git a/src/NoteField.cpp b/src/NoteField.cpp index 0b03ed1823..f1686dfff5 100644 --- a/src/NoteField.cpp +++ b/src/NoteField.cpp @@ -221,7 +221,19 @@ void NoteField::Load( ASSERT_M(m_pNoteData->GetNumTracks() == GAMESTATE->GetCurrentStyle(m_pPlayerState->m_PlayerNumber)->m_iColsPerPlayer, ssprintf("NumTracks %d = ColsPerPlayer %d",m_pNoteData->GetNumTracks(), GAMESTATE->GetCurrentStyle(m_pPlayerState->m_PlayerNumber)->m_iColsPerPlayer)); - + + // If we're in routine mode, the noteskin is forcibly set to the routine + // noteskin metrics (which is bad in its own way). The noteskin set in the + // options is ignored and probably already set anyway. -Kyz + if(GAMESTATE->GetCurrentStyle(m_pPlayerState->m_PlayerNumber)->m_StyleType != StyleType_TwoPlayersSharedSides) + { + ensure_note_displays_have_skin(); + } + InitColumnRenderers(); +} + +void NoteField::ensure_note_displays_have_skin() +{ // The NoteSkin may have changed at the beginning of a new course song. RString sNoteSkinLower = m_pPlayerState->m_PlayerOptions.GetCurrent().m_sNoteSkin; @@ -265,7 +277,6 @@ void NoteField::Load( ASSERT_M( it != m_NoteDisplays.end(), sNoteSkinLower ); m_pDisplays[pn] = it->second; } - InitColumnRenderers(); } void NoteField::InitColumnRenderers() diff --git a/src/NoteField.h b/src/NoteField.h index f49670131a..0a347023ee 100644 --- a/src/NoteField.h +++ b/src/NoteField.h @@ -31,6 +31,7 @@ public: int iDrawDistanceBeforeTargetsPixels ); virtual void Unload(); + void ensure_note_displays_have_skin(); void InitColumnRenderers(); virtual void HandleMessage( const Message &msg );