ScreenSelectMusic::BeginScreen

fix TweenOffScreen run twice
This commit is contained in:
Glenn Maynard
2005-07-22 22:38:53 +00:00
parent 1cfda9a901
commit 0cf4fc957c
2 changed files with 69 additions and 63 deletions
+67 -61
View File
@@ -204,7 +204,7 @@ void ScreenSelectMusic::Init()
{
m_DifficultyList.SetName( "DifficultyList" );
m_DifficultyList.Load();
SET_XY_AND_ON_COMMAND( m_DifficultyList );
SET_XY( m_DifficultyList );
this->AddChild( &m_DifficultyList );
}
@@ -249,7 +249,7 @@ void ScreenSelectMusic::Init()
m_DifficultyMeter[p].SetName( ssprintf("MeterP%d",p+1) );
m_DifficultyMeter[p].Load( METER_TYPE );
SET_XY_AND_ON_COMMAND( m_DifficultyMeter[p] );
SET_XY( m_DifficultyMeter[p] );
this->AddChild( &m_DifficultyMeter[p] );
// add an icon onto the song select to show what
@@ -310,7 +310,12 @@ void ScreenSelectMusic::Init()
m_soundLocked.Load( THEME->GetPathS(m_sName,"locked") );
m_soundSelectPressed.Load( THEME->GetPathS(m_sName,"select down"), true );
SOUND->PlayOnceFromAnnouncer( "select music intro" );
this->SortByDrawOrder();
}
void ScreenSelectMusic::BeginScreen()
{
ScreenWithMenuElements::BeginScreen();
m_bMadeChoice = false;
m_bGoToOptions = false;
@@ -318,12 +323,67 @@ void ScreenSelectMusic::Init()
ZERO( m_iSelection );
AfterMusicChange();
TweenOursOnScreen();
this->SortByDrawOrder();
m_bgOptionsOut.Reset();
m_bgNoOptionsOut.Reset();
FOREACH_HumanPlayer( p )
{
ON_COMMAND( m_DifficultyMeter[p] );
}
if( SHOW_DIFFICULTY_LIST )
ON_COMMAND( m_DifficultyList );
TweenSongPartsOnScreen( true );
TweenCoursePartsOnScreen( true );
switch( GAMESTATE->m_SortOrder )
{
case SORT_ALL_COURSES:
case SORT_NONSTOP_COURSES:
case SORT_ONI_COURSES:
case SORT_ENDLESS_COURSES:
TweenSongPartsOffScreen( false );
SkipSongPartTweens();
break;
default:
TweenCoursePartsOffScreen( false );
SkipCoursePartTweens();
break;
}
ON_COMMAND( m_sprBannerMask );
ON_COMMAND( m_Banner );
ON_COMMAND( m_sprBannerFrame );
ON_COMMAND( m_BPMDisplay );
ON_COMMAND( m_DifficultyDisplay );
ON_COMMAND( m_sprCDTitleFront );
ON_COMMAND( m_sprCDTitleBack );
ON_COMMAND( m_GrooveRadar );
ON_COMMAND( m_textNumSongs );
ON_COMMAND( m_textTotalTime );
ON_COMMAND( m_MusicSortDisplay );
ON_COMMAND( m_MusicWheelUnder );
m_MusicWheel.TweenOnScreen();
ON_COMMAND( m_sprLongBalloon );
ON_COMMAND( m_sprMarathonBalloon );
ON_COMMAND( m_sprCourseHasMods );
ON_COMMAND( m_MusicWheel );
ON_COMMAND( m_Artist );
ON_COMMAND( m_MachineRank );
FOREACH_HumanPlayer( p )
{
ON_COMMAND( m_sprHighScoreFrame[p] );
ON_COMMAND( m_textHighScore[p] );
if( SHOW_PANES )
ON_COMMAND( m_PaneDisplay[p] );
}
SOUND->PlayOnceFromAnnouncer( "select music intro" );
}
ScreenSelectMusic::~ScreenSelectMusic()
{
LOG->Trace( "ScreenSelectMusic::~ScreenSelectMusic()" );
@@ -338,10 +398,7 @@ void ScreenSelectMusic::TweenSongPartsOnScreen( bool Initial )
if( SHOW_DIFFICULTY_LIST )
{
if( Initial )
{
ON_COMMAND( m_DifficultyList );
m_DifficultyList.TweenOnScreen();
}
// else // do this after SM_SortOrderChanged
// m_DifficultyList.Show();
}
@@ -431,57 +488,7 @@ void ScreenSelectMusic::SkipCoursePartTweens()
m_CourseContents.FinishTweening();
}
void ScreenSelectMusic::TweenOursOnScreen()
{
TweenSongPartsOnScreen( true );
TweenCoursePartsOnScreen( true );
switch( GAMESTATE->m_SortOrder )
{
case SORT_ALL_COURSES:
case SORT_NONSTOP_COURSES:
case SORT_ONI_COURSES:
case SORT_ENDLESS_COURSES:
TweenSongPartsOffScreen( false );
SkipSongPartTweens();
break;
default:
TweenCoursePartsOffScreen( false );
SkipCoursePartTweens();
break;
}
ON_COMMAND( m_sprBannerMask );
ON_COMMAND( m_Banner );
ON_COMMAND( m_sprBannerFrame );
ON_COMMAND( m_BPMDisplay );
ON_COMMAND( m_DifficultyDisplay );
ON_COMMAND( m_sprCDTitleFront );
ON_COMMAND( m_sprCDTitleBack );
ON_COMMAND( m_GrooveRadar );
ON_COMMAND( m_textNumSongs );
ON_COMMAND( m_textTotalTime );
ON_COMMAND( m_MusicSortDisplay );
ON_COMMAND( m_MusicWheelUnder );
m_MusicWheel.TweenOnScreen();
ON_COMMAND( m_sprLongBalloon );
ON_COMMAND( m_sprMarathonBalloon );
ON_COMMAND( m_sprCourseHasMods );
ON_COMMAND( m_MusicWheel );
ON_COMMAND( m_Artist );
ON_COMMAND( m_MachineRank );
FOREACH_HumanPlayer( p )
{
ON_COMMAND( m_sprHighScoreFrame[p] );
ON_COMMAND( m_textHighScore[p] );
if( SHOW_PANES )
ON_COMMAND( m_PaneDisplay[p] );
ON_COMMAND( m_DifficultyMeter[p] );
}
}
void ScreenSelectMusic::TweenOursOffScreen()
void ScreenSelectMusic::TweenOffScreen()
{
ScreenWithMenuElements::TweenOffScreen();
@@ -1215,7 +1222,6 @@ void ScreenSelectMusic::MenuStart( PlayerNumber pn )
if( m_bMadeChoice )
{
TweenOursOffScreen();
SCREENMAN->PlayStartSound();
if( OPTIONS_MENU_AVAILABLE )
+2 -2
View File
@@ -30,6 +30,7 @@ public:
ScreenSelectMusic( CString sName );
virtual ~ScreenSelectMusic();
virtual void Init();
virtual void BeginScreen();
virtual void Update( float fDeltaTime );
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
@@ -46,8 +47,7 @@ public:
virtual void PushSelf( lua_State *L );
protected:
void TweenOursOnScreen();
void TweenOursOffScreen();
void TweenOffScreen();
void TweenScoreOnAndOffAfterChangeSort();
enum DisplayMode { DISPLAY_SONGS, DISPLAY_COURSES, DISPLAY_MODES } m_DisplayMode;
void SwitchDisplayMode( DisplayMode dm );