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:
Chris Danford
2004-07-25 21:56:19 +00:00
parent 655855cd70
commit f47e16ca86
6 changed files with 35 additions and 6 deletions
+26 -2
View File
@@ -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;
+2
View File
@@ -126,6 +126,8 @@ public:
bool IsFixed() const;
bool ShowInDemonstrationAndRanking() const { return true; }
void LoadFromCRSFile( CString sPath );
void RevertFromDisk();
void Init();
+4 -2
View File
@@ -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() ];
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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()); }
+1
View File
@@ -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 );