fix tweening when switching receptor note skins
This commit is contained in:
@@ -952,3 +952,10 @@ void Actor::SetBlendMode( CString s )
|
|||||||
else ASSERT(0);
|
else ASSERT(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Actor::CopyTweening( const Actor &from )
|
||||||
|
{
|
||||||
|
m_current = from.m_current;
|
||||||
|
m_start = from.m_start;
|
||||||
|
m_TweenStates = from.m_TweenStates;
|
||||||
|
m_TweenInfo = from.m_TweenInfo;
|
||||||
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public:
|
|||||||
bool IsFirstUpdate();
|
bool IsFirstUpdate();
|
||||||
virtual void Update( float fDeltaTime );
|
virtual void Update( float fDeltaTime );
|
||||||
virtual void UpdateTweening( float fDeltaTime );
|
virtual void UpdateTweening( float fDeltaTime );
|
||||||
|
virtual void CopyTweening( const Actor &from );
|
||||||
|
|
||||||
|
|
||||||
CString m_sName, m_sID;
|
CString m_sName, m_sID;
|
||||||
|
|||||||
@@ -125,3 +125,16 @@ void GhostArrowRow::DidTapMine( int iCol, TapNoteScore score )
|
|||||||
{
|
{
|
||||||
m_GhostMine[iCol].Step( score );
|
m_GhostMine[iCol].Step( score );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GhostArrowRow::CopyTweening( const GhostArrowRow &from )
|
||||||
|
{
|
||||||
|
for( int c=0; c<m_iNumCols; c++ )
|
||||||
|
{
|
||||||
|
m_GhostDim[c].CopyTweening( from.m_GhostDim[c] );
|
||||||
|
m_GhostBright[c].CopyTweening( from.m_GhostBright[c] );
|
||||||
|
m_GhostMine[c].CopyTweening( from.m_GhostMine[c] );
|
||||||
|
m_HoldGhost[c].CopyTweening( from.m_HoldGhost[c] );
|
||||||
|
}
|
||||||
|
ActorFrame::CopyTweening( from );
|
||||||
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ public:
|
|||||||
GhostArrowRow();
|
GhostArrowRow();
|
||||||
virtual void Update( float fDeltaTime );
|
virtual void Update( float fDeltaTime );
|
||||||
virtual void DrawPrimitives();
|
virtual void DrawPrimitives();
|
||||||
|
virtual void CopyTweening( const GhostArrowRow &from );
|
||||||
|
|
||||||
void Load( PlayerNumber pn, CString NoteSkin, float fYReverseOffset );
|
void Load( PlayerNumber pn, CString NoteSkin, float fYReverseOffset );
|
||||||
|
|
||||||
|
|||||||
@@ -77,3 +77,9 @@ void GrayArrowRow::UpdateBars( int iCol )
|
|||||||
m_GrayArrow[iCol].UpdateBars();
|
m_GrayArrow[iCol].UpdateBars();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GrayArrowRow::CopyTweening( const GrayArrowRow &from )
|
||||||
|
{
|
||||||
|
for( int c=0; c<m_iNumCols; c++ )
|
||||||
|
m_GrayArrow[c].CopyTweening( from.m_GrayArrow[c] );
|
||||||
|
ActorFrame::CopyTweening( from );
|
||||||
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ public:
|
|||||||
|
|
||||||
virtual void Update( float fDeltaTime );
|
virtual void Update( float fDeltaTime );
|
||||||
virtual void DrawPrimitives();
|
virtual void DrawPrimitives();
|
||||||
|
virtual void CopyTweening( const GrayArrowRow &from );
|
||||||
|
|
||||||
void Step( int iCol );
|
void Step( int iCol );
|
||||||
void UpdateBars( int iCol );
|
void UpdateBars( int iCol );
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ NoteField::NoteField()
|
|||||||
m_fBeginMarker = m_fEndMarker = -1;
|
m_fBeginMarker = m_fEndMarker = -1;
|
||||||
|
|
||||||
m_fPercentFadeToFail = -1;
|
m_fPercentFadeToFail = -1;
|
||||||
|
LastDisplay = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
NoteField::~NoteField()
|
NoteField::~NoteField()
|
||||||
@@ -147,6 +148,20 @@ void NoteField::Update( float fDeltaTime )
|
|||||||
m_rectMarkerBar.Update( fDeltaTime );
|
m_rectMarkerBar.Update( fDeltaTime );
|
||||||
|
|
||||||
NoteDisplayCols *cur = SearchForSongBeat();
|
NoteDisplayCols *cur = SearchForSongBeat();
|
||||||
|
|
||||||
|
if( cur != LastDisplay )
|
||||||
|
{
|
||||||
|
/* The display has changed. We might be in the middle of a step; copy any
|
||||||
|
* tweens. */
|
||||||
|
if( LastDisplay )
|
||||||
|
{
|
||||||
|
cur->m_GhostArrowRow.CopyTweening( LastDisplay->m_GhostArrowRow );
|
||||||
|
cur->m_GrayArrowRow.CopyTweening( LastDisplay->m_GrayArrowRow );
|
||||||
|
}
|
||||||
|
|
||||||
|
LastDisplay = cur;
|
||||||
|
}
|
||||||
|
|
||||||
cur->m_GrayArrowRow.Update( fDeltaTime );
|
cur->m_GrayArrowRow.Update( fDeltaTime );
|
||||||
cur->m_GhostArrowRow.Update( fDeltaTime );
|
cur->m_GhostArrowRow.Update( fDeltaTime );
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,8 @@ protected:
|
|||||||
|
|
||||||
NDMap m_BeatToNoteDisplays;
|
NDMap m_BeatToNoteDisplays;
|
||||||
|
|
||||||
|
NoteDisplayCols *LastDisplay;
|
||||||
|
|
||||||
// used in MODE_EDIT
|
// used in MODE_EDIT
|
||||||
Sprite m_sprBars; // 4 frames: Measure, 4th, 8th, 16th
|
Sprite m_sprBars; // 4 frames: Measure, 4th, 8th, 16th
|
||||||
BitmapText m_textMeasureNumber;
|
BitmapText m_textMeasureNumber;
|
||||||
|
|||||||
Reference in New Issue
Block a user