diff --git a/Docs/Changelog_sm-ssc.txt b/Docs/Changelog_sm-ssc.txt index efb4b522d9..b845b720d1 100644 --- a/Docs/Changelog_sm-ssc.txt +++ b/Docs/Changelog_sm-ssc.txt @@ -17,6 +17,7 @@ sm-ssc v1.2.5 | 201104?? -------- * [Banner] Added ScrollSpeedDivisor metric; controls the scroll speed of Random/Roulette banners. [AJ] +* [FadingBanner] Added BannerRoulette, BannerRandom, and Banner(Custom Item Name) commands. [AJ] 20110421 -------- diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 4ac18a6dab..b51a544cd7 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -496,6 +496,9 @@ BannerFadeOffCommand=diffusealpha,1;stoptweening;linear,0.25;diffusealpha,0 # ? BannerResetFadeCommand=diffusealpha,1 +BannerRouletteCommand= +BannerRandomCommand= + [Gameplay] # System Direction ComboIsPerRow=ComboPerRow() diff --git a/src/FadingBanner.cpp b/src/FadingBanner.cpp index e8e536e911..b64b8850d3 100644 --- a/src/FadingBanner.cpp +++ b/src/FadingBanner.cpp @@ -226,12 +226,14 @@ void FadingBanner::LoadRoulette() { BeforeChange(); m_Banner[m_iIndexLatest].LoadRoulette(); + m_Banner[m_iIndexLatest].PlayCommand( "Roulette" ); } void FadingBanner::LoadRandom() { BeforeChange(); m_Banner[m_iIndexLatest].LoadRandom(); + m_Banner[m_iIndexLatest].PlayCommand( "Random" ); } void FadingBanner::LoadFromSortOrder( SortOrder so ) @@ -252,6 +254,13 @@ void FadingBanner::LoadCourseFallback() m_Banner[m_iIndexLatest].LoadCourseFallback(); } +void FadingBanner::LoadCustom( RString sBanner ) +{ + BeforeChange(); + m_Banner[m_iIndexLatest].Load( THEME->GetPathG( "Banner", sBanner ) ); + m_Banner[m_iIndexLatest].PlayCommand( sBanner ); +} + // lua start #include "LuaBinding.h" diff --git a/src/FadingBanner.h b/src/FadingBanner.h index 33cafbfac9..4770eefd24 100644 --- a/src/FadingBanner.h +++ b/src/FadingBanner.h @@ -29,6 +29,7 @@ public: void LoadFromSortOrder( SortOrder so ); void LoadFallback(); void LoadCourseFallback(); + void LoadCustom( RString sBanner ); bool LoadFromCachedBanner( const RString &path ); bool LoadFromCachedBackground( const RString &path ); diff --git a/src/ScreenSelectMusic.cpp b/src/ScreenSelectMusic.cpp index 422487438c..d8b3611cfb 100644 --- a/src/ScreenSelectMusic.cpp +++ b/src/ScreenSelectMusic.cpp @@ -1722,10 +1722,13 @@ void ScreenSelectMusic::AfterMusicChange() m_sSampleMusicToPlay = m_sRandomMusicPath; break; case TYPE_CUSTOM: - bWantBanner = false; // we load it ourself, or should - m_Banner.Load( THEME->GetPathG( "Banner", GetMusicWheel()->GetCurWheelItemData( GetMusicWheel()->GetCurrentIndex() )->m_pAction->m_sName.c_str() ) ); - if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) - m_sSampleMusicToPlay = m_sSectionMusicPath; + { + bWantBanner = false; // we load it ourself + RString sBannerName = GetMusicWheel()->GetCurWheelItemData( GetMusicWheel()->GetCurrentIndex() )->m_pAction->m_sName.c_str(); + m_Banner.LoadCustom(sBannerName); + if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) + m_sSampleMusicToPlay = m_sSectionMusicPath; + } break; default: ASSERT(0);