Banner::LoadFromCachedBanner

This commit is contained in:
Glenn Maynard
2007-05-02 02:10:40 +00:00
parent 379d0ba422
commit 230d89eb5e
2 changed files with 37 additions and 0 deletions
+36
View File
@@ -1,5 +1,6 @@
#include "global.h" #include "global.h"
#include "Banner.h" #include "Banner.h"
#include "BannerCache.h"
#include "SongManager.h" #include "SongManager.h"
#include "RageUtil.h" #include "RageUtil.h"
#include "song.h" #include "song.h"
@@ -10,6 +11,7 @@
#include "CharacterManager.h" #include "CharacterManager.h"
#include "ActorUtil.h" #include "ActorUtil.h"
#include "UnlockManager.h" #include "UnlockManager.h"
#include "PrefsManager.h"
REGISTER_ACTOR_CLASS( Banner ) REGISTER_ACTOR_CLASS( Banner )
@@ -43,6 +45,34 @@ void Banner::Load( RageTextureID ID, bool bIsBanner )
TEXTUREMAN->EnableOddDimensionWarning(); TEXTUREMAN->EnableOddDimensionWarning();
}; };
void Banner::LoadFromCachedBanner( const RString &sPath )
{
if( sPath.empty() )
{
LoadFallback();
return;
}
RageTextureID ID;
bool bLowRes = (PREFSMAN->m_BannerCache != BNCACHE_FULL);
if( !bLowRes )
{
ID = Sprite::SongBannerTexture( sPath );
}
else
{
/* Try to load the low quality version. */
ID = BANNERCACHE->LoadCachedBanner( sPath );
}
if( TEXTUREMAN->IsTextureRegistered(ID) )
Load( ID );
else if( IsAFile(sPath) )
Load( sPath );
else
LoadFallback();
}
void Banner::Update( float fDeltaTime ) void Banner::Update( float fDeltaTime )
{ {
Sprite::Update( fDeltaTime ); Sprite::Update( fDeltaTime );
@@ -205,6 +235,11 @@ public:
else { Course *pC = Luna<Course>::check(L,1); p->LoadFromCourse( pC ); } else { Course *pC = Luna<Course>::check(L,1); p->LoadFromCourse( pC ); }
return 0; return 0;
} }
static int LoadFromCachedBanner( T* p, lua_State *L )
{
p->LoadFromCachedBanner( SArg(1) );
return 0;
}
static int LoadIconFromCharacter( T* p, lua_State *L ) static int LoadIconFromCharacter( T* p, lua_State *L )
{ {
if( lua_isnil(L,1) ) { p->LoadIconFromCharacter( NULL ); } if( lua_isnil(L,1) ) { p->LoadIconFromCharacter( NULL ); }
@@ -236,6 +271,7 @@ public:
ADD_METHOD( ScaleToClipped ); ADD_METHOD( ScaleToClipped );
ADD_METHOD( LoadFromSong ); ADD_METHOD( LoadFromSong );
ADD_METHOD( LoadFromCourse ); ADD_METHOD( LoadFromCourse );
ADD_METHOD( LoadFromCachedBanner );
ADD_METHOD( LoadIconFromCharacter ); ADD_METHOD( LoadIconFromCharacter );
ADD_METHOD( LoadCardFromCharacter ); ADD_METHOD( LoadCardFromCharacter );
ADD_METHOD( LoadBannerFromUnlockEntry ); ADD_METHOD( LoadBannerFromUnlockEntry );
+1
View File
@@ -19,6 +19,7 @@ public:
void Load( RageTextureID ID, bool bIsBanner ); void Load( RageTextureID ID, bool bIsBanner );
virtual void Load( RageTextureID ID ) { Load( ID, true ); } virtual void Load( RageTextureID ID ) { Load( ID, true ); }
void LoadFromCachedBanner( const RString &sPath );
virtual void Update( float fDeltaTime ); virtual void Update( float fDeltaTime );