diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index bc0648695a..fa4a549d2d 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -481,10 +481,6 @@ void ScreenGameplay::Init() case PLAY_MODE_REGULAR: case PLAY_MODE_BATTLE: case PLAY_MODE_RAVE: - m_sprStage.Load( THEME->GetPathG(m_sName,"stage "+StageToString(GAMESTATE->GetCurrentStage())) ); - m_sprStage->SetName( "Stage" ); - SET_XY( m_sprStage ); - this->AddChild( m_sprStage ); break; case PLAY_MODE_NONSTOP: case PLAY_MODE_ONI: @@ -2540,7 +2536,6 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) void ScreenGameplay::TweenOnScreen() { ON_COMMAND( m_sprLifeFrame ); - ON_COMMAND( m_sprStage ); ON_COMMAND( m_sprCourseSongNumber[GAMESTATE->GetCourseSongIndex()] ); ON_COMMAND( m_sprStageFrame ); ON_COMMAND( m_textSongOptions ); @@ -2578,7 +2573,6 @@ void ScreenGameplay::TweenOffScreen() ScreenWithMenuElements::TweenOffScreen(); OFF_COMMAND( m_sprLifeFrame ); - OFF_COMMAND( m_sprStage ); OFF_COMMAND( m_sprCourseSongNumber[GAMESTATE->GetCourseSongIndex()] ); OFF_COMMAND( m_sprStageFrame ); OFF_COMMAND( m_textSongOptions ); diff --git a/stepmania/src/ScreenGameplay.h b/stepmania/src/ScreenGameplay.h index 7af0c777bf..cd061ce8fd 100644 --- a/stepmania/src/ScreenGameplay.h +++ b/stepmania/src/ScreenGameplay.h @@ -109,7 +109,6 @@ protected: AutoActor m_sprLifeFrame; LifeMeter* m_pLifeMeter[NUM_PLAYERS]; CombinedLifeMeter* m_pCombinedLifeMeter; - AutoActor m_sprStage; AutoActor m_sprCourseSongNumber[MAX_COURSE_SONG_NUMBER_GRAPHICS]; AutoActor m_sprStageFrame; BitmapText m_textCourseSongNumber[NUM_PLAYERS]; diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index ba44215032..33f515f877 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -182,18 +182,6 @@ void ScreenSelectMusic::Init() SET_XY( m_DifficultyDisplay ); this->AddChild( &m_DifficultyDisplay ); - { - vector vStages; - GAMESTATE->GetPossibleStages( vStages ); - FOREACH_CONST( Stage, vStages, s ) - { - m_sprStage[*s].Load( THEME->GetPathG(m_sName,"stage "+StageToString(*s)) ); - m_sprStage[*s]->SetName( "Stage" ); - SET_XY( m_sprStage[*s] ); - this->AddChild( m_sprStage[*s] ); - } - } - m_sprCDTitleFront.SetName( "CDTitle" ); m_sprCDTitleFront.Load( THEME->GetPathG(m_sName,"fallback cdtitle") ); SET_XY( m_sprCDTitleFront ); @@ -540,7 +528,6 @@ void ScreenSelectMusic::TweenOnScreen() ON_COMMAND( m_sprExplanation ); ON_COMMAND( m_BPMDisplay ); ON_COMMAND( m_DifficultyDisplay ); - ON_COMMAND( m_sprStage[GAMESTATE->GetCurrentStage()] ); ON_COMMAND( m_sprCDTitleFront ); ON_COMMAND( m_sprCDTitleBack ); ON_COMMAND( m_GrooveRadar ); @@ -596,7 +583,6 @@ void ScreenSelectMusic::TweenOffScreen() OFF_COMMAND( m_sprExplanation ); OFF_COMMAND( m_BPMDisplay ); OFF_COMMAND( m_DifficultyDisplay ); - OFF_COMMAND( m_sprStage[GAMESTATE->GetCurrentStage()] ); OFF_COMMAND( m_sprCDTitleFront ); OFF_COMMAND( m_sprCDTitleBack ); OFF_COMMAND( m_GrooveRadar ); @@ -1837,12 +1823,6 @@ void ScreenSelectMusic::AfterMusicChange() g_StartedLoadingAt.Touch(); - // update stage counter display (long versions/marathons) - FOREACH_Stage( s ) - { - m_sprStage[s]->SetHidden( s != GAMESTATE->GetCurrentStage() ); - } - if( (int) m_Artists.size() > MAX_COURSE_ENTRIES_BEFORE_VARIOUS ) { m_Artists.clear(); diff --git a/stepmania/src/ScreenSelectMusic.h b/stepmania/src/ScreenSelectMusic.h index 524f739eb1..3e0916d096 100644 --- a/stepmania/src/ScreenSelectMusic.h +++ b/stepmania/src/ScreenSelectMusic.h @@ -104,7 +104,6 @@ protected: AutoActor m_sprBannerFrame; AutoActor m_sprExplanation; BPMDisplay m_BPMDisplay; - AutoActor m_sprStage[NUM_STAGES]; Sprite m_sprCDTitleFront, m_sprCDTitleBack; Sprite m_sprDifficultyFrame[NUM_PLAYERS]; DifficultyIcon m_DifficultyIcon[NUM_PLAYERS]; diff --git a/stepmania/src/ScreenWithMenuElements.cpp b/stepmania/src/ScreenWithMenuElements.cpp index cffd429d3d..0454275c2f 100644 --- a/stepmania/src/ScreenWithMenuElements.cpp +++ b/stepmania/src/ScreenWithMenuElements.cpp @@ -14,6 +14,7 @@ #define TIMER_SECONDS THEME->GetMetricF(m_sName,"TimerSeconds") #define TIMER_STEALTH THEME->GetMetricB(m_sName,"TimerStealth") #define STYLE_ICON THEME->GetMetricB(m_sName,"StyleIcon") +#define SHOW_STAGE THEME->GetMetricB(m_sName,"ShowStage") #define MEMORY_CARD_ICONS THEME->GetMetricB(m_sName,"MemoryCardIcons") #define FORCE_TIMER THEME->GetMetricB(m_sName,"ForceTimer") #define STOP_MUSIC_ON_BACK THEME->GetMetricB(m_sName,"StopMusicOnBack") @@ -54,6 +55,20 @@ void ScreenWithMenuElements::Init() this->AddChild( &m_sprStyleIcon ); } + if( SHOW_STAGE && GAMESTATE->m_pCurStyle ) + { + vector vStages; + GAMESTATE->GetPossibleStages( vStages ); + FOREACH_CONST( Stage, vStages, s ) + { + m_sprStage[*s].Load( THEME->GetPathG(m_sName,"stage "+StageToString(*s)) ); + m_sprStage[*s]->SetName( "Stage" ); + SET_XY_AND_ON_COMMAND( m_sprStage[*s] ); + this->AddChild( m_sprStage[*s] ); + } + UpdateStage(); + } + if( MEMORY_CARD_ICONS ) { FOREACH_PlayerNumber( p ) @@ -199,6 +214,7 @@ void ScreenWithMenuElements::TweenOffScreen() ActorUtil::OffCommand( m_autoHeader, m_sName ); ActorUtil::OffCommand( m_sprStyleIcon, m_sName ); + OFF_COMMAND( m_sprStage[GAMESTATE->GetCurrentStage()] ); FOREACH_PlayerNumber( p ) ActorUtil::OffCommand( m_MemoryCardDisplay[p], m_sName ); ActorUtil::OffCommand( m_autoFooter, m_sName ); @@ -232,6 +248,19 @@ void ScreenWithMenuElements::StopTimer() m_MenuTimer->Stop(); } +void ScreenWithMenuElements::HandleMessage( const CString& sMessage ) +{ + if( sMessage == MessageToString(MESSAGE_CURRENT_SONG_CHANGED) ) + UpdateStage(); +} + +void ScreenWithMenuElements::UpdateStage() +{ + // update stage counter display (long versions/marathons) + FOREACH_Stage( s ) + m_sprStage[s]->SetHidden( s != GAMESTATE->GetCurrentStage() ); +} + /* * (c) 2004 Chris Danford * All rights reserved. diff --git a/stepmania/src/ScreenWithMenuElements.h b/stepmania/src/ScreenWithMenuElements.h index 84277efbb7..6606cd152f 100644 --- a/stepmania/src/ScreenWithMenuElements.h +++ b/stepmania/src/ScreenWithMenuElements.h @@ -31,12 +31,17 @@ public: void TweenOffScreen(); protected: + virtual void HandleMessage( const CString& sMessage ); + virtual void StartPlayingMusic(); virtual void LoadHelpText(); + void UpdateStage(); + AutoActor m_sprUnderlay; AutoActor m_autoHeader; Sprite m_sprStyleIcon; + AutoActor m_sprStage[NUM_STAGES]; MemoryCardDisplay m_MemoryCardDisplay[NUM_PLAYERS]; MenuTimer *m_MenuTimer; AutoActor m_autoFooter;