Commit Graph
36433 Commits
Author SHA1 Message Date
hayoreoandteejusb 338fdd8892 Add pump mirrors and language. 2024-03-06 16:10:21 -08:00
hayoreoandteejusb db7b7b425c Add LR and UD Mirror.
Adds a left-right and up-down mirror for 4-panel and solo modes.
2024-03-06 16:10:21 -08:00
Michael Votawandteejusb ede0b53f2b Updated notes on SORT parameter to indicate that it can actually be used with other parameters just fine, but the resutls can get kind of weird. 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb f8ce3c7db2 Explicitly get song bpm when checking if song matches songCriteria (m_fSpecifiedBPMMax and m_fSpecifiedBPMMin are only set if #DISPLAYBPM is used in simfile) 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 44d3711743 Removing already outdated comment 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb dcb1a2e3db Equals signs also need to be escaped when parsing #SONGSELECT parameters. 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb bf5404a71a CourseWriterCRS now correctly escapes control characters for certain parameters
CourseLoaderCRS handles escaped control characters and commas
Added new parsing functions to CourseLoaderCRS, ParseCommaSeparatedList, and ParseRangedValue
2024-03-06 01:45:26 -08:00
Michael Votawandteejusb e8947d9f70 Added a new SmEscape parameter to allow us to specify what characters to escape (defaults to '\\', ':', ';')
Added new SmEscape function to handle escaping a vector of strings
Added SmUnescape() to remove the '\\' preceding an escaped character.
2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 1d332bf960 Modified MsdFile::ReadBuf() so that escaped characters are still skipped when bUnescape == false
As of this commit, this won't affect anything except CourseLoaderCRS, because everywhere else is passing `true` for the bUnescape parameter.
2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 68e0674164 Default bUseSongSelect to false when initializing CourseEntry (otherwise it might be true, which causes CourseWriterCRS to write the cache incorrectly) 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 20938b6c3c Updated CourseFormat.txt to replace the .. with - 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 79ddb377ad Removed comments to myself 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 5665d08a5f Removed now un-used CourseLoaderCRS::ParseCourseSongSort
Replaced '..' with '-' for ranged parameter delimiter
2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 5b76ab1ba9 Uncommenting these lines from the original #SONG parsing, because I'm not sure why I commented it out to begin with. 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 0fe9c71fa3 Added description for the new #SONGSELECT course tag. 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 7831c42c83 Instead of calling rnd(), just select the average between iMaxDist and iMinDist.
This fixes an issue where a Course entry that only specifies a meter range will potentially select different songs for each difficulty.
2024-03-06 01:45:26 -08:00
Michael Votawandteejusb d73e210f57 Added Artists, min/max bpm, min/max duration to CourseEntry::GetTextDescription() 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb e657a75153 Added OldStyleStringToSongSort() function to map best/worst/gradebest/gradeworst to their SongSort counterparts.
Added CourseLoaderCRS::SetCourseSongSort() to parse and set SONGSELECT's SORT parameter.
2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 84553d4a50 Refactored code for writing #SONG entries in CourseWriterCRS
Added method for writing #SONGSELECT entries
Added new boolean flag bUseSongSelect to CourseEntry
Added new function StringToSongSort()
Renamed "LIVES" to "GAINLIVES"
2024-03-06 01:45:26 -08:00
Michael Votawandteejusb be87de401a Added additional criteria to StepsCriteria and SongCriteria
Added new m_sSongName property to Song class
Slight refactor in Song::LoadSongFromDir() to set m_sSongName
Implemented the basics of #SONGSELECT course parameter
2024-03-06 01:45:26 -08:00
Michael Votawandteejusb 343f2de657 Changed SongCriteria.m_sGroupName to a vector m_vsGroupNames, to allow for the potential to select a song from more than one group. 2024-03-06 01:45:26 -08:00
Michael Votawandteejusb f44357c3f5 Added BPMRANGE song option for Courses.
Started breaking out some of the logic in CourseLoaderCRS into smaller functions for readibility.
2024-03-06 01:45:26 -08:00
teejusb 93f27a4ae2 Version bump to 0.8.0 2024-03-03 00:09:32 -08:00
teejusb 0c1115350d Allow setting the alpha of the beatbars 2024-03-03 00:08:55 -08:00
Crash Cringleandteejusb becd375544 Only UpdateMeterSort when necessary (when sorting), account for other games and styles.
Songs are already sorted by title so no need to do so again (otherwise big boi lag)
2024-03-02 23:48:04 -08:00
glitchbearandteejusb ad5f3e0653 Windows support for fullscreen borderless window mode 2024-03-02 23:47:12 -08:00
Crash Cringleandteejusb d788071d4d Add sorting by Block level
(cherry picked from commit e1c8326a6a71f4a15c3f123391dc3f3331ee4a7b)
2024-02-25 09:36:21 -08:00
Crash Cringleandteejusb 3fd0bd8ade Creating mapping of preferred sort section name to songs. 2024-02-25 09:36:21 -08:00
Crash Cringleandteejusb 6cd43782d5 Add lua docs for GetPreferredSortSongsBySectionName, update comment, remove duplicate code 2024-02-25 09:36:21 -08:00
Crash Cringleandteejusb a7a8f51c33 Ensure the music wheel rebuilds when using SORT_PREFERRED.
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.
2024-02-25 09:36:21 -08:00
Crash Cringleandteejusb 58be4d521e Allow songs to exist in multiple Sections in Preferred Sort.
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)
2024-02-25 09:36:21 -08:00
Crash Cringleandteejusb b16efb06f7 fall through if sorting by player top grades without a profile 2024-02-25 09:36:11 -08:00
Crash Cringleandteejusb 24876804ef Add Top Grades sort per profile. This allows each player to see their top grades based on the currently used profile.
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)
2024-02-25 09:36:11 -08:00
Sergio Pérez Fernándezandteejusb ec33a08ca5 Renamed LinuxInputJoysticks to InputDeviceOrder 2024-02-21 12:29:26 -08:00
Sergio Pérez Fernándezandteejusb 5753ecdc1c Add LinuxInputJoysticks parameter to Preferences.ini to ensure pad order consistency 2024-02-21 12:29:26 -08:00
tertu marybigandteejusb acf8be530d Allow setting and getting beat bar status per NoteField from Lua 2024-02-15 13:22:26 -08:00
Michael Votawandteejusb c4d63052e2 Applied time signature fix to SMALoader::ProcessBeatsPerMeasure() 2024-02-08 01:35:06 -08:00
Michael Votawandteejusb eeb2528612 If a song has any time signatures defined, but doesn't include for for beat 0, add one.
(Fixes a crash that can occur with some songs if functions like TimingData::NoteRowToMeasureAndBeat are called for rows that don't have a time signature defined)
2024-02-08 01:35:06 -08:00
SugoiFactoryandteejusb 5aed630a41 Update DDR noteskins 2024-01-09 09:39:41 -08:00
SugoiFactoryandteejusb 18179d95cb FA+ blue/white support for noteskins 2024-01-09 09:39:41 -08:00
Scott Brennerandteejusb fe2e42408a Bump actions/checkout from 3 to 4, again 2023-12-23 22:15:01 -08:00
Michael Votawandteejusb 29a265713f When sorting course songs by GRADEBEST or GRADEWORST, check if GAMESTATE has a master player before calling SongUtil::SortSongPointerArrayByGrades(). 2023-12-13 09:12:21 -08:00
Michael Votawandteejusb c9750159fb Added missing GRADEBEST and GRADEWORST cases for CourseWriterCRS 2023-12-13 09:12:21 -08:00
48productionsandteejusb 204ac4b643 Automatically create Songs folder on Memory Cards 2023-12-13 08:53:08 -08:00
Scott Brennerandteejusb 22e294ed58 Bump actions/checkout from 3 to 4 2023-12-13 08:53:08 -08:00
dinandteejusb 9efc73df61 pref to bass simplify lighting 2023-12-13 08:53:08 -08:00
Crash Cringleandteejusb 980c3a4c3a MergeFromOtherHSL() now 'Removes All But One Of Each Name' per preference
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.
2023-12-13 08:30:33 -08:00
quietly-turningandteejusb f95df04d9e nudge enchantment noteskin's first two frames 1px
The first two frames of the "enchantment" NoteSkin's receptor spritesheet were
misaligned by 1px, causing the receptors to "wiggle" by 1px during gameplay.

To be fair, this was generally only visible on very large displays (like 55" and
up) running at high resolution, but those are becoming more common now.
2023-12-01 23:45:12 -08:00
Arthur Eubanksandteejusb d17f41b2c5 Fix groove radar value calculation 2023-10-24 13:59:58 -07:00
Arthur Eubanksandteejusb 7f76a1f5b9 Make tomcrypt workaround for #107 apply everywhere
I'm seeing the same warning building with clang on Linux.
2023-10-24 13:59:08 -07:00