BUG FIX: MusicWheel now tweens off screen and Music comment plays
This commit is contained in:
@@ -189,7 +189,7 @@ MusicWheel::MusicWheel()
|
|||||||
|
|
||||||
|
|
||||||
// fade the wheel in
|
// fade the wheel in
|
||||||
m_WheelState = STATE_FADING_ON;
|
m_WheelState = STATE_IDLE;
|
||||||
m_fTimeLeftInState = FADE_TIME;
|
m_fTimeLeftInState = FADE_TIME;
|
||||||
|
|
||||||
|
|
||||||
@@ -316,19 +316,32 @@ float MusicWheel::GetBannerBrightness( float fPosOffsetsFromMiddle )
|
|||||||
|
|
||||||
float MusicWheel::GetBannerAlpha( float fPosOffsetsFromMiddle )
|
float MusicWheel::GetBannerAlpha( float fPosOffsetsFromMiddle )
|
||||||
{
|
{
|
||||||
if( m_WheelState == STATE_FADING_OFF )
|
if( m_WheelState == STATE_FLYING_OFF_BEFORE_NEXT_SORT
|
||||||
|
|| m_WheelState == STATE_TWEENING_OFF_SCREEN )
|
||||||
|
{
|
||||||
return m_fTimeLeftInState / FADE_TIME;
|
return m_fTimeLeftInState / FADE_TIME;
|
||||||
else if( m_WheelState == STATE_FADING_ON )
|
}
|
||||||
|
else if( m_WheelState == STATE_FLYING_ON_AFTER_NEXT_SORT
|
||||||
|
|| m_WheelState == STATE_TWEENING_ON_SCREEN )
|
||||||
|
{
|
||||||
return 1 - (m_fTimeLeftInState / FADE_TIME);
|
return 1 - (m_fTimeLeftInState / FADE_TIME);
|
||||||
|
}
|
||||||
|
else if( m_WheelState == STATE_WAITING_OFF_SCREEN )
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float MusicWheel::GetBannerX( float fPosOffsetsFromMiddle )
|
float MusicWheel::GetBannerX( float fPosOffsetsFromMiddle )
|
||||||
{
|
{
|
||||||
float fX = (1-cos((fPosOffsetsFromMiddle)/3))*95.0f;
|
float fX = (1-cos((fPosOffsetsFromMiddle)/3))*95.0f;
|
||||||
|
|
||||||
if( m_WheelState == STATE_FADING_OFF )
|
if( m_WheelState == STATE_FLYING_OFF_BEFORE_NEXT_SORT
|
||||||
|
|| m_WheelState == STATE_TWEENING_OFF_SCREEN )
|
||||||
{
|
{
|
||||||
float fDistFromCenter = fabs( fPosOffsetsFromMiddle );
|
float fDistFromCenter = fabs( fPosOffsetsFromMiddle );
|
||||||
float fPercentOffScreen = 1- (m_fTimeLeftInState / FADE_TIME);
|
float fPercentOffScreen = 1- (m_fTimeLeftInState / FADE_TIME);
|
||||||
@@ -337,7 +350,8 @@ float MusicWheel::GetBannerX( float fPosOffsetsFromMiddle )
|
|||||||
float fXPixelOffset = fXLogicalOffset * 600;
|
float fXPixelOffset = fXLogicalOffset * 600;
|
||||||
fX += fXPixelOffset;
|
fX += fXPixelOffset;
|
||||||
}
|
}
|
||||||
else if( m_WheelState == STATE_FADING_ON )
|
else if( m_WheelState == STATE_FLYING_ON_AFTER_NEXT_SORT
|
||||||
|
|| m_WheelState == STATE_TWEENING_ON_SCREEN )
|
||||||
{
|
{
|
||||||
float fDistFromCenter = fabs( fPosOffsetsFromMiddle );
|
float fDistFromCenter = fabs( fPosOffsetsFromMiddle );
|
||||||
float fPercentOffScreen = m_fTimeLeftInState / FADE_TIME;
|
float fPercentOffScreen = m_fTimeLeftInState / FADE_TIME;
|
||||||
@@ -427,9 +441,9 @@ void MusicWheel::Update( float fDeltaTime )
|
|||||||
m_WheelState = STATE_IDLE; // now, wait for input
|
m_WheelState = STATE_IDLE; // now, wait for input
|
||||||
PlayMusicSample();
|
PlayMusicSample();
|
||||||
break;
|
break;
|
||||||
case STATE_FADING_OFF:
|
case STATE_FLYING_OFF_BEFORE_NEXT_SORT:
|
||||||
{
|
{
|
||||||
m_WheelState = STATE_FADING_ON;
|
m_WheelState = STATE_FLYING_ON_AFTER_NEXT_SORT;
|
||||||
m_fTimeLeftInState = FADE_TIME;
|
m_fTimeLeftInState = FADE_TIME;
|
||||||
|
|
||||||
Song* pPrevSelectedSong = m_WheelItems[m_iSelection].m_pSong;
|
Song* pPrevSelectedSong = m_WheelItems[m_iSelection].m_pSong;
|
||||||
@@ -454,10 +468,19 @@ void MusicWheel::Update( float fDeltaTime )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case STATE_FADING_ON:
|
case STATE_FLYING_ON_AFTER_NEXT_SORT:
|
||||||
PlayMusicSample();
|
PlayMusicSample();
|
||||||
m_WheelState = STATE_IDLE; // now, wait for input
|
m_WheelState = STATE_IDLE; // now, wait for input
|
||||||
break;
|
break;
|
||||||
|
case STATE_TWEENING_ON_SCREEN:
|
||||||
|
PlayMusicSample();
|
||||||
|
m_WheelState = STATE_IDLE;
|
||||||
|
m_fTimeLeftInState = 0;
|
||||||
|
break;
|
||||||
|
case STATE_TWEENING_OFF_SCREEN:
|
||||||
|
m_WheelState = STATE_WAITING_OFF_SCREEN;
|
||||||
|
m_fTimeLeftInState = 0;
|
||||||
|
break;
|
||||||
case STATE_IDLE:
|
case STATE_IDLE:
|
||||||
m_fTimeLeftInState = 0;
|
m_fTimeLeftInState = 0;
|
||||||
break;
|
break;
|
||||||
@@ -510,7 +533,7 @@ void MusicWheel::NextSort()
|
|||||||
m_MusicSortDisplay.BeginTweening( FADE_TIME, TWEEN_BIAS_END );
|
m_MusicSortDisplay.BeginTweening( FADE_TIME, TWEEN_BIAS_END );
|
||||||
m_MusicSortDisplay.SetTweenXY( SORT_ICON_OFF_SCREEN_X, SORT_ICON_OFF_SCREEN_Y );
|
m_MusicSortDisplay.SetTweenXY( SORT_ICON_OFF_SCREEN_X, SORT_ICON_OFF_SCREEN_Y );
|
||||||
|
|
||||||
m_WheelState = STATE_FADING_OFF;
|
m_WheelState = STATE_FLYING_OFF_BEFORE_NEXT_SORT;
|
||||||
m_fTimeLeftInState = FADE_TIME;
|
m_fTimeLeftInState = FADE_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,8 +78,11 @@ class MusicWheel : public ActorFrame
|
|||||||
public:
|
public:
|
||||||
MusicWheel();
|
MusicWheel();
|
||||||
|
|
||||||
void Update( float fDeltaTime );
|
virtual void Update( float fDeltaTime );
|
||||||
void RenderPrimitives();
|
virtual void RenderPrimitives();
|
||||||
|
|
||||||
|
virtual void TweenOnScreen() { m_WheelState = STATE_TWEENING_ON_SCREEN; m_fTimeLeftInState = FADE_TIME; };
|
||||||
|
virtual void TweenOffScreen() { m_WheelState = STATE_TWEENING_OFF_SCREEN; m_fTimeLeftInState = FADE_TIME; };
|
||||||
|
|
||||||
void PrevMusic();
|
void PrevMusic();
|
||||||
void NextMusic();
|
void NextMusic();
|
||||||
@@ -114,7 +117,16 @@ protected:
|
|||||||
CString m_sExpandedSectionName;
|
CString m_sExpandedSectionName;
|
||||||
|
|
||||||
|
|
||||||
enum WheelState { STATE_IDLE, STATE_SWITCHING_TO_PREV_MUSIC, STATE_SWITCHING_TO_NEXT_MUSIC, STATE_FADING_OFF, STATE_FADING_ON };
|
enum WheelState {
|
||||||
|
STATE_IDLE,
|
||||||
|
STATE_SWITCHING_TO_PREV_MUSIC,
|
||||||
|
STATE_SWITCHING_TO_NEXT_MUSIC,
|
||||||
|
STATE_FLYING_OFF_BEFORE_NEXT_SORT,
|
||||||
|
STATE_FLYING_ON_AFTER_NEXT_SORT,
|
||||||
|
STATE_TWEENING_ON_SCREEN,
|
||||||
|
STATE_TWEENING_OFF_SCREEN,
|
||||||
|
STATE_WAITING_OFF_SCREEN
|
||||||
|
};
|
||||||
WheelState m_WheelState;
|
WheelState m_WheelState;
|
||||||
float m_fTimeLeftInState;
|
float m_fTimeLeftInState;
|
||||||
|
|
||||||
|
|||||||
@@ -564,14 +564,6 @@ SOURCE=.\BitmapText.h
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\BlurredSprite.cpp
|
|
||||||
# End Source File
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\BlurredSprite.h
|
|
||||||
# End Source File
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\BPMDisplay.cpp
|
SOURCE=.\BPMDisplay.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
@@ -588,6 +580,14 @@ SOURCE=.\ColorArrow.h
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\FocusingSprite.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\FocusingSprite.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\GhostArrow.cpp
|
SOURCE=.\GhostArrow.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
@@ -636,6 +636,14 @@ SOURCE=.\MiniBackground.h
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\MotionBlurSprite.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\MotionBlurSprite.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\MusicSortDisplay.cpp
|
SOURCE=.\MusicSortDisplay.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|||||||
Reference in New Issue
Block a user