diff --git a/stepmania/src/EditMenu.cpp b/stepmania/src/EditMenu.cpp index a5fe42a82f..bd2111aeae 100644 --- a/stepmania/src/EditMenu.cpp +++ b/stepmania/src/EditMenu.cpp @@ -57,7 +57,7 @@ void EditMenu::GetSongsToShowForGroup( const RString &sGroup, vector &vpS for( int i=vpSongsOut.size()-1; i>=0; i-- ) { const Song* pSong = vpSongsOut[i]; - if( UNLOCKMAN->SongIsLocked(pSong) || pSong->IsTutorial() ) + if( UNLOCKMAN->SongIsLocked(pSong) || pSong->IsTutorial() || SONGMAN->WasLoadedFromAdditionalSongs(pSong) ) vpSongsOut.erase( vpSongsOut.begin()+i ); } break; diff --git a/stepmania/src/SongManager.cpp b/stepmania/src/SongManager.cpp index 620194e3e2..8dcfcdef18 100644 --- a/stepmania/src/SongManager.cpp +++ b/stepmania/src/SongManager.cpp @@ -37,8 +37,9 @@ SongManager* SONGMAN = NULL; // global and accessable from anywhere in our program -const RString SONGS_DIR = "Songs/"; -const RString COURSES_DIR = "Courses/"; +const RString SONGS_DIR = "/Songs/"; +const RString ADDITIONAL_SONGS_DIR = "/AdditionalSongs/"; +const RString COURSES_DIR = "/Courses/"; static const ThemeMetric EXTRA_COLOR ("SongManager","ExtraColor"); static const ThemeMetric EXTRA_COLOR_METER ("SongManager","ExtraColorMeter"); @@ -103,6 +104,7 @@ void SongManager::InitSongsFromDisk( LoadingWindow *ld ) { RageTimer tm; LoadStepManiaSongDir( SONGS_DIR, ld ); + LoadStepManiaSongDir( ADDITIONAL_SONGS_DIR, ld ); LOG->Trace( "Found %d songs in %f seconds.", (int)m_pSongs.size(), tm.GetDeltaTime() ); } @@ -937,6 +939,12 @@ void SongManager::DeleteSteps( Steps *pSteps ) pSong->DeleteSteps( pSteps ); } +bool SongManager::WasLoadedFromAdditionalSongs( const Song *pSong ) const +{ + RString sDir = pSong->GetSongDir(); + return BeginsWith( sDir, ADDITIONAL_SONGS_DIR ); +} + void SongManager::GetAllCourses( vector &AddTo, bool bIncludeAutogen ) { for( unsigned i=0; i &AddTo, ProfileSlot slot ); Song *GetSongFromSteps( Steps *pSteps ); void DeleteSteps( Steps *pSteps ); // transfers ownership of pSteps + bool WasLoadedFromAdditionalSongs( const Song *pSong ) const; void GetAllCourses( vector &AddTo, bool bIncludeAutogen ); void GetCourses( CourseType ct, vector &AddTo, bool bIncludeAutogen ); diff --git a/stepmania/src/StepMania.cpp b/stepmania/src/StepMania.cpp index 3a5e61bd91..8db164977c 100644 --- a/stepmania/src/StepMania.cpp +++ b/stepmania/src/StepMania.cpp @@ -975,7 +975,7 @@ int main(int argc, char* argv[]) vector dirs; split( PREFSMAN->m_sAdditionalSongFolders, ",", dirs, true ); for( unsigned i=0; i < dirs.size(); i++) - FILEMAN->Mount( "dir", dirs[i], "/Songs" ); + FILEMAN->Mount( "dir", dirs[i], "/AdditionalSongs" ); } MountTreeOfZips( ZIPS_DIR );