diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 362f0e5e0c..ca8fd052ca 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -3545,6 +3545,10 @@ StepsTypeX=520 StepsTypeY=60 StepsTypeOnCommand=addx,640;sleep,0.0;bounceend,1;addx,-640 StepsTypeOffCommand=sleep,0.0;linear,0.5;diffusealpha,0 +PageTypeX=520 +PageTypeY=60 +PageTypeOnCommand=addx,640;sleep,0.0;bounceend,1;addx,-640 +PageTypeOffCommand=sleep,0.0;linear,0.5;diffusealpha,0 BulletStartX=100 BulletStartY=140 diff --git a/stepmania/src/Actor.cpp b/stepmania/src/Actor.cpp index 14646c39c0..d5d4527148 100644 --- a/stepmania/src/Actor.cpp +++ b/stepmania/src/Actor.cpp @@ -54,6 +54,7 @@ void Actor::Reset() m_fShadowLength = 0; m_bIsAnimating = true; m_fHibernateSecondsLeft = 0; + m_iDrawOrder = 0; m_bTextureWrapping = false; m_BlendMode = BLEND_NORMAL; @@ -735,6 +736,7 @@ void Actor::HandleCommand( const ParsedCommand &command ) else if( sName=="cullmode" ) SetCullMode( sParam(1) ); else if( sName=="hidden" ) SetHidden( bParam(1) ); else if( sName=="hibernate" ) SetHibernate( fParam(1) ); + else if( sName=="draworder" ) SetDrawOrder( iParam(1) ); else if( sName=="playcommand" ) PlayCommand( sParam(1) ); else if( sName=="queuecommand" ) { diff --git a/stepmania/src/Actor.h b/stepmania/src/Actor.h index 68e46f229a..5000dbca88 100644 --- a/stepmania/src/Actor.h +++ b/stepmania/src/Actor.h @@ -15,6 +15,10 @@ #include "ActorCommands.h" // for ParsedCommand #include +#define DRAW_ORDER_BEFORE_EVERYTHING -100 +#define DRAW_ORDER_TRANSITIONS 100 +#define DRAW_ORDER_AFTER_EVERYTHING 200 + class Actor { public: @@ -278,6 +282,8 @@ public: void SetShadowLength( float fLength ); // TODO: Implement hibernate as a tween type? void SetHibernate( float fSecs ) { m_fHibernateSecondsLeft = fSecs; } + void SetDrawOrder( int iOrder ) { m_iDrawOrder = iOrder; } + int GetDrawOrder() const { return m_iDrawOrder; } virtual void EnableAnimation( bool b ) { m_bIsAnimating = b; } // Sprite needs to overload this void StartAnimating() { this->EnableAnimation(true); }; @@ -376,6 +382,7 @@ protected: float m_fHibernateSecondsLeft; float m_fShadowLength; // 0 == no shadow bool m_bIsAnimating; + int m_iDrawOrder; // // render states diff --git a/stepmania/src/ActorFrame.cpp b/stepmania/src/ActorFrame.cpp index 9a1ebf4bef..ee86ed9bf6 100644 --- a/stepmania/src/ActorFrame.cpp +++ b/stepmania/src/ActorFrame.cpp @@ -28,6 +28,13 @@ void ActorFrame::AddChild( Actor* pActor ) m_SubActors.push_back( pActor ); } +void ActorFrame::RemoveChild( Actor* pActor ) +{ + vector::iterator iter = find( m_SubActors.begin(), m_SubActors.end(), pActor ); + if( iter != m_SubActors.end() ) + m_SubActors.erase( iter ); +} + void ActorFrame::MoveToTail( Actor* pActor ) { vector::iterator iter = find( m_SubActors.begin(), m_SubActors.end(), pActor ); @@ -130,15 +137,15 @@ float ActorFrame::GetTweenTimeLeft() const } -bool CompareActorsByZDesc(const Actor *p1, const Actor *p2) +bool CompareActorsByDrawOrder(const Actor *p1, const Actor *p2) { - return p1->GetZ() > p2->GetZ(); + return p1->GetDrawOrder() < p2->GetDrawOrder(); } -void ActorFrame::SortByZ() +void ActorFrame::SortByDrawOrder() { - // Preserve ordering of Actors with equal Z values. - stable_sort( m_SubActors.begin(), m_SubActors.end(), CompareActorsByZDesc ); + // Preserve ordering of Actors with equal DrawOrders. + stable_sort( m_SubActors.begin(), m_SubActors.end(), CompareActorsByDrawOrder ); } void ActorFrame::DeleteAllChildren() diff --git a/stepmania/src/ActorFrame.h b/stepmania/src/ActorFrame.h index 7cd87ee43c..8284f81942 100644 --- a/stepmania/src/ActorFrame.h +++ b/stepmania/src/ActorFrame.h @@ -17,9 +17,10 @@ class ActorFrame : public Actor { public: virtual void AddChild( Actor* pActor ); + virtual void RemoveChild( Actor* pActor ); virtual void MoveToTail( Actor* pActor ); virtual void MoveToHead( Actor* pActor ); - virtual void SortByZ(); + virtual void SortByDrawOrder(); virtual ~ActorFrame() { } diff --git a/stepmania/src/Foreground.cpp b/stepmania/src/Foreground.cpp index 958025f851..97ec46fe66 100644 --- a/stepmania/src/Foreground.cpp +++ b/stepmania/src/Foreground.cpp @@ -54,7 +54,7 @@ void Foreground::LoadFromSong( const Song *pSong ) TEXTUREMAN->SetDefaultTexturePolicy( OldPolicy ); - this->SortByZ(); + this->SortByDrawOrder(); } void Foreground::Update( float fDeltaTime ) diff --git a/stepmania/src/ScreenAttract.cpp b/stepmania/src/ScreenAttract.cpp index e7c4eb1af9..d2454d4899 100644 --- a/stepmania/src/ScreenAttract.cpp +++ b/stepmania/src/ScreenAttract.cpp @@ -49,9 +49,11 @@ ScreenAttract::ScreenAttract( CString sName, bool bResetGameState ) : Screen( sN m_In.Load( THEME->GetPathToB(m_sName+" in") ); m_In.StartTransitioning(); + m_In.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); this->AddChild( &m_In ); m_Out.Load( THEME->GetPathToB(m_sName+" out") ); + m_Out.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); this->AddChild( &m_Out ); SOUND->PlayOnceFromDir( ANNOUNCER->GetPathTo(m_sName) ); diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index 248d252cb8..dc8c8a5cc5 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -268,7 +268,7 @@ void ScreenEvaluation::Init() // } m_bgOverlay.LoadFromAniDir( THEME->GetPathB(m_sName, "overlay") ); - m_bgOverlay.SetZ( -1 ); /* draw on top of everything except transitions */ + m_bgOverlay.SetDrawOrder( 1 ); /* draw on top of everything except transitions */ this->AddChild( &m_bgOverlay ); m_bPassFailTriggered = false; // the sound hasn't been triggered yet @@ -859,7 +859,7 @@ void ScreenEvaluation::Init() break; } - this->SortByZ(); + this->SortByDrawOrder(); SOUND->PlayMusic( THEME->GetPathToS("ScreenEvaluation music") ); diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 8989ffa4b1..349e302aed 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -298,17 +298,17 @@ void ScreenGameplay::Init() - m_Background.SetZ( 2 ); // behind everything else + m_Background.SetDrawOrder( DRAW_ORDER_BEFORE_EVERYTHING ); this->AddChild( &m_Background ); - m_Foreground.SetZ( -5 ); // on top of everything else, including transitions + m_Foreground.SetDrawOrder( DRAW_ORDER_AFTER_EVERYTHING ); // on top of everything else, including transitions this->AddChild( &m_Foreground ); m_sprStaticBackground.SetName( "StaticBG" ); m_sprStaticBackground.Load( THEME->GetPathToG("ScreenGameplay Static Background")); SET_XY( m_sprStaticBackground ); - m_sprStaticBackground.SetZ( 2 ); // behind everything else + m_sprStaticBackground.SetDrawOrder( DRAW_ORDER_BEFORE_EVERYTHING ); // behind everything else this->AddChild(&m_sprStaticBackground); if( !m_bDemonstration ) // only load if we're going to use it @@ -344,13 +344,13 @@ void ScreenGameplay::Init() this->AddChild( &m_sprOniGameOver[p] ); } - m_NextSongIn.SetZ( -2 ); // on top of everything else + m_NextSongIn.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); this->AddChild( &m_NextSongIn ); - m_NextSongOut.SetZ( -2 ); // on top of everything else + m_NextSongOut.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); this->AddChild( &m_NextSongOut ); - m_SongFinished.SetZ( -2 ); // on top of everything else + m_SongFinished.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); this->AddChild( &m_SongFinished ); // @@ -676,11 +676,11 @@ void ScreenGameplay::Init() this->AddChild( &m_Go ); m_Cleared.Load( THEME->GetPathToB("ScreenGameplay cleared") ); - m_Cleared.SetZ( -2 ); // on top of everything else + m_Cleared.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); // on top of everything else this->AddChild( &m_Cleared ); m_Failed.Load( THEME->GetPathToB("ScreenGameplay failed") ); - m_Failed.SetZ( -2 ); // on top of everything else + m_Failed.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); // on top of everything else this->AddChild( &m_Failed ); if( PREFSMAN->m_bAllowExtraStage && GAMESTATE->IsFinalStage() ) // only load if we're going to use it @@ -704,25 +704,23 @@ void ScreenGameplay::Init() break; } - m_In.Load( THEME->GetPathToB("ScreenGameplay in") ); - m_In.SetZ( -2 ); // on top of everything else - this->AddChild( &m_In ); - - m_textDebug.LoadFromFont( THEME->GetPathToF("Common normal") ); m_textDebug.SetName( "Debug" ); SET_XY( m_textDebug ); this->AddChild( &m_textDebug ); + m_Overlay.LoadFromAniDir( THEME->GetPathToB("ScreenGameplay Overlay") ); + m_Overlay.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); + this->AddChild( &m_Overlay ); + + m_In.Load( THEME->GetPathToB("ScreenGameplay in") ); + m_In.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); + this->AddChild( &m_In ); m_Back.Load( THEME->GetPathToB("Common back") ); - m_Back.SetZ( -4 ); // on top of everything else + m_Back.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); // on top of everything else this->AddChild( &m_Back ); - m_Overlay.LoadFromAniDir( THEME->GetPathToB("ScreenGameplay Overlay") ); - m_Overlay.SetZ( -3 ); // on top of everything else - this->AddChild( &m_Overlay ); - if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) // only load if we're going to use it { @@ -730,7 +728,7 @@ void ScreenGameplay::Init() m_textSurviveTime.SetShadowLength( 0 ); m_textSurviveTime.SetName( "SurviveTime" ); SET_XY( m_textSurviveTime ); - m_textSurviveTime.SetZ( -3 ); // on top of everything else + m_textSurviveTime.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); m_textSurviveTime.SetDiffuse( RageColor(1,1,1,0) ); this->AddChild( &m_textSurviveTime ); } @@ -743,7 +741,7 @@ void ScreenGameplay::Init() TweenOnScreen(); - this->SortByZ(); + this->SortByDrawOrder(); if( !m_bDemonstration ) // only load if we're going to use it { diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index c0b2c4e714..e4414a0235 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -497,7 +497,7 @@ void ScreenOptions::Init( InputMode im, OptionRowData OptionRows[], int iNumOpti m_sprMore->FinishTweening(); - this->SortByZ(); + this->SortByDrawOrder(); } ScreenOptions::~ScreenOptions() diff --git a/stepmania/src/ScreenRanking.cpp b/stepmania/src/ScreenRanking.cpp index 61ac52c64b..2158113e43 100644 --- a/stepmania/src/ScreenRanking.cpp +++ b/stepmania/src/ScreenRanking.cpp @@ -24,6 +24,14 @@ #include "RageLog.h" #include "UnlockSystem.h" +static const CString PageTypeNames[NUM_PAGE_TYPES] = { + "Category", + "Course", + "AllSteps", + "AllCourses", +}; +XToString( PageType ); + #define STEPS_TYPES_TO_HIDE THEME->GetMetric ("ScreenRanking","StepsTypesToHide") #define SHOW_CATEGORIES THEME->GetMetricB("ScreenRanking","ShowCategories") @@ -294,7 +302,7 @@ ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName ) for( int c=0; cGetCourseFromPath( asCoursePaths[c] ); @@ -330,7 +338,7 @@ ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName ) for( unsigned i=0; iMoveToTail( &m_In ); // put it in the back so it covers up the stuff we just added - this->MoveToTail( &m_Out ); // put it in the back so it covers up the stuff we just added - this->ClearMessageQueue( SM_BeginFadingOut ); // ignore ScreenAttract's SecsToShow this->PostScreenMessage( SM_ShowNextPage, 0.5f ); @@ -380,7 +385,7 @@ void ScreenRanking::HandleScreenMessage( const ScreenMessage SM ) if( m_vPagesToShow.size() > 0 ) { float fSecsToShow = SetPage( m_vPagesToShow[0] ); - this->SortByZ(); + this->SortByDrawOrder(); m_vPagesToShow.erase( m_vPagesToShow.begin() ); this->PostScreenMessage( SM_HidePage, fSecsToShow-PAGE_FADE_SECONDS ); } @@ -416,7 +421,7 @@ float ScreenRanking::SetPage( PageToShow pts ) bool bShowCourseScore = false; switch( pts.type ) { - case PageToShow::TYPE_CATEGORY: + case PAGE_TYPE_CATEGORY: bBanner = false; bBannerFrame = false; bShowCategory = true; @@ -430,7 +435,7 @@ float ScreenRanking::SetPage( PageToShow pts ) bShowDifficulty = false; bShowStepsScore = false; break; - case PageToShow::TYPE_COURSE: + case PAGE_TYPE_COURSE: bBanner = true; bBannerFrame = true; bShowCategory = false; @@ -444,7 +449,7 @@ float ScreenRanking::SetPage( PageToShow pts ) bShowDifficulty = false; bShowStepsScore = false; break; - case PageToShow::TYPE_ALL_STEPS: + case PAGE_TYPE_ALL_STEPS: bBanner = false; bBannerFrame = false; bShowCategory = false; @@ -458,7 +463,7 @@ float ScreenRanking::SetPage( PageToShow pts ) bShowDifficulty = true; bShowStepsScore = true; break; - case PageToShow::TYPE_ALL_COURSES: + case PAGE_TYPE_ALL_COURSES: bShowStepsType = true; bShowCourseScore = true; bShowCourseDifficulty = true; @@ -504,6 +509,15 @@ float ScreenRanking::SetPage( PageToShow pts ) SET_XY_AND_ON_COMMAND( m_textStepsType ); } + // UGLY: We have to call AddChild every time we re-load an AutoActor + // because the internal Actor* changes. + if( (Actor*)m_sprPageType ) + this->RemoveChild( m_sprPageType ); + m_sprPageType.Load( THEME->GetPathG(m_sName, "PageType "+PageTypeToString(pts.type)) ); + m_sprPageType->SetName( "PageType" ); + this->AddChild( m_sprPageType ); + SET_XY_AND_ON_COMMAND( m_sprPageType ); + { for( int l=0; lm_sName ); m_Banner.LoadFromCourse( pts.pCourse ); @@ -753,7 +767,7 @@ float ScreenRanking::SetPage( PageToShow pts ) } } return SECONDS_PER_PAGE; - case PageToShow::TYPE_ALL_STEPS: + case PAGE_TYPE_ALL_STEPS: { m_textStepsType.SetText( GameManager::NotesTypeToThemedString(pts.nt) ); @@ -798,7 +812,7 @@ float ScreenRanking::SetPage( PageToShow pts ) } } return m_ListScoreRowItems.GetSecondsForCompleteScrollThrough(); - case PageToShow::TYPE_ALL_COURSES: + case PAGE_TYPE_ALL_COURSES: { m_textStepsType.SetText( GameManager::NotesTypeToThemedString(pts.nt) ); @@ -847,6 +861,7 @@ void ScreenRanking::TweenPageOffScreen() OFF_COMMAND( m_textCourseTitle ); OFF_COMMAND( m_textCategory ); OFF_COMMAND( m_textStepsType ); + OFF_COMMAND( m_sprPageType ); for( int l=0; lSortByZ(); + this->SortByDrawOrder(); } diff --git a/stepmania/src/ScreenSelectCourse.cpp b/stepmania/src/ScreenSelectCourse.cpp index a829f7eb1b..82661014c8 100644 --- a/stepmania/src/ScreenSelectCourse.cpp +++ b/stepmania/src/ScreenSelectCourse.cpp @@ -143,7 +143,7 @@ ScreenSelectCourse::ScreenSelectCourse( CString sClassName ) : ScreenWithMenuEle AfterCourseChange(); TweenOnScreen(); - this->SortByZ(); + this->SortByDrawOrder(); } diff --git a/stepmania/src/ScreenSelectDifficulty.cpp b/stepmania/src/ScreenSelectDifficulty.cpp index ce5b13eb70..fb141673ef 100644 --- a/stepmania/src/ScreenSelectDifficulty.cpp +++ b/stepmania/src/ScreenSelectDifficulty.cpp @@ -124,7 +124,7 @@ ScreenSelectDifficulty::ScreenSelectDifficulty( CString sClassName ) : ScreenSel TweenOnScreen(); - this->SortByZ(); + this->SortByDrawOrder(); } void ScreenSelectDifficulty::Update( float fDelta ) diff --git a/stepmania/src/ScreenSelectDifficultyEX.cpp b/stepmania/src/ScreenSelectDifficultyEX.cpp index 54eedb3f4b..c79a0f141a 100644 --- a/stepmania/src/ScreenSelectDifficultyEX.cpp +++ b/stepmania/src/ScreenSelectDifficultyEX.cpp @@ -155,7 +155,7 @@ ScreenSelectDifficultyEX::ScreenSelectDifficultyEX( CString sClassName ) : Scree SetAllPlayersSelection( 0, false ); - this->SortByZ(); + this->SortByDrawOrder(); } void ScreenSelectDifficultyEX::Update( float fDelta ) diff --git a/stepmania/src/ScreenSelectGroup.cpp b/stepmania/src/ScreenSelectGroup.cpp index d315f4a4c7..2f8e27f9f5 100644 --- a/stepmania/src/ScreenSelectGroup.cpp +++ b/stepmania/src/ScreenSelectGroup.cpp @@ -144,7 +144,7 @@ ScreenSelectGroup::ScreenSelectGroup( CString sClassName ) : ScreenWithMenuEleme TweenOnScreen(); m_GroupList.SetSelection(0); - this->SortByZ(); + this->SortByDrawOrder(); } diff --git a/stepmania/src/ScreenSelectMaster.cpp b/stepmania/src/ScreenSelectMaster.cpp index e261b349e1..559de4a765 100644 --- a/stepmania/src/ScreenSelectMaster.cpp +++ b/stepmania/src/ScreenSelectMaster.cpp @@ -715,7 +715,7 @@ void ScreenSelectMaster::TweenOnScreen() SET_XY_AND_ON_COMMAND( m_sprExplanation[GetCurrentPage()] ); SET_XY_AND_ON_COMMAND( m_sprMore[GetCurrentPage()] ); - this->SortByZ(); + this->SortByDrawOrder(); } void ScreenSelectMaster::TweenOffScreen() diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index 9783e2fd67..c19528d1af 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -338,7 +338,7 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : ScreenWithMenuEleme AfterMusicChange(); TweenOnScreen(); - this->SortByZ(); + this->SortByDrawOrder(); } diff --git a/stepmania/src/ScreenSelectStyle.cpp b/stepmania/src/ScreenSelectStyle.cpp index ced26b98f9..2e2444a790 100644 --- a/stepmania/src/ScreenSelectStyle.cpp +++ b/stepmania/src/ScreenSelectStyle.cpp @@ -140,7 +140,7 @@ ScreenSelectStyle::ScreenSelectStyle( CString sClassName ) : ScreenSelect( sClas SET_XY_AND_ON_COMMAND( m_sprPremium ); // let AfterChange tween Picture and Info - this->SortByZ(); + this->SortByDrawOrder(); } void ScreenSelectStyle::MenuLeft( PlayerNumber pn ) diff --git a/stepmania/src/ScreenStage.cpp b/stepmania/src/ScreenStage.cpp index a681fe9056..1bde20780f 100644 --- a/stepmania/src/ScreenStage.cpp +++ b/stepmania/src/ScreenStage.cpp @@ -39,7 +39,7 @@ ScreenStage::ScreenStage( CString sClassName ) : Screen( sClassName ) m_Background.LoadFromAniDir( THEME->GetPathToB(m_sName + " "+GAMESTATE->GetStageText()) ); - m_Background.SetZ( 10 ); // behind everything else + m_Background.SetDrawOrder( DRAW_ORDER_BEFORE_EVERYTHING ); this->AddChild( &m_Background ); m_Overlay.SetName( "Overlay" ); @@ -49,15 +49,15 @@ ScreenStage::ScreenStage( CString sClassName ) : Screen( sClassName ) m_In.Load( THEME->GetPathToB(m_sName + " in") ); m_In.StartTransitioning(); - m_In.SetZ( -2 ); // on top of everything else + m_In.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); this->AddChild( &m_In ); m_Out.Load( THEME->GetPathToB(m_sName + " out") ); - m_Out.SetZ( -2 ); // on top of everything else + m_Out.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); this->AddChild( &m_Out ); m_Back.Load( THEME->GetPathToB("Common back") ); - m_Back.SetZ( -2 ); // on top of everything else + m_Back.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); this->AddChild( &m_Back ); /* Prep the new screen once m_In is complete. */ @@ -107,7 +107,7 @@ ScreenStage::ScreenStage( CString sClassName ) : Screen( sClassName ) SOUND->PlayOnceFromDir( ANNOUNCER->GetPathTo("stage "+GAMESTATE->GetStageText()) ); - this->SortByZ(); + this->SortByDrawOrder(); } void ScreenStage::HandleScreenMessage( const ScreenMessage SM ) diff --git a/stepmania/src/ScreenTitleMenu.cpp b/stepmania/src/ScreenTitleMenu.cpp index 3afa125c1e..77b4899255 100644 --- a/stepmania/src/ScreenTitleMenu.cpp +++ b/stepmania/src/ScreenTitleMenu.cpp @@ -189,7 +189,7 @@ ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassNam this->PostScreenMessage( SM_PlayComment, SECONDS_BETWEEN_COMMENTS); - this->SortByZ(); + this->SortByDrawOrder(); // this->MoveToTail( &m_AttractOut ); // put it in the back so it covers up the stuff we just added } diff --git a/stepmania/src/ScreenUnlock.cpp b/stepmania/src/ScreenUnlock.cpp index 308683e3f6..31f07e3938 100644 --- a/stepmania/src/ScreenUnlock.cpp +++ b/stepmania/src/ScreenUnlock.cpp @@ -324,7 +324,7 @@ ScreenUnlock::ScreenUnlock( CString sClassName ) : ScreenAttract( sClassName ) this->PostScreenMessage( SM_BeginFadingOut, TIME_TO_DISPLAY ); - this->SortByZ(); + this->SortByDrawOrder(); } ScreenUnlock::~ScreenUnlock() diff --git a/stepmania/src/ScreenWithMenuElements.cpp b/stepmania/src/ScreenWithMenuElements.cpp index f54170a601..359cd3207d 100644 --- a/stepmania/src/ScreenWithMenuElements.cpp +++ b/stepmania/src/ScreenWithMenuElements.cpp @@ -100,15 +100,15 @@ ScreenWithMenuElements::ScreenWithMenuElements( CString sClassName ) : Screen( s m_In.Load( THEME->GetPathToB(m_sName+" in") ); - m_In.SetZ( -1000 ); // always on top + m_In.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); this->AddChild( &m_In ); m_Out.Load( THEME->GetPathToB(m_sName+" out") ); - m_Out.SetZ( -1000 ); // always on top + m_Out.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); this->AddChild( &m_Out ); m_Back.Load( THEME->GetPathToB("Common back") ); - m_Back.SetZ( -1000 ); // always on top + m_Back.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); this->AddChild( &m_Back ); m_In.StartTransitioning();