BUG FIX: MusicWheel now tweens off screen and Music comment plays

This commit is contained in:
Chris Danford
2002-01-18 21:19:05 +00:00
parent e3be3fd93d
commit c8f16c75c1
3 changed files with 63 additions and 20 deletions
+32 -9
View File
@@ -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;
} }
+15 -3
View File
@@ -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;
+16 -8
View File
@@ -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