From 370839215f83d5eb238784805285cc387397d02e Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sat, 13 Mar 2004 23:11:57 +0000 Subject: [PATCH] add graphic for courses that have mods --- stepmania/Themes/default/metrics.ini | 4 ++++ stepmania/src/Course.cpp | 11 ++++++++++ stepmania/src/Course.h | 1 + stepmania/src/ScreenSelectMusic.cpp | 30 ++++++++++++++++++++++++++++ stepmania/src/ScreenSelectMusic.h | 1 + 5 files changed, 47 insertions(+) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index eb6348047d..a9a1be3c3d 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -727,6 +727,10 @@ BalloonX=392 BalloonY=140 BalloonOnCommand=linear,0.2;zoomy,1;bob;effectmagnitude,0,10,0 BalloonOffCommand=linear,0.2;zoomy,0 +CourseHasModsX= +CourseHasModsY= +CourseHasModsOffCommand= +CourseHasModsOnCommand= OptionsMessageX=320 OptionsMessageY=240 OptionsMessageOnCommand=zoomy,0;linear,0.25;zoomy,1;sleep,1;linear,0.25;zoomy,0 diff --git a/stepmania/src/Course.cpp b/stepmania/src/Course.cpp index 1612c8dca8..de037eec07 100644 --- a/stepmania/src/Course.cpp +++ b/stepmania/src/Course.cpp @@ -741,6 +741,17 @@ void Course::GetCourseInfo( StepsType nt, vector &ci, CourseDiffic m_InfoCache[params] = ci; } +bool Course::HasMods() const +{ + for( int i=0; i &ci, CourseDifficulty cd = COURSE_DIFFICULTY_REGULAR ) const; + bool HasMods() const; int GetEstimatedNumStages() const { return m_entries.size(); } bool HasCourseDifficulty( StepsType nt, CourseDifficulty cd ) const; diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index a9562ce76e..66c66d41ab 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -297,6 +297,9 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : Screen( sClassName TEXTUREMAN->CacheTexture( THEME->GetPathToG("ScreenSelectMusic balloon marathon") ); this->AddChild( &m_sprBalloon ); + m_sprCourseHasMods.LoadAndSetName( m_sName, "CourseHasMods" ); + this->AddChild( m_sprCourseHasMods ); + m_sprOptionsMessage.SetName( "OptionsMessage" ); m_sprOptionsMessage.Load( THEME->GetPathToG("ScreenSelectMusic options message 1x2") ); m_sprOptionsMessage.StopAnimating(); @@ -581,6 +584,7 @@ void ScreenSelectMusic::TweenOffScreen() OFF_COMMAND( m_MusicWheelUnder ); OFF_COMMAND( m_MusicWheel ); OFF_COMMAND( m_sprBalloon ); + OFF_COMMAND( m_sprCourseHasMods ); OFF_COMMAND( m_Artist ); OFF_COMMAND( m_MachineRank ); @@ -1302,6 +1306,9 @@ void ScreenSelectMusic::AfterMusicChange() m_sprBalloon.StopTweening(); OFF_COMMAND( m_sprBalloon ); + + m_sprCourseHasMods->StopTweening(); + OFF_COMMAND( m_sprCourseHasMods ); } break; case TYPE_SONG: @@ -1366,6 +1373,9 @@ void ScreenSelectMusic::AfterMusicChange() OFF_COMMAND( m_sprBalloon ); } + m_sprCourseHasMods->StopTweening(); + OFF_COMMAND( m_sprCourseHasMods ); + m_Artists.push_back( pSong->GetDisplayArtist() ); m_AltArtists.push_back( pSong->GetTranslitArtist() ); } @@ -1400,6 +1410,10 @@ void ScreenSelectMusic::AfterMusicChange() m_sprBalloon.StopTweening(); OFF_COMMAND( m_sprBalloon ); + + m_sprCourseHasMods->StopTweening(); + OFF_COMMAND( m_sprCourseHasMods ); + break; case TYPE_COURSE: { @@ -1440,6 +1454,22 @@ void ScreenSelectMusic::AfterMusicChange() if( index != -1 ) m_MachineRank.SetText( ssprintf("%i", index+1) ); + + + m_sprBalloon.StopTweening(); + OFF_COMMAND( m_sprBalloon ); + + if( pCourse->HasMods() ) + { + m_sprCourseHasMods->StopTweening(); + SET_XY_AND_ON_COMMAND( m_sprCourseHasMods ); + } + else + { + m_sprCourseHasMods->StopTweening(); + OFF_COMMAND( m_sprCourseHasMods ); + } + break; } default: diff --git a/stepmania/src/ScreenSelectMusic.h b/stepmania/src/ScreenSelectMusic.h index 0398b25f9e..ff0ac43903 100644 --- a/stepmania/src/ScreenSelectMusic.h +++ b/stepmania/src/ScreenSelectMusic.h @@ -98,6 +98,7 @@ protected: MusicWheel m_MusicWheel; AutoActor m_MusicWheelUnder; Sprite m_sprBalloon; + AutoActor m_sprCourseHasMods; DifficultyDisplay m_DifficultyDisplay; DifficultyList m_DifficultyList; CourseContentsList m_CourseContentsFrame;