Added delay_save_cache to SongCacheIndex so that it doesn't write the entire cache index file after every song is loaded when loading songs.
Added m_SongsByDir to SongManager so that GetSongFromDir doesn't have to walk the entire list of songs.
Minor changes to when LoadEnabledSongsFromPref occurs and how SanityCheckGroupDir works to speed up loading.
Song::ReloadFromSongDir removes cache file to force an actual reload from the song dir instead of reloading from the cache. ReloadFromSongDir exposed to lua.
Reordered Actor::LoadFromNode to put Command first because that case is more common.
Course::GetTrailUnsorted reserves entries before starting to save time reallocating.
join in RageUtil calculates the final size of the concatenated strings reserves it to save time reallocating.
Added time log file to RageLog for profiling.
This gets the number of songs that are locked for any reason.
I wonder why the unlocked songs functions say that songs locked
by unlock entries are counted there, but fair enough.
SetPreferredSongs(string) and SetPreferredCourses(string)
The files have to be named "SongManager <name>.txt"
Example: SONGMAN:SetPreferredSongs("mysongs.txt")
calls the file "SongManager mysongs.txt"
Metric added, [MusicWheel]::HideSections, will restrict showing one group at time, it you want to see the other groups use the next/prev group code, defaulted to "false"
Also group changing is allowed via gamebuttons in case of those who wants to take advantage of the codedetector too, "false" as default
SongManager::GetSongGroupByIndex, gets groups by index (helpful in Jump to group functions, thanks to juanelote for this too).
528089b: remove preferred group filtering (leaving the setting in for later use) [Glenn Maynard]
96821ad: fix pump routine right side DownLeft not drawn [Chris Danford]
fd88c62: easier debug stepping [Chris Danford]