diff --git a/Docs/Changelog_sm-ssc.txt b/Docs/Changelog_sm-ssc.txt index ff6011b6ce..8fc0f5ebb9 100644 --- a/Docs/Changelog_sm-ssc.txt +++ b/Docs/Changelog_sm-ssc.txt @@ -13,6 +13,11 @@ _____________________________________________________________________________ sm-ssc v1.2 | 201012xx -------------------------------------------------------------------------------- +20101223 +-------- +* Added Banners for most SortOrders. (Group is excluded (song group banners + still work), as is Recent (which has no sections).) [freem] + 20101222 -------- * Added Shift+Ctrl+F2 shortcut for reloading overlay screens (and metrics) [freem] diff --git a/Themes/_fallback/Graphics/Banner Artist.redir b/Themes/_fallback/Graphics/Banner Artist.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner Artist.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner BPM.redir b/Themes/_fallback/Graphics/Banner BPM.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner BPM.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner ChallengeMeter.redir b/Themes/_fallback/Graphics/Banner ChallengeMeter.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner ChallengeMeter.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner DoubleChallengeMeter.redir b/Themes/_fallback/Graphics/Banner DoubleChallengeMeter.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner DoubleChallengeMeter.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner DoubleEasyMeter.redir b/Themes/_fallback/Graphics/Banner DoubleEasyMeter.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner DoubleEasyMeter.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner DoubleHardMeter.redir b/Themes/_fallback/Graphics/Banner DoubleHardMeter.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner DoubleHardMeter.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner DoubleMediumMeter.redir b/Themes/_fallback/Graphics/Banner DoubleMediumMeter.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner DoubleMediumMeter.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner EasyMeter.redir b/Themes/_fallback/Graphics/Banner EasyMeter.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner EasyMeter.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner Genre.redir b/Themes/_fallback/Graphics/Banner Genre.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner Genre.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner HardMeter.redir b/Themes/_fallback/Graphics/Banner HardMeter.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner HardMeter.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner Length.redir b/Themes/_fallback/Graphics/Banner Length.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner Length.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner MediumMeter.redir b/Themes/_fallback/Graphics/Banner MediumMeter.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner MediumMeter.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner Title.redir b/Themes/_fallback/Graphics/Banner Title.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner Title.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/Themes/_fallback/Graphics/Banner TopGrades.redir b/Themes/_fallback/Graphics/Banner TopGrades.redir new file mode 100644 index 0000000000..507050cda9 --- /dev/null +++ b/Themes/_fallback/Graphics/Banner TopGrades.redir @@ -0,0 +1 @@ +Common fallback banner \ No newline at end of file diff --git a/src/Banner.cpp b/src/Banner.cpp index 5bf67f7d7b..261e9783e0 100644 --- a/src/Banner.cpp +++ b/src/Banner.cpp @@ -220,6 +220,20 @@ void Banner::LoadRandom() m_bScrolling = (bool)SCROLL_ROULETTE; } +void Banner::LoadFromSortOrder( SortOrder so ) +{ + if( so == NULL || so == SortOrder_Invalid ) + { + LoadFallback(); + } + else + { + if( so != SORT_GROUP && so != SORT_RECENT ) + Load( THEME->GetPathG("Banner",ssprintf("%s",SortOrderToString(so).c_str())) ); + } + m_bScrolling = false; +} + // lua start #include "LuaBinding.h" @@ -274,6 +288,16 @@ public: p->LoadFromSongGroup( SArg(1) ); return 0; } + static int LoadFromSortOrder( T* p, lua_State *L ) + { + if( lua_isnil(L,1) ) { p->LoadFromSortOrder( SortOrder_Invalid ); } + else + { + SortOrder so = Enum::Check(L, 1); + p->LoadFromSortOrder( so ); + } + return 0; + } LunaBanner() { @@ -287,6 +311,7 @@ public: ADD_METHOD( LoadBannerFromUnlockEntry ); ADD_METHOD( LoadBackgroundFromUnlockEntry ); ADD_METHOD( LoadFromSongGroup ); + ADD_METHOD( LoadFromSortOrder ); } }; diff --git a/src/Banner.h b/src/Banner.h index 7fe790559c..24e4a4be7e 100644 --- a/src/Banner.h +++ b/src/Banner.h @@ -5,6 +5,7 @@ #include "Sprite.h" #include "RageTextureID.h" +#include "GameConstantsAndTypes.h" class Song; class Course; class Character; @@ -34,6 +35,7 @@ public: void LoadBackgroundFromUnlockEntry( const UnlockEntry* pUE ); void LoadRoulette(); void LoadRandom(); + void LoadFromSortOrder( SortOrder so ); void LoadFallback(); void LoadFallbackBG(); void LoadCourseFallback(); diff --git a/src/FadingBanner.cpp b/src/FadingBanner.cpp index c8609ab192..6f4476a55d 100644 --- a/src/FadingBanner.cpp +++ b/src/FadingBanner.cpp @@ -240,6 +240,12 @@ void FadingBanner::LoadRandom() m_Banner[m_iIndexLatest].LoadRandom(); } +void FadingBanner::LoadFromSortOrder( SortOrder so ) +{ + BeforeChange(); + m_Banner[m_iIndexLatest].LoadFromSortOrder(so); +} + void FadingBanner::LoadFallback() { BeforeChange(); diff --git a/src/FadingBanner.h b/src/FadingBanner.h index f86198110f..dc95b9a18a 100644 --- a/src/FadingBanner.h +++ b/src/FadingBanner.h @@ -27,6 +27,7 @@ public: void LoadBannerFromUnlockEntry( const UnlockEntry* pUE ); void LoadRoulette(); void LoadRandom(); + void LoadFromSortOrder( SortOrder so ); void LoadFallback(); void LoadCourseFallback(); diff --git a/src/GameConstantsAndTypes.h b/src/GameConstantsAndTypes.h index 8889bc0752..cd1aeafb5d 100644 --- a/src/GameConstantsAndTypes.h +++ b/src/GameConstantsAndTypes.h @@ -105,7 +105,6 @@ const RString& PlayModeToLocalizedString( PlayMode pm ); PlayMode StringToPlayMode( const RString& s ); LuaDeclareType( PlayMode ); -// ziup2 has SortOrder_PinnedMeter (¿qef?) enum SortOrder { // song sorts diff --git a/src/ScreenSelectMusic.cpp b/src/ScreenSelectMusic.cpp index 0b632f26cb..2665f81c1b 100644 --- a/src/ScreenSelectMusic.cpp +++ b/src/ScreenSelectMusic.cpp @@ -1691,31 +1691,44 @@ void ScreenSelectMusic::AfterMusicChange() switch( m_MusicWheel.GetSelectedType() ) { - case TYPE_SECTION: - g_sBannerPath = SONGMAN->GetSongGroupBannerPath( m_MusicWheel.GetSelectedSection() ); - if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) - m_sSampleMusicToPlay = m_sSectionMusicPath; - break; - case TYPE_SORT: - bWantBanner = false; // we load it ourself - m_Banner.LoadMode(); - if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) - m_sSampleMusicToPlay = m_sSortMusicPath; - break; - case TYPE_ROULETTE: - bWantBanner = false; // we load it ourself - m_Banner.LoadRoulette(); - if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) - m_sSampleMusicToPlay = m_sRouletteMusicPath; - break; - case TYPE_RANDOM: - bWantBanner = false; // we load it ourself - m_Banner.LoadRandom(); - //if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) - m_sSampleMusicToPlay = m_sRandomMusicPath; - break; - default: - ASSERT(0); + case TYPE_SECTION: + // reduce scope + { + SortOrder curSort = GAMESTATE->m_SortOrder; + if( curSort == SORT_GROUP) + { + g_sBannerPath = SONGMAN->GetSongGroupBannerPath( m_MusicWheel.GetSelectedSection() ); + } + else + { + bWantBanner = false; // we load it ourself + m_Banner.LoadFromSortOrder(curSort); + } + + if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) + m_sSampleMusicToPlay = m_sSectionMusicPath; + } + break; + case TYPE_SORT: + bWantBanner = false; // we load it ourself + m_Banner.LoadMode(); + if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) + m_sSampleMusicToPlay = m_sSortMusicPath; + break; + case TYPE_ROULETTE: + bWantBanner = false; // we load it ourself + m_Banner.LoadRoulette(); + if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) + m_sSampleMusicToPlay = m_sRouletteMusicPath; + break; + case TYPE_RANDOM: + bWantBanner = false; // we load it ourself + m_Banner.LoadRandom(); + //if( SAMPLE_MUSIC_PREVIEW_MODE != SampleMusicPreviewMode_LastSong ) + m_sSampleMusicToPlay = m_sRandomMusicPath; + break; + default: + ASSERT(0); } // override this if the sample music mode wants to. /*