diff --git a/stepmania/src/ScreenAttract.cpp b/stepmania/src/ScreenAttract.cpp index e83f77ba52..29f0c9017e 100644 --- a/stepmania/src/ScreenAttract.cpp +++ b/stepmania/src/ScreenAttract.cpp @@ -20,17 +20,23 @@ ThemeMetric BACK_GOES_TO_START_SCREEN( "ScreenAttract", "BackGoesToStartScreen" ); -REGISTER_SCREEN_CLASS( ScreenAttract ); -ScreenAttract::ScreenAttract( CString sName, bool bResetGameState ) : ScreenWithMenuElements( sName ) +REGISTER_SCREEN_CLASS_NEW( ScreenAttract ); +ScreenAttract::ScreenAttract( bool bResetGameState ) { if( bResetGameState ) GAMESTATE->Reset(); - - GAMESTATE->VisitAttractScreen( sName ); - SOUNDMAN->SetPlayOnlyCriticalSounds( !GAMESTATE->IsTimeToPlayAttractSounds() ); // mute attract sounds } +void ScreenAttract::Init() +{ + SOUNDMAN->SetPlayOnlyCriticalSounds( !GAMESTATE->IsTimeToPlayAttractSounds() ); // mute attract sounds + + GAMESTATE->VisitAttractScreen( m_sName ); + + ScreenWithMenuElements::Init(); +} + void ScreenAttract::Input( const InputEventPlus &input ) { // LOG->Trace( "ScreenAttract::Input()" ); diff --git a/stepmania/src/ScreenAttract.h b/stepmania/src/ScreenAttract.h index 7f5a85fac3..d7329960d8 100644 --- a/stepmania/src/ScreenAttract.h +++ b/stepmania/src/ScreenAttract.h @@ -10,7 +10,8 @@ AutoScreenMessage( SM_GoToStartScreen ) class ScreenAttract : public ScreenWithMenuElements { public: - ScreenAttract( CString sName, bool bResetGameState=true ); + ScreenAttract( bool bResetGameState=true ); + virtual void Init(); static void AttractInput( const InputEventPlus &input, ScreenWithMenuElements *pScreen ); static void GoToStartScreen( CString sScreenName ); diff --git a/stepmania/src/ScreenCredits.cpp b/stepmania/src/ScreenCredits.cpp index 9b804b9269..aee79652a1 100644 --- a/stepmania/src/ScreenCredits.cpp +++ b/stepmania/src/ScreenCredits.cpp @@ -4,10 +4,7 @@ #include "AnnouncerManager.h" -REGISTER_SCREEN_CLASS( ScreenCredits ); -ScreenCredits::ScreenCredits( CString sName ) : ScreenAttract( sName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenCredits ); void ScreenCredits::Init() { diff --git a/stepmania/src/ScreenCredits.h b/stepmania/src/ScreenCredits.h index d28684a5f1..dd052dea79 100644 --- a/stepmania/src/ScreenCredits.h +++ b/stepmania/src/ScreenCredits.h @@ -9,7 +9,6 @@ class ScreenCredits : public ScreenAttract { public: - ScreenCredits( CString sName ); virtual void Init(); }; diff --git a/stepmania/src/ScreenEnding.cpp b/stepmania/src/ScreenEnding.cpp index afa07064fe..26c5b8c302 100644 --- a/stepmania/src/ScreenEnding.cpp +++ b/stepmania/src/ScreenEnding.cpp @@ -126,8 +126,8 @@ CString GetStatsLineValue( PlayerNumber pn, EndingStatsLine line ) } -REGISTER_SCREEN_CLASS( ScreenEnding ); -ScreenEnding::ScreenEnding( CString sClassName ) : ScreenAttract( sClassName, false/*dont reset GAMESTATE*/ ) +REGISTER_SCREEN_CLASS_NEW( ScreenEnding ); +ScreenEnding::ScreenEnding() : ScreenAttract( false/*dont reset GAMESTATE*/ ) { if( PREFSMAN->m_bScreenTestMode ) { diff --git a/stepmania/src/ScreenEnding.h b/stepmania/src/ScreenEnding.h index 560c44a44c..ab53339512 100644 --- a/stepmania/src/ScreenEnding.h +++ b/stepmania/src/ScreenEnding.h @@ -23,7 +23,7 @@ enum EndingStatsLine class ScreenEnding : public ScreenAttract { public: - ScreenEnding( CString sName ); + ScreenEnding(); virtual void Init(); virtual void Input( const InputEventPlus &input ); diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 8fd748316c..f9749937c8 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -469,6 +469,7 @@ void ScreenGameplay::Init() fPlayerX = SCREEN_CENTER_X; pi->m_pPlayer->SetXY( fPlayerX, SCREEN_CENTER_Y ); + ON_COMMAND( pi->m_pPlayer ); this->AddChild( pi->m_pPlayer ); } @@ -1033,6 +1034,7 @@ void ScreenGameplay::SetupSong( int iSongIndex ) // UGLY: Force updating the BeatToNoteSkin mapping and cache NoteSkins now, or else // we'll do it on the first update and skip. + // XXX remove? pi->m_pPlayer->ApplyWaitingTransforms(); /* Update attack bOn flags. */ diff --git a/stepmania/src/ScreenHowToPlay.cpp b/stepmania/src/ScreenHowToPlay.cpp index 08e55e4953..21b656a7a8 100644 --- a/stepmania/src/ScreenHowToPlay.cpp +++ b/stepmania/src/ScreenHowToPlay.cpp @@ -65,8 +65,8 @@ static bool HaveAllCharAnimations() return true; } -REGISTER_SCREEN_CLASS( ScreenHowToPlay ); -ScreenHowToPlay::ScreenHowToPlay( CString sName ) : ScreenAttract( sName ) +REGISTER_SCREEN_CLASS_NEW( ScreenHowToPlay ); +ScreenHowToPlay::ScreenHowToPlay() { m_iW2s = 0; m_iNumW2s = NUM_W2S; diff --git a/stepmania/src/ScreenHowToPlay.h b/stepmania/src/ScreenHowToPlay.h index 52e4b5b9e6..8666be3588 100644 --- a/stepmania/src/ScreenHowToPlay.h +++ b/stepmania/src/ScreenHowToPlay.h @@ -12,7 +12,7 @@ class ScreenHowToPlay : public ScreenAttract { public: - ScreenHowToPlay( CString sName ); + ScreenHowToPlay(); virtual void Init(); ~ScreenHowToPlay(); diff --git a/stepmania/src/ScreenMusicScroll.cpp b/stepmania/src/ScreenMusicScroll.cpp index 3519113d13..fd2e6496bc 100644 --- a/stepmania/src/ScreenMusicScroll.cpp +++ b/stepmania/src/ScreenMusicScroll.cpp @@ -21,10 +21,7 @@ const CString CREDIT_LINES[] = const unsigned NUM_CREDIT_LINES = sizeof(CREDIT_LINES) / sizeof(CString); -REGISTER_SCREEN_CLASS( ScreenMusicScroll ); -ScreenMusicScroll::ScreenMusicScroll( CString sClassName ) : ScreenAttract( sClassName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenMusicScroll ); void ScreenMusicScroll::Init() { diff --git a/stepmania/src/ScreenMusicScroll.h b/stepmania/src/ScreenMusicScroll.h index 78c1442a55..0e24a3c6b2 100644 --- a/stepmania/src/ScreenMusicScroll.h +++ b/stepmania/src/ScreenMusicScroll.h @@ -9,7 +9,6 @@ class ScreenMusicScroll : public ScreenAttract { public: - ScreenMusicScroll( CString sName ); virtual void Init(); virtual ~ScreenMusicScroll(); diff --git a/stepmania/src/ScreenRanking.cpp b/stepmania/src/ScreenRanking.cpp index 8b6b3068b5..7f67592121 100644 --- a/stepmania/src/ScreenRanking.cpp +++ b/stepmania/src/ScreenRanking.cpp @@ -84,12 +84,12 @@ static void GetAllCoursesToShow( vector &vpOut, CourseType ct, bool bSh static CString STEPS_TYPE_COLOR_NAME( size_t i ) { return ssprintf("StepsTypeColor%d",int(i+1)); } -REGISTER_SCREEN_CLASS( ScreenRanking ); -REGISTER_SCREEN_CLASS( ScreenRankingScroller ); -REGISTER_SCREEN_CLASS( ScreenRankingLines ); +REGISTER_SCREEN_CLASS_NEW( ScreenRanking ); +REGISTER_SCREEN_CLASS_NEW( ScreenRankingScroller ); +REGISTER_SCREEN_CLASS_NEW( ScreenRankingLines ); -ScreenRanking::ScreenRanking( CString sClassName ): - ScreenAttract( sClassName, false /*dont reset GAMESTATE*/ ) +ScreenRanking::ScreenRanking(): + ScreenAttract( false /*dont reset GAMESTATE*/ ) { } @@ -378,11 +378,6 @@ void ScoreScroller::Load( // PAGE_TYPE_NONSTOP_COURSES: // PAGE_TYPE_ONI_COURSES: // PAGE_TYPE_SURVIVAL_COURSES: -ScreenRankingScroller::ScreenRankingScroller( CString sName ): - ScreenRanking( sName ) -{ -} - void ScreenRankingScroller::Init() { DIFFICULTIES_TO_SHOW.Load( m_sName, "DifficultiesToShow" ); @@ -476,11 +471,6 @@ float ScreenRankingScroller::SetPage( const PageToShow &pts ) // PAGE_TYPE_CATEGORY: // PAGE_TYPE_TRAIL: -ScreenRankingLines::ScreenRankingLines( CString sName ): - ScreenRanking( sName ) -{ -} - #define BULLET_X(row) (BULLET_START_X+ROW_SPACING_X*row) #define BULLET_Y(row) (BULLET_START_Y+ROW_SPACING_Y*row) #define NAME_X(row) (NAME_START_X+ROW_SPACING_X*row) diff --git a/stepmania/src/ScreenRanking.h b/stepmania/src/ScreenRanking.h index ea9c7b7b86..fb9259576e 100644 --- a/stepmania/src/ScreenRanking.h +++ b/stepmania/src/ScreenRanking.h @@ -35,7 +35,7 @@ PageType StringToPageType( const CString& s ); class ScreenRanking : public ScreenAttract { public: - ScreenRanking( CString sName ); + ScreenRanking(); virtual void Init(); virtual void BeginScreen(); @@ -137,7 +137,6 @@ protected: class ScreenRankingScroller: public ScreenRanking { public: - ScreenRankingScroller( CString sName ); virtual void Init(); virtual void BeginScreen(); @@ -167,7 +166,6 @@ static const int NUM_RANKING_LINES = 5; class ScreenRankingLines: public ScreenRanking { public: - ScreenRankingLines( CString sName ); virtual void Init(); virtual void BeginScreen(); diff --git a/stepmania/src/ScreenUnlock.cpp b/stepmania/src/ScreenUnlock.cpp index 94266f84e8..fce431f3af 100644 --- a/stepmania/src/ScreenUnlock.cpp +++ b/stepmania/src/ScreenUnlock.cpp @@ -24,10 +24,7 @@ #define TIME_TO_DISPLAY THEME->GetMetricF("ScreenUnlock", "TimeToDisplay") #define POINTS_ZOOM THEME->GetMetricF("ScreenUnlock","PointsZoom") -REGISTER_SCREEN_CLASS( ScreenUnlock ); -ScreenUnlock::ScreenUnlock( CString sClassName ) : ScreenAttract( sClassName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenUnlock ); void ScreenUnlock::Init() { diff --git a/stepmania/src/ScreenUnlock.h b/stepmania/src/ScreenUnlock.h index c76087be5b..1d4c783ce0 100644 --- a/stepmania/src/ScreenUnlock.h +++ b/stepmania/src/ScreenUnlock.h @@ -10,7 +10,6 @@ class Course; class ScreenUnlock : public ScreenAttract { public: - ScreenUnlock( CString sName ); virtual void Init(); ~ScreenUnlock();