This commit properly returns you to the correct pack when leaving a folder or returning from another screen.
This is achieved by returning you to your last open section. Previously behavior searched for the first instance of the song in your sort and put you in that section.
The songs for each sort are not updated despite changes that might occur during the session. This commit ensures that the music wheel will be rebuilt when setting the sort to PREFERRED. This is needed because the songs in this particular sort are prone to change during a session because two players can have different preferred songs. Additionally, profiles can change during a session. This commit will properly rebuild the music wheel when the sort is changed to SORT_PREFERRED.
This commit fixes a bug that causes the music wheel to freak out when a song is placed in multiple sections.
This can occur when a user's preferred songs have a song located in two different sections.
This is only applied to Preferred Sorting because Preferred sorting is the only sort where it is possible for a song to be a part of multiple sections (e.g. A song only has 1 Title therefore it would only appear in 1 section of the SORT_TITLE).
Preferred sorting allows users to create custom groups/sections by creating a file that defines the songs and their respective sections as they should appear in the sorting. Players are now able to include a song in multiple sections. Themers are now able to display the Preferred Sort of two players on 1 screen (This previously would have caused duplicate section names to occur)
The present implementation adds 2 new sorts for this, TOP_P1_Grades and TOP_P2_GRADES following the naming convention of TOP_GRADES which returns the machine grades.
I named the sort TopP1Grades rather than TopGradesP1 to prevent the "conflicting" banner error.
Eventually, I'd like to condense this to be 1 sort fed a playernumber or profile parameter in the future.
(cherry picked from commit 731ae501d8a14a196984bf7578afaa9351c22c5c)
When merging two high score lists, the MergeFromOtherHSL() function only called ClampSize() but did not also call RemoveAllButOneOfEachName. This behavior was okay before because RemoveAllButOneOfEachName() was called on every single song on the machine every set. Since this is no longer behavior, we need to make sure this method calls this otherwise we may end up with a merged leaderboard that has the same person occuring more than once.
- Fixes bug where 10th scores get erased when two players play the same song multiple times and rank on the leaderboard more than once
- Only clamping leaderboards and deduping high scores for songs/courses once overall instead of once per player
- Instead of looping through every song and course on the machine multiple times -> Only loop through the songs/course played in the past session
Grant users the ability to change the maximum amount of credits available rather than the constant cap at 20.
(cherry picked from commit 2ec2355d7a7d9fec9410cf6b7d2b5c31a4406074)
(cherry picked from commit 48245ab51600ede16096e70e27c94345918eaed7)