Removed #BackgroundMovie tag. Instead, TidyUpData will create a BackgroundChange for the movie if one is found in the song directory.

This commit is contained in:
Chris Danford
2002-10-06 20:17:38 +00:00
parent 8871b4346a
commit 1e5d6a64d7
5 changed files with 39 additions and 49 deletions
+17 -30
View File
@@ -110,22 +110,6 @@ void Background::LoadFromSong( Song* pSong )
const float fXZoom = RECTWIDTH(RECT_BACKGROUND) / (float)SCREEN_WIDTH;
const float fYZoom = RECTHEIGHT(RECT_BACKGROUND) / (float)SCREEN_HEIGHT;
//
// figure out what BackgroundMode to use
//
if( PREFSMAN->m_BackgroundMode == PrefsManager::BGMODE_OFF )
m_BackgroundMode = MODE_STATIC_BG;
else if( pSong->HasMovieBackground() )
m_BackgroundMode = MODE_MOVIE_BG;
else if( PREFSMAN->m_BackgroundMode == PrefsManager::BGMODE_MOVIEVIS )
m_BackgroundMode = MODE_MOVIE_VIS;
else if( PREFSMAN->m_BackgroundMode == PrefsManager::BGMODE_RANDOMMOVIES )
m_BackgroundMode = MODE_RANDOMMOVIES;
else
m_BackgroundMode = MODE_ANIMATIONS;
const CString sSongBackgroundPath = pSong->HasBackground() ? pSong->GetBackgroundPath() : THEME->GetPathTo("Graphics","fallback background");
//
@@ -165,9 +149,9 @@ void Background::LoadFromSong( Song* pSong )
CStringArray asFiles;
// Look for movies in the song dir
GetDirListing( pSong->m_sSongDir+"movies\\"+aniseg.m_sBGName+".avi", asFiles, false, true );
GetDirListing( pSong->m_sSongDir+"movies\\"+aniseg.m_sBGName+".mpg", asFiles, false, true );
GetDirListing( pSong->m_sSongDir+"movies\\"+aniseg.m_sBGName+".mpeg", asFiles, false, true );
GetDirListing( pSong->m_sSongDir+aniseg.m_sBGName+".avi", asFiles, false, true );
GetDirListing( pSong->m_sSongDir+aniseg.m_sBGName+".mpg", asFiles, false, true );
GetDirListing( pSong->m_sSongDir+aniseg.m_sBGName+".mpeg", asFiles, false, true );
if( asFiles.GetSize() > 0 )
{
pTempBGA = new BGAnimation;
@@ -226,6 +210,19 @@ void Background::LoadFromSong( Song* pSong )
}
else // pSong doesn't have an animation plan
{
//
// figure out what BackgroundMode to use
//
if( PREFSMAN->m_BackgroundMode == PrefsManager::BGMODE_OFF )
m_BackgroundMode = MODE_STATIC_BG;
else if( PREFSMAN->m_BackgroundMode == PrefsManager::BGMODE_MOVIEVIS )
m_BackgroundMode = MODE_MOVIE_VIS;
else if( PREFSMAN->m_BackgroundMode == PrefsManager::BGMODE_RANDOMMOVIES )
m_BackgroundMode = MODE_RANDOMMOVIES;
else
m_BackgroundMode = MODE_ANIMATIONS;
//
// Load animations that will play while notes are active
//
@@ -233,13 +230,6 @@ void Background::LoadFromSong( Song* pSong )
{
case MODE_STATIC_BG:
break;
case MODE_MOVIE_BG:
{
pTempBGA = new BGAnimation;
pTempBGA->LoadFromMovie( pSong->GetMovieBackgroundPath(), false, true, true, sSongBackgroundPath );
m_BGAnimations.Add( pTempBGA );
}
break;
case MODE_MOVIE_VIS:
{
CStringArray arrayPossibleMovies;
@@ -310,10 +300,7 @@ void Background::LoadFromSong( Song* pSong )
/* If we have only 2, only generate a single animation segment for for the
* whole song. Otherwise, if it's a movie., it'll loop every four bars; we
* want it to play continuously. */
float fMusicStartBeat, fBPS;
bool bFreeze;
pSong->GetBeatAndBPSFromElapsedTime( -pSong->m_fBeat0OffsetInSeconds, fMusicStartBeat, fBPS, bFreeze );
const float fFirstBeat = (m_BackgroundMode==MODE_MOVIE_BG) ? fMusicStartBeat : pSong->m_fFirstBeat;
const float fFirstBeat = pSong->m_fFirstBeat;
const float fLastBeat = pSong->m_fLastBeat;
if( m_BGAnimations.GetSize() == 2) {
+1 -1
View File
@@ -53,7 +53,7 @@ public:
protected:
bool DangerVisible();
enum BackgroundMode { MODE_STATIC_BG, MODE_MOVIE_BG, MODE_ANIMATIONS, MODE_MOVIE_VIS, MODE_RANDOMMOVIES };
enum BackgroundMode { MODE_STATIC_BG, MODE_ANIMATIONS, MODE_MOVIE_VIS, MODE_RANDOMMOVIES };
BackgroundMode m_BackgroundMode;
BGAnimation m_BGADanger;
+1 -4
View File
@@ -98,9 +98,6 @@ bool SMLoader::LoadFromSMFile( CString sPath, Song &out )
else if( 0==stricmp(sValueName,"CDTITLE") )
out.m_sCDTitleFile = sParams[1];
else if( 0==stricmp(sValueName,"MOVIEBACKGROUND") )
out.m_sMovieBackgroundFile = sParams[1];
else if( 0==stricmp(sValueName,"MUSIC") )
out.m_sMusicFile = sParams[1];
@@ -179,7 +176,7 @@ bool SMLoader::LoadFromSMFile( CString sPath, Song &out )
}
}
else if( 0==stricmp(sValueName,"BGCHANGES") )
else if( 0==stricmp(sValueName,"BGCHANGES") || 0==stricmp(sValueName,"ANIMATIONS") )
{
CStringArray aBGChangeExpressions;
split( sParams[1], ",", aBGChangeExpressions );
+20 -12
View File
@@ -385,7 +385,7 @@ void Song::TidyUpData()
if( arrayPossibleMusic.GetSize() > 0 ) // we found a match
m_sMusicFile = arrayPossibleMusic[0];
// Chris: Don't throw on missing music
// Don't throw on missing music. -Chris
// else
// throw RageException( "The song in '%s' is missing a music file. You must place a music file in the song folder or remove the song", m_sSongDir );
}
@@ -507,8 +507,9 @@ void Song::TidyUpData()
}
if( !HasMovieBackground() )
// If no BGChanges are specified and there are movies in the song directory, then assume
// they are DWI style where the movie begins at beat 0.
if( !HasBGChanges() )
{
CStringArray arrayPossibleMovies;
GetDirListing( m_sSongDir + CString("*movie*.avi"), arrayPossibleMovies );
@@ -518,7 +519,20 @@ void Song::TidyUpData()
GetDirListing( m_sSongDir + CString("*.mpg"), arrayPossibleMovies );
GetDirListing( m_sSongDir + CString("*.mpeg"), arrayPossibleMovies );
if( arrayPossibleMovies.GetSize() > 0 )
m_sMovieBackgroundFile = arrayPossibleMovies[0];
{
CString sBGMovieFile = arrayPossibleMovies[0];
// strip off extension from file name
CString sDir, sFName, sExt;
splitrelpath( sBGMovieFile, sDir, sFName, sExt );
// calculate start beat of music
float fMusicStartBeat, fBPS;
bool bFreeze;
this->GetBeatAndBPSFromElapsedTime( -this->m_fBeat0OffsetInSeconds, fMusicStartBeat, fBPS, bFreeze );
this->AddBackgroundChange( BackgroundChange(fMusicStartBeat,sFName) );
}
}
//
@@ -655,7 +669,6 @@ void Song::SaveToSMFile( CString sPath, bool bSavingCache )
fprintf( fp, "#BANNER:%s;\n", m_sBannerFile );
fprintf( fp, "#BACKGROUND:%s;\n", m_sBackgroundFile );
fprintf( fp, "#CDTITLE:%s;\n", m_sCDTitleFile );
fprintf( fp, "#MOVIEBACKGROUND:%s;\n", m_sMovieBackgroundFile );
fprintf( fp, "#MUSIC:%s;\n", m_sMusicFile );
fprintf( fp, "#MUSICBYTES:%u;\n", m_iMusicBytes );
fprintf( fp, "#MUSICLENGTH:%.2f;\n", m_fMusicLengthSeconds );
@@ -983,7 +996,6 @@ bool Song::HasMusic() const {return m_sMusicFile != "" && IsAFile(GetMusicPa
bool Song::HasBanner() const {return m_sBannerFile != "" && IsAFile(GetBannerPath()); };
bool Song::HasBackground() const {return m_sBackgroundFile != "" && IsAFile(GetBackgroundPath()); };
bool Song::HasCDTitle() const {return m_sCDTitleFile != "" && IsAFile(GetCDTitlePath()); };
bool Song::HasMovieBackground() const {return m_sMovieBackgroundFile != ""&& IsAFile(GetMovieBackgroundPath()); };
bool Song::HasBGChanges() const {return m_BackgroundChanges.GetSize() > 0; };
int Song::GetNumTimesPlayed() const
@@ -1045,10 +1057,6 @@ CString Song::GetBannerPath() const
return m_sSongDir+m_sBannerFile;
}
CString Song::GetBackgroundPath() const
{
return m_sSongDir+m_sBackgroundFile;
}
CString Song::GetCDTitlePath() const
{
if( m_sCDTitleFile.Find('\\') == -1)
@@ -1060,7 +1068,7 @@ CString Song::GetCDTitlePath() const
return m_sCDTitleFile;
}
CString Song::GetMovieBackgroundPath() const
CString Song::GetBackgroundPath() const
{
return m_sSongDir+m_sMovieBackgroundFile;
return m_sSongDir+m_sBackgroundFile;
}
-2
View File
@@ -122,13 +122,11 @@ public:
CString m_sBannerFile;
CString m_sBackgroundFile;
CString m_sCDTitleFile;
CString m_sMovieBackgroundFile;
CString GetMusicPath() const;
CString GetBannerPath() const;
CString GetBackgroundPath() const;
CString GetCDTitlePath() const;
CString GetMovieBackgroundPath() const;
bool HasMusic() const;