From 7e586c3c8b1d92643f92a4f53a1fdf4aa9a9daf1 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 21 Apr 2003 22:26:07 +0000 Subject: [PATCH] fix long/marathon balloons --- stepmania/Themes/default/metrics.ini | 4 +-- stepmania/src/Actor.cpp | 9 ++++-- stepmania/src/ScreenSelectMusic.cpp | 41 ++++++++++++++++------------ stepmania/src/ScreenSelectMusic.h | 3 +- 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 198ca65435..9ec860cddf 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -483,8 +483,8 @@ OptionIconsP2OnCommand=zoomy,0;linear,0.5;zoomy,1 OptionIconsP2OffCommand=linear,0.5;zoomy,0 BalloonX=392 BalloonY=140 -BalloonOnCommand=zoomy,0;linear,0.5;zoomy,1 -BalloonOffCommand=linear,0.5;zoomy,0 +BalloonOnCommand=linear,0.2;zoomy,1;bob;effectmagnitude,0,10,0 +BalloonOffCommand=linear,0.2;zoomy,0 OptionsMessageX=320 OptionsMessageY=240 OptionsMessageOnCommand=zoomy,0;linear,0.25;zoomy,1;sleep,1;linear,0.25;zoomy,0 diff --git a/stepmania/src/Actor.cpp b/stepmania/src/Actor.cpp index c4a78cab5a..c92cd1ea66 100644 --- a/stepmania/src/Actor.cpp +++ b/stepmania/src/Actor.cpp @@ -479,10 +479,13 @@ void Actor::SetEffectBounce( float fPeriod, RageVector3 vect ) void Actor::SetEffectBob( float fPeriod, RageVector3 vect ) { - m_Effect = bob; - m_fEffectPeriodSeconds = fPeriod; + if( m_Effect!=bob || m_fEffectPeriodSeconds!=fPeriod ) + { + m_Effect = bob; + m_fEffectPeriodSeconds = fPeriod; + m_fSecsIntoEffect = 0; + } m_vEffectMagnitude = vect; - m_fSecsIntoEffect = 0; } void Actor::SetEffectSpin( RageVector3 vect ) diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index 91c7bf3581..b5261754f5 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -143,15 +143,10 @@ ScreenSelectMusic::ScreenSelectMusic() : Screen("ScreenSelectMusic") m_MusicSortDisplay.Set( GAMESTATE->m_SongSortOrder ); this->AddChild( &m_MusicSortDisplay ); - m_sprMarathonBalloon.SetName( "Balloon" ); - m_sprMarathonBalloon.Load( THEME->GetPathToG("ScreenSelectMusic marathon") ); - m_sprMarathonBalloon.SetDiffuse( RageColor(1,1,1,0) ); - this->AddChild( &m_sprMarathonBalloon ); - - m_sprLongBalloon.SetName( "Balloon" ); - m_sprLongBalloon.Load( THEME->GetPathToG("ScreenSelectMusic long") ); - m_sprLongBalloon.SetDiffuse( RageColor(1,1,1,0) ); - this->AddChild( &m_sprLongBalloon ); + m_sprBalloon.SetName( "Balloon" ); + TEXTUREMAN->CacheTexture( THEME->GetPathToG("ScreenSelectMusic balloon long") ); + TEXTUREMAN->CacheTexture( THEME->GetPathToG("ScreenSelectMusic balloon marathon") ); + this->AddChild( &m_sprBalloon ); m_sprOptionsMessage.SetName( "OptionsMessage" ); m_sprOptionsMessage.Load( THEME->GetPathToG("ScreenSelectMusic options message 1x2") ); @@ -739,11 +734,6 @@ void ScreenSelectMusic::AfterMusicChange() no_banner_change = true; } - m_sprMarathonBalloon.StopTweening(); - OFF_COMMAND( m_sprMarathonBalloon ); - m_sprLongBalloon.StopTweening(); - OFF_COMMAND( m_sprLongBalloon ); - switch( m_MusicWheel.GetSelectedType() ) { case TYPE_SECTION: @@ -756,6 +746,9 @@ void ScreenSelectMusic::AfterMusicChange() m_Banner.LoadFromGroup( sGroup ); // if this isn't a group, it'll default to the fallback banner m_BPMDisplay.NoBPM(); m_sprCDTitle.UnloadTexture(); + + m_sprBalloon.StopTweening(); + OFF_COMMAND( m_sprBalloon ); } break; case TYPE_SONG: @@ -817,13 +810,20 @@ void ScreenSelectMusic::AfterMusicChange() * like the effect with a lot of delay. */ if( pSong->m_fMusicLengthSeconds > PREFSMAN->m_fMarathonVerSongSeconds ) { - m_sprMarathonBalloon.StopTweening(); - SET_XY_AND_ON_COMMAND( m_sprMarathonBalloon ); + m_sprBalloon.StopTweening(); + m_sprBalloon.Load( THEME->GetPathToG("ScreenSelectMusic balloon marathon") ); + SET_XY_AND_ON_COMMAND( m_sprBalloon ); } else if( pSong->m_fMusicLengthSeconds > PREFSMAN->m_fLongVerSongSeconds ) { - m_sprLongBalloon.StopTweening(); - SET_XY_AND_ON_COMMAND( m_sprLongBalloon ); + m_sprBalloon.StopTweening(); + m_sprBalloon.Load( THEME->GetPathToG("ScreenSelectMusic balloon long") ); + SET_XY_AND_ON_COMMAND( m_sprBalloon ); + } + else + { + m_sprBalloon.StopTweening(); + OFF_COMMAND( m_sprBalloon ); } } break; @@ -839,6 +839,8 @@ void ScreenSelectMusic::AfterMusicChange() m_fSampleStartSeconds = -1; m_fSampleLengthSeconds = -1; + m_sprBalloon.StopTweening(); + OFF_COMMAND( m_sprBalloon ); break; case TYPE_RANDOM: if(!no_banner_change) @@ -851,6 +853,9 @@ void ScreenSelectMusic::AfterMusicChange() m_sSampleMusicToPlay = THEME->GetPathToS("ScreenSelectMusic random music"); m_fSampleStartSeconds = -1; m_fSampleLengthSeconds = -1; + + m_sprBalloon.StopTweening(); + OFF_COMMAND( m_sprBalloon ); break; default: ASSERT(0); diff --git a/stepmania/src/ScreenSelectMusic.h b/stepmania/src/ScreenSelectMusic.h index 0df951dd0f..8df66b6d37 100644 --- a/stepmania/src/ScreenSelectMusic.h +++ b/stepmania/src/ScreenSelectMusic.h @@ -76,8 +76,7 @@ protected: Sprite m_sprHighScoreFrame[NUM_PLAYERS]; BitmapText m_textHighScore[NUM_PLAYERS]; MusicWheel m_MusicWheel; - Sprite m_sprMarathonBalloon; - Sprite m_sprLongBalloon; + Sprite m_sprBalloon; bool m_bMadeChoice; bool m_bGoToOptions;