diff --git a/stepmania/src/Banner.cpp b/stepmania/src/Banner.cpp index 29a6ccecd5..34f2ee9eb4 100644 --- a/stepmania/src/Banner.cpp +++ b/stepmania/src/Banner.cpp @@ -9,6 +9,7 @@ #include "ThemeMetric.h" #include "CharacterManager.h" #include "ActorUtil.h" +#include "UnlockManager.h" REGISTER_ACTOR_CLASS( Banner ) @@ -139,6 +140,28 @@ void Banner::LoadTABreakFromCharacter( Character* pCharacter ) } } +void Banner::LoadBannerFromUnlockEntry( UnlockEntry* pUE ) +{ + if( pUE == NULL ) LoadFallback(); + else + { + RString sFile = pUE->GetBannerFile(); + Load( sFile ); + m_bScrolling = false; + } +} + +void Banner::LoadBackgroundFromUnlockEntry( UnlockEntry* pUE ) +{ + if( pUE == NULL ) LoadFallback(); + else + { + RString sFile = pUE->GetBackgroundFile(); + Load( sFile ); + m_bScrolling = false; + } +} + void Banner::LoadFallback() { Load( THEME->GetPathG("Common","fallback banner") ); @@ -204,6 +227,18 @@ public: else { Character *pC = Luna::check(L,1); p->LoadIconFromCharacter( pC ); } return 0; } + static int LoadBannerFromUnlockEntry( T* p, lua_State *L ) + { + if( lua_isnil(L,1) ) { p->LoadBannerFromUnlockEntry( NULL ); } + else { UnlockEntry *pUE = Luna::check(L,1); p->LoadBannerFromUnlockEntry( pUE ); } + return 0; + } + static int LoadBackgroundFromUnlockEntry( T* p, lua_State *L ) + { + if( lua_isnil(L,1) ) { p->LoadBackgroundFromUnlockEntry( NULL ); } + else { UnlockEntry *pUE = Luna::check(L,1); p->LoadBackgroundFromUnlockEntry( pUE ); } + return 0; + } static void Register(lua_State *L) { @@ -213,6 +248,8 @@ public: ADD_METHOD( LoadFromCourse ); ADD_METHOD( LoadIconFromCharacter ); ADD_METHOD( LoadCardFromCharacter ); + ADD_METHOD( LoadBannerFromUnlockEntry ); + ADD_METHOD( LoadBackgroundFromUnlockEntry ); Luna::Register( L ); } diff --git a/stepmania/src/Banner.h b/stepmania/src/Banner.h index 321fad8131..83f12268f4 100644 --- a/stepmania/src/Banner.h +++ b/stepmania/src/Banner.h @@ -8,6 +8,7 @@ class Song; class Course; class Character; +class UnlockEntry; class Banner : public Sprite { @@ -28,6 +29,8 @@ public: void LoadCardFromCharacter( Character* pCharacter ); void LoadIconFromCharacter( Character* pCharacter ); void LoadTABreakFromCharacter( Character* pCharacter ); + void LoadBannerFromUnlockEntry( UnlockEntry* pUE ); + void LoadBackgroundFromUnlockEntry( UnlockEntry* pUE ); void LoadRoulette(); void LoadRandom(); void LoadFallback();