Commit Graph

142 Commits

Author SHA1 Message Date
Arthur Eubanks 9131dc6b68 Prefix some calls with std::
These depend on C++ argument dependent name lookup and won't work with
an upcoming cleanup.
2025-04-22 23:19:28 -07:00
Crash Cringle ed5c87a10d Use structured bindings 2025-04-22 22:26:39 -07:00
Crash Cringle 8524210969 Change vector of vector of strings arrayGroupSongDirs to a map so we know precisely which directories are valid. 2025-04-22 22:26:39 -07:00
Crash Cringle 5e4f5ae4e5 Update SanityCheckGroup to return whether the group has passed the check or not rather and log a warning if failed rather than exit the game. 2025-04-22 22:26:39 -07:00
teejusb 7d0a31ef1a nullptr check + use const ref 2025-03-23 01:57:37 -07:00
Crash Cringle 0270cda54d Add additional NULL checks just in case 2025-03-22 12:02:04 -07:00
Crash Cringle 7d5a62a537 Add Group() for USB songs 2025-03-22 12:02:04 -07:00
Crash Cringle ca1a7a0dc4 Prevent a crash when loading a group with no additions in SongManager::LoadSongDir
When reloading and only loading additions, ensure we do not delete/readd groups that were already loaded.
2025-03-07 16:51:26 -08:00
Crash Cringle b770e9ad6b Use Log->Warn 2025-03-03 23:25:32 -08:00
Crash Cringle dbbcc57112 Explicitly require and use capital NULL and ITG everywhere for sync bias, comment fix, nullptr check for group 2025-03-03 23:25:32 -08:00
Crash Cringle 8f6d5b44b9 Move sync offset application to song load (as early as possible) 2025-03-03 23:25:32 -08:00
Crash Cringle 9d61cb4c06 Okay we use -9ms here because this counters the +9ms folks add to their charts. Ensure we clear the series map when freeing songs 2025-03-03 23:25:32 -08:00
Crash Cringle 218d5734a3 Change group map to an unordered_map 2025-03-03 23:25:32 -08:00
Crash Cringle 830bf1bb8d Change series map value from a vector to an unordered set, remove series prefixing, ensure always defaulting to group disk name for sorting 2025-03-03 23:25:32 -08:00
Crash Cringle dd60d36093 Implement changes from feedback 2025-03-03 23:25:32 -08:00
Crash Cringle 694a724770 Move ASSERT_Ms to debugging and replace with warns, include <array>
(See feedback in PR)
Co-authored-by: sukibaby <163092272+sukibaby@users.noreply.github.com>
2025-03-03 23:25:32 -08:00
Crash Cringle 0b3ed6d4f9 Update src/SongManager.cpp
Co-authored-by: sukibaby <163092272+sukibaby@users.noreply.github.com>
2025-03-03 23:25:32 -08:00
Crash Cringle fc98959db4 Update src/SongManager.cpp
Co-authored-by: sukibaby <163092272+sukibaby@users.noreply.github.com>
2025-03-03 23:25:32 -08:00
Crash Cringle 53a26f2fa4 Add some nullptr handling 2025-03-03 23:25:32 -08:00
Crash Cringle ac767b3ce8 Move GetGroup to SONGMAN, rename variables consistently, move "pack.ini" to constant var, flip sync bias sign 2025-03-03 23:25:32 -08:00
Crash Cringle e8f0d55d6e Add SONGMAN:HasGroupIni(string groupName) which returns true/false 2025-03-03 23:25:32 -08:00
Crash Cringle 00342feadc Add new preference: DefaultGroupOffsetSeconds to dictate the default sync bias on the machine when no group.ini is present (or if there is no SyncOffset field in said file).
- Generally Supports either ITG (9ms) or NULL (0ms).
- Alternatively, one could edit the preference manually to put a different value
- Name/Description probably worth ironing out
2025-03-03 23:25:32 -08:00
Crash Cringle 01eea5cd42 Remove additional leftover debug message 2025-03-03 23:25:32 -08:00
Crash Cringle 1bf9dd004d Use the Translit field from Group.ini, Migrate Banner code to Group class 2025-03-03 23:25:32 -08:00
Crash Cringle 520173ef5d Safe delete Groups 2025-03-03 23:25:32 -08:00
Crash Cringle c06059b274 Further Group enhancements.
- Adjust the variable scope of group attributes
- Remove the now redundant GroupBannerPaths vector and replace its usage.
- Migrate ini loading logic to Group class
- Better clarity on comments for Group
- Remove GetTotalSongs in favor of GetSongs.
- Add Year as a value to Group.ini
- Ensure new group and song maps are cleared properly when freeing songs
2025-03-03 23:25:32 -08:00
Crash Cringle 5abaf5318a Move group into its own class, add Credit and AuthorsNotes fields, Begin exposing methods to lua 2025-03-03 23:25:32 -08:00
Crash Cringle 1aa44cacb6 Rename Pack -> Group for consistency. Remove leftover logging and extra lines from debugging.
Misc patches via PR review.
2025-03-03 23:25:32 -08:00
Crash Cringle e55475a295 Add enums for ITG/NULL in pack.ini for SyncOffset 2025-03-03 23:25:32 -08:00
Crash Cringle 798201cce4 Add Pack Offset and Group Banners to pack.ini, Remove debug logging 2025-03-03 23:25:32 -08:00
Crash Cringle 5e6f3378a8 Thrown together Initial working implementation of pack.ini
# Conflicts:
#	src/MusicWheel.cpp
2025-03-03 23:25:32 -08:00
sukibaby e0b254968d std::size_t -> size_t
Removing std prefix from all size_t.
2024-10-01 01:46:26 -07:00
sukibaby abf89ec2b1 Replace SAFE_DELETE / SAFE_DELETE_ARRAY macros
SAFE_DELETE -> RageUtil::SafeDelete
SAFE_DELETE_ARRAY -> RageUtil::SafeDeleteArray

Update JsonUtil.h to include RageUtil.h - MSVC doesn't need it included for some reason, but GCC and XCode does.
2024-09-30 15:13:32 -07:00
Crash Cringle 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
Crash Cringle d788071d4d Add sorting by Block level
(cherry picked from commit e1c8326a6a71f4a15c3f123391dc3f3331ee4a7b)
2024-02-25 09:36:21 -08:00
Crash Cringle 3fd0bd8ade Creating mapping of preferred sort section name to songs. 2024-02-25 09:36:21 -08:00
Crash Cringle 6cd43782d5 Add lua docs for GetPreferredSortSongsBySectionName, update comment, remove duplicate code 2024-02-25 09:36:21 -08:00
Crash Cringle 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
Martin Natano bacecae1f7 Decouple <vector> 2023-04-21 22:13:41 +02:00
Martin Natano 78fb2e9fc3 Decouple <cstddef> 2023-04-20 11:21:29 +02:00
Martin Natano 2d9cc038cd Downgrade to C++17 2023-03-17 20:07:15 +01:00
teejusb fbed947b9c Allow PreferredSongs/PreferredCourses to be set from absolute paths 2023-03-17 01:12:00 -07:00
Brian Phlipot d079940fea Address PR feedback. 2023-02-02 11:54:17 -08:00
Brian Phlipot 4a6b1a743c Enable more compiler warnings and treat them as errors. 2023-02-02 11:54:17 -08:00
Martin Natano 43050643d6 Revert back to ignoring FastLoad when reloading from operator menu
Many people (especially chart authors) expect that behaviour.
2022-10-28 17:40:02 +02:00
Brian Phlipot a0e805e511 Add std:: prefixes to all shuffle calls. Use unique_ptr instead of shared_ptr. 2022-10-03 16:21:19 -07:00
Brian Phlipot 37aff00d6e Require C++20 for building Stepmania. 2022-10-03 16:21:19 -07:00
Michael Sundqvist 0cba3579de Remove global "using namespace std;" declarations, use "std::" prefixes on all std elements
Fix whitespace changes
2022-07-31 22:14:38 +02:00
Martin Natano f60707b506 Add support for incremental updates to ScreenReloadSongs 2022-06-10 19:33:23 +02:00
Martin Natano 49127f6a92 Remove RageUtil_CachedObject
I don't notice any performance drawback in gameplay, but it was
massively slowing down ScreenReloadSongs.
2022-06-10 19:33:23 +02:00