don't pick autogen Courses for a BGA random course banner
don't pick DISPLAY_NEVER songs for demonstration don't pick DISPLAY_NEVER songs for a BGA random song banner don't show DISPLAY_NEVER songs on the ranking screen
This commit is contained in:
@@ -98,7 +98,18 @@ Actor* LoadFromActorFile( CString sIniPath, CString sLayer )
|
||||
{
|
||||
Song *pSong = GAMESTATE->m_pCurSong;
|
||||
if( pSong == NULL )
|
||||
pSong = SONGMAN->GetRandomSong();
|
||||
{
|
||||
// probe for a random banner
|
||||
for( int i=0; i<300; i++ )
|
||||
{
|
||||
pSong = SONGMAN->GetRandomSong();
|
||||
if( pSong == NULL )
|
||||
break;
|
||||
if( !pSong->ShowInDemonstrationAndRanking() )
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if( pSong && pSong->HasBanner() )
|
||||
sFile = pSong->GetBannerPath();
|
||||
@@ -120,7 +131,20 @@ Actor* LoadFromActorFile( CString sIniPath, CString sLayer )
|
||||
{
|
||||
Course *pCourse = GAMESTATE->m_pCurCourse;
|
||||
if( pCourse == NULL )
|
||||
pCourse = SONGMAN->GetRandomCourse();
|
||||
{
|
||||
// probe for a random banner
|
||||
for( int i=0; i<300; i++ )
|
||||
{
|
||||
pCourse = SONGMAN->GetRandomCourse();
|
||||
if( pCourse == NULL )
|
||||
break;
|
||||
if( !pCourse->ShowInDemonstrationAndRanking() )
|
||||
continue;
|
||||
if( pCourse->m_bIsAutogen )
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if( pCourse && pCourse->HasBanner() )
|
||||
sFile = pCourse->m_sBannerPath;
|
||||
|
||||
@@ -126,6 +126,8 @@ public:
|
||||
|
||||
bool IsFixed() const;
|
||||
|
||||
bool ShowInDemonstrationAndRanking() const { return true; }
|
||||
|
||||
void LoadFromCRSFile( CString sPath );
|
||||
void RevertFromDisk();
|
||||
void Init();
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "Steps.h"
|
||||
#include "ScreenAttract.h"
|
||||
#include "RageUtil.h"
|
||||
#include "UnlockSystem.h"
|
||||
|
||||
// HACK: This belongs in ScreenDemonstration
|
||||
#define DIFFICULTIES_TO_SHOW THEME->GetMetric ("ScreenDemonstration","DifficultiesToShow")
|
||||
@@ -69,8 +70,9 @@ bool ScreenJukebox::SetSong( bool bDemonstration )
|
||||
|
||||
if( !pSong->HasMusic() )
|
||||
continue; // skip
|
||||
|
||||
if( pSong->NeverDisplayed() )
|
||||
if( UNLOCKMAN->SongIsLocked(pSong) )
|
||||
continue;
|
||||
if( !pSong->ShowInDemonstrationAndRanking() )
|
||||
continue; // skip
|
||||
|
||||
Difficulty dc = vDifficultiesToShow[ rand()%vDifficultiesToShow.size() ];
|
||||
|
||||
@@ -182,7 +182,7 @@ ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName )
|
||||
Song *pSong = SONGMAN->GetAllSongs()[s];
|
||||
if( UNLOCKMAN->SongIsLocked(pSong) )
|
||||
continue;
|
||||
if( pSong->IsTutorial() )
|
||||
if( !pSong->ShowInDemonstrationAndRanking() )
|
||||
continue;
|
||||
|
||||
StepsScoreRowItem* pStepsScoreRowItem = new StepsScoreRowItem;
|
||||
|
||||
@@ -1231,10 +1231,10 @@ Song::SelectionDisplay Song::GetDisplayed() const
|
||||
return SHOW_ALWAYS;
|
||||
return m_SelectionDisplay;
|
||||
}
|
||||
|
||||
bool Song::NormallyDisplayed() const { return GetDisplayed() == SHOW_ALWAYS; }
|
||||
bool Song::NeverDisplayed() const { return GetDisplayed() == SHOW_NEVER; }
|
||||
bool Song::RouletteDisplayed() const { if(IsTutorial()) return false; return GetDisplayed() != SHOW_NEVER; }
|
||||
bool Song::ShowInDemonstrationAndRanking() const { return !IsTutorial() && NormallyDisplayed(); }
|
||||
|
||||
|
||||
bool Song::HasMusic() const {return m_sMusicFile != "" && IsAFile(GetMusicPath()); }
|
||||
|
||||
@@ -186,6 +186,7 @@ public:
|
||||
bool NormallyDisplayed() const;
|
||||
bool NeverDisplayed() const;
|
||||
bool RouletteDisplayed() const;
|
||||
bool ShowInDemonstrationAndRanking() const;
|
||||
|
||||
void AddSteps( Steps* pSteps ); // we are responsible for deleting the memory pointed to by pSteps!
|
||||
void RemoveSteps( const Steps* pSteps );
|
||||
|
||||
Reference in New Issue
Block a user