diff --git a/stepmania/src/ScreenBookkeeping.cpp b/stepmania/src/ScreenBookkeeping.cpp index c4884b6c3b..d090843f25 100644 --- a/stepmania/src/ScreenBookkeeping.cpp +++ b/stepmania/src/ScreenBookkeeping.cpp @@ -10,10 +10,7 @@ #include "LocalizedString.h" -REGISTER_SCREEN_CLASS( ScreenBookkeeping ); -ScreenBookkeeping::ScreenBookkeeping( CString sClassName ) : ScreenWithMenuElements( sClassName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenBookkeeping ); void ScreenBookkeeping::Init() { diff --git a/stepmania/src/ScreenBookkeeping.h b/stepmania/src/ScreenBookkeeping.h index 899d85c3ee..ce9cd8ee76 100644 --- a/stepmania/src/ScreenBookkeeping.h +++ b/stepmania/src/ScreenBookkeeping.h @@ -11,7 +11,6 @@ const int NUM_BOOKKEEPING_COLS = 4; class ScreenBookkeeping : public ScreenWithMenuElements { public: - ScreenBookkeeping( CString sName ); virtual void Init(); virtual ~ScreenBookkeeping(); diff --git a/stepmania/src/ScreenCenterImage.cpp b/stepmania/src/ScreenCenterImage.cpp index bda7ff8dec..102f303d45 100644 --- a/stepmania/src/ScreenCenterImage.cpp +++ b/stepmania/src/ScreenCenterImage.cpp @@ -13,14 +13,12 @@ static ThemeMetric ALLOW_RESIZE("ScreenCenterImage","AllowResize"); -REGISTER_SCREEN_CLASS( ScreenCenterImage ); -ScreenCenterImage::ScreenCenterImage( CString sClassName ) : ScreenWithMenuElements( sClassName ) -{ - ZERO( m_fScale ); -} +REGISTER_SCREEN_CLASS_NEW( ScreenCenterImage ); void ScreenCenterImage::Init() { + ZERO( m_fScale ); + ScreenWithMenuElements::Init(); #if defined(XBOX) diff --git a/stepmania/src/ScreenCenterImage.h b/stepmania/src/ScreenCenterImage.h index 68ee7b6924..835a834ffa 100644 --- a/stepmania/src/ScreenCenterImage.h +++ b/stepmania/src/ScreenCenterImage.h @@ -10,7 +10,6 @@ class ScreenCenterImage : public ScreenWithMenuElements { public: - ScreenCenterImage( CString sName ); void Init(); virtual ~ScreenCenterImage(); diff --git a/stepmania/src/ScreenEdit.cpp b/stepmania/src/ScreenEdit.cpp index 7970586d55..700a824c45 100644 --- a/stepmania/src/ScreenEdit.cpp +++ b/stepmania/src/ScreenEdit.cpp @@ -612,15 +612,13 @@ static int g_iLastInsertTapAttackTrack = -1; static float g_fLastInsertAttackDurationSeconds = -1; static BackgroundLayer g_CurrentBGChangeLayer = BACKGROUND_LAYER_INVALID; -REGISTER_SCREEN_CLASS( ScreenEdit ); -ScreenEdit::ScreenEdit( CString sName ) : ScreenWithMenuElements( sName ) -{ - ASSERT( GAMESTATE->m_pCurSong ); - ASSERT( GAMESTATE->m_pCurSteps[0] ); -} +REGISTER_SCREEN_CLASS_NEW( ScreenEdit ); void ScreenEdit::Init() { + ASSERT( GAMESTATE->m_pCurSong ); + ASSERT( GAMESTATE->m_pCurSteps[0] ); + EDIT_MODE.Load(m_sName,"EditMode"); ScreenWithMenuElements::Init(); diff --git a/stepmania/src/ScreenEdit.h b/stepmania/src/ScreenEdit.h index 83f048a974..8d50030271 100644 --- a/stepmania/src/ScreenEdit.h +++ b/stepmania/src/ScreenEdit.h @@ -148,7 +148,6 @@ struct MapEditToDI class ScreenEdit : public ScreenWithMenuElements { public: - ScreenEdit( CString sName ); virtual void Init(); virtual ~ScreenEdit(); virtual void Update( float fDeltaTime ); diff --git a/stepmania/src/ScreenEditCourseMods.cpp b/stepmania/src/ScreenEditCourseMods.cpp index 47cc6e4fe7..c22c126fa7 100644 --- a/stepmania/src/ScreenEditCourseMods.cpp +++ b/stepmania/src/ScreenEditCourseMods.cpp @@ -2,10 +2,7 @@ #include "ScreenEditCourseMods.h" #include "RageLog.h" -REGISTER_SCREEN_CLASS( ScreenEditCourseMods ); -ScreenEditCourseMods::ScreenEditCourseMods( CString sName ) : ScreenEdit( sName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenEditCourseMods ); void ScreenEditCourseMods::Init() { diff --git a/stepmania/src/ScreenEditCourseMods.h b/stepmania/src/ScreenEditCourseMods.h index 412c08946e..8017afb92b 100644 --- a/stepmania/src/ScreenEditCourseMods.h +++ b/stepmania/src/ScreenEditCourseMods.h @@ -6,8 +6,6 @@ class ScreenEditCourseMods : public ScreenEdit { public: - ScreenEditCourseMods( CString sName ); - void Init(); protected: diff --git a/stepmania/src/ScreenEditMenu.cpp b/stepmania/src/ScreenEditMenu.cpp index d74afcc222..9723d6e047 100644 --- a/stepmania/src/ScreenEditMenu.cpp +++ b/stepmania/src/ScreenEditMenu.cpp @@ -22,16 +22,14 @@ AutoScreenMessage( SM_RefreshSelector ) AutoScreenMessage( SM_BackFromEditDescription ) -REGISTER_SCREEN_CLASS( ScreenEditMenu ); -ScreenEditMenu::ScreenEditMenu( CString sName ) : ScreenWithMenuElements( sName ) +REGISTER_SCREEN_CLASS_NEW( ScreenEditMenu ); + +void ScreenEditMenu::Init() { /* Enable all players. */ FOREACH_PlayerNumber( pn ) GAMESTATE->m_bSideIsJoined[pn] = true; -} -void ScreenEditMenu::Init() -{ ScreenWithMenuElements::Init(); m_Selector.SetName( "EditMenu" ); diff --git a/stepmania/src/ScreenEditMenu.h b/stepmania/src/ScreenEditMenu.h index 1cf28056a6..39717d20fe 100644 --- a/stepmania/src/ScreenEditMenu.h +++ b/stepmania/src/ScreenEditMenu.h @@ -8,7 +8,6 @@ class ScreenEditMenu : public ScreenWithMenuElements { public: - ScreenEditMenu( CString sName ); virtual void Init(); virtual void HandleScreenMessage( const ScreenMessage SM ); diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index b9cda09da8..af2698ec24 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -81,8 +81,8 @@ static const int NUM_SHOWN_RADAR_CATEGORIES = 5; AutoScreenMessage( SM_PlayCheer ) AutoScreenMessage( SM_AddBonus ) -REGISTER_SCREEN_CLASS( ScreenEvaluation ); -ScreenEvaluation::ScreenEvaluation( CString sClassName ) : ScreenWithMenuElements(sClassName) +REGISTER_SCREEN_CLASS_NEW( ScreenEvaluation ); +ScreenEvaluation::ScreenEvaluation() { // // debugging diff --git a/stepmania/src/ScreenEvaluation.h b/stepmania/src/ScreenEvaluation.h index 2d37faa25e..a9c42ed0c7 100644 --- a/stepmania/src/ScreenEvaluation.h +++ b/stepmania/src/ScreenEvaluation.h @@ -42,7 +42,7 @@ enum StatLine class ScreenEvaluation : public ScreenWithMenuElements { public: - ScreenEvaluation( CString sClassName ); + ScreenEvaluation(); virtual void Init(); virtual void Input( const InputEventPlus &input ); virtual void HandleScreenMessage( const ScreenMessage SM ); diff --git a/stepmania/src/ScreenEvaluationMultiplayer.cpp b/stepmania/src/ScreenEvaluationMultiplayer.cpp index 475f17e4a2..4d50164f31 100644 --- a/stepmania/src/ScreenEvaluationMultiplayer.cpp +++ b/stepmania/src/ScreenEvaluationMultiplayer.cpp @@ -106,8 +106,8 @@ public: }; -REGISTER_SCREEN_CLASS( ScreenEvaluationMultiplayer ); -ScreenEvaluationMultiplayer::ScreenEvaluationMultiplayer( CString sClassName ) : ScreenWithMenuElements( sClassName ) +REGISTER_SCREEN_CLASS_NEW( ScreenEvaluationMultiplayer ); +ScreenEvaluationMultiplayer::ScreenEvaluationMultiplayer() { // // debugging diff --git a/stepmania/src/ScreenEvaluationMultiplayer.h b/stepmania/src/ScreenEvaluationMultiplayer.h index 5db81fcac0..1ad1a3b2ce 100644 --- a/stepmania/src/ScreenEvaluationMultiplayer.h +++ b/stepmania/src/ScreenEvaluationMultiplayer.h @@ -21,7 +21,7 @@ enum MultiplayerJudgeLine class ScreenEvaluationMultiplayer : public ScreenWithMenuElements { public: - ScreenEvaluationMultiplayer( CString sName ); + ScreenEvaluationMultiplayer(); ~ScreenEvaluationMultiplayer(); virtual void Init(); diff --git a/stepmania/src/ScreenEz2SelectMusic.cpp b/stepmania/src/ScreenEz2SelectMusic.cpp index f1ab19c2fb..a1ca8ccb1c 100644 --- a/stepmania/src/ScreenEz2SelectMusic.cpp +++ b/stepmania/src/ScreenEz2SelectMusic.cpp @@ -69,15 +69,13 @@ const float TWEEN_TIME = 0.5f; AutoScreenMessage( SM_NoSongs ) -REGISTER_SCREEN_CLASS( ScreenEz2SelectMusic ); -ScreenEz2SelectMusic::ScreenEz2SelectMusic( CString sName ) : ScreenWithMenuElements( sName ) -{ - /* Finish any previous stage. It's OK to call this when we havn't played a stage yet. */ - GAMESTATE->FinishStage(); -} +REGISTER_SCREEN_CLASS_NEW( ScreenEz2SelectMusic ); void ScreenEz2SelectMusic::Init() { + /* Finish any previous stage. It's OK to call this when we havn't played a stage yet. */ + GAMESTATE->FinishStage(); + ScreenWithMenuElements::Init(); i_SkipAheadOffset = 0; diff --git a/stepmania/src/ScreenEz2SelectMusic.h b/stepmania/src/ScreenEz2SelectMusic.h index 2eed043a0b..91778abc0e 100644 --- a/stepmania/src/ScreenEz2SelectMusic.h +++ b/stepmania/src/ScreenEz2SelectMusic.h @@ -15,7 +15,6 @@ class ScreenEz2SelectMusic : public ScreenWithMenuElements { public: - ScreenEz2SelectMusic( CString sName ); virtual void Init(); virtual void Update( float fDeltaTime ); diff --git a/stepmania/src/ScreenEz2SelectPlayer.cpp b/stepmania/src/ScreenEz2SelectPlayer.cpp index aacf4b459a..985fe7aa32 100644 --- a/stepmania/src/ScreenEz2SelectPlayer.cpp +++ b/stepmania/src/ScreenEz2SelectPlayer.cpp @@ -27,23 +27,14 @@ const float TWEEN_TIME = 0.35f; -/************************************ -ScreenEz2SelectPlayer (Constructor) -Desc: Sets up the screen display -************************************/ - -REGISTER_SCREEN_CLASS( ScreenEz2SelectPlayer ); -ScreenEz2SelectPlayer::ScreenEz2SelectPlayer( CString sName ) : ScreenWithMenuElements( sName ) -{ - // Unjoin the players, then let them join back in on this screen -// GAMESTATE->m_bPlayersCanJoin = true; - FOREACH_PlayerNumber( p ) - GAMESTATE->m_bSideIsJoined[p] = false; -} - +REGISTER_SCREEN_CLASS_NEW( ScreenEz2SelectPlayer ); void ScreenEz2SelectPlayer::Init() { + // Unjoin the players, then let them join back in on this screen + FOREACH_PlayerNumber( p ) + GAMESTATE->m_bSideIsJoined[p] = false; + ScreenWithMenuElements::Init(); FOREACH_PlayerNumber( p ) diff --git a/stepmania/src/ScreenEz2SelectPlayer.h b/stepmania/src/ScreenEz2SelectPlayer.h index bd33e75a2d..55303808c4 100644 --- a/stepmania/src/ScreenEz2SelectPlayer.h +++ b/stepmania/src/ScreenEz2SelectPlayer.h @@ -10,7 +10,6 @@ class ScreenEz2SelectPlayer : public ScreenWithMenuElements { public: - ScreenEz2SelectPlayer( CString sName ); virtual void Init(); virtual ~ScreenEz2SelectPlayer(); diff --git a/stepmania/src/ScreenInstructions.cpp b/stepmania/src/ScreenInstructions.cpp index cd7ff77c76..1fd3ec044d 100644 --- a/stepmania/src/ScreenInstructions.cpp +++ b/stepmania/src/ScreenInstructions.cpp @@ -2,10 +2,7 @@ #include "ScreenInstructions.h" -REGISTER_SCREEN_CLASS( ScreenInstructions ); -ScreenInstructions::ScreenInstructions( CString sName ) : ScreenWithMenuElements( sName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenInstructions ); void ScreenInstructions::Init() { diff --git a/stepmania/src/ScreenInstructions.h b/stepmania/src/ScreenInstructions.h index 4ff087130d..e0e7afa094 100644 --- a/stepmania/src/ScreenInstructions.h +++ b/stepmania/src/ScreenInstructions.h @@ -6,7 +6,6 @@ class ScreenInstructions : public ScreenWithMenuElements { public: - ScreenInstructions( CString sName ); virtual void Init(); virtual void Input( const InputEventPlus &input ); diff --git a/stepmania/src/ScreenJoinMultiplayer.cpp b/stepmania/src/ScreenJoinMultiplayer.cpp index 9f5f660a05..bc9b760bf1 100644 --- a/stepmania/src/ScreenJoinMultiplayer.cpp +++ b/stepmania/src/ScreenJoinMultiplayer.cpp @@ -24,8 +24,8 @@ static const char *MultiPlayerStatusNames[] = { XToString( MultiPlayerStatus, NUM_MultiPlayerStatus ); -REGISTER_SCREEN_CLASS( ScreenJoinMultiplayer ); -ScreenJoinMultiplayer::ScreenJoinMultiplayer( CString sClassName ) : ScreenWithMenuElements( sClassName ) +REGISTER_SCREEN_CLASS_NEW( ScreenJoinMultiplayer ); +ScreenJoinMultiplayer::ScreenJoinMultiplayer() { FOREACH_MultiPlayer( p ) { diff --git a/stepmania/src/ScreenJoinMultiplayer.h b/stepmania/src/ScreenJoinMultiplayer.h index 87cb18697a..772ffa7fd5 100644 --- a/stepmania/src/ScreenJoinMultiplayer.h +++ b/stepmania/src/ScreenJoinMultiplayer.h @@ -20,7 +20,7 @@ const CString& MultiPlayerStatusToString( MultiPlayerStatus i ); class ScreenJoinMultiplayer : public ScreenWithMenuElements { public: - ScreenJoinMultiplayer( CString sName ); + ScreenJoinMultiplayer(); virtual void Init(); virtual void Input( const InputEventPlus &input ); diff --git a/stepmania/src/ScreenMapControllers.cpp b/stepmania/src/ScreenMapControllers.cpp index 90c771a8fa..1ad36bb48c 100644 --- a/stepmania/src/ScreenMapControllers.cpp +++ b/stepmania/src/ScreenMapControllers.cpp @@ -23,10 +23,7 @@ static const float g_fSecondsToWaitForInput = 0.05f; // reserve the 3rd slot for hard-coded keys static const int NUM_CHANGABLE_SLOTS = NUM_SHOWN_GAME_TO_DEVICE_SLOTS-1; -REGISTER_SCREEN_CLASS( ScreenMapControllers ); -ScreenMapControllers::ScreenMapControllers( CString sClassName ) : ScreenWithMenuElements( sClassName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenMapControllers ); void ScreenMapControllers::Init() { diff --git a/stepmania/src/ScreenMapControllers.h b/stepmania/src/ScreenMapControllers.h index e36c36ad88..800ba0d998 100644 --- a/stepmania/src/ScreenMapControllers.h +++ b/stepmania/src/ScreenMapControllers.h @@ -14,7 +14,6 @@ enum { NUM_SHOWN_GAME_TO_DEVICE_SLOTS = 3 }; class ScreenMapControllers : public ScreenWithMenuElements { public: - ScreenMapControllers( CString sName ); virtual void Init(); virtual void BeginScreen(); diff --git a/stepmania/src/ScreenNetEvaluation.cpp b/stepmania/src/ScreenNetEvaluation.cpp index 7f4e25f66f..09485bc1c8 100644 --- a/stepmania/src/ScreenNetEvaluation.cpp +++ b/stepmania/src/ScreenNetEvaluation.cpp @@ -19,10 +19,7 @@ const int NUM_SCORE_DIGITS = 9; AutoScreenMessage( SM_GotEval ) -REGISTER_SCREEN_CLASS( ScreenNetEvaluation ); -ScreenNetEvaluation::ScreenNetEvaluation (const CString & sClassName) : ScreenEvaluation( sClassName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenNetEvaluation ); void ScreenNetEvaluation::Init() { diff --git a/stepmania/src/ScreenNetEvaluation.h b/stepmania/src/ScreenNetEvaluation.h index 9fbdab5b78..5b286cd78e 100644 --- a/stepmania/src/ScreenNetEvaluation.h +++ b/stepmania/src/ScreenNetEvaluation.h @@ -7,7 +7,6 @@ class ScreenNetEvaluation: public ScreenEvaluation { public: - ScreenNetEvaluation (const CString& sClassName); virtual void Init(); protected: diff --git a/stepmania/src/ScreenWithMenuElements.cpp b/stepmania/src/ScreenWithMenuElements.cpp index f659aaa39e..5ef0574fdd 100644 --- a/stepmania/src/ScreenWithMenuElements.cpp +++ b/stepmania/src/ScreenWithMenuElements.cpp @@ -21,6 +21,15 @@ #define WAIT_FOR_CHILDREN_BEFORE_TWEENING_OUT THEME->GetMetricB(m_sName,"WaitForChildrenBeforeTweeningOut") //REGISTER_SCREEN_CLASS( ScreenWithMenuElements ); +ScreenWithMenuElements::ScreenWithMenuElements() +{ + m_MenuTimer = NULL; + m_textHelp = new HelpDisplay; + FOREACH_PlayerNumber( p ) + m_MemoryCardDisplay[p] = NULL; + m_MenuTimer = NULL; +} + ScreenWithMenuElements::ScreenWithMenuElements( CString sClassName ) : Screen( sClassName ) { m_MenuTimer = NULL; @@ -28,17 +37,15 @@ ScreenWithMenuElements::ScreenWithMenuElements( CString sClassName ) : Screen( s FOREACH_PlayerNumber( p ) m_MemoryCardDisplay[p] = NULL; m_MenuTimer = NULL; - - // Needs to be in the constructor in case a derivitive decides to skip - // itself and sends SM_GoToNextScreen to ScreenAttract. - PLAY_MUSIC .Load( m_sName, "PlayMusic" ); - TIMER_SECONDS .Load( m_sName, "TimerSeconds" ); } void ScreenWithMenuElements::Init() { LOG->Trace( "ScreenWithMenuElements::Init()" ); + PLAY_MUSIC.Load( m_sName, "PlayMusic" ); + TIMER_SECONDS.Load( m_sName, "TimerSeconds" ); + Screen::Init(); ASSERT( this->m_SubActors.empty() ); // don't call Init twice! diff --git a/stepmania/src/ScreenWithMenuElements.h b/stepmania/src/ScreenWithMenuElements.h index 31b160abba..8c0c5bac7a 100644 --- a/stepmania/src/ScreenWithMenuElements.h +++ b/stepmania/src/ScreenWithMenuElements.h @@ -15,6 +15,7 @@ class MemoryCardDisplay; class ScreenWithMenuElements : public Screen { public: + ScreenWithMenuElements(); ScreenWithMenuElements( CString sName ); virtual void Init(); virtual void BeginScreen();