diff --git a/stepmania/src/Banner.cpp b/stepmania/src/Banner.cpp index 39b38b0e5b..96f7d90ab7 100644 --- a/stepmania/src/Banner.cpp +++ b/stepmania/src/Banner.cpp @@ -99,7 +99,7 @@ void Banner::LoadFromCourse( Course* pCourse ) // NULL means no course { if( pCourse == NULL ) LoadFallback(); else if( pCourse->m_sBannerPath != "" ) Load( pCourse->m_sBannerPath ); - else LoadFallback(); + else LoadCourseFallback(); m_bScrolling = false; } @@ -140,6 +140,11 @@ void Banner::LoadFallback() Load( THEME->GetPathG("Common","fallback banner") ); } +void Banner::LoadCourseFallback() +{ + Load( THEME->GetPathG("Banner","course fallback") ); +} + void Banner::LoadRoulette() { Load( THEME->GetPathG("Banner","roulette") ); diff --git a/stepmania/src/Banner.h b/stepmania/src/Banner.h index d41c30813f..e49c1af8b3 100644 --- a/stepmania/src/Banner.h +++ b/stepmania/src/Banner.h @@ -30,6 +30,7 @@ public: void LoadRoulette(); void LoadRandom(); void LoadFallback(); + void LoadCourseFallback(); void SetScrolling( bool bScroll, float Percent = 0); bool IsScrolling() const { return m_bScrolling; } diff --git a/stepmania/src/FadingBanner.cpp b/stepmania/src/FadingBanner.cpp index 9f671d7cb0..7961ebd40d 100644 --- a/stepmania/src/FadingBanner.cpp +++ b/stepmania/src/FadingBanner.cpp @@ -161,7 +161,11 @@ void FadingBanner::LoadFromSong( const Song* pSong ) /* Don't call HasBanner. That'll do disk access and cause the music wheel * to skip. */ - LoadFromCachedBanner( pSong->GetBannerPath() ); + CString sPath = pSong->GetBannerPath(); + if( sPath.empty() ) + LoadFallback(); + else + LoadFromCachedBanner( sPath ); } void FadingBanner::LoadAllMusic() @@ -192,7 +196,11 @@ void FadingBanner::LoadFromCourse( const Course* pCourse ) /* Don't call HasBanner. That'll do disk access and cause the music wheel * to skip. */ - LoadFromCachedBanner( pCourse->m_sBannerPath ); + CString sPath = pCourse->m_sBannerPath; + if( sPath.empty() ) + LoadCourseFallback(); + else + LoadFromCachedBanner( sPath ); } void FadingBanner::LoadRoulette() @@ -213,6 +221,12 @@ void FadingBanner::LoadFallback() m_Banner[m_iIndexLatest].LoadFallback(); } +void FadingBanner::LoadCourseFallback() +{ + BeforeChange(); + m_Banner[m_iIndexLatest].LoadCourseFallback(); +} + // lua start #include "LuaBinding.h" diff --git a/stepmania/src/FadingBanner.h b/stepmania/src/FadingBanner.h index f142338ee0..063cea2ef3 100644 --- a/stepmania/src/FadingBanner.h +++ b/stepmania/src/FadingBanner.h @@ -26,6 +26,7 @@ public: void LoadRoulette(); void LoadRandom(); void LoadFallback(); + void LoadCourseFallback(); bool LoadFromCachedBanner( const CString &path );