From b631efc3128ed02c1e194505e85df47853f67b35 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 30 May 2003 20:23:57 +0000 Subject: [PATCH] handle NoteField reloading inside NoteField; this fixes note skins in the editor --- stepmania/src/NoteField.cpp | 8 ++++++++ stepmania/src/NoteField.h | 3 ++- stepmania/src/Player.cpp | 5 +++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/stepmania/src/NoteField.cpp b/stepmania/src/NoteField.cpp index 8ad2e02b9a..87e04a45d5 100644 --- a/stepmania/src/NoteField.cpp +++ b/stepmania/src/NoteField.cpp @@ -67,6 +67,8 @@ void NoteField::Load( NoteData* pNoteData, PlayerNumber pn, int iFirstPixelToDra for( int c=0; cm_PlayerOptions[m_PlayerNumber].m_sNoteSkin; + ASSERT( GetNumTracks() == GAMESTATE->GetCurrentStyleDef()->m_iColsPerPlayer ); } @@ -79,6 +81,12 @@ void NoteField::ReloadNoteSkin() void NoteField::Update( float fDeltaTime ) { + if( m_sLastSeenNoteSkin != GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_sNoteSkin ) + { + ReloadNoteSkin(); + m_sLastSeenNoteSkin = GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_sNoteSkin; + } + m_rectMarkerBar.Update( fDeltaTime ); if( m_fPercentFadeToFail >= 0 ) diff --git a/stepmania/src/NoteField.h b/stepmania/src/NoteField.h index 601583eb1d..abe108bcd6 100644 --- a/stepmania/src/NoteField.h +++ b/stepmania/src/NoteField.h @@ -33,7 +33,6 @@ public: virtual void DrawPrimitives(); void Load( NoteData* pNoteData, PlayerNumber pn, int iFirstPixelToDraw, int iLastPixelToDraw ); - void ReloadNoteSkin(); void RemoveTapNoteRow( int iIndex ); vector m_bIsHoldingHoldNote; // hack: Need this to know when to "light up" the center of hold notes @@ -43,6 +42,7 @@ public: void FadeToFail(); protected: + void ReloadNoteSkin(); void DrawBeatBar( const float fBeat ); void DrawMarkerBar( const float fBeat ); void DrawAreaHighlight( const float fStartBeat, const float fEndBeat ); @@ -65,6 +65,7 @@ protected: BitmapText m_textMeasureNumber; Quad m_rectMarkerBar; Quad m_rectAreaHighlight; + CString m_sLastSeenNoteSkin; }; #endif diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index d3d5b836a2..c844733ff2 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -280,11 +280,12 @@ void Player::Update( float fDeltaTime ) SetHoldNoteScore(i, hns); } - if( m_sLastSeenNoteSkin != GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_sNoteSkin ) +/* Is there a reason this wasn't done within NoteField to begin with? */ +/* if( m_sLastSeenNoteSkin != GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_sNoteSkin ) { m_NoteField.ReloadNoteSkin(); m_sLastSeenNoteSkin = GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_sNoteSkin; - } + } */ ActorFrame::Update( fDeltaTime ); }