diff --git a/stepmania/src/CatalogXml.cpp b/stepmania/src/CatalogXml.cpp index ac2a153652..8f4a98d1ee 100644 --- a/stepmania/src/CatalogXml.cpp +++ b/stepmania/src/CatalogXml.cpp @@ -74,8 +74,7 @@ void CatalogXml::Save( LoadingWindow *loading_window ) p2->AppendAttr( "Name", *sGroup ); int iNumSongsInGroup = 0; - vector vpSongsInGroup; - SONGMAN->GetSongs( vpSongsInGroup, *sGroup ); + const vector &vpSongsInGroup = SONGMAN->GetSongs( *sGroup ); FOREACH_CONST( StepsType, vStepsTypesToShow, st ) { XNode* p3 = p2->AppendChild( "StepsType" ); diff --git a/stepmania/src/CourseUtil.cpp b/stepmania/src/CourseUtil.cpp index 670094d654..8791d8565d 100644 --- a/stepmania/src/CourseUtil.cpp +++ b/stepmania/src/CourseUtil.cpp @@ -228,10 +228,8 @@ void CourseUtil::AutogenEndlessFromGroup( const RString &sGroupName, Difficulty e.stepsCriteria.m_difficulty = diff; e.bSecret = true; - vector vSongs; - SONGMAN->GetSongs( vSongs, e.songCriteria.m_sGroupName ); - for( unsigned i = 0; i < vSongs.size(); ++i) - out.m_vEntries.push_back( e ); + // Insert a copy of e for each song in the group. + out.m_vEntries.insert( out.m_vEntries.end(), SONGMAN->GetSongs(sGroupName).size(), e ); } void CourseUtil::AutogenNonstopFromGroup( const RString &sGroupName, Difficulty diff, Course &out ) diff --git a/stepmania/src/EditMenu.cpp b/stepmania/src/EditMenu.cpp index a1d4abcf3e..d4230cacfd 100644 --- a/stepmania/src/EditMenu.cpp +++ b/stepmania/src/EditMenu.cpp @@ -54,11 +54,7 @@ void EditMenu::StripLockedStepsAndDifficulty( vector &v ) void EditMenu::GetSongsToShowForGroup( const RString &sGroup, vector &vpSongsOut ) { - vpSongsOut.clear(); - if( !SHOW_GROUPS.GetValue() ) - SONGMAN->GetSongs( vpSongsOut ); - else - SONGMAN->GetSongs( vpSongsOut, sGroup ); + vpSongsOut = SONGMAN->GetSongs( SHOW_GROUPS.GetValue()? sGroup:GROUP_ALL ); switch( EDIT_MODE.GetValue() ) { case EditMode_Practice: diff --git a/stepmania/src/MusicBannerWheel.cpp b/stepmania/src/MusicBannerWheel.cpp index 2ade3d134c..d46d79ee4c 100644 --- a/stepmania/src/MusicBannerWheel.cpp +++ b/stepmania/src/MusicBannerWheel.cpp @@ -56,7 +56,7 @@ MusicBannerWheel::MusicBannerWheel() m_ScrollingList.SetSpacing( BANNERSPACING ); this->AddChild( &m_ScrollingList ); - SONGMAN->GetSongs( arraySongs, GAMESTATE->m_sPreferredSongGroup ); + arraySongs = SONGMAN->GetSongs( GAMESTATE->m_sPreferredSongGroup ); // filter songs that we don't have enough stages to play { diff --git a/stepmania/src/MusicWheel.cpp b/stepmania/src/MusicWheel.cpp index bd2632577c..5e8a1b4921 100644 --- a/stepmania/src/MusicWheel.cpp +++ b/stepmania/src/MusicWheel.cpp @@ -324,7 +324,7 @@ void MusicWheel::GetSongList( vector &arraySongs, SortOrder so, const RSt SONGMAN->GetPopularSongs( apAllSongs, GAMESTATE->m_sPreferredSongGroup ); break; default: - SONGMAN->GetSongs( apAllSongs, GAMESTATE->m_sPreferredSongGroup ); + apAllSongs = SONGMAN->GetSongs( GAMESTATE->m_sPreferredSongGroup ); break; } diff --git a/stepmania/src/OptionRowHandler.cpp b/stepmania/src/OptionRowHandler.cpp index 499f357d6c..a99a19ecc9 100644 --- a/stepmania/src/OptionRowHandler.cpp +++ b/stepmania/src/OptionRowHandler.cpp @@ -718,8 +718,7 @@ class OptionRowHandlerListSongsInCurrentSongGroup: public OptionRowHandlerList { virtual void LoadInternal( const Commands &cmds ) { - vector vpSongs; - SONGMAN->GetSongs( vpSongs, GAMESTATE->m_sPreferredSongGroup ); + const vector &vpSongs = SONGMAN->GetSongs( GAMESTATE->m_sPreferredSongGroup ); if( GAMESTATE->m_pCurSong == NULL ) GAMESTATE->m_pCurSong.Set( vpSongs[0] ); diff --git a/stepmania/src/ScreenJukebox.cpp b/stepmania/src/ScreenJukebox.cpp index 8167db9293..71517b2b7f 100644 --- a/stepmania/src/ScreenJukebox.cpp +++ b/stepmania/src/ScreenJukebox.cpp @@ -42,7 +42,7 @@ void ScreenJukebox::SetSong() vSongs.push_back( pCourse->m_vEntries[i].pSong ); if ( vSongs.size() == 0 ) - SONGMAN->GetSongs( vSongs, GAMESTATE->m_sPreferredSongGroup ); + vSongs = SONGMAN->GetSongs( GAMESTATE->m_sPreferredSongGroup ); // diff --git a/stepmania/src/ScreenMusicScroll.cpp b/stepmania/src/ScreenMusicScroll.cpp index e92867fc27..e27bc7e189 100644 --- a/stepmania/src/ScreenMusicScroll.cpp +++ b/stepmania/src/ScreenMusicScroll.cpp @@ -27,8 +27,7 @@ void ScreenMusicScroll::Init() { ScreenAttract::Init(); - vector arraySongs; - SONGMAN->GetSongs( arraySongs ); + vector arraySongs = SONGMAN->GetSongs(); SongUtil::SortSongPointerArrayByTitle( arraySongs ); for( unsigned i=0; i < arraySongs.size(); i++ ) diff --git a/stepmania/src/ScreenOptionsEditCourse.cpp b/stepmania/src/ScreenOptionsEditCourse.cpp index 1fbd170f52..dd7b6e4c38 100644 --- a/stepmania/src/ScreenOptionsEditCourse.cpp +++ b/stepmania/src/ScreenOptionsEditCourse.cpp @@ -57,7 +57,7 @@ void ScreenOptionsEditCourse::BeginScreen() ASSERT( GAMESTATE->m_pCurCourse ); Course *pCourse = GAMESTATE->m_pCurCourse; m_Original = *pCourse; - SONGMAN->GetSongs( m_vpDisplayedSongs ); + m_vpDisplayedSongs = SONGMAN->GetSongs(); vector vHands; diff --git a/stepmania/src/ScreenOptionsEditCourseEntry.cpp b/stepmania/src/ScreenOptionsEditCourseEntry.cpp index 2b98a7d752..3da000415b 100644 --- a/stepmania/src/ScreenOptionsEditCourseEntry.cpp +++ b/stepmania/src/ScreenOptionsEditCourseEntry.cpp @@ -35,11 +35,9 @@ static void FillSongsAndChoices( const RString &sSongGroup, vector &vpSon vpSongsOut.clear(); vsChoicesOut.clear(); - if( sSongGroup.empty() ) - SONGMAN->GetSongs( vpSongsOut ); - else - SONGMAN->GetSongs( vpSongsOut, sSongGroup ); - vpSongsOut.insert( vpSongsOut.begin(), NULL ); + vpSongsOut.push_back( NULL ); + const vector vSongs = SONGMAN->GetSongs( sSongGroup.empty()? GROUP_ALL:sSongGroup ); + vpSongsOut.insert( vpSongsOut.end(), vSongs.begin(), vSongs.end() ); FOREACH_CONST( Song*, vpSongsOut, s ) { @@ -250,13 +248,10 @@ void ScreenOptionsEditCourseEntry::HandleScreenMessage( const ScreenMessage SM ) if( pSong == NULL ) { // Find the longest non-tutorial song. - vector vSongs; - - SONGMAN->GetSongs( vSongs ); - + const vector &vSongs = SONGMAN->GetSongs(); float fLen = -1.f; - FOREACH( Song*, vSongs, i ) + FOREACH_CONST( Song*, vSongs, i ) { if( !(*i)->IsTutorial() && (*i)->m_fMusicLengthSeconds > fLen ) { diff --git a/stepmania/src/ScreenSelectGroup.cpp b/stepmania/src/ScreenSelectGroup.cpp index 0d883426c5..6bba81c05c 100644 --- a/stepmania/src/ScreenSelectGroup.cpp +++ b/stepmania/src/ScreenSelectGroup.cpp @@ -32,8 +32,7 @@ void ScreenSelectGroup::Init() ASSERT( PREFSMAN->m_bShowSelectGroup ); - vector aAllSongs; - SONGMAN->GetSongs( aAllSongs ); + vector aAllSongs = SONGMAN->GetSongs(); // Filter out Songs that can't be played by the current Style for( int j=aAllSongs.size()-1; j>=0; j-- ) // foreach Song, back to front diff --git a/stepmania/src/StepsUtil.cpp b/stepmania/src/StepsUtil.cpp index 03f12e460c..6d4257b148 100644 --- a/stepmania/src/StepsUtil.cpp +++ b/stepmania/src/StepsUtil.cpp @@ -41,9 +41,8 @@ bool StepsCriteria::Matches( const Song *pSong, const Steps *pSteps ) const void StepsUtil::GetAllMatching( const SongCriteria &soc, const StepsCriteria &stc, vector &out ) { - const vector &songs = soc.m_sGroupName.empty() ? - SONGMAN->GetAllSongs() : - SONGMAN->GetSongsInGroup(soc.m_sGroupName); + const RString &sGroupName = soc.m_sGroupName.empty()? GROUP_ALL:soc.m_sGroupName; + const vector &songs = SONGMAN->GetSongs( sGroupName ); FOREACH_CONST( Song*, songs, so ) { @@ -65,7 +64,8 @@ void StepsUtil::GetAllMatching( Song *pSong, const StepsCriteria &stc, vector &songs = soc.m_sGroupName.empty()? SONGMAN->GetAllSongs():SONGMAN->GetSongsInGroup( soc.m_sGroupName ); + const RString &sGroupName = soc.m_sGroupName.empty()? GROUP_ALL:soc.m_sGroupName; + const vector &songs = SONGMAN->GetSongs( sGroupName ); FOREACH_CONST( Song*, songs, so ) {