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::LoadFromSong( Song* pSong ) // NULL means no song { if( pSong == NULL ) LoadFallback(); else if( pSong->HasBanner() ) Load( pSong->GetBannerPath() ); else LoadFallback(); m_bScrolling = false; }
void Banner::LoadFromCourse( Course* pCourse ) // NULL means no course { if( pCourse == NULL ) LoadFallback(); else if( pCourse->m_sBannerPath != "" ) Load( pCourse->m_sBannerPath ); else LoadFallback(); m_bScrolling = false; }
void Banner::LoadCardFromCharacter( const Character *pCharacter ) { if( pCharacter == NULL ) LoadFallback(); else if( pCharacter->GetCardPath() != "" ) Load( pCharacter->GetCardPath() ); else LoadFallback(); m_bScrolling = false; }
/* If this returns true, a low-resolution banner was loaded, and the full-res * banner should be loaded later. */ bool FadingBanner::LoadFromCachedBanner( const CString &path ) { /* If we're already on the given banner, don't fade again. */ if( path != "" && m_Banner[GetBackIndex()].GetTexturePath() == path ) return false; if( path == "" ) { LoadFallback(); return false; } /* If we're currently fading to the given banner, go through this again, * which will cause the fade-in to be further delayed. */ RageTextureID ID; bool bLowRes = (PREFSMAN->m_BannerCache != PrefsManager::BNCACHE_FULL); if( !bLowRes ) { ID = path; Sprite::SongBannerTexture( ID ); } else { /* Try to load the low quality version. */ ID = BANNERCACHE->LoadCachedBanner( path ); } if( !TEXTUREMAN->IsTextureRegistered(ID) ) { /* Oops. We couldn't load a banner quickly. We can load the actual * banner, but that's slow, so we don't want to do that when we're moving * fast on the music wheel. In that case, we should just keep the banner * that's there (or load a "moving fast" banner). Once we settle down, * we'll get called again and load the real banner. */ if( m_bMovingFast ) return false; if( IsAFile(path) ) Load( path ); else LoadFallback(); return false; } BeforeChange(); m_Banner[GetBackIndex()].Load( ID ); return bLowRes; }
void Banner::LoadFromGroup( CString sGroupName ) { CString sGroupBannerPath = SONGMAN->GetGroupBannerPath( sGroupName ); if( sGroupBannerPath != "" ) Load( sGroupBannerPath ); else LoadFallback(); m_bScrolling = false; }
void FadingBanner::LoadFromSong( const Song* pSong ) { if( pSong == nullptr ) { LoadFallback(); return; } /* Don't call HasBanner. That'll do disk access and cause the music wheel * to skip. */ std::string sPath = pSong->GetBannerPath(); if( sPath.empty() ) LoadFallback(); else LoadFromCachedBanner( sPath ); }
void Banner::LoadFallbackCharacterIcon() { Character *pCharacter = CHARMAN->GetDefaultCharacter(); if( pCharacter && !pCharacter->GetIconPath().empty() ) Load( pCharacter->GetIconPath(), false ); else LoadFallback(); }
void Banner::LoadFromCourse( const Course *pCourse ) // NULL means no course { if( pCourse == NULL ) LoadFallback(); else if( pCourse->GetBannerPath() != "" ) Load( pCourse->GetBannerPath() ); else LoadCourseFallback(); m_bScrolling = false; }
void Banner::LoadCardFromCharacter( Character* pCharacter ) { ASSERT( pCharacter ); if( pCharacter->GetCardPath() != "" ) Load( pCharacter->GetCardPath() ); else LoadFallback(); m_bScrolling = false; }
void Banner::LoadFromSongGroup(RString sSongGroup) { RString sGroupBannerPath = SONGMAN->GetSongGroupBannerPath(sSongGroup); if (sGroupBannerPath != "") Load(sGroupBannerPath); else LoadFallback(); m_bScrolling = false; }
void Banner::LoadBackgroundFromUnlockEntry( const UnlockEntry* pUE ) { if( pUE == NULL ) LoadFallback(); else { RString sFile = pUE->GetBackgroundFile(); Load( sFile ); m_bScrolling = false; } }
void Banner::LoadFromSortOrder( SortOrder so ) { // TODO: See if the check for NULL/PREFERRED(?) is needed. if( so == SortOrder_Invalid ) { LoadFallback(); } else { if( so != SORT_GROUP && so != SORT_RECENT ) Load( THEME->GetPathG("Banner",ssprintf("%s",SortOrderToString(so).c_str())) ); } m_bScrolling = (bool)SCROLL_SORT_ORDER; }
// Ugly: if sIsBanner is false, we're actually loading something other than a banner. void Banner::Load( RageTextureID ID, bool bIsBanner ) { if( ID.filename == "" ) { LoadFallback(); return; } if( bIsBanner ) ID = SongBannerTexture(ID); m_fPercentScrolling = 0; m_bScrolling = false; TEXTUREMAN->DisableOddDimensionWarning(); TEXTUREMAN->VolatileTexture( ID ); Sprite::Load( ID ); TEXTUREMAN->EnableOddDimensionWarning(); };