Banner::LoadFromCachedBanner
This commit is contained in:
@@ -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 );
|
||||||
|
|||||||
@@ -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 );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user