From c3df5b5984b2714ca5c2b83db966911189c14dc5 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 26 Sep 2003 23:27:22 +0000 Subject: [PATCH] Cleanup. Allow disabling the timer completely. --- stepmania/src/MenuElements.cpp | 34 ++++++++++++++++++++++++---------- stepmania/src/MenuElements.h | 1 + 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/stepmania/src/MenuElements.cpp b/stepmania/src/MenuElements.cpp index 0683c1f6a6..2d74e4c060 100644 --- a/stepmania/src/MenuElements.cpp +++ b/stepmania/src/MenuElements.cpp @@ -32,6 +32,7 @@ #define TIMER_OFF_COMMAND THEME->GetMetric("MenuElements","TimerOffCommand") #define HELP_ON_COMMAND THEME->GetMetric("MenuElements","HelpOnCommand") #define HELP_OFF_COMMAND THEME->GetMetric("MenuElements","HelpOffCommand") +#define TIMER_SECONDS THEME->GetMetricI(m_sName,"TimerSeconds") MenuElements::MenuElements() @@ -62,12 +63,21 @@ void MenuElements::Load( CString sClassName, bool bEnableTimer, bool bLoadStyleI this->AddChild( &m_sprStyleIcon ); } - m_MenuTimer.Command( TIMER_ON_COMMAND ); - if( bEnableTimer && PREFSMAN->m_bMenuTimer && !GAMESTATE->m_bEditing ) - m_MenuTimer.SetSeconds( THEME->GetMetricI(m_sName,"TimerSeconds") ); - else - m_MenuTimer.Disable(); - this->AddChild( &m_MenuTimer ); + /* XXX: If bEnableTimer is false, it means the timer is shown but disabled. + * If TIMER_SECONDS is -1, then the timer isn't shown at all. bTimerEnabled == 0 + * is the same as !bTimerEnabled. Phase out bTimerEnabled and just set no timer + * in the theme. */ + m_bTimerEnabled = (TIMER_SECONDS != -1); + + if( m_bTimerEnabled ) + { + m_MenuTimer.Command( TIMER_ON_COMMAND ); + if( bEnableTimer && PREFSMAN->m_bMenuTimer && !GAMESTATE->m_bEditing ) + m_MenuTimer.SetSeconds( TIMER_SECONDS ); + else + m_MenuTimer.Disable(); + this->AddChild( &m_MenuTimer ); + } m_sprFooter.Load( THEME->GetPathToG(m_sName+" footer") ); m_sprFooter.Command( FOOTER_ON_COMMAND ); @@ -102,12 +112,15 @@ void MenuElements::Update( float fDeltaTime ) void MenuElements::StartTransitioning( ScreenMessage smSendWhenDone ) { - m_MenuTimer.SetSeconds( 0 ); - m_MenuTimer.Stop(); + if( m_bTimerEnabled ) + { + m_MenuTimer.SetSeconds( 0 ); + m_MenuTimer.Stop(); + m_MenuTimer.Command( TIMER_OFF_COMMAND ); + } m_sprHeader.Command( HEADER_OFF_COMMAND ); m_sprStyleIcon.Command( STYLE_ICON_OFF_COMMAND ); - m_MenuTimer.Command( TIMER_OFF_COMMAND ); m_sprFooter.Command( FOOTER_OFF_COMMAND ); m_textHelp.Command( HELP_OFF_COMMAND ); @@ -149,7 +162,8 @@ void MenuElements::DrawTopLayer() m_sprHeader.Draw(); m_sprStyleIcon.Draw(); - m_MenuTimer.Draw(); + if( m_bTimerEnabled ) + m_MenuTimer.Draw(); m_sprFooter.Draw(); m_textHelp.Draw(); m_In.Draw(); diff --git a/stepmania/src/MenuElements.h b/stepmania/src/MenuElements.h index 91edd7bd2b..9927be9035 100644 --- a/stepmania/src/MenuElements.h +++ b/stepmania/src/MenuElements.h @@ -36,6 +36,7 @@ public: void Back( ScreenMessage smSendWhenDone ); void Update( float fDeltaTime ); bool IsTransitioning(); + bool m_bTimerEnabled; public: // let owner tinker with these objects