diff --git a/src/SongManager.cpp b/src/SongManager.cpp index da43cfce28..273f25ff32 100644 --- a/src/SongManager.cpp +++ b/src/SongManager.cpp @@ -1433,7 +1433,7 @@ void SongManager::UpdateShuffled() random_shuffle( m_pShuffledCourses.begin(), m_pShuffledCourses.end(), g_RandomNumberGenerator ); } -void SongManager::UpdatePreferredSort() +void SongManager::UpdatePreferredSort(RString sPreferredSongs, RString sPreferredCourses) { ASSERT( UNLOCKMAN ); @@ -1441,7 +1441,7 @@ void SongManager::UpdatePreferredSort() m_vPreferredSongSort.clear(); vector asLines; - RString sFile = THEME->GetPathO( "SongManager", "PreferredSongs.txt" ); + RString sFile = THEME->GetPathO( "SongManager", sPreferredSongs ); GetFileContents( sFile, asLines ); if( asLines.empty() ) return; @@ -1527,7 +1527,7 @@ void SongManager::UpdatePreferredSort() m_vPreferredCourseSort.clear(); vector asLines; - RString sFile = THEME->GetPathO( "SongManager", "PreferredCourses.txt" ); + RString sFile = THEME->GetPathO( "SongManager", sPreferredCourses ); if( !GetFileContents(sFile, asLines) ) return; @@ -1781,6 +1781,17 @@ int FindCourseIndexOfSameMode( T begin, T end, const Course *p ) class LunaSongManager: public Luna { public: + static int SetPreferredSongs( T* p, lua_State *L ) + { + p->UpdatePreferredSort( SArg(1), "PreferredCourses.txt" ); + return 0; + } + + static int SetPreferredCourses( T* p, lua_State *L ) + { + p->UpdatePreferredSort( "PreferredSongs.txt", SArg(1) ); + return 0; + } static int GetAllSongs( T* p, lua_State *L ) { const vector &v = p->GetAllSongs(); @@ -1897,6 +1908,8 @@ public: ADD_METHOD( GetSongGroupNames ); ADD_METHOD( GetSongsInGroup ); ADD_METHOD( ShortenGroupName ); + ADD_METHOD( SetPreferredSongs ); + ADD_METHOD( SetPreferredCourses ); } }; diff --git a/src/SongManager.h b/src/SongManager.h index c01638b25d..4d5e80be4a 100644 --- a/src/SongManager.h +++ b/src/SongManager.h @@ -121,7 +121,7 @@ public: void UpdatePopular(); void UpdateShuffled(); // re-shuffle songs and courses - void UpdatePreferredSort(); + void UpdatePreferredSort(RString sPreferredSongs = "PreferredSongs.txt", RString sPreferredCourses = "PreferredCourses.txt"); void SortSongs(); // sort m_pSongs by CompareSongPointersByTitle void UpdateRankingCourses(); // courses shown on the ranking screen